Mitgliederverwaltung für Feuerwehren und Vereine.
  • TypeScript 98.3%
  • Python 1.2%
  • JavaScript 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Julian Krauser 8e73bebe79
All checks were successful
buildByTag-arm-and-amd / build (amd) (push) Successful in 3m25s
buildByTag-arm-and-amd / build (arm) (push) Successful in 3m44s
buildByTag-arm-and-amd / combine (push) Successful in 2m39s
1.19.2
2026-09-09 18:50:27 +02:00
.claude claude config 2026-08-26 16:12:33 +02:00
.forgejo/workflows enhance: ci workflow with checks an layer caching 2026-08-30 15:37:26 +02:00
src fix: limit on webapi public endpoint 2026-09-03 18:00:19 +02:00
.dockerignore changed file storage path 2025-01-04 09:35:35 +01:00
.env.example update core package 2026-09-03 07:57:41 +02:00
.gitignore claude config 2026-08-26 16:12:33 +02:00
.ignore claude config 2026-08-26 16:12:33 +02:00
.mcp.json claude config 2026-08-26 16:12:33 +02:00
.npmrc base helper and install 2026-02-10 16:44:47 +01:00
.prettierrc login and authentication 2024-08-22 11:40:31 +02:00
CLAUDE.md claude config 2026-08-26 16:12:33 +02:00
Dockerfile enhance: queue driver license check processing 2026-08-30 14:58:27 +02:00
LICENSE license update finish 2025-02-16 09:53:28 +01:00
package-lock.json 1.19.2 2026-09-09 18:50:27 +02:00
package.json 1.19.2 2026-09-09 18:50:27 +02:00
README.md update readme 2026-05-09 16:58:47 +02:00
tsconfig.json enhance: strict mode 2026-04-26 11:20:59 +02:00

ff-admin-server

Administration für Feuerwehren und Vereine (Backend).

Einleitung

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

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

Das Handbuch zur Anwendung finden sie unter https://ff-admin.de/ff-admin-handbook.

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-admin-server:
    image: code.jk-effects.cloud/ff-admin/ff-admin/server:latest
    container_name: ff_member_administration_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=ffadmin
      - MYSQL_USER=administration_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=ffadmin
      - POSTGRES_USER=administration_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.

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-admin-server.git
cd ff-admin-server
npm install
npm run build
npm run start

Voraussetzungen

  • Node.js >= 24
  • Python 3 mit opencv-python und numpy (wird für die Führerschein-Kartenerkennung benötigt)

Installieren Sie die Python-Abhängigkeiten:

pip install opencv-python numpy

Im Docker-Image werden py3-opencv und py3-numpy über den Alpine-Paketmanager installiert.

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.