No description
  • TypeScript 94%
  • Shell 2.9%
  • CSS 2.1%
  • HTML 0.4%
  • Dockerfile 0.3%
  • Other 0.3%
Find a file
2026-04-03 11:38:45 -04:00
.forgejo/workflows Update .forgejo/workflows/build-shows.yml 2026-04-03 11:38:45 -04:00
CHANGELOGS documentation 2026-01-04 14:20:31 -05:00
client make sure feeds dont show expired events 2026-03-24 15:03:08 -04:00
docker timezone select fix 2026-03-24 18:36:10 -04:00
insomnia updated collection 2025-12-31 18:09:18 -05:00
MILESTONES documentation updates 2026-01-02 17:52:37 -05:00
site timezone select fix 2026-03-24 18:36:10 -04:00
.gitignore consolidate documentation for bootstrapping 2026-01-29 23:13:35 -05:00
CONTRIBUTING.md consolidate documentation for bootstrapping 2026-01-29 23:13:35 -05:00
generate-env.sh new scripts 2026-01-31 20:55:05 -05:00
package-lock.json nodemailer 2025-12-08 21:24:25 -05:00
README.md Update README.md 2026-04-01 16:19:27 -04:00
run-development.sh new scripts 2026-01-31 20:55:05 -05:00
run-docker.sh new scripts 2026-01-31 20:55:05 -05:00

Shows

A self-hosted community show flier board: public timeline, host moderation, security and privacy driven.

Quick start

production

Run the setup script:

./setup-env.sh          # creates .env (JWT_SECRET, optional INITIAL_HOST_EMAIL/PASSWORD, ...)

Then spin up a new container:

./run-docker.sh

The application will be available at http://localhost:3000/.

Data lives in Docker volumes shows-data and shows-uploads. Keep .env secret.

For extended config options: ./setup-env.sh --host (Docker defaults), --email (SMTP), or --all. Existing .env is merged when you re-run.


development

Use Docker Compose with the dev profile: backend runs with source mounted and hot reload. One container serves API + frontend at port 3000.

./setup-env.sh          # generate environment
./run-development       # run development stack (backend + db)

Logs: docker compose -f docker/docker-compose.yml --profile dev logs -f backend-dev. Stop: ... down.

Full dev workflow, repo layout, and troubleshooting → CONTRIBUTING.md.


Env reference (minimal)

Variable Required Notes
JWT_SECRET Yes Min 16 chars; use ./setup-env.sh to generate.
DATABASE_URL Yes Default in container: file:/app/data/shows.db.
INITIAL_HOST_EMAIL / INITIAL_HOST_PASSWORD First run Seed the initial HOST user (12+ char password).
PORT No Default 3000.
UPLOAD_STORAGE_PATH No Default /app/uploads in Docker.
SMTP_* No Optional; for password-reset email.

Bare metal: client/deploy.sh runs migrations + seed only (no start). API details → client/API_DOCUMENTATION.md.