Compare commits
26 Commits
Author | SHA1 | Date |
---|---|---|
decentral1se | c532f14952 | |
decentral1se | 8dfad23470 | |
decentral1se | bd6f1dc4c6 | |
Renovate Bot | 83e70bb560 | |
Renovate Bot | 83b7ef9bfa | |
decentral1se | 53a4995378 | |
decentral1se | 60e20e4cdc | |
decentral1se | 1adb31f281 | |
decentral1se | 6e1a8168f2 | |
decentral1se | c47bd6568c | |
Renovate Bot | 89eb579618 | |
3wc | c7df0aedea | |
3wc | 4578751dd7 | |
3wc | 47217ecde9 | |
3wc | baaf465431 | |
3wc | 66fd01c8c5 | |
decentral1se | 7a2e46c5ef | |
decentral1se | 824faeb22b | |
decentral1se | 49a03a99b7 | |
Roxie Gibson | d4742a49e2 | |
Roxie Gibson | 66642ba905 | |
decentral1se | 530f8608ac | |
Renovate Bot | 8ba268cb9b | |
decentral1se | 943bff7f70 | |
Roxie Gibson | e2ade64929 | |
decentral1se | 2a52aa5c81 |
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"shellcheck.customArgs": [
|
||||
"--shell=bash"
|
||||
]
|
||||
}
|
|
@ -29,6 +29,15 @@ Fully automated luxury Nextcloud via docker-swarm.
|
|||
|
||||
`abra app YOURAPPDOMAIN occ user:list`
|
||||
|
||||
If you need to provide additional arguments or options, you'll need to quote
|
||||
them, e.g.
|
||||
|
||||
`abra app YOURAPPDOMAIN occ user:list --help`
|
||||
|
||||
## Upgrading Nextcloud apps
|
||||
|
||||
`abra app YOURAPPDOMAIN occ "app:update --all"`
|
||||
|
||||
[nextcloud-docker]: https://hub.docker.com/_/nextcloud/
|
||||
[`abra`]: https://git.autonomic.zone/autonomic-cooperative/abra
|
||||
[`coop-cloud/traefik`]: https://git.autonomic.zone/coop-cloud/traefik
|
||||
|
|
102
abra.sh
102
abra.sh
|
@ -1,5 +1,101 @@
|
|||
NC_APP_DIR="app:/var/www/html"
|
||||
|
||||
sub_occ(){
|
||||
abra__service_="app"
|
||||
abra___user="www-data"
|
||||
sub_app_run php /var/www/html/occ "$@"
|
||||
# shellcheck disable=SC2034
|
||||
abra__service_="app"
|
||||
# shellcheck disable=SC2034
|
||||
abra___user="www-data"
|
||||
sub_app_run php /var/www/html/occ "$@"
|
||||
}
|
||||
|
||||
_backup_app() {
|
||||
# Copied _abra_backup_dir to make UX better on restore and backup
|
||||
{
|
||||
abra__src_="$1"
|
||||
abra__dst_="-"
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2154
|
||||
FILENAME="$(basename "$1").tar"
|
||||
|
||||
debug "Copying '$1' to '$FILENAME'"
|
||||
|
||||
silence
|
||||
mkdir -p /tmp/abra
|
||||
sub_app_cp > /tmp/abra/$FILENAME
|
||||
unsilence
|
||||
}
|
||||
|
||||
next_maintenance_on() {
|
||||
silence
|
||||
sub_occ maintenance:mode --on > /dev/null
|
||||
unsilence
|
||||
debug "Nextcloud maintenance mode enabled"
|
||||
}
|
||||
|
||||
next_maintenance_off() {
|
||||
silence
|
||||
sub_occ maintenance:mode --off > /dev/null
|
||||
unsilence
|
||||
debug "Nextcloud maintenance mode disabled"
|
||||
}
|
||||
|
||||
abra_backup_app() {
|
||||
# shellcheck disable=SC2154
|
||||
ARK_FILENAME="$ABRA_BACKUP_DIR/${abra__app_}_app_$(date +%F).tar.gz"
|
||||
# Cant be FILENAME as that gets changed by something
|
||||
next_maintenance_on
|
||||
_backup_app $NC_APP_DIR/config
|
||||
_backup_app $NC_APP_DIR/data
|
||||
_backup_app $NC_APP_DIR/themes
|
||||
# Combine archives
|
||||
tar -Af /tmp/abra/config.tar /tmp/abra/data.tar
|
||||
tar -Af /tmp/abra/config.tar /tmp/abra/themes.tar
|
||||
gzip /tmp/abra/config.tar -c > "$ARK_FILENAME"
|
||||
rm /tmp/abra/*.tar
|
||||
success "Backed up 'app' to $ARK_FILENAME"
|
||||
next_maintenance_off
|
||||
}
|
||||
|
||||
abra_backup_db() {
|
||||
next_maintenance_on
|
||||
_abra_backup_mysql "db" "nextcloud"
|
||||
next_maintenance_off
|
||||
}
|
||||
|
||||
abra_backup() {
|
||||
abra_backup_app && abra_backup_db
|
||||
}
|
||||
|
||||
|
||||
abra_restore_app() {
|
||||
next_maintenance_on
|
||||
# shellcheck disable=SC2034
|
||||
{
|
||||
abra__src_="-"
|
||||
abra__dst_=$NC_APP_DIR
|
||||
}
|
||||
|
||||
zcat "$@" | sub_app_cp
|
||||
|
||||
next_maintenance_off
|
||||
sub_occ files:scan --all > /dev/null # Needs to be run in normal mode
|
||||
success "Restored 'app'"
|
||||
}
|
||||
|
||||
# abra_restore_db() {
|
||||
# warning "Restoring the database is on a existing app and not a new one has not been tested. Use with caution."
|
||||
# next_maintenance_on
|
||||
# # 3wc: unlike abra_backup_db, we can assume abra__service_ will be 'db' if we
|
||||
# # got this far..
|
||||
|
||||
# # shellcheck disable=SC2034
|
||||
# abra___no_tty="true"
|
||||
|
||||
# DB_PASSWORD=$(sub_app_run cat /run/secrets/db_password)
|
||||
|
||||
# zcat "$@" | sub_app_run mysql -u root -p"$DB_PASSWORD" wordpress
|
||||
|
||||
# success "Restored 'db'"
|
||||
# next_maintenance_off
|
||||
# }
|
||||
|
|
20
compose.yml
20
compose.yml
|
@ -1,7 +1,7 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
app:
|
||||
image: nextcloud:21.0.1
|
||||
image: nextcloud:21.0.3
|
||||
depends_on:
|
||||
- db
|
||||
secrets:
|
||||
|
@ -52,7 +52,7 @@ services:
|
|||
- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect"
|
||||
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true"
|
||||
- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}"
|
||||
- coop-cloud.${STACK_NAME}.app.version=21.0.0-7e0ea42c
|
||||
- coop-cloud.${STACK_NAME}.app.version=21.0.3-87bd33d3
|
||||
db:
|
||||
image: "mariadb:10.5"
|
||||
environment:
|
||||
|
@ -74,8 +74,20 @@ services:
|
|||
retries: 3
|
||||
start_period: 30s
|
||||
deploy:
|
||||
labels:
|
||||
- coop-cloud.${STACK_NAME}.db.version=10.5-9c681cef
|
||||
labels: ["coop-cloud.${STACK_NAME}.db.version=10.5-9c681cef"]
|
||||
cron:
|
||||
image: nextcloud:21.0.3
|
||||
volumes:
|
||||
- nextcloud:/var/www/html/
|
||||
- nextapps:/var/www/html/custom_apps:cached
|
||||
- nextdata:/var/www/html/data:cached
|
||||
- nextconfig:/var/www/html/config:cached
|
||||
- ${EXTRA_VOLUME}
|
||||
networks:
|
||||
- internal
|
||||
entrypoint: /cron.sh
|
||||
deploy:
|
||||
labels: ["coop-cloud.${STACK_NAME}.cron.version=21.0.3-87bd33d3"]
|
||||
secrets:
|
||||
db_root_password:
|
||||
external: true
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"ignoreDeps": [
|
||||
"mariadb:10.6"
|
||||
],
|
||||
"extends": [
|
||||
"config:base"
|
||||
]
|
||||
|
|
Reference in New Issue