Documentation Index
Fetch the complete documentation index at: https://mintlify.com/YamiDarknezz/task-forge-api/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The repository ships with two Docker files:Dockerfile— production image built onpython:3.11-slim. Installs ODBC Driver 17 for SQL Server, Python dependencies, and runs Gunicorn with 4 workers.docker-compose.yml— local development setup. Mounts a./logsvolume, forwards port 5000, and wires environment variables from a.envfile.
Prerequisites
- Docker Desktop (includes Docker Compose)
Quick start
Create a .env file
Copy the example environment file and update values as needed:At minimum, set
SECRET_KEY and JWT_SECRET_KEY. The Azure SQL variables are optional — if omitted, the app falls back to SQLite.Build and start the container
Dockerfile
Dockerfile
docker-compose.yml
docker-compose.yml
Environment variables
Docker Compose reads variable values from your.env file using shell variable expansion (${VAR:-default}). The Azure SQL variables are forwarded directly to the container; if they are empty, the application uses the SQLite fallback.
The
CORS_ORIGINS variable is hardcoded in docker-compose.yml to http://localhost:3000,http://localhost:5173 for local development. Override it in your .env if your frontend runs on a different port.Useful commands
Volumes and persistence
The Compose file mounts./logs from the project root into /app/logs inside the container:
/app/logs are therefore persisted on the host. No database volume is configured — when running without Azure SQL, SQLite writes to taskforge.db inside the container and is lost when the container is removed. Mount an additional volume if you need to persist the SQLite file between container restarts.
Health check
Both theDockerfile and docker-compose.yml configure a health check against the /api/health endpoint:
docker-compose ps.