Production deployment notes
Gitea Actions
This repo includes .gitea/workflows/ci-deploy.yml for:
- backend build
- backend tests
- frontend tests
- deployment to Ubuntu after successful tests on
main
Required secrets in Gitea
PROD_HOSTPROD_USERPROD_SSH_KEY
Ubuntu server setup
Recommended app path:
/opt/job-tracker/app
Requirements:
- Docker Engine
- Docker Compose plugin
- reverse proxy in front (Nginx, Caddy, or Traefik)
.envfile present on server in/opt/job-tracker/app/.env
Database recommendation
For production, yes — use a real database.
Recommended direction
Short term:
- SQLite is acceptable for a single-user or very small deployment
- keep backups and volume persistence
Better production choice:
- MariaDB or PostgreSQL
My recommendation
- PostgreSQL if you want the best long-term maintainability and fewer edge cases
- MariaDB is also fine if that is what you already know or host elsewhere
If you stay on SQLite:
- okay for small personal use
- not ideal for concurrent writes, larger scale, or operational robustness
Practical recommendation for this project
If this app is going to be a real production service on Ubuntu:
- move to PostgreSQL first if possible
- MariaDB is still a reasonable option if preferred
Deployment flow
- push to
main - Gitea Actions runs tests
- if green, workflow uploads repo to server
deploy/deploy.shrunsdocker compose build && docker compose up -d