Budibase
Budibase is an open-source low-code platform that saves engineers 100s of hours building forms, portals, and approval apps, securely.
Configuration
services:
apps:
image: budibase.docker.scarf.sh/budibase/apps:3.5.3
restart: unless-stopped
environment:
SELF_HOSTED: 1
LOG_LEVEL: info
PORT: 4002
INTERNAL_API_KEY: ${BB_INTERNAL_API_KEY}
API_ENCRYPTION_KEY: ${BB_API_ENCRYPTION_KEY}
JWT_SECRET: ${BB_JWT_SECRET}
MINIO_ACCESS_KEY: ${BB_MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${BB_MINIO_SECRET_KEY}
MINIO_URL: http://minio:9000
REDIS_URL: redis:6379
REDIS_PASSWORD: ${BB_REDIS_PASSWORD}
WORKER_URL: http://worker:4003
COUCH_DB_USERNAME: budibase
COUCH_DB_PASSWORD: ${BB_COUCHDB_PASSWORD}
COUCH_DB_URL: http://budibase:${BB_COUCHDB_PASSWORD}@couchdb:5984
BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT:-PRODUCTION}
ENABLE_ANALYTICS: ${ENABLE_ANALYTICS:-true}
BB_ADMIN_USER_EMAIL: ''
BB_ADMIN_USER_PASSWORD: ''
depends_on:
worker:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test:
- CMD
- wget
- '--spider'
- '-qO-'
- 'http://localhost:4002/health'
interval: 15s
timeout: 15s
retries: 5
start_period: 10s
worker:
image: budibase.docker.scarf.sh/budibase/worker:3.2.25
restart: unless-stopped
environment:
SELF_HOSTED: 1
LOG_LEVEL: info
PORT: 4003
CLUSTER_PORT: 10000
INTERNAL_API_KEY: ${BB_INTERNAL_API_KEY}
API_ENCRYPTION_KEY: ${BB_API_ENCRYPTION_KEY}
JWT_SECRET: ${BB_JWT_SECRET}
MINIO_ACCESS_KEY: ${BB_MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${BB_MINIO_SECRET_KEY}
APPS_URL: http://apps:4002
MINIO_URL: http://minio:9000
REDIS_URL: redis:6379
REDIS_PASSWORD: ${BB_REDIS_PASSWORD}
COUCH_DB_USERNAME: budibase
COUCH_DB_PASSWORD: ${BB_COUCHDB_PASSWORD}
COUCH_DB_URL: http://budibase:${BB_COUCHDB_PASSWORD}@couchdb:5984
BUDIBASE_ENVIRONMENT: ${BUDIBASE_ENVIRONMENT:-PRODUCTION}
ENABLE_ANALYTICS: ${ENABLE_ANALYTICS:-true}
depends_on:
redis:
condition: service_healthy
minio:
condition: service_healthy
healthcheck:
test:
- CMD
- wget
- '--spider'
- '-qO-'
- 'http://localhost:4003/health'
interval: 15s
timeout: 15s
retries: 5
start_period: 10s
minio:
image: minio/minio:RELEASE.2024-11-07T00-52-20Z
restart: unless-stopped
volumes:
- 'minio_data:/data'
environment:
MINIO_ROOT_USER: ${BB_MINIO_ACCESS_KEY}
MINIO_ROOT_PASSWORD: ${BB_MINIO_SECRET_KEY}
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:
image: budibase/proxy:3.2.25
restart: unless-stopped
environment:
PROXY_RATE_LIMIT_WEBHOOKS_PER_SECOND: 10
PROXY_RATE_LIMIT_API_PER_SECOND: 20
APPS_UPSTREAM_URL: http://apps:4002
WORKER_UPSTREAM_URL: http://worker:4003
MINIO_UPSTREAM_URL: http://minio:9000
COUCHDB_UPSTREAM_URL: http://couchdb:5984
WATCHTOWER_UPSTREAM_URL: http://watchtower:8080
RESOLVER: 127.0.0.11
depends_on:
minio:
condition: service_healthy
worker:
condition: service_healthy
apps:
condition: service_healthy
couchdb:
condition: service_healthy
healthcheck:
test:
- CMD
- curl
- '-f'
- 'http://localhost:10000/'
interval: 15s
timeout: 15s
retries: 5
start_period: 10s
couchdb:
image: budibase/couchdb:v3.3.3
restart: unless-stopped
environment:
COUCHDB_USER: budibase
COUCHDB_PASSWORD: ${BB_COUCHDB_PASSWORD}
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:
image: redis:7.2-alpine
restart: unless-stopped
command: 'redis-server --requirepass "${BB_REDIS_PASSWORD}"'
volumes:
- 'redis_data:/data'
healthcheck:
test:
- CMD
- redis-cli
- '-a'
- ${BB_REDIS_PASSWORD}
- ping
interval: 15s
timeout: 15s
retries: 5
start_period: 10s
watchtower:
restart: unless-stopped
image: containrrr/watchtower:1.7.1
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: ${BB_WATCHTOWER_PASSWORD}
WATCHTOWER_CLEANUP: true
labels:
- com.centurylinklabs.watchtower.enable=false
volumes:
minio_data:
couchdb3_data:
redis_data:[variables]
main_domain = "${domain}"
api_key = "${password:32}"
encryption_key = "${password:32}"
jwt_secret = "${password:32}"
couchdb_password = "${password:32}"
redis_password = "${password:32}"
minio_access_key = "${password:32}"
minio_secret_key = "${password:32}"
watchtower_password = "${password:32}"
[config]
env = [
"BB_HOST=${main_domain}",
"BB_INTERNAL_API_KEY=${api_key}",
"BB_API_ENCRYPTION_KEY=${encryption_key}",
"BB_JWT_SECRET=${jwt_secret}",
"BB_COUCHDB_PASSWORD=${couchdb_password}",
"BB_REDIS_PASSWORD=${redis_password}",
"BB_WATCHTOWER_PASSWORD=${watchtower_password}",
"BB_MINIO_ACCESS_KEY=${minio_access_key}",
"BB_MINIO_SECRET_KEY=${minio_secret_key}",
]
mounts = []
[[config.domains]]
serviceName = "proxy"
port = 10_000
host = "${main_domain}"Base64
To import this template in Dokploy: create a Compose service → Advanced → Base64 import and paste the content below:
ewogICJjb21wb3NlIjogInNlcnZpY2VzOlxuICBhcHBzOlxuICAgIGltYWdlOiBidWRpYmFzZS5kb2NrZXIuc2NhcmYuc2gvYnVkaWJhc2UvYXBwczozLjUuM1xuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG5cbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIFNFTEZfSE9TVEVEOiAxXG4gICAgICBMT0dfTEVWRUw6IGluZm9cbiAgICAgIFBPUlQ6IDQwMDJcbiAgICAgIElOVEVSTkFMX0FQSV9LRVk6ICR7QkJfSU5URVJOQUxfQVBJX0tFWX1cbiAgICAgIEFQSV9FTkNSWVBUSU9OX0tFWTogJHtCQl9BUElfRU5DUllQVElPTl9LRVl9XG4gICAgICBKV1RfU0VDUkVUOiAke0JCX0pXVF9TRUNSRVR9XG4gICAgICBNSU5JT19BQ0NFU1NfS0VZOiAke0JCX01JTklPX0FDQ0VTU19LRVl9XG4gICAgICBNSU5JT19TRUNSRVRfS0VZOiAke0JCX01JTklPX1NFQ1JFVF9LRVl9XG4gICAgICBNSU5JT19VUkw6IGh0dHA6Ly9taW5pbzo5MDAwXG4gICAgICBSRURJU19VUkw6IHJlZGlzOjYzNzlcbiAgICAgIFJFRElTX1BBU1NXT1JEOiAke0JCX1JFRElTX1BBU1NXT1JEfVxuICAgICAgV09SS0VSX1VSTDogaHR0cDovL3dvcmtlcjo0MDAzXG4gICAgICBDT1VDSF9EQl9VU0VSTkFNRTogYnVkaWJhc2VcbiAgICAgIENPVUNIX0RCX1BBU1NXT1JEOiAke0JCX0NPVUNIREJfUEFTU1dPUkR9XG4gICAgICBDT1VDSF9EQl9VUkw6IGh0dHA6Ly9idWRpYmFzZToke0JCX0NPVUNIREJfUEFTU1dPUkR9QGNvdWNoZGI6NTk4NFxuICAgICAgQlVESUJBU0VfRU5WSVJPTk1FTlQ6ICR7QlVESUJBU0VfRU5WSVJPTk1FTlQ6LVBST0RVQ1RJT059XG4gICAgICBFTkFCTEVfQU5BTFlUSUNTOiAke0VOQUJMRV9BTkFMWVRJQ1M6LXRydWV9XG4gICAgICBCQl9BRE1JTl9VU0VSX0VNQUlMOiAnJ1xuICAgICAgQkJfQURNSU5fVVNFUl9QQVNTV09SRDogJydcbiAgICBkZXBlbmRzX29uOlxuICAgICAgd29ya2VyOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgcmVkaXM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OlxuICAgICAgICAtIENNRFxuICAgICAgICAtIHdnZXRcbiAgICAgICAgLSAnLS1zcGlkZXInXG4gICAgICAgIC0gJy1xTy0nXG4gICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMi9oZWFsdGgnXG4gICAgICBpbnRlcnZhbDogMTVzXG4gICAgICB0aW1lb3V0OiAxNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICAgIHN0YXJ0X3BlcmlvZDogMTBzXG4gIHdvcmtlcjpcbiAgICBpbWFnZTogYnVkaWJhc2UuZG9ja2VyLnNjYXJmLnNoL2J1ZGliYXNlL3dvcmtlcjozLjIuMjVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBTRUxGX0hPU1RFRDogMVxuICAgICAgTE9HX0xFVkVMOiBpbmZvXG4gICAgICBQT1JUOiA0MDAzXG4gICAgICBDTFVTVEVSX1BPUlQ6IDEwMDAwXG4gICAgICBJTlRFUk5BTF9BUElfS0VZOiAke0JCX0lOVEVSTkFMX0FQSV9LRVl9XG4gICAgICBBUElfRU5DUllQVElPTl9LRVk6ICR7QkJfQVBJX0VOQ1JZUFRJT05fS0VZfVxuICAgICAgSldUX1NFQ1JFVDogJHtCQl9KV1RfU0VDUkVUfVxuICAgICAgTUlOSU9fQUNDRVNTX0tFWTogJHtCQl9NSU5JT19BQ0NFU1NfS0VZfVxuICAgICAgTUlOSU9fU0VDUkVUX0tFWTogJHtCQl9NSU5JT19TRUNSRVRfS0VZfVxuICAgICAgQVBQU19VUkw6IGh0dHA6Ly9hcHBzOjQwMDJcbiAgICAgIE1JTklPX1VSTDogaHR0cDovL21pbmlvOjkwMDBcbiAgICAgIFJFRElTX1VSTDogcmVkaXM6NjM3OVxuICAgICAgUkVESVNfUEFTU1dPUkQ6ICR7QkJfUkVESVNfUEFTU1dPUkR9XG4gICAgICBDT1VDSF9EQl9VU0VSTkFNRTogYnVkaWJhc2VcbiAgICAgIENPVUNIX0RCX1BBU1NXT1JEOiAke0JCX0NPVUNIREJfUEFTU1dPUkR9XG4gICAgICBDT1VDSF9EQl9VUkw6IGh0dHA6Ly9idWRpYmFzZToke0JCX0NPVUNIREJfUEFTU1dPUkR9QGNvdWNoZGI6NTk4NFxuICAgICAgQlVESUJBU0VfRU5WSVJPTk1FTlQ6ICR7QlVESUJBU0VfRU5WSVJPTk1FTlQ6LVBST0RVQ1RJT059XG4gICAgICBFTkFCTEVfQU5BTFlUSUNTOiAke0VOQUJMRV9BTkFMWVRJQ1M6LXRydWV9XG4gICAgZGVwZW5kc19vbjpcbiAgICAgIHJlZGlzOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgICAgbWluaW86XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgaGVhbHRoY2hlY2s6XG4gICAgICB0ZXN0OlxuICAgICAgICAtIENNRFxuICAgICAgICAtIHdnZXRcbiAgICAgICAgLSAnLS1zcGlkZXInXG4gICAgICAgIC0gJy1xTy0nXG4gICAgICAgIC0gJ2h0dHA6Ly9sb2NhbGhvc3Q6NDAwMy9oZWFsdGgnXG4gICAgICBpbnRlcnZhbDogMTVzXG4gICAgICB0aW1lb3V0OiAxNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICAgIHN0YXJ0X3BlcmlvZDogMTBzXG4gIG1pbmlvOlxuICAgIGltYWdlOiBtaW5pby9taW5pbzpSRUxFQVNFLjIwMjQtMTEtMDdUMDAtNTItMjBaXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICAgIHZvbHVtZXM6XG4gICAgICAtICdtaW5pb19kYXRhOi9kYXRhJ1xuICAgIGVudmlyb25tZW50OlxuICAgICAgTUlOSU9fUk9PVF9VU0VSOiAke0JCX01JTklPX0FDQ0VTU19LRVl9XG4gICAgICBNSU5JT19ST09UX1BBU1NXT1JEOiAke0JCX01JTklPX1NFQ1JFVF9LRVl9XG4gICAgICBNSU5JT19CUk9XU0VSOiBvZmZcbiAgICBjb21tYW5kOiAnc2VydmVyIC9kYXRhIC0tY29uc29sZS1hZGRyZXNzIFwiOjkwMDFcIidcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6XG4gICAgICAgIC0gQ01EXG4gICAgICAgIC0gY3VybFxuICAgICAgICAtICctZidcbiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdDo5MDAwL21pbmlvL2hlYWx0aC9saXZlJ1xuICAgICAgaW50ZXJ2YWw6IDMwc1xuICAgICAgdGltZW91dDogMjBzXG4gICAgICByZXRyaWVzOiAzXG4gIHByb3h5OlxuICAgIGltYWdlOiBidWRpYmFzZS9wcm94eTozLjIuMjVcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQUk9YWV9SQVRFX0xJTUlUX1dFQkhPT0tTX1BFUl9TRUNPTkQ6IDEwXG4gICAgICBQUk9YWV9SQVRFX0xJTUlUX0FQSV9QRVJfU0VDT05EOiAyMFxuICAgICAgQVBQU19VUFNUUkVBTV9VUkw6IGh0dHA6Ly9hcHBzOjQwMDJcbiAgICAgIFdPUktFUl9VUFNUUkVBTV9VUkw6IGh0dHA6Ly93b3JrZXI6NDAwM1xuICAgICAgTUlOSU9fVVBTVFJFQU1fVVJMOiBodHRwOi8vbWluaW86OTAwMFxuICAgICAgQ09VQ0hEQl9VUFNUUkVBTV9VUkw6IGh0dHA6Ly9jb3VjaGRiOjU5ODRcbiAgICAgIFdBVENIVE9XRVJfVVBTVFJFQU1fVVJMOiBodHRwOi8vd2F0Y2h0b3dlcjo4MDgwXG4gICAgICBSRVNPTFZFUjogMTI3LjAuMC4xMVxuICAgIGRlcGVuZHNfb246XG4gICAgICBtaW5pbzpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIHdvcmtlcjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICAgIGFwcHM6XG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5XG4gICAgICBjb3VjaGRiOlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeVxuICAgIGhlYWx0aGNoZWNrOlxuICAgICAgdGVzdDpcbiAgICAgICAgLSBDTURcbiAgICAgICAgLSBjdXJsXG4gICAgICAgIC0gJy1mJ1xuICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjEwMDAwLydcbiAgICAgIGludGVydmFsOiAxNXNcbiAgICAgIHRpbWVvdXQ6IDE1c1xuICAgICAgcmV0cmllczogNVxuICAgICAgc3RhcnRfcGVyaW9kOiAxMHNcbiAgY291Y2hkYjpcbiAgICBpbWFnZTogYnVkaWJhc2UvY291Y2hkYjp2My4zLjNcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBDT1VDSERCX1VTRVI6IGJ1ZGliYXNlXG4gICAgICBDT1VDSERCX1BBU1NXT1JEOiAke0JCX0NPVUNIREJfUEFTU1dPUkR9XG4gICAgICBUQVJHRVRCVUlMRDogZG9ja2VyLWNvbXBvc2VcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6XG4gICAgICAgIC0gQ01EXG4gICAgICAgIC0gY3VybFxuICAgICAgICAtICctZidcbiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdDo1OTg0LydcbiAgICAgIGludGVydmFsOiAxNXNcbiAgICAgIHRpbWVvdXQ6IDE1c1xuICAgICAgcmV0cmllczogNVxuICAgICAgc3RhcnRfcGVyaW9kOiAxMHNcbiAgICB2b2x1bWVzOlxuICAgICAgLSAnY291Y2hkYjNfZGF0YTovb3B0L2NvdWNoZGIvZGF0YSdcbiAgcmVkaXM6XG4gICAgaW1hZ2U6IHJlZGlzOjcuMi1hbHBpbmVcblxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgY29tbWFuZDogJ3JlZGlzLXNlcnZlciAtLXJlcXVpcmVwYXNzIFwiJHtCQl9SRURJU19QQVNTV09SRH1cIidcbiAgICB2b2x1bWVzOlxuICAgICAgLSAncmVkaXNfZGF0YTovZGF0YSdcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6XG4gICAgICAgIC0gQ01EXG4gICAgICAgIC0gcmVkaXMtY2xpXG4gICAgICAgIC0gJy1hJ1xuICAgICAgICAtICR7QkJfUkVESVNfUEFTU1dPUkR9XG4gICAgICAgIC0gcGluZ1xuICAgICAgaW50ZXJ2YWw6IDE1c1xuICAgICAgdGltZW91dDogMTVzXG4gICAgICByZXRyaWVzOiA1XG4gICAgICBzdGFydF9wZXJpb2Q6IDEwc1xuICB3YXRjaHRvd2VyOlxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkICAgXG4gXG4gICAgaW1hZ2U6IGNvbnRhaW5ycnIvd2F0Y2h0b3dlcjoxLjcuMVxuICAgIHZvbHVtZXM6XG4gICAgICAtICcvdmFyL3J1bi9kb2NrZXIuc29jazovdmFyL3J1bi9kb2NrZXIuc29jaydcbiAgICBjb21tYW5kOiAnLS1kZWJ1ZyAtLWh0dHAtYXBpLXVwZGF0ZSBiYmFwcHMgYmJ3b3JrZXIgYmJwcm94eSdcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIFdBVENIVE9XRVJfSFRUUF9BUEk6IHRydWVcbiAgICAgIFdBVENIVE9XRVJfSFRUUF9BUElfVE9LRU46ICR7QkJfV0FUQ0hUT1dFUl9QQVNTV09SRH1cbiAgICAgIFdBVENIVE9XRVJfQ0xFQU5VUDogdHJ1ZVxuICAgIGxhYmVsczpcbiAgICAgIC0gY29tLmNlbnR1cnlsaW5rbGFicy53YXRjaHRvd2VyLmVuYWJsZT1mYWxzZVxuXG5cbnZvbHVtZXM6XG4gIG1pbmlvX2RhdGE6XG4gIGNvdWNoZGIzX2RhdGE6XG4gIHJlZGlzX2RhdGE6ICIsCiAgImNvbmZpZyI6ICJbdmFyaWFibGVzXVxubWFpbl9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5hcGlfa2V5ID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5lbmNyeXB0aW9uX2tleSA9IFwiJHtwYXNzd29yZDozMn1cIlxuand0X3NlY3JldCA9IFwiJHtwYXNzd29yZDozMn1cIlxuY291Y2hkYl9wYXNzd29yZCA9IFwiJHtwYXNzd29yZDozMn1cIlxucmVkaXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbm1pbmlvX2FjY2Vzc19rZXkgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbm1pbmlvX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcbndhdGNodG93ZXJfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6MzJ9XCJcblxuW2NvbmZpZ11cbmVudiA9IFtcbiAgXCJCQl9IT1NUPSR7bWFpbl9kb21haW59XCIsXG4gIFwiQkJfSU5URVJOQUxfQVBJX0tFWT0ke2FwaV9rZXl9XCIsXG4gIFwiQkJfQVBJX0VOQ1JZUFRJT05fS0VZPSR7ZW5jcnlwdGlvbl9rZXl9XCIsXG4gIFwiQkJfSldUX1NFQ1JFVD0ke2p3dF9zZWNyZXR9XCIsXG4gIFwiQkJfQ09VQ0hEQl9QQVNTV09SRD0ke2NvdWNoZGJfcGFzc3dvcmR9XCIsXG4gIFwiQkJfUkVESVNfUEFTU1dPUkQ9JHtyZWRpc19wYXNzd29yZH1cIixcbiAgXCJCQl9XQVRDSFRPV0VSX1BBU1NXT1JEPSR7d2F0Y2h0b3dlcl9wYXNzd29yZH1cIixcbiAgXCJCQl9NSU5JT19BQ0NFU1NfS0VZPSR7bWluaW9fYWNjZXNzX2tleX1cIixcbiAgXCJCQl9NSU5JT19TRUNSRVRfS0VZPSR7bWluaW9fc2VjcmV0X2tleX1cIixcbl1cbm1vdW50cyA9IFtdXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcInByb3h5XCJcbnBvcnQgPSAxMF8wMDBcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcbiIKfQ==Links
Tags
database, low-code, nocode, applications
Version: 3.5.3