Compare commits
2 Commits
8f0393a69f
...
b71bdcaad6
| Author | SHA1 | Date | |
|---|---|---|---|
| b71bdcaad6 | |||
| 4e5914eb1e |
@@ -23,9 +23,21 @@ RUN apk add --no-cache \
|
|||||||
# Set environment variable for Puppeteer to find Chromium
|
# Set environment variable for Puppeteer to find Chromium
|
||||||
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
|
||||||
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
||||||
|
|
||||||
RUN npm install puppeteer
|
RUN npm install puppeteer
|
||||||
|
|
||||||
|
# Install restic and rclone for backups
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
restic \
|
||||||
|
curl \
|
||||||
|
unzip
|
||||||
|
|
||||||
|
# Download and install rclone
|
||||||
|
RUN curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip \
|
||||||
|
&& unzip rclone-current-linux-amd64.zip \
|
||||||
|
&& cd rclone-*-linux-amd64 \
|
||||||
|
&& cp rclone /usr/local/bin/ \
|
||||||
|
&& chmod 755 /usr/local/bin/rclone \
|
||||||
|
&& cd .. && rm -rf rclone-*-linux-amd64*
|
||||||
|
|
||||||
# Revert back to non-root (default n8n user)
|
# Revert back to non-root (default n8n user)
|
||||||
USER node
|
USER node
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ services:
|
|||||||
- N8N_BLOCK_ENV_ACCESS_IN_NODE=false
|
- N8N_BLOCK_ENV_ACCESS_IN_NODE=false
|
||||||
- MAM_USERNAME=${N8N_MAM_USERNAME}
|
- MAM_USERNAME=${N8N_MAM_USERNAME}
|
||||||
- MAM_PASSWORD=${N8N_MAM_PASSWORD}
|
- MAM_PASSWORD=${N8N_MAM_PASSWORD}
|
||||||
|
- RESTIC_PASSWORD=${N8N_RESTIC_PASSWORD}
|
||||||
- NODES_EXCLUDE=[]
|
- NODES_EXCLUDE=[]
|
||||||
- DB_TYPE=postgresdb
|
- DB_TYPE=postgresdb
|
||||||
- DB_POSTGRESDB_HOST=postgres
|
- DB_POSTGRESDB_HOST=postgres
|
||||||
@@ -25,6 +26,10 @@ services:
|
|||||||
- DB_POSTGRESDB_SCHEMA=public
|
- DB_POSTGRESDB_SCHEMA=public
|
||||||
volumes:
|
volumes:
|
||||||
- ${SERVICE_PATH}/n8n/data:/home/node/.n8n
|
- ${SERVICE_PATH}/n8n/data:/home/node/.n8n
|
||||||
|
- ${SERVICE_PATH}/n8n/data/rclone.conf:/home/node/.config/rclone/rclone.conf
|
||||||
|
- ${PWD}/scripts:/home/node/.n8n/external-scripts
|
||||||
|
- ${DB_PATH}/postgres/data/backup:/home/node/.n8n/database
|
||||||
|
- ${EXTERNAL_STORAGE}/:/home/node/.n8n/data
|
||||||
labels:
|
labels:
|
||||||
# Traefik
|
# Traefik
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|||||||
17
scripts/data-backup/README.md
Normal file
17
scripts/data-backup/README.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Inspired by the [blog](https://www.ericbette.com/configuring-a-remote-backup-solution-using-restic-and-rclone)
|
||||||
|
|
||||||
|
# List of commands:
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
- Install restic and rclone baremetal
|
||||||
|
|
||||||
|
## Setting up rclone:
|
||||||
|
- run: rclone config or follow the instructions on the provider (infomaniak in my case)
|
||||||
|
- run: rclone listremotes to confirm the server link creation
|
||||||
|
|
||||||
|
## Setting up backup repository with restic
|
||||||
|
- Save password in env variable, by running: echo export RESTIC_PASSWORD=my_password >> ~/.zshrc
|
||||||
|
- Initialize repository: restic -r rclone:example-remote:example-repo init
|
||||||
|
- Run the backup: restic -r rclone:example-remote:example-repo --verbose backup /path/to/backup
|
||||||
|
- List the snapshots: restic -r rclone:example-remote:example-repo snapshots
|
||||||
|
- Restore the backup: restic -r rclone:example-remote:example-repo restore latest --target /target --path "/target"
|
||||||
5
scripts/data-backup/backup-infomaniak-calendars-contacts.sh
Executable file
5
scripts/data-backup/backup-infomaniak-calendars-contacts.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for calendars-contact started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:calendars-contacts backup /home/node/.n8n/data/calendars-contacts >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:calendars-contacts forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
5
scripts/data-backup/backup-infomaniak-databases.sh
Executable file
5
scripts/data-backup/backup-infomaniak-databases.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for databases started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:databases backup /home/node/.n8n/database >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:databases forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
6
scripts/data-backup/backup-infomaniak-documents.sh
Executable file
6
scripts/data-backup/backup-infomaniak-documents.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for documents started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:documents backup /home/node/.n8n/data/documents >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:documents forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
|
|
||||||
5
scripts/data-backup/backup-infomaniak-music.sh
Executable file
5
scripts/data-backup/backup-infomaniak-music.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for music started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:music backup /home/node/.n8n/data/media/music >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:music forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
5
scripts/data-backup/backup-infomaniak-notes.sh
Executable file
5
scripts/data-backup/backup-infomaniak-notes.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for notes started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:notes backup /home/node/.n8n/data/notes >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:notes forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
5
scripts/data-backup/backup-infomaniak-passwords.sh
Executable file
5
scripts/data-backup/backup-infomaniak-passwords.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for passwords started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:passwords backup /home/node/.n8n/data/passwords >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:passwords forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
5
scripts/data-backup/backup-infomaniak-pictures.sh
Executable file
5
scripts/data-backup/backup-infomaniak-pictures.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
LOG_FILE="/home/node/.n8n/external-scripts/data-backup/logs/log.log"
|
||||||
|
echo "------------------------------------------------------------------------" >> "$LOG_FILE"
|
||||||
|
echo "$(date) - Script for pictures started" >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:pictures backup /home/node/.n8n/data/media/pictures >> "$LOG_FILE"
|
||||||
|
restic -r rclone:sb_project_SBI-CW231949:pictures forget --keep-last 3 --prune >> "$LOG_FILE"
|
||||||
Reference in New Issue
Block a user