Environment Variables
TaskView is configured through environment variables set in the .env.taskview file (or passed directly to the Docker container). This page documents every available variable.
Database
These must match your PostgreSQL setup.
| Variable | Required | Default | Description |
|---|---|---|---|
DB_HOST | Yes | - | Database hostname. Use db when running in Docker Compose. |
DB_USER | Yes | - | Database username |
DB_PASSWORD | Yes | - | Database password |
DB_NAME | Yes | - | Database name |
DB_PORT | No | 5432 | Database port |
Application
| Variable | Required | Default | Description |
|---|---|---|---|
APP_PORT | No | 1401 | Port the API server listens on |
APP_URL | Yes | https://app.taskview.tech | Full URL of the web app (e.g. https://tasks.company.com). Used for OAuth redirects and email links. |
Authentication
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SIGN | Yes | - | Secret key for signing JWT tokens. Use a long random string. |
ACCESS_LIFE_TIME | No | 1d | How long access tokens are valid. Examples: 1h, 1d, 7d |
REFRESH_LIFE_TIME | No | 2d | How long refresh tokens are valid |
JWT_ALG | No | HS256 | JWT signing algorithm |
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"SMTP (Email)
Required for password recovery, email confirmation, and invitation notifications. Without SMTP, these features won't work, but everything else functions normally.
| Variable | Required | Default | Description |
|---|---|---|---|
SMTP_HOST | No | - | SMTP server hostname |
SMTP_PORT | No | 465 | SMTP port |
SMTP_USERNAME | No | - | SMTP login |
SMTP_PASSWORD | No | - | SMTP password |
SMTP_ENCRYPTION | No | ssl | ssl or tls |
SMTP_FROM_NAME | No | TaskView | Sender name in emails |
SMTP_FROM_EMAIL | No | - | Sender email address |
Encryption
Required for GitHub/GitLab integrations. OAuth tokens are encrypted at rest using AES-256-GCM.
| Variable | Required | Default | Description |
|---|---|---|---|
ENCRYPTION_KEY | No | - | 32-byte hex string (64 characters). Required for integrations. |
Generate a key:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
GitHub Integration
For connecting GitHub repositories. See GitHub & GitLab Setup for a step-by-step guide.
| Variable | Required | Default | Description |
|---|---|---|---|
GITHUB_INTEGRATION_CLIENT_ID | No | - | OAuth App client ID |
GITHUB_INTEGRATION_CLIENT_SECRET | No | - | OAuth App client secret |
GITHUB_INTEGRATION_CALLBACK_URL | No | - | OAuth callback URL |
GITHUB_BASE_URL | No | https://github.com | Override for GitHub Enterprise |
GITHUB_API_URL | No | https://api.github.com | Override for GitHub Enterprise API |
GitLab Integration
For connecting GitLab repositories.
| Variable | Required | Default | Description |
|---|---|---|---|
GITLAB_INTEGRATION_CLIENT_ID | No | - | OAuth App client ID |
GITLAB_INTEGRATION_CLIENT_SECRET | No | - | OAuth App client secret |
GITLAB_INTEGRATION_CALLBACK_URL | No | - | OAuth callback URL |
GITLAB_BASE_URL | No | https://gitlab.com | Override for self-hosted GitLab |
GITLAB_API_URL | No | https://gitlab.com/api/v4 | Override for self-hosted GitLab API |
Full example
Here's a complete .env.taskview file for a production deployment:
DB_HOST="db"
DB_USER="taskview_db_user"
DB_PASSWORD="password"
DB_NAME="taskview"
DB_PORT=5432
APP_PORT=1401
JWT_ALG="HS256"
JWT_SIGN="secret"
ACCESS_LIFE_TIME="3d"
REFRESH_LIFE_TIME="9d"
SMTP_HOST=smtp
SMTP_PORT=587
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_ENCRYPTION=tls
SMTP_FROM_NAME=TaskView
SMTP_FROM_EMAIL=
# Your domain
APP_URL="https://app.taskview.tech"
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
#You domain
GOOGLE_CALLBACK_URL="https://api.taskview.tech/module/auth/provider/google/callback"
GITHUB_CLIENT_ID=""
GITHUB_CLIENT_SECRET=""
GITHUB_CALLBACK_URL="https://api.taskview.tech/module/auth/provider/github/callback"
APPLE_CLIENT_ID=""
APPLE_TEAM_ID=""
APPLE_KEY_ID=""
APPLE_KEY_LOCATION="/usr/src/app/AuthKey.p8"
# Your domain
APPLE_CALLBACK_URL="https://api.taskview.tech/module/auth/provider/apple/callback"
#integrations
GITHUB_INTEGRATION_CLIENT_ID=
GITHUB_INTEGRATION_CLIENT_SECRET=
GITHUB_INTEGRATION_CALLBACK_URL=https://api.taskview.tech/module/integrations/oauth/github/callback
GITLAB_INTEGRATION_CLIENT_ID=
GITLAB_INTEGRATION_CLIENT_SECRET=
GITLAB_INTEGRATION_CALLBACK_URL=https://api.taskview.tech/module/integrations/oauth/github/callback
ENCRYPTION_KEY=
GitHub & GitLab Setup
Connect GitHub and GitLab repositories to TaskView. Import and sync issues as tasks with OAuth authorization, webhook-based real-time updates, and AES-256 encrypted token storage. Supports GitHub Enterprise and self-hosted GitLab.
Authentication
Configure authentication in TaskView - email/password, email/code, OAuth with GitHub, Google, and Apple Sign In. JWT session management, password recovery, and account deletion for your self-hosted instance.
