diff --git a/.gitea/workflows/ci_cd.yml b/.gitea/workflows/ci_cd.yml index a8ddecf..5c4c4ec 100644 --- a/.gitea/workflows/ci_cd.yml +++ b/.gitea/workflows/ci_cd.yml @@ -30,6 +30,8 @@ jobs: CFG_DCLINK_TOKEN: ${{ secrets.CFG_DCLINK_TOKEN }} CFG_LUCKPERMS_PASSWORD: ${{ secrets.CFG_LUCKPERMS_PASSWORD }} CFG_LUCKPERMS_PORT: ${{ vars.CFG_LUCKPERMS_PORT }} + CFG_DUPLICATI_WEBSERVICE_PASSWORD: ${{ secrets.CFG_DUPLICATI_WEBSERVICE_PASSWORD }} + CFG_DUPLICATI_SETTINGS_ENCRYPTION_KEY: ${{ secrets.CFG_DUPLICATI_SETTINGS_ENCRYPTION_KEY }} - name: Setup ssh-agent uses: webfactory/ssh-agent@v0.9.0 diff --git a/compose.yml b/compose.yml index b25f140..1694e78 100755 --- a/compose.yml +++ b/compose.yml @@ -346,6 +346,25 @@ services: ports: - 25585:80 + duplicati: + image: duplicati/duplicati:2.2.0.3 + user: 2015:2015 # minecraft_server:minecraft_server + restart: unless-stopped + depends_on: + init: + condition: service_completed_successfully + restart: true + env_file: ./.env + networks: + minecraft_server_network: + ipv4_address: "10.100.1.8" + ports: + - 8201:8200 # Web UI + volumes: + - duplicati_data:/data:rw + - backups:/source:ro + - /mnt/minecraft_server/backups:/dest:rw + # Helper for dumping sqlite databases during backups sqlite_helper: image: grepular/sqlite3:3.51.2 @@ -378,6 +397,7 @@ services: - paper_data:/paper_data:rw - fabric_data:/fabric_data:rw - luckperms_data:/luckperms_data:rw + - duplicati_data:/duplicati_data:rw networks: minecraft_server_network: @@ -409,3 +429,4 @@ volumes: paper_data: schematics: velocity_data: + duplicati_data: diff --git a/scripts/init.sh b/scripts/init.sh index a660c08..ee0fe4d 100755 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -21,6 +21,7 @@ run chown minecraft_server:minecraft_server /luckperms_data run chown minecraft_server:minecraft_server /paper_data run chown minecraft_server:minecraft_server /schematics run chown minecraft_server:minecraft_server /velocity_data +run chown minecraft_server:minecraft_server /duplicati_data # Make sure nested volume mount points exist run mkdir -p /fabric_data/bluemap/web/maps diff --git a/template.env b/template.env index ee1bdd9..e4938e2 100755 --- a/template.env +++ b/template.env @@ -8,3 +8,10 @@ DCLINK_ROLE=${CFG_DCLINK_ROLE} DCLINK_TOKEN=${CFG_DCLINK_TOKEN} LUCKPERMS_PASSWORD=${CFG_LUCKPERMS_PASSWORD} LUCKPERMS_PORT=${CFG_LUCKPERMS_PORT} +DUPLICATI__WEBSERVICE_PASSWORD=${CFG_DUPLICATI_WEBSERVICE_PASSWORD} +DUPLICATI__WEBSERVICE_ALLOWED_HOSTNAMES=duplicati.illegal-crime.org +DUPLICATI__DISABLE_DB_ENCRYPTION=false +DUPLICATI__REQUIRE_DB_ENCRYPTION=true +SETTINGS_ENCRYPTION_KEY=${CFG_DUPLICATI_SETTINGS_ENCRYPTION_KEY} +USAGEREPORTER_Duplicati_LEVEL=none +