This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# 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`
|
||||
Reference in New Issue
Block a user