Einsatzverwaltung für Feuerwehren und Vereine.
Find a file
2026-01-11 15:13:42 +01:00
.forgejo/workflows feat: build workflow 2025-11-16 12:43:16 +01:00
src fix: permission overwrite on wrong read order 2026-01-11 15:13:42 +01:00
.dockerignore base structure 2025-02-16 10:48:12 +01:00
.env.example env, settings 2025-09-13 09:22:51 +02:00
.gitignore changes 2025-09-21 18:12:02 +02:00
.npmrc changes 2025-09-21 18:12:02 +02:00
.npmrc.example add webapi client 2025-03-12 11:10:08 +01:00
.prettierrc base structure 2025-02-16 10:48:12 +01:00
Dockerfile bump node 22 to 24 2026-01-09 14:09:31 +01:00
LICENSE changes 2025-09-21 18:12:02 +02:00
package-lock.json update packages 2026-01-02 14:59:42 +01:00
package.json update packages 2026-01-02 14:59:42 +01:00
README.md feat: update of forgejo links 2025-11-16 12:37:54 +01:00
tsconfig.json base structure 2025-02-16 10:48:12 +01:00

ff-operation-server

Administration für Feuerwehren und Vereine (Backend).

Einleitung

Dieses Projekt, ff-operation-server, ist das Backend zur Verwaltung von Mitgliederdaten. Die zugehörige Webapp ist im Repository ff-operation-ui zu finden.

Eine Demo zusammen mit der ff-operation finden Sie unter https://operation-demo.ff-operation.de.

Installation

Das Image exposed nur den Port 5000. Die Env-Variable SERVER_PORT kann nur im lokal ausführenden dev-Kontext verwendet werden.

Docker Compose Setup

Um den Container hochzufahren, erstellen Sie eine docker-compose.yml Datei mit folgendem Inhalt:

version: "3"

services:
  ff-operation-server:
    image: code.jk-effects.cloud/ff-admin/ff-operation/server:latest
    container_name: ff_operation_server
    restart: unless-stopped
    environment:
      - DB_TYPE=<mysql|postgres> # default ist auf mysql gesetzt
      - DB_HOST=ff-db
      - DB_PORT=<number> # default ist auf 3306 gesetzt
      - DB_NAME=ffadmin
      - DB_USERNAME=administration_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 15
      - 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: mariadb:11.2
    container_name: ff_db
    restart: unless-stopped
    environment:
      - MYSQL_DATABASE=ffoperation
      - MYSQL_USER=operationistration_backend
      - MYSQL_PASSWORD=<dbuserpasswd>
      - MYSQL_ROOT_PASSWORD=<dbrootpasswd>
    volumes:
      - <volume|local path>:/var/lib/mysql
    networks:
      - ff_internal
  # OR
    image: postgres:16
    container_name: ff_db
    restart: unless-stopped
    environment:   
      - POSTGRES_DB=ffoperation
      - POSTGRES_USER=operationistration_backend
      - POSTGRES_PASSWORD=<dbuserpasswd>
    volumes:
      - <volume|local path>:/var/lib/postgresql/data
    networks:
      - ff_internal

networks:
  ff_internal:

Die Verwendung von postgres wird aufgrund des Verhaltens bei Datenbank-Update-Fehlern empfohlen.

Die Verwendung von SQLite wird nur für die Entwicklung oder lokale Tests empfohlen.

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-operation-server.git
cd ff-operation-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.