# Lunchtime Lunchtime is a self-hosted lunch order app with a React frontend, a Python backend, and nginx for reverse proxying. ## Getting Started 1. Copy and adjust `config.yaml` for your environment. 2. Create a writable data folder (for SQLite and uploads), for example `.data`. 3. Start the stack with Docker Compose. Example `compose.yml` (inspired by `src/compose.yml`) using images from the Gitea registry: ```yaml services: nginx: image: nginx:alpine ports: - "8080:8080" volumes: - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro depends_on: - backend - frontend restart: unless-stopped backend: image: git.sgruber.at/lunchtime/lunchtime-api:latest volumes: - ./.data:/app/data - ./config.yaml:/app/config.yaml:ro environment: - APP_ENV=production - LOG_LEVEL=info - DB_PATH=/app/data restart: unless-stopped frontend: image: git.sgruber.at/lunchtime/lunchtime-web:latest restart: unless-stopped ``` Then run: ```bash docker compose up -d ``` Open `http://localhost:8080`. ## CI/CD Registry Publish The workflow in `.gitea/workflows/build-and-push-images.yaml` builds and pushes: - `git.sgruber.at/lunchtime/lunchtime-web` - `git.sgruber.at/lunchtime/lunchtime-api` It tags images with the commit SHA and also `latest` on `main`/`master`. Required repository secrets: - `GITEA_REGISTRY_USER` - `GITEA_REGISTRY_TOKEN`