Buchungsverwaltung für Feuerwehren und Vereine.
  • TypeScript 95.3%
  • JavaScript 2.7%
  • HTML 1.8%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Julian Krauser 9c5df3a3d0
All checks were successful
buildByTag-arm-and-amd / combine (push) Successful in 3m8s
buildByTag-arm-and-amd / build (amd) (push) Successful in 3m45s
buildByTag-arm-and-amd / build (arm) (push) Successful in 3m54s
0.0.4
2026-10-09 13:23:38 +02:00
.claude claude config 2026-08-26 16:31:43 +02:00
.forgejo ci: split imagetools create per tag to avoid buildx concurrent map write crash 2026-10-09 13:23:06 +02:00
src linting 2026-10-09 12:47:24 +02:00
.dockerignore Initial 2025-10-03 12:13:51 +02:00
.env.example update core package 2026-09-08 12:30:27 +02:00
.gitignore claude config 2026-08-26 16:31:43 +02:00
.ignore claude config 2026-08-26 16:31:43 +02:00
.mcp.json claude config 2026-08-26 16:31:43 +02:00
.npmrc bug fixing 2026-09-08 12:25:55 +02:00
.oxlintrc.json linting 2026-10-09 12:47:24 +02:00
.prettierrc Initial 2025-10-03 12:13:51 +02:00
CLAUDE.md linting 2026-10-09 12:47:24 +02:00
Dockerfile bug fixing 2026-09-08 12:25:55 +02:00
LICENSE Initial 2025-10-03 12:13:51 +02:00
package-lock.json 0.0.4 2026-10-09 13:23:38 +02:00
package.json 0.0.4 2026-10-09 13:23:38 +02:00
README.md claude config 2026-08-26 16:31:43 +02:00
tsconfig.json integrate core package and implement base functionality 2026-05-19 19:08:46 +02:00

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.