Tour & Show Management Platform for the Live Music Industry
GigFlow is a full-featured web application for managing concert tours, shows, crew, contacts, and documents — built for tour managers, production teams, and music industry professionals.
docker compose up, admin user created automatically on first startCreate a docker-compose.yml file:
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: gigflow
POSTGRES_PASSWORD: gigflow_secret
POSTGRES_DB: gigflow
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gigflow"]
interval: 5s
retries: 10
app:
image: pantelis98765/gigflow:latest
restart: unless-stopped
depends_on:
db:
condition: service_healthy
environment:
DATABASE_URL: postgresql://gigflow:gigflow_secret@db:5432/gigflow
JWT_SECRET: change_this_to_a_long_random_secret
PORT: 4000
NODE_ENV: production
UPLOAD_DIR: /uploads
ADMIN_EMAIL: [email protected]
ADMIN_NAME: Admin User
ADMIN_PASSWORD: gigflow123
volumes:
- uploads_data:/uploads
ports:
- "3000:80"
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:4000/health || exit 1"]
interval: 10s
retries: 5
volumes:
postgres_data:
uploads_data:
Then run:
docker compose up -d
Open http://localhost:3000 and log in:
[email protected]gigflow123Change the admin password immediately after first login via Settings → Users.
The admin account is created automatically on first startup — no separate seed step needed.
| Variable | Default | Description |
|---|---|---|
DATABASE_URL | — | PostgreSQL connection string (required) |
JWT_SECRET | (insecure default) | JWT signing secret — change in production |
PORT | 4000 | Internal Node.js port (do not change) |
NODE_ENV | production | Runtime environment |
UPLOAD_DIR | /uploads | Path for uploaded files (mount a volume here) |
APP_PORT | 3000 | Host port exposed to the outside |
ADMIN_EMAIL | [email protected] | Initial admin email (used on first start only) |
ADMIN_NAME | Admin User | Initial admin display name |
ADMIN_PASSWORD | gigflow123 | Initial admin password — change in production |
This is a single combined image containing:
| Component | Technology |
|---|---|
| Frontend | React 18 + Vite SPA |
| Backend API | Node.js + Express + Prisma ORM |
| Web server | nginx (serves SPA, proxies API) |
| Process manager | supervisord |
nginx serves the React app on port 80 and proxies /api/, /uploads/, and /posters/ to the Node process on port 4000 internally.
Platforms: linux/amd64, linux/arm64 (Apple Silicon, Raspberry Pi, AWS Graviton, TrueNAS Scale)
Content type
Image
Digest
sha256:2118a115c…
Size
184.3 MB
Last updated
4 months ago
docker pull pantelis98765/gigflow