This commit is contained in:
Julian Krauser 2024-11-06 10:16:24 +01:00
parent 1047364daf
commit 31fdd259b7
2 changed files with 127 additions and 39 deletions

5
.prettierrc Normal file
View file

@ -0,0 +1,5 @@
{
"trailingComma": "es5",
"tabWidth": 2,
"printWidth": 120
}

161
README.md
View file

@ -1,65 +1,148 @@
# ff-webpage-cms
Strapi Content Management for ff-webpage
Strapi Content Management für ff-webpage
# 🚀 Getting started with Strapi
## Einleitung
Strapi comes with a full featured [Command Line Interface](https://docs.strapi.io/dev-docs/cli) (CLI) which lets you scaffold and manage your project in seconds.
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.
### `develop`
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.
Start your Strapi application with autoReload enabled. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-develop)
Eine Demo dieser Seite finden Sie unter [https://cms.ff-demo.jk-effects.cloud](https://cms.ff-demo.jk-effects.cloud).\
Die Zugangsdaten (Lesebeschränkt) sind: \
EMAIL: ff-demo@jk-effects.cloud\
PASSWORT: FFDemo1234\
```
npm run develop
# or
yarn develop
## 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:
```
### `start`
Führen Sie dann den folgenden Befehl im Verzeichnis der compose-Datei aus, um den Container zu starten:
Start your Strapi application with autoReload disabled. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-start)
```
npm run start
# or
yarn start
```sh
docker-compose up -d
```
### `build`
### Manuelle Installation
Build your admin panel. [Learn more](https://docs.strapi.io/dev-docs/cli#strapi-build)
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
# or
yarn build
npm run start
```
## ⚙️ Deployment
## Einrichtung
Strapi gives you many possible deployment options for your project including [Strapi Cloud](https://cloud.strapi.io). Browse the [deployment section of the documentation](https://docs.strapi.io/dev-docs/deployment) to find the best solution for your use case.
Wichtig ist, dass ein paar Einstellungen vor der ersten Verwendung vorgenommen werden. Dazu zählen:
```
yarn strapi deploy
```
1. **Admin Benutzer erstellen**: Erstellen Sie einen Admin Benutzer, um auf das CMS zugreifen zu können.
## 📚 Learn more
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.
- [Resource center](https://strapi.io/resource-center) - Strapi resource center.
- [Strapi documentation](https://docs.strapi.io) - Official Strapi documentation.
- [Strapi tutorials](https://strapi.io/tutorials) - List of tutorials made by the core team and the community.
- [Strapi blog](https://strapi.io/blog) - Official Strapi blog containing articles made by the Strapi team and the community.
- [Changelog](https://strapi.io/changelog) - Find out about the Strapi product updates, new features and general improvements.
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.
Feel free to check out the [Strapi GitHub repository](https://github.com/strapi/strapi). Your feedback and contributions are welcome!
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.
## ✨ Community
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.
- [Discord](https://discord.strapi.io) - Come chat with the Strapi community including the core team.
- [Forum](https://forum.strapi.io/) - Place to discuss, ask questions and find answers, show your Strapi project and get feedback or just talk with other Community members.
- [Awesome Strapi](https://github.com/strapi/awesome-strapi) - A curated list of awesome things related to Strapi.
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.
<sub>🤫 Psst! [Strapi is hiring](https://strapi.io/careers).</sub>
## 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.