mirror of
https://github.com/Dokploy/templates.git
synced 2026-06-15 20:25:24 +02:00
Feat : Add BigCapital template -#47 (#511)
* feat: add BigCapital template * Refactor docker-compose.yml to use ports instead of expose Removed container names and exposed sections for services. Updated to use ports instead of expose for webapp, server, mysql, mongo, redis, and gotenberg services. --------- Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
e562010556
commit
72eda8f5d4
152
blueprints/bigcapital/docker-compose.yml
Normal file
152
blueprints/bigcapital/docker-compose.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
services:
|
||||
webapp:
|
||||
image: bigcapitalhq/webapp:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- server
|
||||
ports:
|
||||
- '80'
|
||||
|
||||
|
||||
server:
|
||||
image: bigcapitalhq/server:latest
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
mysql:
|
||||
condition: service_healthy
|
||||
mongo:
|
||||
condition: service_started
|
||||
redis:
|
||||
condition: service_started
|
||||
ports:
|
||||
- '3000'
|
||||
|
||||
environment:
|
||||
# Mail
|
||||
- MAIL_HOST=${MAIL_HOST}
|
||||
- MAIL_USERNAME=${MAIL_USERNAME}
|
||||
- MAIL_PASSWORD=${MAIL_PASSWORD}
|
||||
- MAIL_PORT=${MAIL_PORT}
|
||||
- MAIL_SECURE=${MAIL_SECURE}
|
||||
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
|
||||
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
|
||||
# Database
|
||||
- DB_HOST=mysql
|
||||
- DB_USER=${DB_USER}
|
||||
- DB_PASSWORD=${DB_PASSWORD}
|
||||
- DB_CHARSET=${DB_CHARSET}
|
||||
# System database
|
||||
- SYSTEM_DB_NAME=${SYSTEM_DB_NAME}
|
||||
# Tenants databases
|
||||
- TENANT_DB_NAME_PERFIX=${TENANT_DB_NAME_PERFIX}
|
||||
# Authentication
|
||||
- JWT_SECRET=${JWT_SECRET}
|
||||
# MongoDB
|
||||
- MONGODB_DATABASE_URL=mongodb://mongo/bigcapital
|
||||
# Application
|
||||
- BASE_URL=${BASE_URL}
|
||||
# Agendash
|
||||
- AGENDASH_AUTH_USER=${AGENDASH_AUTH_USER}
|
||||
- AGENDASH_AUTH_PASSWORD=${AGENDASH_AUTH_PASSWORD}
|
||||
# Sign-up restrictions
|
||||
- SIGNUP_DISABLED=${SIGNUP_DISABLED}
|
||||
- SIGNUP_ALLOWED_DOMAINS=${SIGNUP_ALLOWED_DOMAINS}
|
||||
- SIGNUP_ALLOWED_EMAILS=${SIGNUP_ALLOWED_EMAILS}
|
||||
# Sign-up email confirmation
|
||||
- SIGNUP_EMAIL_CONFIRMATION=${SIGNUP_EMAIL_CONFIRMATION}
|
||||
# Gotenberg (Pdf generator)
|
||||
- GOTENBERG_URL=${GOTENBERG_URL}
|
||||
- GOTENBERG_DOCS_URL=${GOTENBERG_DOCS_URL}
|
||||
# Exchange Rate
|
||||
- EXCHANGE_RATE_SERVICE=${EXCHANGE_RATE_SERVICE}
|
||||
- OPEN_EXCHANGE_RATE_APP_ID=${OPEN_EXCHANGE_RATE_APP_ID}
|
||||
# Bank Sync
|
||||
- BANKING_CONNECT=${BANKING_CONNECT}
|
||||
# Plaid
|
||||
- PLAID_ENV=${PLAID_ENV}
|
||||
- PLAID_CLIENT_ID=${PLAID_CLIENT_ID}
|
||||
- PLAID_SECRET=${PLAID_SECRET}
|
||||
- PLAID_LINK_WEBHOOK=${PLAID_LINK_WEBHOOK}
|
||||
# Lemon Squeez
|
||||
- LEMONSQUEEZY_API_KEY=${LEMONSQUEEZY_API_KEY}
|
||||
- LEMONSQUEEZY_STORE_ID=${LEMONSQUEEZY_STORE_ID}
|
||||
- LEMONSQUEEZY_WEBHOOK_SECRET=${LEMONSQUEEZY_WEBHOOK_SECRET}
|
||||
- HOSTED_ON_BIGCAPITAL_CLOUD=${HOSTED_ON_BIGCAPITAL_CLOUD}
|
||||
# New Relic metrics tracking
|
||||
- NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=${NEW_RELIC_DISTRIBUTED_TRACING_ENABLED}
|
||||
- NEW_RELIC_LOG=${NEW_RELIC_LOG}
|
||||
- NEW_RELIC_AI_MONITORING_ENABLED=${NEW_RELIC_AI_MONITORING_ENABLED}
|
||||
- NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED=${NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED}
|
||||
- NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED=${NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED}
|
||||
- NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}
|
||||
- NEW_RELIC_APP_NAME=${NEW_RELIC_APP_NAME}
|
||||
# S3
|
||||
- S3_REGION=${S3_REGION}
|
||||
- S3_ACCESS_KEY_ID=${S3_ACCESS_KEY_ID}
|
||||
- S3_SECRET_ACCESS_KEY=${S3_SECRET_ACCESS_KEY}
|
||||
- S3_ENDPOINT=${S3_ENDPOINT}
|
||||
- S3_BUCKET=${S3_BUCKET}
|
||||
|
||||
mysql:
|
||||
image: mariadb:10.11
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_DATABASE=${SYSTEM_DB_NAME}
|
||||
- MYSQL_USER=${DB_USER}
|
||||
- MYSQL_PASSWORD=${DB_PASSWORD}
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
volumes:
|
||||
- mysql:/var/lib/mysql
|
||||
ports:
|
||||
- '3306'
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mysqladmin ping -h localhost -u root -p$$MYSQL_ROOT_PASSWORD || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
|
||||
mongo:
|
||||
image: mongo:7
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '27017'
|
||||
volumes:
|
||||
- mongo:/data/db
|
||||
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '6379'
|
||||
volumes:
|
||||
- redis:/data
|
||||
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
gotenberg:
|
||||
image: gotenberg/gotenberg:7
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '9000'
|
||||
|
||||
|
||||
volumes:
|
||||
mysql:
|
||||
name: bigcapital_mysql
|
||||
driver: local
|
||||
mongo:
|
||||
name: bigcapital_mongo
|
||||
driver: local
|
||||
redis:
|
||||
name: bigcapital_redis
|
||||
driver: local
|
||||
|
||||
|
||||
|
||||
1
blueprints/bigcapital/logo.svg
Normal file
1
blueprints/bigcapital/logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" data-icon="bigcapital" width="214" height="37" viewBox="0 0 309.09 42.89"><desc>bigcapital</desc><path d="M56,3.16,61.33,8.5,31.94,37.9l-5.35-5.35Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M29.53,6.94l5.35,5.34L5.49,41.67.14,36.33l15.8-15.8Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M94.36,38.87H79.62v-31H94c6.33,0,10.22,3.15,10.22,8V16a7.22,7.22,0,0,1-4.07,6.69c3.58,1.37,5.8,3.45,5.8,7.61v.09C106,36,101.35,38.87,94.36,38.87Zm3.1-21.81c0-2-1.59-3.19-4.47-3.19H86.26v6.55h6.29c3,0,4.91-1,4.91-3.28Zm1.72,12.39c0-2.08-1.54-3.37-5-3.37H86.26V32.9h8.1c3,0,4.82-1.06,4.82-3.36Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M110.56,12.54v-6h7.08v6Zm.18,26.33V15.15h6.72V38.87Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M134,46a22.55,22.55,0,0,1-10.49-2.47l2.3-5a15.52,15.52,0,0,0,8,2.17c4.61,0,6.78-2.21,6.78-6.46V33.08c-2,2.39-4.16,3.85-7.75,3.85-5.53,0-10.53-4-10.53-11.07v-.09c0-7.08,5.09-11.06,10.53-11.06a9.63,9.63,0,0,1,7.66,3.54v-3.1h6.72V33.52C147.2,42.46,142.78,46,134,46Zm6.6-20.27a5.79,5.79,0,0,0-11.56,0v.09a5.42,5.42,0,0,0,5.76,5.49,5.49,5.49,0,0,0,5.8-5.49Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M164,39.41a12.11,12.11,0,0,1-12.35-12.26v-.09a12.18,12.18,0,0,1,12.44-12.35c4.47,0,7.25,1.5,9.47,4l-4.12,4.43a6.93,6.93,0,0,0-5.4-2.61c-3.36,0-5.75,3-5.75,6.46v.09c0,3.63,2.34,6.55,6,6.55,2.26,0,3.8-1,5.44-2.53l3.94,4A12,12,0,0,1,164,39.41Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M191.51,38.87V36.31a9.15,9.15,0,0,1-7.17,3c-4.47,0-8.15-2.57-8.15-7.26V32c0-5.18,3.94-7.57,9.56-7.57a16.74,16.74,0,0,1,5.8,1V25c0-2.79-1.72-4.34-5.09-4.34a17.57,17.57,0,0,0-6.55,1.28l-1.68-5.13a21,21,0,0,1,9.21-1.9c7.34,0,10.57,3.8,10.57,10.22V38.87Zm.13-9.55a10.3,10.3,0,0,0-4.29-.89c-2.88,0-4.65,1.15-4.65,3.27v.09c0,1.82,1.5,2.88,3.67,2.88,3.15,0,5.27-1.73,5.27-4.16Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M217.49,39.32a9.1,9.1,0,0,1-7.39-3.54V46h-6.73V15.15h6.73v3.41a8.7,8.7,0,0,1,7.39-3.85c5.53,0,10.8,4.34,10.8,12.26v.09C228.29,35,223.11,39.32,217.49,39.32ZM221.56,27c0-3.94-2.66-6.55-5.8-6.55S210,23,210,27v.09c0,3.94,2.61,6.55,5.75,6.55s5.8-2.57,5.8-6.55Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M232.93,12.54v-6H240v6Zm.18,26.33V15.15h6.73V38.87Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M253.73,39.27c-4.11,0-6.9-1.63-6.9-7.12V20.91H244V15.15h2.83V9.09h6.73v6.06h5.57v5.76h-5.57V31c0,1.55.66,2.3,2.16,2.3A6.84,6.84,0,0,0,259,32.5v5.4A9.9,9.9,0,0,1,253.73,39.27Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M277.55,38.87V36.31a9.15,9.15,0,0,1-7.18,3c-4.46,0-8.14-2.57-8.14-7.26V32c0-5.18,3.94-7.57,9.56-7.57a16.74,16.74,0,0,1,5.8,1V25c0-2.79-1.73-4.34-5.09-4.34A17.57,17.57,0,0,0,266,21.92l-1.68-5.13a20.94,20.94,0,0,1,9.2-1.9c7.35,0,10.58,3.8,10.58,10.22V38.87Zm.13-9.55a10.31,10.31,0,0,0-4.3-.89c-2.87,0-4.64,1.15-4.64,3.27v.09c0,1.82,1.5,2.88,3.67,2.88,3.14,0,5.27-1.73,5.27-4.16Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M289.72,38.87V6.57h6.72v32.3Z" fill="#ffffff" fill-rule="evenodd"></path><path d="M302.06,38.87V31.79h7.17v7.08Z" fill="#ffffff" fill-rule="evenodd"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.1 KiB |
170
blueprints/bigcapital/template.toml
Normal file
170
blueprints/bigcapital/template.toml
Normal file
@@ -0,0 +1,170 @@
|
||||
[variables]
|
||||
main_domain = "${domain}"
|
||||
base_url = "https://${main_domain}"
|
||||
|
||||
# Database configuration
|
||||
db_user = "bigcapital"
|
||||
db_password = "${password:32}"
|
||||
db_root_password = "${password:32}"
|
||||
db_charset = "utf8mb4"
|
||||
system_db_name = "bigcapital"
|
||||
tenant_db_name_prefix = "bigcapital_tenant_"
|
||||
|
||||
# JWT Secret
|
||||
jwt_secret = "${hash:64}"
|
||||
|
||||
# Mail configuration (optional - can be left empty)
|
||||
mail_host = ""
|
||||
mail_username = ""
|
||||
mail_password = ""
|
||||
mail_port = "587"
|
||||
mail_secure = "false"
|
||||
mail_from_name = "BigCapital"
|
||||
mail_from_address = "noreply@${main_domain}"
|
||||
|
||||
# Agendash authentication
|
||||
agendash_auth_user = "admin"
|
||||
agendash_auth_password = "${password:24}"
|
||||
|
||||
# Sign-up configuration
|
||||
signup_disabled = "false"
|
||||
signup_allowed_domains = ""
|
||||
signup_allowed_emails = ""
|
||||
signup_email_confirmation = "false"
|
||||
|
||||
# Gotenberg configuration
|
||||
gotenberg_url = "http://gotenberg:9000"
|
||||
gotenberg_docs_url = "http://gotenberg:9000"
|
||||
|
||||
# Exchange Rate Service
|
||||
exchange_rate_service = "openexchangerates"
|
||||
open_exchange_rate_app_id = ""
|
||||
|
||||
# Banking Connect
|
||||
banking_connect = "false"
|
||||
|
||||
# Plaid configuration (optional)
|
||||
plaid_env = "sandbox"
|
||||
plaid_client_id = ""
|
||||
plaid_secret = ""
|
||||
plaid_link_webhook = ""
|
||||
|
||||
# Lemon Squeezy configuration (optional)
|
||||
lemonsqueezy_api_key = ""
|
||||
lemonsqueezy_store_id = ""
|
||||
lemonsqueezy_webhook_secret = ""
|
||||
hosted_on_bigcapital_cloud = "false"
|
||||
|
||||
# New Relic configuration (optional)
|
||||
new_relic_distributed_tracing_enabled = "false"
|
||||
new_relic_log = "false"
|
||||
new_relic_ai_monitoring_enabled = "false"
|
||||
new_relic_custom_insights_events_max_samples_stored = "10000"
|
||||
new_relic_span_events_max_samples_stored = "10000"
|
||||
new_relic_license_key = ""
|
||||
new_relic_app_name = "BigCapital"
|
||||
|
||||
# S3 configuration (optional)
|
||||
s3_region = ""
|
||||
s3_access_key_id = ""
|
||||
s3_secret_access_key = ""
|
||||
s3_endpoint = ""
|
||||
s3_bucket = ""
|
||||
|
||||
[config]
|
||||
|
||||
[[config.domains]]
|
||||
serviceName = "webapp"
|
||||
port = 80
|
||||
host = "${main_domain}"
|
||||
|
||||
[config.env]
|
||||
# Mail
|
||||
MAIL_HOST = "${mail_host}"
|
||||
MAIL_USERNAME = "${mail_username}"
|
||||
MAIL_PASSWORD = "${mail_password}"
|
||||
MAIL_PORT = "${mail_port}"
|
||||
MAIL_SECURE = "${mail_secure}"
|
||||
MAIL_FROM_NAME = "${mail_from_name}"
|
||||
MAIL_FROM_ADDRESS = "${mail_from_address}"
|
||||
|
||||
# Database
|
||||
DB_HOST = "mysql"
|
||||
DB_USER = "${db_user}"
|
||||
DB_PASSWORD = "${db_password}"
|
||||
DB_CHARSET = "${db_charset}"
|
||||
|
||||
# System database
|
||||
SYSTEM_DB_NAME = "${system_db_name}"
|
||||
|
||||
# Tenants databases
|
||||
TENANT_DB_NAME_PERFIX = "${tenant_db_name_prefix}"
|
||||
|
||||
# Authentication
|
||||
JWT_SECRET = "${jwt_secret}"
|
||||
|
||||
# MongoDB
|
||||
MONGODB_DATABASE_URL = "mongodb://mongo/bigcapital"
|
||||
|
||||
# Application
|
||||
BASE_URL = "${base_url}"
|
||||
|
||||
# Agendash
|
||||
AGENDASH_AUTH_USER = "${agendash_auth_user}"
|
||||
AGENDASH_AUTH_PASSWORD = "${agendash_auth_password}"
|
||||
|
||||
# Sign-up restrictions
|
||||
SIGNUP_DISABLED = "${signup_disabled}"
|
||||
SIGNUP_ALLOWED_DOMAINS = "${signup_allowed_domains}"
|
||||
SIGNUP_ALLOWED_EMAILS = "${signup_allowed_emails}"
|
||||
|
||||
# Sign-up email confirmation
|
||||
SIGNUP_EMAIL_CONFIRMATION = "${signup_email_confirmation}"
|
||||
|
||||
# Gotenberg (Pdf generator)
|
||||
GOTENBERG_URL = "${gotenberg_url}"
|
||||
GOTENBERG_DOCS_URL = "${gotenberg_docs_url}"
|
||||
|
||||
# Exchange Rate
|
||||
EXCHANGE_RATE_SERVICE = "${exchange_rate_service}"
|
||||
OPEN_EXCHANGE_RATE_APP_ID = "${open_exchange_rate_app_id}"
|
||||
|
||||
# Bank Sync
|
||||
BANKING_CONNECT = "${banking_connect}"
|
||||
|
||||
# Plaid
|
||||
PLAID_ENV = "${plaid_env}"
|
||||
PLAID_CLIENT_ID = "${plaid_client_id}"
|
||||
PLAID_SECRET = "${plaid_secret}"
|
||||
PLAID_LINK_WEBHOOK = "${plaid_link_webhook}"
|
||||
|
||||
# Lemon Squeez
|
||||
LEMONSQUEEZY_API_KEY = "${lemonsqueezy_api_key}"
|
||||
LEMONSQUEEZY_STORE_ID = "${lemonsqueezy_store_id}"
|
||||
LEMONSQUEEZY_WEBHOOK_SECRET = "${lemonsqueezy_webhook_secret}"
|
||||
HOSTED_ON_BIGCAPITAL_CLOUD = "${hosted_on_bigcapital_cloud}"
|
||||
|
||||
# New Relic metrics tracking
|
||||
NEW_RELIC_DISTRIBUTED_TRACING_ENABLED = "${new_relic_distributed_tracing_enabled}"
|
||||
NEW_RELIC_LOG = "${new_relic_log}"
|
||||
NEW_RELIC_AI_MONITORING_ENABLED = "${new_relic_ai_monitoring_enabled}"
|
||||
NEW_RELIC_CUSTOM_INSIGHTS_EVENTS_MAX_SAMPLES_STORED = "${new_relic_custom_insights_events_max_samples_stored}"
|
||||
NEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED = "${new_relic_span_events_max_samples_stored}"
|
||||
NEW_RELIC_LICENSE_KEY = "${new_relic_license_key}"
|
||||
NEW_RELIC_APP_NAME = "${new_relic_app_name}"
|
||||
|
||||
# S3
|
||||
S3_REGION = "${s3_region}"
|
||||
S3_ACCESS_KEY_ID = "${s3_access_key_id}"
|
||||
S3_SECRET_ACCESS_KEY = "${s3_secret_access_key}"
|
||||
S3_ENDPOINT = "${s3_endpoint}"
|
||||
S3_BUCKET = "${s3_bucket}"
|
||||
|
||||
# MySQL
|
||||
MYSQL_DATABASE = "${system_db_name}"
|
||||
MYSQL_USER = "${db_user}"
|
||||
MYSQL_PASSWORD = "${db_password}"
|
||||
MYSQL_ROOT_PASSWORD = "${db_root_password}"
|
||||
|
||||
[[config.mounts]]
|
||||
|
||||
20
meta.json
20
meta.json
@@ -662,6 +662,26 @@
|
||||
"alerts"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "bigcapital",
|
||||
"name": "BigCapital",
|
||||
"version": "latest",
|
||||
"description": "BigCapital is a great open source alternative to QuickBooks. A comprehensive accounting and financial management system for businesses.",
|
||||
"logo": "logo.svg",
|
||||
"links": {
|
||||
"github": "https://github.com/bigcapitalhq/bigcapital",
|
||||
"website": "https://bigcapital.app/",
|
||||
"docs": "https://github.com/bigcapitalhq/bigcapital"
|
||||
},
|
||||
"tags": [
|
||||
"accounting",
|
||||
"finance",
|
||||
"bookkeeping",
|
||||
"quickbooks",
|
||||
"erp",
|
||||
"business"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "blender",
|
||||
"name": "Blender",
|
||||
|
||||
Reference in New Issue
Block a user