148 lines
6.4 KiB
Markdown
148 lines
6.4 KiB
Markdown
# ff-webpage-cms
|
|
|
|
Strapi Content Management für ff-webpage
|
|
|
|
## Einleitung
|
|
|
|
Dieses Projekt, `ff-webpage-cms`, ist ein Content-Management-System (CMS) basierend auf Strapi. Es dient zur Verwaltung und Erstellung von Inhalten für die Webseite einer Feuerwehr. Die zugehörige Webseite ist im Repository [ff-webpage](https://forgejo.jk-effects.cloud/Ehrenamt/ff-webpage) zu finden. Das System bietet eine benutzerfreundliche Oberfläche und flexible Anpassungsmöglichkeiten, um den spezifischen Anforderungen der Webseite gerecht zu werden.
|
|
|
|
Die Administrationsöberfläche ermöglicht die Verwaltung von Seiten und deren Inhalten wie Artikel, Termine, Einsätz oder Fahrzeuge. Seiten können auch über vordefinierte Schemata erstellt werden.
|
|
|
|
Eine Demo dieser Seite finden Sie unter [https://cms.webpage-demo.ff-admin.de](https://cms.webpage-demo.ff-admin.de).\
|
|
Die Zugangsdaten (Lesebeschränkt) sind: \
|
|
EMAIL: ff-demo@jk-effects.cloud\
|
|
PASSWORT: FFDemo1234\
|
|
|
|
## Installation
|
|
|
|
### Docker Compose Setup
|
|
|
|
Um den Container hochzufahren, erstellen Sie eine `docker-compose.yml` Datei mit folgendem Inhalt:
|
|
|
|
```yaml
|
|
version: "3"
|
|
|
|
services:
|
|
ff-cms:
|
|
image: docker.registry.jk-effects.cloud/ehrenamt/ff-webpage/cms:latest
|
|
container_name: ff_cms
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_CLIENT=mysql
|
|
- DATABASE_HOST=ff-db
|
|
- DATABASE_NAME=ffcms
|
|
- DATABASE_USERNAME=cms
|
|
- DATABASE_PASSWORD=<dbuserpasswd>
|
|
- JWT_SECRET=<tobemodified>
|
|
- ADMIN_JWT_SECRET=<tobemodified>
|
|
- APP_KEYS=<tobemodified>,<tobemodified>
|
|
- API_TOKEN_SALT=<tobemodified>
|
|
- TRANSFER_TOKEN_SALT=<tobemodified>
|
|
volumes:
|
|
- <volume|local path>:/app/public/uploads
|
|
ports:
|
|
- "1337:1337"
|
|
networks:
|
|
- ff_internal
|
|
depends_on:
|
|
- ff-db
|
|
|
|
ff-db:
|
|
image: mariadb:11.2
|
|
container_name: ff_db
|
|
restart: unless-stopped
|
|
environment:
|
|
- MYSQL_DATABASE=ffcms
|
|
- MYSQL_USER=cms
|
|
- MYSQL_PASSWORD=<dbuserpasswd>
|
|
- MYSQL_ROOT_PASSWORD=<dbrootpasswd>
|
|
volumes:
|
|
- <volume|local path>:/var/lib/mysql
|
|
networks:
|
|
- ff_internal
|
|
|
|
networks:
|
|
ff_internal:
|
|
```
|
|
|
|
Führen Sie dann den folgenden Befehl im Verzeichnis der compose-Datei aus, um den Container zu starten:
|
|
|
|
```sh
|
|
docker-compose up -d
|
|
```
|
|
|
|
### Manuelle Installation
|
|
|
|
Klonen Sie dieses Repository und installieren Sie die Abhängigkeiten:
|
|
|
|
```sh
|
|
git clone https://forgejo.jk-effects.cloud/Ehrenamt/ff-webpage-cms.git
|
|
cd ff-webpage-cms
|
|
npm install
|
|
npm run build
|
|
npm run start
|
|
```
|
|
|
|
## Einrichtung
|
|
|
|
Wichtig ist, dass ein paar Einstellungen vor der ersten Verwendung vorgenommen werden. Dazu zählen:
|
|
|
|
1. **Admin Benutzer erstellen**: Erstellen Sie einen Admin Benutzer, um auf das CMS zugreifen zu können.
|
|
|
|
2. **Einstellungen anpassen**: In den Einstellungen müssen unter dem Punkt `Users & Permissions Plugin` die Rollen und Berechtigungen angepasst werden. Unter `Roles > Public` muss die Berechtigung `find`, `findOne` und falls vorhanden auch `distinctYears` und `findByYear` für alle Modelle aktiviert werden.
|
|
|
|
3. **Medienverwaltung**: Es empfiehlt sich unter `Global Settings > Media Library` alle Optionen auf true zu stellen. Dadurch wird zum Beispiel auch die automatische Rotation von Bildern aktiviert.
|
|
|
|
4. **Rollen und Berechtigungen**: Unter `Administration Panel > Roles` können die Rollen und Berechtigungen für die Benutzer angepasst werden. Es empfiehlt sich, die Standardrollen zu übernehmen und nur die Berechtigungen anzupassen. Diese können aber auch beliebig erweitert werden. Dieser Punkt betrifft nur die Erstellung von Inhalten in der Adminstrationsoberfläche.
|
|
|
|
5. **Nutzer einladen**: Unter `Administration Panel > Users` können weitere Nutzer eingeladen werden. Diese erhalten dann eine E-Mail mit einem Link, um sich ein Passwort zu setzen.
|
|
|
|
6. **Erstellung von Inhalten**: Nachdem die Einstellungen vorgenommen wurden, können Inhalte erstellt werden. Dazu können die Inhalte über die Oberfläche zu den bestehenden Modellen erstellt werden.
|
|
|
|
7. **Einrichtung Sammlungsreferenz**: Die Sammlungsreferenz ist ein eigenes Modell, das die Verknüpfung von Artikeln, Einsätzen, Fahrzeugen und Terminen ermöglicht. Die Werte für Collection können sind die Referenzen auf die genannten Listen. Diese Werte müssen Plural sein und können nur die Werte `articles`, `operations`, `vehicles` und `events` annehmen.\
|
|
Es empfiehlt sich diese Werte direkt zu setzen, da diese dann als Referenz in anderen Modellen genutzt werden können.
|
|
|
|
## Verwendung der Modelle
|
|
|
|
Beispiele zu den beschriebenen Inhalten finden sie in der Demo.
|
|
|
|
### Allgemeine Bezeichnungen
|
|
|
|
- **Slug**: Einzigartige Bezeichnung als Identifikation in der URL.
|
|
- **Identifier**: Wert, zu Identifikation in Referenz-Feldern.
|
|
|
|
### Modelle
|
|
|
|
1. **Global**: Hier wird festgelegt, wie die Navigation und der Footer aufgebaut sind. Die Navigation nutzt Informationen zu verwiesenen Seiten und Pfaden zu diesen Seiten. Die Werte der Pfade sollten mit den Werten aus der Sammlungsreferenz übereinstimmen. Dadurch wird gewährleistet, dass Detailansichten der Artikel, Einsätze, Fahrzeuge und Termine korrekt angezeigt werden können.
|
|
|
|
2. **Startseite**: Hier können die Inhalte der Startseite angepasst werden.\
|
|
|
|
- **Backdrop**: Bildschirmfüllendes Bild, das im Hintergrund angezeigt wird.\
|
|
- Das in Global angegebene Logo wird unten im Eck über den Backdrop gelegt.
|
|
|
|
3. **Artikel**: Verwaltung und Erstellung von Artikeln.
|
|
|
|
4. **Einsätze**: Verwaltung und Erstellung von Einsätzen.
|
|
|
|
5. **Fahrzeuge**: Verwaltung und Erstellung von Fahrzeugen.
|
|
|
|
6. **Sammlungs Referenz**: Verwaltung und Erstellung von Referenzen auf Artikel, Einsätze, Termine und Fahrzeuge.\
|
|
|
|
- **Image Item**: Soll das Element in der Liste ein Bild anzeigen.\
|
|
- **Date List**: Sollen die Listenelemente gruppiert nach Jahren angezeigt und navigiert werden.\
|
|
- **Numbered Item**: Soll bei den ListenElementen ohne Bild statt dem Tag als große Zahl eine Nummerierung erfolgen.\
|
|
- **Inverse Count**: Soll die Zählweise umgekehrt sein. (Sinnvoll bei Einsätzen)
|
|
|
|
7. **Seiten**: Verwaltung und Erstellung von Seiten mit Dynamischen Inhalten.\
|
|
|
|
- **Hero**: Bild mit Text als Einleitung.
|
|
|
|
8. **Termine**: Verwaltung und Erstellung von Terminen.
|
|
|
|
9. **User**: wird nicht benötigt
|
|
|
|
## 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.
|