config | ||
database/migrations | ||
public | ||
src | ||
types/generated | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
.prettierrc | ||
Dockerfile | ||
favicon.png | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
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 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.
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:
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:
docker-compose up -d
Manuelle Installation
Klonen Sie dieses Repository und installieren Sie die Abhängigkeiten:
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:
-
Admin Benutzer erstellen: Erstellen Sie einen Admin Benutzer, um auf das CMS zugreifen zu können.
-
Einstellungen anpassen: In den Einstellungen müssen unter dem Punkt
Users & Permissions Plugin
die Rollen und Berechtigungen angepasst werden. UnterRoles > Public
muss die Berechtigungfind
,findOne
und falls vorhanden auchdistinctYears
undfindByYear
für alle Modelle aktiviert werden. -
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. -
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. -
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. -
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.
-
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
undevents
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
-
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.
-
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.
-
Artikel: Verwaltung und Erstellung von Artikeln.
-
Einsätze: Verwaltung und Erstellung von Einsätzen.
-
Fahrzeuge: Verwaltung und Erstellung von Fahrzeugen.
-
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)
-
Seiten: Verwaltung und Erstellung von Seiten mit Dynamischen Inhalten.\
- Hero: Bild mit Text als Einleitung.
-
Termine: Verwaltung und Erstellung von Terminen.
-
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.