From 734c7ff819fd8b504b8166890e6df59c789fd8d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jainil=20Prajapati=20=F0=9F=AA=90?= <86187588+enough-jainil@users.noreply.github.com> Date: Mon, 21 Jul 2025 09:08:21 +0530 Subject: [PATCH] add EZBookkeeping entry (#223) * add EZBookkeeping entry * Add GitLab CE entry to meta.json - Introduced a new entry for GitLab Community Edition, including its description, logo, and relevant links. - Added tags for better categorization: git, ci-cd, version-control, project-management. --- blueprints/ezbookkeeping/docker-compose.yml | 35 ++++++++++++++++++++ blueprints/ezbookkeeping/logo.png | Bin 0 -> 14743 bytes blueprints/ezbookkeeping/template.toml | 31 +++++++++++++++++ meta.json | 20 +++++++++++ 4 files changed, 86 insertions(+) create mode 100644 blueprints/ezbookkeeping/docker-compose.yml create mode 100644 blueprints/ezbookkeeping/logo.png create mode 100644 blueprints/ezbookkeeping/template.toml diff --git a/blueprints/ezbookkeeping/docker-compose.yml b/blueprints/ezbookkeeping/docker-compose.yml new file mode 100644 index 00000000..82b7646d --- /dev/null +++ b/blueprints/ezbookkeeping/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.8" +services: + mysql: + image: mysql:8.0 + restart: unless-stopped + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - mysql-data:/var/lib/mysql + ezbookkeeping: + image: mayswind/ezbookkeeping + restart: unless-stopped + depends_on: + - mysql + environment: + - EBK_SERVER_DOMAIN=${EBK_SERVER_DOMAIN} + - EBK_SERVER_ENABLE_GZIP=${EBK_SERVER_ENABLE_GZIP} + - EBK_DATABASE_TYPE=${EBK_DATABASE_TYPE} + - EBK_DATABASE_HOST=${EBK_DATABASE_HOST} + - EBK_DATABASE_NAME=${EBK_DATABASE_NAME} + - EBK_DATABASE_USER=${EBK_DATABASE_USER} + - EBK_DATABASE_PASSWD=${EBK_DATABASE_PASSWD} + - EBK_LOG_MODE=${EBK_LOG_MODE} + - EBK_SECURITY_SECRET_KEY=${EBK_SECURITY_SECRET_KEY} + volumes: + - /etc/localtime:/etc/localtime:ro + - storage:/ezbookkeeping/storage + - logs:/ezbookkeeping/log +volumes: + mysql-data: {} + storage: {} + logs: {} diff --git a/blueprints/ezbookkeeping/logo.png b/blueprints/ezbookkeeping/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0b48c447eec503ed11ae5074c67506a3b4b870c6 GIT binary patch literal 14743 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 literal 0 HcmV?d00001 diff --git a/blueprints/ezbookkeeping/template.toml b/blueprints/ezbookkeeping/template.toml new file mode 100644 index 00000000..c41759ee --- /dev/null +++ b/blueprints/ezbookkeeping/template.toml @@ -0,0 +1,31 @@ +[variables] +main_domain = "${domain}" +db_name = "ezbookkeeping" +db_user = "ezbookkeeping" +db_pass = "${password:32}" +root_pass = "${password:32}" +secret_key = "${password:64}" + +[config] +[[config.domains]] +serviceName = "ezbookkeeping" +port = 8080 +host = "${main_domain}" + +[config.env] +MYSQL_ROOT_PASSWORD = "${root_pass}" +MYSQL_DATABASE = "${db_name}" +MYSQL_USER = "${db_user}" +MYSQL_PASSWORD = "${db_pass}" +EBK_SERVER_DOMAIN = "${main_domain}" +EBK_SERVER_ENABLE_GZIP = "true" +EBK_DATABASE_TYPE = "mysql" +EBK_DATABASE_HOST = "mysql:3306" +EBK_DATABASE_NAME = "${db_name}" +EBK_DATABASE_USER = "${db_user}" +EBK_DATABASE_PASSWD = "${db_pass}" +EBK_LOG_MODE = "file" +# Security secret key used for application protection +EBK_SECURITY_SECRET_KEY = "${secret_key}" + +[[config.mounts]] \ No newline at end of file diff --git a/meta.json b/meta.json index 1aea7cd6..adce1e24 100644 --- a/meta.json +++ b/meta.json @@ -2679,6 +2679,26 @@ }, "tags": ["message-broker", "queue", "rabbitmq"] }, + { + "id": "ezbookkeeping", + "name": "EZBookkeeping", + "version": "latest", + "description": "EZBookkeeping is a self-hosted bookkeeping application that helps you manage your personal and business finances. It provides features for tracking income, expenses, accounts, and generating financial reports.", + "logo": "logo.png", + "links": { + "github": "https://github.com/mayswind/ezbookkeeping", + "website": "https://github.com/mayswind/ezbookkeeping", + "docs": "https://github.com/mayswind/ezbookkeeping" + }, + "tags": [ + "bookkeeping", + "finance", + "accounting", + "self-hosted", + "personal-finance", + "business-finance" + ] + }, { "id": "zitadel", "name": "Zitadel",