- TypeScript 95.3%
- JavaScript 2.7%
- HTML 1.8%
- Dockerfile 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .claude | ||
| .forgejo | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .ignore | ||
| .mcp.json | ||
| .npmrc | ||
| .oxlintrc.json | ||
| .prettierrc | ||
| CLAUDE.md | ||
| Dockerfile | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
ff-booking-server
Buchungsseite für Feuerwehren und Vereine (Backend).
Einleitung
Dieses Projekt, ff-booking-server, ist das Backend zur Verwaltung von buchbaren Objekten (z. B. Räume, Hallen), deren Öffnungszeiten und Zahlungsmethoden sowie zur Verwaltung eingehender Buchungen und Kunden. Die zugehörige Webapp ist im Repository ff-booking zu finden.
Neben der authentifizierten Admin-API (/api/admin/...) stellt dieser Server auch eine öffentliche, nicht authentifizierte API (/api/public/...) bereit, über die externe Kunden ohne Login Objekte einsehen und Buchungsanfragen stellen können.
Eine Demo zusammen mit der ff-booking finden Sie unter https://admin-demo.ff-booking.de.
Das Handbuch zur Anwendung finden sie unter https://ff-booking.de/ff-booking-handbook.
Installation
Das Image exposed nur den Port 5000. Die Env-Variable SERVER_PORT kann nur im lokal ausführenden dev-Kontext verwendet werden.
Als Datenbank wird ausschließlich PostgreSQL unterstützt (fest in der Anwendung konfiguriert, keine DB_TYPE-Auswahl).
Docker Compose Setup
Um den Container hochzufahren, erstellen Sie eine docker-compose.yml Datei mit folgendem Inhalt:
version: "3"
services:
ff-booking-server:
image: code.jk-effects.cloud/ff-admin/ff-booking/server:latest
container_name: ff_booking_server
restart: unless-stopped
environment:
- DB_HOST=ff-db
- DB_PORT=5432 # default ist 5432
- DB_NAME=ffbooking
- DB_USERNAME=booking_backend
- DB_PASSWORD=<dbuserpasswd>
- APPLICATION_SECRET=<tobemodified>
- USE_SECURITY_STRICT_LIMIT = (true|false) # default ist true
- SECURITY_STRICT_LIMIT_WINDOW = [0-9]*(y|d|h|m|s) # default ist 15m
- SECURITY_STRICT_LIMIT_REQUEST_COUNT = strict_request_count # default ist 15
- USE_SECURITY_LIMIT = (true|false) # default ist true
- SECURITY_LIMIT_WINDOW = [0-9]*(y|d|h|m|s) # default ist 1m
- SECURITY_LIMIT_REQUEST_COUNT = request_count # default ist 500
- TRUST_PROXY = <boolean|number|ip|ip1,ip2,...> # wenn leer, wird dieser Wert nicht angewendet.
volumes:
- <volume|local path>:/app/files
networks:
- ff_internal
depends_on:
- ff-db
ff-db:
image: postgres:16
container_name: ff_db
restart: unless-stopped
environment:
- POSTGRES_DB=ffbooking
- POSTGRES_USER=booking_backend
- POSTGRES_PASSWORD=<dbuserpasswd>
volumes:
- <volume|local path>:/var/lib/postgresql/data
networks:
- ff_internal
networks:
ff_internal:
/app/files wird u. a. für hochgeladene Objektbilder verwendet und sollte über ein Volume persistiert werden.
Führen Sie dann den folgenden Befehl im Verzeichnis der compose-Datei aus, um den Container zu starten:
docker-compose up -d
Manuelle Installation
Klonen Sie dieses Repository und installieren Sie die Abhängigkeiten:
git clone https://code.jk-effects.cloud/ff-admin/ff-booking-server.git
cd ff-booking-server
npm install
npm run build
npm run start
Fragen und Wünsche
Bei Fragen, Anregungen oder Wünschen können Sie sich gerne melden.
Wir freuen uns über Ihr Feedback und helfen Ihnen gerne weiter.
Schreiben Sie dafür eine Mail an julian.krauser@jk-effects.com.