Files
hms-licht-ton/README.md

180 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```bash
git clone https://forgejo.media-on.de/Leopoldadmin/hms-licht-ton.git
cd hms-licht-ton
```
### 2. Environment konfigurieren
```bash
cp .env.example .env
# .env mit echten Werten ausfüllen (API-Token, Secrets, SMTP, etc.)
```
### 3. Anwendung starten (Docker)
```bash
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)
```bash
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)
```bash
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](AGENTS.md).
---
## Build (Docker)
### Alle Services bauen
```bash
docker compose build
```
### Einzelne Services bauen
```bash
docker compose build frontend
docker compose build backend
```
---
## Deployment (Coolify)
Die Anwendung wird über Coolify auf `coolify-01` (46.225.91.159) deployt.
1. In Coolify ein neues Projekt "HMS Licht & Ton" anlegen.
2. Als Source das Forgejo-Repository `Leopoldadmin/hms-licht-ton` auswählen.
3. Als Deployment-Methode "Docker Compose" wählen und `docker-compose.yml` referenzieren.
4. Environment-Variablen in Coolify setzen (entsprechend `.env.example`).
5. Domain für Frontend konfigurieren (z.B. `hms.media-on.de` → Port 3000).
6. Backend-Port (8000) nur intern暴露en oder über Traefik mit eigener Subdomain.
7. 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 `/health` Endpoint
- **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`:
1. **frontend-test:** `npm ci``npm test``npm run build`
2. **backend-test:** `pip install``pytest -v`
3. **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.