snackpot.yml - add docker compose config
Nominally working and tested on a remote VM
This commit is contained in:
110
templates/bin/ncadmin
Executable file
110
templates/bin/ncadmin
Executable file
@@ -0,0 +1,110 @@
|
||||
#!/bin/sh
|
||||
|
||||
dc_dir={{ docker_compose_base_dir }}
|
||||
#db_archive=nextclouddb.psql.gz
|
||||
# this should be relative to the $nextcloud_dir
|
||||
#file_archive=nextcloud.tgz
|
||||
#config=
|
||||
nextcloud_base_dir={{ nextcloud_base_dir }}
|
||||
nextcloud_data_dir={{ nextcloud_data_dir }}
|
||||
postgres_db_user={{ postgres_db_user }}
|
||||
nextcloud_db_user={{ nextcloud_db_user }}
|
||||
nextcloud_db={{ nextcloud_db }}
|
||||
|
||||
DOCKER_EXE() {
|
||||
( cd $dc_dir; docker-compose exec "$@" )
|
||||
}
|
||||
|
||||
ON_POSTGRES() {
|
||||
DOCKER_EXE -T -u postgres postgres "$@"
|
||||
}
|
||||
|
||||
ON_POSTGRESi() {
|
||||
DOCKER_EXE -u postgres postgres "$@"
|
||||
}
|
||||
|
||||
ON_NEXTCLOUD() {
|
||||
DOCKER_EXE -T -u www-data nextcloud "$@"
|
||||
}
|
||||
|
||||
ON_NEXTCLOUDi() {
|
||||
DOCKER_EXE -u www-data nextcloud "$@"
|
||||
}
|
||||
|
||||
PSQL() {
|
||||
ON_POSTGRES /usr/local/bin/psql "$@"
|
||||
}
|
||||
|
||||
PGDUMP() {
|
||||
ON_POSTGRES /usr/local/bin/pg_dump "$@"
|
||||
}
|
||||
|
||||
PSQLi() {
|
||||
ON_POSTGRESi /usr/local/bin/psql "$@"
|
||||
}
|
||||
|
||||
PHP() {
|
||||
ON_NEXTCLOUD /usr/local/bin/php "$@"
|
||||
}
|
||||
|
||||
TEE() {
|
||||
ON_NEXTCLOUD /usr/bin/tee "$1"
|
||||
}
|
||||
|
||||
CAT() {
|
||||
ON_NEXTCLOUD /bin/cat "$1"
|
||||
}
|
||||
|
||||
DUMP() {
|
||||
ON_NEXTCLOUD /bin/sh -c "for d in $*; do /usr/bin/tar -C \$d -c . ; done"
|
||||
}
|
||||
|
||||
UNDUMP() {
|
||||
ON_NEXTCLOUD /bin/sh -c "for d in $*; do /usr/bin/tar -C \$d -x ; done"
|
||||
}
|
||||
|
||||
_gen_config() {
|
||||
local config=$nextcloud_base_dir/config/config.php
|
||||
script=$( cat <<EOF )
|
||||
require("$config");
|
||||
\$CONFIG["password"] = "password";
|
||||
// FIXME more here
|
||||
file_put_contents("$config.2", "<?php\\n\\\$CONFIG = ". var_export(\$CONFIG, true) .";\\n");
|
||||
EOF
|
||||
|
||||
PHP -r "$script"
|
||||
}
|
||||
|
||||
unpack_db() {
|
||||
tar t >/dev/null && tar t >/dev/null && cat
|
||||
}
|
||||
|
||||
# FIXME override selected config settings
|
||||
restore() {
|
||||
( UNDUMP $nextcloud_base_dir $nextcloud_data_dir
|
||||
#FIXME [ -n "$config" ] && gen_config <<<'$config' | WRITE $nextcloud_base_dir/config/config.php
|
||||
PSQL -U $postgres_db_user < $dc_dir/postgres/init.sql
|
||||
cat | PSQL -U $postgres_db_user -d $nextcloud_db )
|
||||
}
|
||||
|
||||
backup() {
|
||||
( DUMP $nextcloud_base_dir $nextcloud_data_dir
|
||||
PGDUMP -U $postgres_db_user $nextcloud_db )
|
||||
}
|
||||
|
||||
prune() {
|
||||
docker system prune -a --volumes
|
||||
}
|
||||
|
||||
OCC() {
|
||||
ON_NEXTCLOUD ./occ "$@"
|
||||
}
|
||||
|
||||
NSH() {
|
||||
ON_NEXTCLOUDi sh "$@"
|
||||
}
|
||||
|
||||
set -vx
|
||||
set -e
|
||||
"$@"
|
||||
|
||||
Reference in New Issue
Block a user