first commit
This commit is contained in:
commit
1ee71d8879
50
backup-trillium.sh
Executable file
50
backup-trillium.sh
Executable 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
27
docker-compose.yml
Normal 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
|
||||||
Loading…
Reference in a new issue