diff --git a/.env.sample b/.env.sample index 9c73c22..a2b8f30 100644 --- a/.env.sample +++ b/.env.sample @@ -27,8 +27,9 @@ COMPANY_EMAIL=my@company.com ADMIN_EMAIL=me@company.com SECRET_MYSQL_PASSWORD_VERSION=v1 +SECRET_MYSQL_ROOT_PASSWORD_VERSION=v1 SECRET_ADMIN_PASSWORD_VERSION=v1 ## Enable API Fix to support offline use (without an API key) # COMPOSE_FILE="$COMPOSE_FILE:compose.api-fix.yml" -# API_FIX=apply \ No newline at end of file +# API_FIX=apply diff --git a/compose.yml b/compose.yml index fb4202f..d274f5a 100644 --- a/compose.yml +++ b/compose.yml @@ -4,14 +4,14 @@ services: image: docker.io/akaunting/akaunting:latest networks: - proxy - - internal + - backend environment: - APP_URL=https://${DOMAIN} - DB_HOST=akaunting-db - DB_PORT=3306 - DB_NAME=akaunting - DB_USERNAME=admin - - DB_PREFIX=asd_ + - DB_PREFIX=akt_ deploy: restart_policy: condition: on-failure @@ -41,7 +41,6 @@ services: - akaunting-data:/var/www/html secrets: - mysql_password - - admin_password configs: - source: app_entrypoint target: /docker-entrypoint.sh @@ -51,6 +50,8 @@ services: akaunting-db: image: mariadb:12 + networks: + - backend volumes: - akaunting-db:/var/lib/mysql deploy: @@ -60,11 +61,15 @@ services: - MYSQL_DATABASE=akaunting - MYSQL_USER=admin - MYSQL_PASSWORD_FILE=/run/secrets/mysql_password - - MYSQL_RANDOM_ROOT_PASSWORD=yes + - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_root_password secrets: - mysql_password - networks: - - internal + - mysql_root_password + labels: + backupbot.backup: "${ENABLE_BACKUPS:-true}" + backupbot.backup.pre-hook: "mariadb-dump --single-transaction -u root -p\"$$(cat /run/secrets/mysql_root_password)\" akaunting | gzip > /var/lib/mysql/dump.sql.gz" + backupbot.backup.volumes.akaunting-db.path: "dump.sql.gz" + backupbot.restore.post-hook: "gzip -d /var/lib/mysql/dump.sql.gz && mariadb -u root -p\"$$(cat /run/secrets/mysql_root_password)\" akaunting < /var/lib/mysql/dump.sql && rm -f /var/lib/mysql/dump.sql" volumes: akaunting-db: @@ -74,11 +79,12 @@ secrets: mysql_password: external: true name: ${STACK_NAME}_mysql_password_${SECRET_MYSQL_PASSWORD_VERSION} - admin_password: + mysql_root_password: external: true - name: ${STACK_NAME}_admin_password_${SECRET_ADMIN_PASSWORD_VERSION} + name: ${STACK_NAME}_mysql_root_password_${SECRET_MYSQL_ROOT_PASSWORD_VERSION} networks: + backend: proxy: external: true internal: