Documentation

Reference for env vars, roles, and operations.

Environment Variables

Email backend (Graph / Gmail / SMTP) and SMTP credentials are configured at runtime in Admin → Authentication → Email, not via env. Same for Entra/Google enable toggles — env vars below only supply the credentials.

VariableRequiredDefaultDescription
POSTGRES_PASSWORDyesPostgres password
SESSION_SECRETyesRandom 32+ char string
FRONTEND_URLyesPublic base URL
COOKIE_SECUREyestrueSet true behind HTTPS
PORTno3001Backend port (internal)
APP_INTERNAL_PORTno8090Bound on 127.0.0.1
UPLOADS_DIRno/data/uploadsIn-container path
MAX_UPLOAD_MBno50Per-attachment limit
COMPOSE_PROJECT_NAMEnodir namePin volume prefix when renaming the install directory
AZURE_TENANT_IDoptEntra tenant
AZURE_CLIENT_IDoptEntra app ID
AZURE_CLIENT_SECREToptEntra client secret
AZURE_REDIRECT_URIoptMust match App Registration
GOOGLE_CLIENT_IDoptGoogle OAuth client
GOOGLE_CLIENT_SECREToptGoogle OAuth secret
MAIL_FROMoptSender address (Graph backend only)

User Roles

Admin

Full access. Manage users, projects, branding, auth, statuses.

Manager

Manage tickets in assigned projects. Assign work, change status.

Submitter

Open tickets, comment, attach files. Cannot reassign.

Viewer

Read-only. Useful for stakeholders and exec dashboards.

Roles can be overridden per project — e.g., a Submitter on most projects who's a Manager on one.

Operations

Update to a new release

cd resolvd
git pull
docker compose up -d --build

View logs

docker compose logs -f backend
docker compose logs -f nginx

Reset a forgotten admin password

docker exec -it resolvd-backend node scripts/reset-password.js <email>

Wipe everything (start fresh)

docker compose down -v
rm -rf data/uploads/*

Troubleshooting

Cookies aren't being set / login redirects loop
Almost always a TLS / proxy header issue. Make sure your proxy forwards X-Forwarded-Proto and that COOKIE_SECURE=true matches whether you're actually serving HTTPS.
Entra login fails with AADSTS50011
Redirect URI in your App Registration doesn't exactly match AZURE_REDIRECT_URI. Check trailing slashes and protocol.
413 Request Entity Too Large on attachments
Bump client_max_body_size (nginx) or max_size (Caddy) to at least MAX_UPLOAD_MB.