2025-01-05 16:37:04 +01:00
# ff-admin-server
2024-08-17 11:47:48 +00:00
2025-01-06 11:51:33 +01:00
Administration für Feuerwehren und Vereine (Backend).
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
## Einleitung
2025-01-05 16:37:04 +01:00
Dieses Projekt, `ff-admin-server` , ist das Backend zur Verwaltung von Mitgliederdaten. Die zugehörige Webapp ist im Repository [ff-admin-ui ](https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin ) zu finden.
2024-11-27 17:06:41 +01:00
2025-01-18 14:58:32 +01:00
Eine Demo zusammen mit der `ff-admin` finden Sie unter [https://admin-demo.ff-admin.de ](https://admin-demo.ff-admin.de ).
2024-08-25 13:36:19 +02:00
## Installation
2025-01-06 11:51:33 +01:00
Das Image exposed nur den Port 5000. Die Env-Variable SERVER_PORT kann nur im lokal ausführenden dev-Kontext verwendet werden.
2024-11-27 17:06:41 +01:00
### Docker Compose Setup
Um den Container hochzufahren, erstellen Sie eine `docker-compose.yml` Datei mit folgendem Inhalt:
```yaml
version: "3"
services:
2025-01-27 15:16:12 +01:00
ff-admin-server:
2025-01-05 16:37:04 +01:00
image: docker.registry.jk-effects.cloud/ehrenamt/ff-admin/server:latest
2024-11-27 17:06:41 +01:00
container_name: ff_member_administration_server
restart: unless-stopped
environment:
2025-02-01 13:11:10 +01:00
- DB_TYPE=< mysql | sqlite | postgres > # default ist auf mysql gesetzt
2025-01-27 15:16:12 +01:00
- DB_HOST=ff-db
2025-01-12 11:41:02 +01:00
- DB_PORT=< number > # default ist auf 3306 gesetzt
2025-01-06 11:51:33 +01:00
- DB_NAME=ffadmin
2024-11-27 17:06:41 +01:00
- DB_USERNAME=administration_backend
- DB_PASSWORD=< dbuserpasswd >
- JWT_SECRET=< tobemodified >
2025-01-12 11:41:02 +01:00
- JWT_EXPIRATION=< number [ m | d ] - bsp . :15m > # default ist auf 15m gesetzt
- REFRESH_EXPIRATION=< number [ m | d ] - bsp . :1d > # default ist auf 1d gesetzt
- PWA_REFRESH_EXPIRATION=< number [ m | d ] - bsp . :5d > # default ist auf 5d gesetzt
2024-11-27 17:06:41 +01:00
- MAIL_USERNAME=< mailadress | username >
- MAIL_PASSWORD=< password >
- MAIL_HOST=< url >
2025-02-04 11:03:27 +01:00
- MAIL_PORT=< port > # default ist auf 587 gesetzt
2025-01-12 11:41:02 +01:00
- MAIL_SECURE=< boolean > # default ist auf false gesetzt
2025-01-21 13:54:52 +01:00
- CLUB_NAME=< tobemodified > # default ist auf FF Admin gesetzt
2024-12-31 14:58:38 +01:00
- CLUB_WEBSITE=< tobemodified >
2025-01-25 16:54:01 +01:00
- BACKUP_INTERVAL=< number of days ( min . 1 ) > # alle x Tage, sonst keine
- BACKUP_COPIES=< number of parallel copies > # Anzahl parallel bestehender Backups
2025-02-01 13:11:10 +01:00
- BACKUP_AUTO_RESTORE=< boolean > # default ist auf true gesetzt
2025-02-08 12:54:50 +01:00
- 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.
2024-11-27 17:06:41 +01:00
volumes:
2025-01-04 09:35:35 +01:00
- < volume | local path > :/app/files
2024-11-27 17:06:41 +01:00
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
2025-02-01 13:11:10 +01:00
# 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
2024-11-27 17:06:41 +01:00
networks:
ff_internal:
```
2025-02-01 18:09:58 +01:00
Die Verwendung von postgres wird aufgrund des Verhaltens bei Datenbank-Update-Fehlern empfohlen.
2025-02-01 13:11:10 +01:00
Die Verwendung von SQLite wird nur für die Entwicklung oder lokale Tests empfohlen.
2024-11-27 17:06:41 +01:00
Führen Sie dann den folgenden Befehl im Verzeichnis der compose-Datei aus, um den Container zu starten:
```sh
docker-compose up -d
```
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
### Manuelle Installation
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
Klonen Sie dieses Repository und installieren Sie die Abhängigkeiten:
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
```sh
2025-01-05 16:37:04 +01:00
git clone https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin-server.git
cd ff-admin-server
2024-11-27 17:06:41 +01:00
npm install
npm run build
npm run start
```
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
## Fragen und Wünsche
2024-08-25 13:36:19 +02:00
2024-11-27 17:06:41 +01:00
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.