This commit is contained in:
Florian Zirker 2025-07-15 09:23:31 +02:00
parent 977593745e
commit 5113ef52fd
14 changed files with 386 additions and 53 deletions

57
Taskfile.yaml Normal file
View file

@ -0,0 +1,57 @@
# https://taskfile.dev
version: '3'
includes:
firefoxsync: ./firefoxsync/Tasks.yaml
git: ./git/Tasks.yaml
news: ./news/Tasks.yaml
nextcloud: ./nextcloud/Tasks.yaml
proxy: ./proxy/Tasks.yaml
push: ./push/Tasks.yaml
rustdesk: ./rustdesk/Tasks.yaml
wallabag: ./wallabag/Tasks.yaml
tasks:
default:
desc: List all Tasks
cmds:
- task --list-all
silent: true
all:pull:
desc: Pull and build all images
cmds:
- task: firefoxsync:pull
- task: git:pull
- task: news:pull
- task: nextcloud:pull
- task: proxy:pull
- task: push:pull
- task: rustdesk:pull
- task: wallabag:pull
all:up:
desc: Start all containers
cmds:
- task: proxy:up
- task: nextcloud:up
- task: firefoxsync:up
- task: git:up
- task: news:up
- task: push:up
- task: rustdesk:up
- task: wallabag:up
all:down:
desc: Stop all containers
cmds:
- task: firefoxsync:down
- task: git:down
- task: news:down
- task: push:down
- task: rustdesk:down
- task: wallabag:down
- task: nextcloud:down
- task: proxy:down

42
firefoxsync/Tasks.yaml Normal file
View file

@ -0,0 +1,42 @@
version: '3'
vars:
NAME: firefoxsync
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
db:backup:
desc: Create database dump
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- docker compose exec db pg_dumpall -U $POSTGRES_USER > pgdump.sql
db:restore:
desc: Restores database dump. Clear database directory first!
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- task: down
- docker compose up -d db --wait
- docker compose exec -T db psql -U $POSTGRES_USER $POSTGRES_DB < pgdump.sql
- docker compose exec -i db psql -U $POSTGRES_USER -d $POSTGRES_DB -c "ALTER USER \"$POSTGRES_USER\" PASSWORD '$POSTGRES_PASSWORD';"
- task: up

43
git/Tasks.yaml Normal file
View file

@ -0,0 +1,43 @@
version: '3'
vars:
NAME: git
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
db:backup:
desc: Create database dump
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- docker compose exec db pg_dumpall -U $POSTGRES_USER > pgdump.sql
db:restore:
desc: Restores database dump. Clear database directory first!
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- task: down
- docker compose up -d db --wait
- docker compose exec -T db psql -U $POSTGRES_USER $POSTGRES_DB < pgdump.sql
- docker compose exec -i db psql -U $POSTGRES_USER -d $POSTGRES_DB -c "ALTER USER \"$POSTGRES_USER\" PASSWORD '$POSTGRES_PASSWORD';"
- task: up

42
news/Tasks.yaml Normal file
View file

@ -0,0 +1,42 @@
version: '3'
vars:
NAME: news
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
db:backup:
desc: Create database dump
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- docker compose exec db pg_dumpall -U $POSTGRES_USER > pgdump.sql
db:restore:
desc: Restores database dump. Clear database directory first!
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- task: down
- docker compose up -d db --wait
- docker compose exec -T db psql -U $POSTGRES_USER $POSTGRES_DB < pgdump.sql
- docker compose exec -i db psql -U $POSTGRES_USER -d $POSTGRES_DB -c "ALTER USER \"$POSTGRES_USER\" PASSWORD '$POSTGRES_PASSWORD';"
- task: up

74
nextcloud/Tasks.yaml Normal file
View file

