From b4bf7c4fa779b88c24a31330ab92ba980b4c8e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jainil=20Prajapati=20=F0=9F=AA=90?= <86187588+jaainil@users.noreply.github.com> Date: Mon, 25 Aug 2025 11:19:39 +0530 Subject: [PATCH] =?UTF-8?q?Add=20A=D0=BA=D0=B0unting=20accounting=20app=20?= =?UTF-8?q?template=20and=20restructure=20tags=20formatting=20(#305)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Aкаunting accounting app template and restructure tags formatting * Reformat tags in meta.json to improve readability and maintainability --- blueprints/akaunting/docker-compose.yml | 55 ++++++++++++++++++++++++ blueprints/akaunting/image.png | Bin 0 -> 8520 bytes blueprints/akaunting/template.toml | 54 +++++++++++++++++++++++ meta.json | 19 ++++++++ 4 files changed, 128 insertions(+) create mode 100644 blueprints/akaunting/docker-compose.yml create mode 100644 blueprints/akaunting/image.png create mode 100644 blueprints/akaunting/template.toml diff --git a/blueprints/akaunting/docker-compose.yml b/blueprints/akaunting/docker-compose.yml new file mode 100644 index 00000000..85ca3222 --- /dev/null +++ b/blueprints/akaunting/docker-compose.yml @@ -0,0 +1,55 @@ +version: "3.8" + +services: + akaunting: + image: docker.io/akaunting/akaunting:latest + restart: unless-stopped + depends_on: + akaunting-db: + condition: service_healthy + environment: + # App config + APP_URL: ${APP_URL} + LOCALE: ${LOCALE} + + # Database connection + DB_HOST: akaunting-db + DB_PORT: 3306 + DB_NAME: ${DB_NAME} + DB_USERNAME: ${DB_USERNAME} + DB_PASSWORD: ${DB_PASSWORD} + DB_PREFIX: ${DB_PREFIX} + + # First-run bootstrap (company + admin) + COMPANY_NAME: ${COMPANY_NAME} + COMPANY_EMAIL: ${COMPANY_EMAIL} + ADMIN_EMAIL: ${ADMIN_EMAIL} + ADMIN_PASSWORD: ${ADMIN_PASSWORD} + + # Expose only to internal network; domain routing handled by Dokploy/Traefik + expose: + - "80" + + volumes: + - akaunting-data:/var/www/html + + akaunting-db: + image: mariadb:10.11 + restart: unless-stopped + environment: + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + # Randomizes root password on each deployment (recommended) + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + volumes: + - akaunting-db:/var/lib/mysql + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] + interval: 10s + timeout: 5s + retries: 5 + +volumes: + akaunting-data: {} + akaunting-db: {} diff --git a/blueprints/akaunting/image.png b/blueprints/akaunting/image.png new file mode 100644 index 0000000000000000000000000000000000000000..1ecc6e84866cb0e2e8da5e0bfb013391dc1e9cee GIT binary patch literal 8520 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