.gitea | ||
.vscode | ||
.yarn | ||
api | ||
frontend | ||
media/medialib | ||
scripts | ||
types | ||
vendor/svelte-routing | ||
.basic-auth-code | ||
.basic-auth-web | ||
.drone.yml.bak | ||
.env | ||
.gitattributes | ||
.gitignore | ||
.prettierrc | ||
.yarnrc.yml | ||
babel.config.json | ||
docker-compose-local.yml | ||
esbuild.config.js | ||
esbuild.config.legacy.js | ||
esbuild.config.server.js | ||
Makefile | ||
package.json | ||
README.md | ||
svelte.config.js | ||
tsconfig.json | ||
yarn.lock |
Tibi Docs und Demo Projekt
Diese Repo enthält die Dokumentation zum TibiCMS und eine Demo-Projekt welches die Dokumentation begleitet und als Projetstarter fungiert.
neues Projekt - Checkliste
- neues Projekt im gitbase.de anlegen (cms/tibi_starter) als Vorlage verwenden
- klonen
- bereinigen
git filter-branch -f --index-filter 'git rm -rf --cached --ignore-unmatch .yarn/cache' HEAD
git filter-branch -f --index-filter 'git rm -rf --cached --ignore-unmatch docs' HEAD
git push --force
-
anpassen
.env
docker-compose-local.yml
->TIBI_API_NAMESPACE: & PROJECT_NAME
.gitea/workflows/deploy.yaml
->name:
./api/hooks/config.js
->name:
api/...
-
upgraden
mkdir tmp
# evtl. zuvor: yarn install
make yarn-upgrade
make docker-pull
# falls Fehler auftreten, evtl. Berechtigungen fixen
make fix-permissions
- los programmieren
make docker-start
# bei erstem fehlerhaften Start, evtl. Berechtigungen fixen:
make fix-permissions
-
Projekt in Tibi bekannt machen:
- https://PROJEKTNAME-tibiadmin.code.testversion.online
- Pfad der API-Konfig:
/data/api/config.yml
-
Website im Browser ansehen:
-
Testmails checken:
-
deploy
- Subdomain im basispanel anlegen auf
../frontend/
- rsync-Account in basispanel anlegen auf
htdocs/
- Passwort in Secrets eintragen: https://drone.gitbase.de
deploy.yaml
deploy rsync user anpassen- pushen
- Subdomain im basispanel anlegen auf
SSR Aktivierung
Per se ist alles vorbereitet damit SSR aktiviert werden kann, hier muss nur START_SCRIPT=:ssr in der .env datei einkommentiert werden. Es ist jedoch anzunehmen, dass während der entwicklung Dinge eingebaut wurden, dass die kompilierung schief geht. Um dies zu kontrollieren, muss man zunächst prüfen, ob Einträge in der SSR collection vorhanden sind. Gibt es keine Einträge, sollte man in die "/" Anfrage in den Netzwerkeinstellungen schauen. Hier ist in der Server Antwort im HTML template ein fehler zum debuggen zu finden!
Git prozess - WICHTIG!
Der git Ablauf wurde mittels eines pre push Hooks modifiziert. Hier wird der aktuelle gepushte commit modifiziert, indem ein mongodump der aktuellen datenbank vor genommen wird und die kopie in ".gitea/actions/init-db/mongo-dump" abgespeichert wird. Der pre-push hook liegt in .git und sieht wie folgt aus:
#!/bin/bash
ENV_FILE="$(git rev-parse --show-toplevel)/.env"
echo "PRE-PUSH HOOK: Running mongodump and adding it to the commit..."
# Check if the .env file exists
if [ ! -f "$ENV_FILE" ]; then
echo ".env file not found. Push cancelled."
exit 1
fi
# Source the .env file
source "$ENV_FILE"
# Name of the Docker container running MongoDB
CONTAINER_NAME="${PROJECT_NAME}-mongo-1"
# Directory to store the mongodump
OUTPUT_DIR=".gitea/actions/init-db/mongo-dump"
DUMP_DIR_NAME="tmp/mongo-dump"
# Message to append to the commit
APPEND_MSG="made a mongodump on current local database for tests to have data"
# Check if the container is running
if ! docker ps | grep -q "$CONTAINER_NAME"; then
echo "MongoDB container '$CONTAINER_NAME' is not running. Push cancelled."
exit 1
fi
# Perform mongodump
docker exec "$CONTAINER_NAME" mongodump --out /$DUMP_DIR_NAME && \
docker cp "$CONTAINER_NAME":/$DUMP_DIR_NAME "$OUTPUT_DIR"
# Check for successful mongodump
if [ $? -ne 0 ]; then
echo "Mongodump failed. Push cancelled. Make sure that the mongo container is up and running, necessary for the Workflow, because it needs a seeded database, wich needs a mongodump beforehand."
exit 1
fi
# Add the output to the current commit
git add "$OUTPUT_DIR"
# Amend the commit with a modified message
CURRENT_MSG=$(git log -1 --pretty=%B)
NEW_MSG="$CURRENT_MSG $APPEND_MSG"
git commit -m "$NEW_MSG"
# Continue with the push
exit 0
Diese Kopie wird gebraucht, um im Workflow unsere Lokale entwicklungsumgebung zu booten. Dieser workflow ist unter dem Namen lighthouse-evaluation in der deploy.yaml Datei zu finden. Es ist anzumerken, dass der Code funktioniert, er wurde in github getestet, jedoch in gitea das feature der Services noch nicht funktionsfähig ist, da Stand Februar 2024 das noch nicht unterstützt wird! Es wird jedoch sehr hilfreich sein, da a) bei jedem Push eine lighthouse analyse durchgeführt wird und das Ergebnis davon in nextcloud hochgeladen wird. Bei bedarf kann natürlich auch die Funktion hinzugefügt werden, dass das Ergebnis direkt an seine Email gesandt wird oder ähnliches. b) Man kann die Umgebung auch für Test zwecke verwenden. Wenn man also bspw. Cypress einbaut, so hat man direkt eine Umgebung um dies laufen zu lassen.