Add(module): add girasol module

Add(module): add amap module
Add(module): add common lib and services
Add(module): add base structure for keycloak
Add(module): add base structure for rocket
Add(module): add n8n and windmill modules
Add(docker): add install docker script in common module
Add(template): add root for aldon.fr and mathieu.wiki in traefik.service template
This commit is contained in:
2026-04-21 16:52:41 +02:00
parent 905cc8b43d
commit a56911b896
65 changed files with 1893 additions and 23 deletions

View File

@@ -0,0 +1,18 @@
#!/bin/bash
set -euo pipefail
source /opt/environment/.env
TIMESTAMP=$(date +'%Y-%m-%d_%H%M%S')
# Backup realms
sh $KEYCLOAK_DIRECTORY/kc.sh export --file $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-$TIMESTAMP.json
# Backup database
pg_dump -U keycloak -F c -b -v -f $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-$TIMESTAMP.$SERVICE_BACKUPS_EXTENSION
ls -1dt $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-*.$SERVICE_BACKUPS_EXTENSION | tail -n +5 | xargs -r rm -f
ls -1dt $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-*.json | tail -n +5 | xargs -r rm -f

View File

@@ -0,0 +1,34 @@
#//bin/bash
# KEYCLOAK_DIRECTORY=/home/keycloak/keycloak
# KEYCLOAK_VERSION: 26.2.4
# KC_DB_PASSWORD
# SERVICE_BACKUPS_DIR
# SERVICE_BACKUPS_PREFIX
# SERVICE_BACKUPS_EXTENSION
if [ ! -f $KEYCLOAK_DIRECTORY ]; then
wget -O /tmp/keycloak.zip https://github.com/keycloak/keycloak/releases/download/$KEYCLOAK_VERSION/keycloak-$KEYCLOAK_VERSION.zip
unzip -o /tmp/keycloak /tmp/keycloak.zip -d /tmp
mv /tmp/keycloak $KEYCLOAK_DIRECTORY
chmod o+x $KEYCLOAK_DIRECTORY/bin
fi
groupadd keycloak
sudo -u postgres psql <<EOF
CREATE DATABASE keycloak with encoding 'UTF8' TEMPLATE template0;
CREATE USER keycloak WITH ENCRYPTED PASSWORD '$KC_DB_PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE keycloak TO keycloak;
EOF
if ls -1 "$SERVICE_BACKUPS_DIR"/$SERVICE_BACKUPS_PREFIX-*.$SERVICE_BACKUPS_EXTENSION >/dev/null 2>&1; then
echo "---- Backup found, restoring Gitea ----"
/usr/local/bin/restore-backup.sh
else
echo "---- No backup found in $SERVICE_BACKUPS_DIR, skipping restore ----"
fi
sudo systemctl enable keycloak
sudo systemctl start keycloak

View File

@@ -0,0 +1,14 @@
#!/bin/bash
source /opt/environment/.env
LATEST_BACKUP_DB=$(ls -1 $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-*.$SERVICE_BACKUPS_EXTENSION 2>/dev/null | sort | tail -n1)
LATEST_BACKUP_REALMS=$(ls -1 $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-*.json 2>/dev/null | sort | tail -n1)
if [ -n "$LATEST_BACKUP_DB" ] && [ -f "$LATEST_BACKUP_DB" ]; then
psql -U keycloak $KC_DB < $LATEST_BACKUP_DB
fi
if [ -n "$LATEST_BACKUP_REALMS" ] && [ -f "$LATEST_BACKUP_REALMS" ]; then
sh $KEYCLOAK_DIRECTORY/kc.sh import --file $SERVICE_BACKUPS_DIR/$SERVICE_BACKUPS_PREFIX-$TIMESTAMP.json
fi

View File

@@ -0,0 +1,9 @@
[Unit]
Description=Backup Service
Wants=network.target
After=network.target
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/bin/backup.sh

View File

@@ -0,0 +1,17 @@
[Unit]
Description=Keycloak Authorization Server
Requires=network.target
After=syslog.target network.target
[Service]
Type=idle
User=keycloak
Group=keycloak
ExecStart=/home/keycloak/keycloak/bin/kc.sh start
ExecStop=/home/keycloak/keycloak/bin/kc.sh stop
Restart=always
RestartSec=15
EnvironmentFile=/opt/environment/.env
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,9 @@
[Unit]
Description=Restore latest backup
After=network.target postgresql.service
Requires=postgresql.service
[Service]
Type=oneshot
User=root
ExecStart=/usr/local/bin/restore-backup.sh