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 00000000..0b48c447 Binary files /dev/null and b/blueprints/ezbookkeeping/logo.png differ 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",