Simon Gruber 2e84c75035
Build and Push Lunchtime Images (Kaniko) / build-and-push (push) Has been cancelled
init
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00
2026-03-29 14:59:03 +02:00

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:

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:

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
S
Description
Simple and lightweight group ordering system
https://lunchtime.sgruber.at
Readme 1,000 KiB
Languages
TypeScript 69.1%
Python 29.7%
Dockerfile 0.5%
CSS 0.4%
HTML 0.3%