version: "3" includes: compose: taskfile: ./compose.yml internal: true dir: .. vars: TMP_DIR: /tmp/container-server tasks: exec: desc: Open shell in given container cmds: - docker exec -it {{.CLI_ARGS}} sh -c "ash || bash || sh" mc-update: desc: update minecraft mods cmds: - "docker exec -it -u amp -w /home/amp/.ampdata/instances/Main/Minecraft minecraft bash update_all.sh" caddy-reload: desc: Reload Caddy config cmds: - "docker exec -w /etc/caddy proxy caddy reload" mail-setup: desc: Docker-Mailserver setup utility cmds: - "docker exec -i mail setup {{.CLI_ARGS}}" occ: desc: Nextcloud cli cmds: - "docker exec -u 33 nextcloud php ./occ {{.CLI_ARGS}}" fail2ban: desc: Fail2Ban client cmds: - docker exec fail2ban fail2ban-client {{.CLI_ARGS}} watchtower: desc: Trigger watchtower update cmds: - task: compose:run vars: CLI_ARGS: -d watchtower --run-once --no-startup-message psql-dump: desc: Dump postgres database for backup or update cmds: # - echo "{{.TMP_DIR}}/{{.CLI_ARGS}}.sql" - mkdir -p {{.TMP_DIR}} - docker exec pg-{{.CLI_ARGS}} pg_dumpall -U {{.CLI_ARGS}} > {{.TMP_DIR}}/{{.CLI_ARGS}}.sql - ls -la {{.TMP_DIR}}/{{.CLI_ARGS}}.sql psql-dump-all: desc: Run 'psql-dump' task for each running postgres container cmds: - task compose:list | awk '/postgres/ { sub(/pg-/, "", $3) ; system("task srv:psql-dump -- "$3) }' psql-restore: desc: Load postgres database for restore cmds: - docker exec -i pg-{{.CLI_ARGS}} psql --echo-errors -U {{.CLI_ARGS}} < {{.TMP_DIR}}/{{.CLI_ARGS}}.sql psql-clear-tmp: desc: Clear temporary sql files created by psql-dump cmds: - rm -rv {{.TMP_DIR}}