@ -0,0 +1,74 @@
version: '3'
vars:
NAME: nextcloud
tasks:
pull:
desc: Pull all images for {{.NAME}} and build images
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose build --pull
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
occ:
desc: Nexctcloud command line OCC aka "ownCloud Console". Give command like 'task nextcloud:occ -- maintenance:mode --off'
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec --user www-data app php occ {{.CLI_ARGS}}
update:
desc: Manual execute update of nextcloud AFTER Version inkrement and nextcloud running"
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec --user www-data app php occ upgrade
- docker compose exec --user www-data app php occ maintenance:repair --include-expensive
- docker compose exec --user www-data app php occ db:add-missing-indices
- docker compose exec --user www-data app php occ db:add-missing-columns
- docker compose exec --user www-data app php occ db:add-missing-primary-keys
- docker compose exec --user www-data app php occ maintenance:mode --off
- docker compose exec --user www-data app php occ status
status:
desc: Nextcloud status
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec --user www-data app php occ status
files-scan:
desc: Scan for changed files in Nextcloud storage
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec --user www-data app php occ files:scan --all
- docker compose exec --user www-data app php occ files:scan-app-data
db:backup:
desc: Create database dump
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- docker compose exec db mariadb-dump --single-transaction -u $MYSQL_USER -p"$MYSQL_PASSWORD" $MYSQL_DATABASE > mysqldump.sql
db:restore:
desc: Restore database dump. Clear database directory first!
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- task: down
- docker compose up -d db --wait
- docker compose exec db mariadb -u $MYSQL_USER -p"$MYSQL_PASSWORD" $MYSQL_DATABASE < mysqldump.sql
- task: up

View file

@ -1,19 +0,0 @@
#/bin/bash/
function occ {
docker compose --project-directory /home/flz/git/selfhost/nextcloud exec --user www-data app php occ "$@"
}
#docker compose build --pull
#docker compose pull --ignore-buildable
#occ status
#docker compose up -d
#watch docker compose ps
occ upgrade
occ maintenance:repair --include-expensive
occ db:add-missing-indices
occ db:add-missing-columns
occ db:add-missing-primary-keys
occ status

31
proxy/Tasks.yaml Normal file
View file

@ -0,0 +1,31 @@
version: '3'
vars:
NAME: proxy
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
reload:
desc: Reload Caddyfile config file without restarting container
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec -w /etc/caddy caddy caddy reload

View file

@ -1,2 +0,0 @@
#!/bin/bash
docker compose exec -w /etc/caddy caddy caddy reload

View file

@ -1,11 +0,0 @@
#/bin/bash/
for dir in ./*/ ; do
echo "[Building and Pulling $dir]"
cd "$dir";
docker compose pull --ignore-buildable
docker compose build --pull;
cd ..;
echo;
done

30
push/Tasks.yaml Normal file
View file

@ -0,0 +1,30 @@
version: '3'
vars:
NAME: push
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
ntfy:
desc: Ntfy command
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose exec ntfy ntfy

25
rustdesk/Tasks.yaml Normal file
View file

@ -0,0 +1,25 @@
version: '3'
vars:
NAME: rustdesk
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down

View file

@ -1,15 +0,0 @@
#/bin/bash/
function up {
(cd "$1" && echo "[$1]" && docker compose up -d "${@:2}");
}
#up proxy --scale whoami=3;
up proxy;
up nextcloud;
up git;
up wallabag;
up firefoxsync;
up push;
up rustdesk;
up news;

View file

@ -1,6 +0,0 @@
#/bin/bash/
for dir in ./*/ ; do
(cd "$dir" && echo "[$dir]" && docker compose down);
done

42
wallabag/Tasks.yaml Normal file
View file

@ -0,0 +1,42 @@
version: '3'
vars:
NAME: wallabag
tasks:
pull:
desc: Pull all images for {{.NAME}}
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose pull --ignore-buildable
up:
desc: Starting {{.NAME}} docker compose as daemon
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose up -d
down:
desc: Stop {{.NAME}} docker compose
dir: "{{.TASKFILE_DIR}}"
cmds:
- docker compose down
db:backup:
desc: Create database dump
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- docker compose exec db /usr/bin/mariadb-dump --single-transaction -u $MYSQL_USER -p"$MYSQL_PASSWORD" $MYSQL_DATABASE > mysqldump.sql
db:restore:
desc: Restore database dump. Clear database directory first!
dir: "{{.TASKFILE_DIR}}"
dotenv: [".env"]
cmds:
- task: down
- docker compose up -d db --wait
- docker compose exec db mariadb -u $MYSQL_USER -p"$MYSQL_PASSWORD" $MYSQL_DATABASE < mysqldump.sql
- task: up