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