From 12c9691bb4ccba34eb962f7a49c673373dfe8884 Mon Sep 17 00:00:00 2001 From: Matt <63170914+matas0@users.noreply.github.com> Date: Wed, 14 Aug 2024 17:44:11 +0400 Subject: [PATCH 1/2] feat: Added Budibase template --- public/svgs/budibase.svg | 21 ++++ templates/compose/budibase.yaml | 163 ++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 public/svgs/budibase.svg create mode 100644 templates/compose/budibase.yaml diff --git a/public/svgs/budibase.svg b/public/svgs/budibase.svg new file mode 100644 index 000000000..c77636bfe --- /dev/null +++ b/public/svgs/budibase.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/compose/budibase.yaml b/templates/compose/budibase.yaml new file mode 100644 index 000000000..c08cdedd7 --- /dev/null +++ b/templates/compose/budibase.yaml @@ -0,0 +1,163 @@ +# documentation: https://docs.budibase.com/ +# slogan: Low code platform for building business apps and workflows in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more. +# tags: budibase,low-code,business-apps,workflow,automation,postgresql,mysql,mssql,mongodb,docker,kubernetes +# logo: svgs/budibase.svg +# port: 10000 + +services: + app-service: + restart: unless-stopped + image: budibase.docker.scarf.sh/budibase/apps + environment: + - SELF_HOSTED=1 + - COUCH_DB_URL=http://$SERVICE_USER_BUDIBASE_COUCHDB:$SERVICE_PASSWORD_BUDIBASE_COUCHDB@couchdb-service:5984 + - WORKER_URL=http://worker-service:4003 + - MINIO_URL=http://minio-service:9000 + - MINIO_ACCESS_KEY=$SERVICE_USER_BUDIBASE_MINIO + - MINIO_SECRET_KEY=$SERVICE_PASSWORD_BUDIBASE_MINIO + - INTERNAL_API_KEY=$SERVICE_BASE64_128_BUDIBASE + - BUDIBASE_ENVIRONMENT=${BUDIBASE_ENVIRONMENT:-PRODUCTION} + - PORT=4002 + - API_ENCRYPTION_KEY=$SERVICE_BASE64_64_BUDIBASE + - JWT_SECRET=$SERVICE_BASE64_64_BUDIBASE + - LOG_LEVEL=info + - ENABLE_ANALYTICS=true + - REDIS_URL=redis-service:6379 + - REDIS_PASSWORD=$SERVICE_PASSWORD_BUDIBASE_REDIS + - BB_ADMIN_USER_EMAIL= + - BB_ADMIN_USER_PASSWORD= + depends_on: + - worker-service + - redis-service + healthcheck: + test: ["CMD", "curl", "-f", "http://app-service:4002"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + + worker-service: + restart: unless-stopped + image: budibase.docker.scarf.sh/budibase/worker + environment: + - SELF_HOSTED=1 + - PORT=4003 + - CLUSTER_PORT=10000 + - API_ENCRYPTION_KEY=$SERVICE_BASE64_64_BUDIBASE + - JWT_SECRET=$SERVICE_BASE64_64_BUDIBASE + - MINIO_ACCESS_KEY=$SERVICE_USER_BUDIBASE_MINIO + - MINIO_SECRET_KEY=$SERVICE_PASSWORD_BUDIBASE_MINIO + - MINIO_URL=http://minio-service:9000 + - APPS_URL=http://app-service:4002 + - COUCH_DB_USERNAME=$SERVICE_USER_BUDIBASE_COUCHDB + - COUCH_DB_PASSWORD=$SERVICE_PASSWORD_BUDIBASE_COUCHDB + - COUCH_DB_URL=http://$SERVICE_USER_BUDIBASE_COUCHDB:$SERVICE_PASSWORD_BUDIBASE_COUCHDB@couchdb-service:5984 + - INTERNAL_API_KEY=$SERVICE_BASE64_128_BUDIBASE + - REDIS_URL=redis-service:6379 + - REDIS_PASSWORD=$SERVICE_PASSWORD_BUDIBASE_REDIS + depends_on: + - redis-service + - minio-service + healthcheck: + test: ["CMD", "curl", "-f", "http://worker-service:4003"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + + minio-service: + restart: unless-stopped + image: minio/minio + volumes: + - minio_data:/data + environment: + - MINIO_ACCESS_KEY=$SERVICE_USER_BUDIBASE_MINIO + - MINIO_SECRET_KEY=$SERVICE_PASSWORD_BUDIBASE_MINIO + - MINIO_BROWSER=off + command: server /data --console-address ":9001" + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] + interval: 30s + timeout: 20s + retries: 3 + + proxy-service: + restart: unless-stopped + image: budibase/proxy + environment: + - SERVICE_FQDN_BUDIBASE_10000 + - PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND=10 + - PROXY_RATE_LIMIT_API_PER_SECOND=20 + - APPS_UPSTREAM_URL=http://app-service:4002 + - WORKER_UPSTREAM_URL=http://worker-service:4003 + - MINIO_UPSTREAM_URL=http://minio-service:9000 + - COUCHDB_UPSTREAM_URL=http://couchdb-service:5984 + - WATCHTOWER_UPSTREAM_URL=http://watchtower-service:8080 + - RESOLVER=127.0.0.11 + depends_on: + - minio-service + - worker-service + - app-service + - couchdb-service + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:10000/"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + + couchdb-service: + restart: unless-stopped + image: budibase/couchdb + environment: + - COUCHDB_PASSWORD=$SERVICE_PASSWORD_BUDIBASE_COUCHDB + - COUCHDB_USER=$SERVICE_USER_BUDIBASE_COUCHDB + - TARGETBUILD=docker-compose + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5984/"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + volumes: + - couchdb3_data:/opt/couchdb/data + + redis-service: + restart: unless-stopped + image: redis + command: redis-server --requirepass "$SERVICE_PASSWORD_BUDIBASE_REDIS" + volumes: + - redis_data:/data + healthcheck: + test: ["CMD", "redis-cli", "-a", "$SERVICE_PASSWORD_BUDIBASE_REDIS", "ping"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + + watchtower-service: + restart: always + image: containrrr/watchtower + volumes: + - /var/run/docker.sock:/var/run/docker.sock + command: --debug --http-api-update bbapps bbworker bbproxy + environment: + - WATCHTOWER_HTTP_API=true + - WATCHTOWER_HTTP_API_TOKEN=$SERVICE_PASSWORD_BUDIBASE_WATCHTOWER + - WATCHTOWER_CLEANUP=true + labels: + - "com.centurylinklabs.watchtower.enable=false" + healthcheck: + test: ["CMD", "curl", "-f", "http://watchtower-service:8080"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s + +volumes: + couchdb3_data: + driver: local + minio_data: + driver: local + redis_data: + driver: local \ No newline at end of file From 4a89d61a59f437b46e07ddc9ef61dad856c998f9 Mon Sep 17 00:00:00 2001 From: Matt <63170914+matas0@users.noreply.github.com> Date: Wed, 14 Aug 2024 19:33:33 +0400 Subject: [PATCH 2/2] Improve healthcheck --- templates/compose/budibase.yaml | 34 ++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/templates/compose/budibase.yaml b/templates/compose/budibase.yaml index c08cdedd7..9e4ab8fc5 100644 --- a/templates/compose/budibase.yaml +++ b/templates/compose/budibase.yaml @@ -1,4 +1,4 @@ -# documentation: https://docs.budibase.com/ +# documentation: https://docs.budibase.com/docs/docker-compose # slogan: Low code platform for building business apps and workflows in minutes. Supports PostgreSQL, MySQL, MSSQL, MongoDB, Rest API, Docker, K8s, and more. # tags: budibase,low-code,business-apps,workflow,automation,postgresql,mysql,mssql,mongodb,docker,kubernetes # logo: svgs/budibase.svg @@ -30,11 +30,11 @@ services: - worker-service - redis-service healthcheck: - test: ["CMD", "curl", "-f", "http://app-service:4002"] - interval: 15s - timeout: 15s - retries: 5 - start_period: 10s + test: ["CMD", "curl", "-f", "http://app-service:4002"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s worker-service: restart: unless-stopped @@ -59,11 +59,11 @@ services: - redis-service - minio-service healthcheck: - test: ["CMD", "curl", "-f", "http://worker-service:4003"] - interval: 15s - timeout: 15s - retries: 5 - start_period: 10s + test: ["CMD", "curl", "-f", "http://worker-service:4003"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s minio-service: restart: unless-stopped @@ -148,11 +148,11 @@ services: labels: - "com.centurylinklabs.watchtower.enable=false" healthcheck: - test: ["CMD", "curl", "-f", "http://watchtower-service:8080"] - interval: 15s - timeout: 15s - retries: 5 - start_period: 10s + test: ["CMD", "curl", "-f", "http://watchtower-service:8080"] + interval: 15s + timeout: 15s + retries: 5 + start_period: 10s volumes: couchdb3_data: @@ -160,4 +160,4 @@ volumes: minio_data: driver: local redis_data: - driver: local \ No newline at end of file + driver: local