first commit

This commit is contained in:
Dejan R. 2025-11-27 17:34:37 +00:00
commit 1ee71d8879
2 changed files with 77 additions and 0 deletions

50
backup-trillium.sh Executable file
View file

@ -0,0 +1,50 @@
#!/usr/bin/env bash
set -euo pipefail
# === CONFIG ===
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DATA_DIR="${SCRIPT_DIR}/trilium-data"
BACKUP_DIR="/backup/Trilium"
KEEP=5
cd "$SCRIPT_DIR"
# === Ensure backup path exists ===
mkdir -p "$BACKUP_DIR"
# === Stop container ===
echo "Stopping Trilium container..."
docker compose down
# === Backup ===
TIMESTAMP="$(date +"%Y-%m-%d_%H-%M-%S")"
BACKUP_FILE="${BACKUP_DIR}/trilium_backup_${TIMESTAMP}.tar.gz"
echo "Backing up data to: $BACKUP_FILE"
tar -czf "$BACKUP_FILE" \
trilium-data \
docker-compose.yml
echo "Backup completed."
# === Start container again ===
echo "Starting Trilium back up..."
docker compose up -d
echo "Trilium started."
# === Rotate backups ===
echo "Cleaning old backups (keeping last ${KEEP})..."
shopt -s nullglob
backups=( $(ls -1t "$BACKUP_DIR"/trilium_backup_*.tar.gz) )
if [ "${#backups[@]}" -gt "$KEEP" ]; then
for old in "${backups[@]:$KEEP}"; do
echo "Removing old backup: $old"
rm -f "$old"
done
else
echo "No old backups to remove."
fi
echo "Backup routine complete ✔"

27
docker-compose.yml Normal file
View file

@ -0,0 +1,27 @@
services:
trilium:
image: zadam/trilium:latest
container_name: trilium
restart: unless-stopped
environment:
- TZ=Europe/Ljubljana
- TRILIUM_DATA_DIR=/home/node/trilium-data
- USER_UID=1000
- USER_GID=1000
volumes:
- ./trilium-data:/home/node/trilium-data
labels:
- "traefik.enable=true"
- "traefik.http.routers.trilium.rule=Host(`trilium.rozic-dev.com`)"
- "traefik.http.routers.trilium.entrypoints=websecure"
- "traefik.http.routers.trilium.tls=true"
- "traefik.http.routers.trilium.tls.certresolver=letsencrypt"
- "traefik.http.services.trilium.loadbalancer.server.port=8080"
- "traefik.http.middlewares.trilium-compress.compress=true"
- "traefik.http.routers.trilium.middlewares=trilium-compress"
networks:
- traefik_default
networks:
traefik_default:
external: true