Mitgliederverwaltung für Feuerwehren und Vereine.
  • TypeScript 98.6%
  • Python 1.3%
Find a file
Julian Krauser 190ec8554f
All checks were successful
buildByTag-arm-and-amd / build (amd) (push) Successful in 1m2s
buildByTag-arm-and-amd / build (arm) (push) Successful in 1m11s
buildByTag-arm-and-amd / combine (push) Successful in 12s
1.17.2
2026-05-18 16:22:55 +02:00
.forgejo/workflows enhance: workflow separate beta build 2026-05-02 13:57:45 +02:00
src fix: object queries failing order 2026-05-18 16:21:55 +02:00
.dockerignore changed file storage path 2025-01-04 09:35:35 +01:00
.env.example update example env 2026-05-06 14:13:02 +02:00
.gitignore transform migrations to work with mysql, postgres and sqlite 2025-02-01 13:11:10 +01: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
Dockerfile optimize image size 2026-05-18 12:46:54 +02:00
LICENSE license update finish 2025-02-16 09:53:28 +01:00
package-lock.json 1.17.2 2026-05-18 16:22:55 +02:00
package.json 1.17.2 2026-05-18 16:22:55 +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.