main
Coolify generates router labels but not the service port label for docker-compose services. Without this, Traefik gets 502 because it doesn't know which port to forward traffic to.
HMS Licht & Ton – Homepage & Verwaltungssystem
Die offizielle Website und Verwaltungsplattform für HMS Licht & Ton (Hammerschmidt u. Mössle GbR) aus Leipheim/Ellzee. Professionelle Veranstaltungstechnik – Vermietung, Verkauf, Personal und Transport von Tontechnik und Lichttechnik.
Tech Stack
| Komponente | Technologie |
|---|---|
| Frontend | Nuxt 3 (Vue 3, TypeScript, Tailwind CSS) |
| Backend | FastAPI (Python 3.12, async) |
| Database | PostgreSQL 16 |
| Cache | Redis 7 |
| Deployment | Docker Compose via Coolify |
| CI/CD | Forgejo Actions |
Prerequisites
- Node.js 20+
- Python 3.12+
- Docker & Docker Compose
- Git
Setup
1. Repository klonen
git clone https://forgejo.media-on.de/Leopoldadmin/hms-licht-ton.git
cd hms-licht-ton
2. Environment konfigurieren
cp .env.example .env
# .env mit echten Werten ausfüllen (API-Token, Secrets, SMTP, etc.)
3. Anwendung starten (Docker)
docker compose up -d
Die Anwendung ist danach erreichbar unter:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs (Swagger): http://localhost:8000/docs
Development
Frontend (Nuxt 3)
cd frontend
npm ci
npm run dev # Dev-Server auf http://localhost:3000
npm test # Unit Tests (Vitest)
npx playwright test # E2E Tests
npm run build # Production Build
npm run typecheck # TypeScript Type Check
npm run lint # ESLint
Backend (FastAPI)
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
pytest -v # Tests ausführen
Weitere Build- und Test-Befehle siehe AGENTS.md.
Build (Docker)
Alle Services bauen
docker compose build
Einzelne Services bauen
docker compose build frontend
docker compose build backend
Deployment (Coolify)
Die Anwendung wird über Coolify auf coolify-01 (46.225.91.159) deployt.
- In Coolify ein neues Projekt "HMS Licht & Ton" anlegen.
- Als Source das Forgejo-Repository
Leopoldadmin/hms-licht-tonauswählen. - Als Deployment-Methode "Docker Compose" wählen und
docker-compose.ymlreferenzieren. - Environment-Variablen in Coolify setzen (entsprechend
.env.example). - Domain für Frontend konfigurieren (z.B.
hms.media-on.de→ Port 3000). - Backend-Port (8000) nur intern暴露en oder über Traefik mit eigener Subdomain.
- Deploy auslösen. Coolify baut die Images und startet alle Services.
Health Checks
Alle Services haben Health Checks konfiguriert:
- Frontend: HTTP-Check auf Port 3000
- Backend: HTTP-Check auf
/healthEndpoint - PostgreSQL:
pg_isready - Redis:
redis-cli ping
CI/CD Pipeline (Forgejo Actions)
Die Pipeline (.forgejo/workflows/ci.yml) läuft bei jedem Push und PR auf main:
- frontend-test:
npm ci→npm test→npm run build - backend-test:
pip install→pytest -v - docker-build: Baut Frontend- und Backend-Docker-Images, validiert
docker-compose.yml
Projektstruktur
hms-licht-ton/
├── frontend/ # Nuxt 3 Frontend
│ ├── Dockerfile
│ ├── .dockerignore
│ ├── package.json
│ ├── nuxt.config.ts
│ ├── pages/
│ ├── components/
│ ├── composables/
│ ├── stores/
│ └── tests/
├── backend/ # FastAPI Backend
│ ├── Dockerfile
│ ├── .dockerignore
│ ├── requirements.txt
│ ├── app/
│ │ ├── main.py
│ │ ├── config.py
│ │ ├── database.py
│ │ ├── auth.py
│ │ ├── cache.py
│ │ ├── routers/
│ │ └── schemas/
│ └── tests/
├── docs/ # Projektdokumentation
├── .forgejo/
│ └── workflows/
│ └── ci.yml # CI/CD Pipeline
├── docker-compose.yml # 4 Services: frontend, backend, postgres, redis
├── .env.example # Environment-Vorlage
├── .gitignore
├── AGENTS.md # Build & Test Guide
└── README.md
License
© Hammerschmidt u. Mössle GbR. Alle Rechte vorbehalten.
Description
Neue Homepage für HMS Licht & Ton GbR - Veranstaltungstechnik. Neuaufbau mit Grautönen + oranges Logo. Orientierung an bestehender Website hms-licht-ton.de.
Languages
TypeScript
42.3%
Python
31.2%
Vue
15.8%
CSS
9.9%
HTML
0.5%
Other
0.3%