From 1114c1d08ef790543aec542f46072476feb6e804 Mon Sep 17 00:00:00 2001 From: Sebastian Witkowski Date: Fri, 22 Nov 2024 09:48:32 +0000 Subject: [PATCH 1/4] Update docker-compose.yaml Converted to work with Coolify --- deploy/docker/docker-compose.yaml | 148 ++++++++++++++++-------------- 1 file changed, 78 insertions(+), 70 deletions(-) diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index 0ca4306556..14c0b54dfc 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -1,87 +1,95 @@ version: "3" services: + mongodb: + image: "mongo:7.0" + environment: + MONGO_INITDB_DATABASE: lowcoder + MONGO_INITDB_ROOT_USERNAME: lowcoder + MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD} + volumes: + - mongodb_data:/data/db + restart: unless-stopped + + redis: + image: redis:7-alpine + restart: unless-stopped + volumes: + - redis_data:/data - ## - ## Start Lowcoder (all-in-one) - ## lowcoder-api-service: - image: lowcoderorg/lowcoder-ce:latest - container_name: lowcoder - ports: - - "3000:3000" - - "3443:3443" - # - "27017:27017" + image: lowcoderorg/lowcoder-ce-api-service:latest environment: - # Public base url - LOWCODER_PUBLIC_URL: "http://localhost:3000/" - # enable services - LOWCODER_REDIS_ENABLED: "true" - LOWCODER_MONGODB_ENABLED: "true" - # - # Set LOWCODER_MONGODB_EXPOSED to "true" and uncomment mongodb port - # to make internal mongo database accessible from host - # - LOWCODER_MONGODB_EXPOSED: "false" - LOWCODER_API_SERVICE_ENABLED: "true" - LOWCODER_NODE_SERVICE_ENABLED: "true" - LOWCODER_FRONTEND_ENABLED: "true" - # generic parameters - # Effective user and group IDs - LOWCODER_PUID: "1000" - LOWCODER_PGID: "1000" - # api-service parameters + LOWCODER_PUBLIC_URL: ${APP_URL} + LOWCODER_PUID: "9001" + LOWCODER_PGID: "9001" + LOWCODER_MONGODB_URL: "mongodb://lowcoder:${MONGODB_PASSWORD}@mongodb/lowcoder?authSource=admin" + LOWCODER_REDIS_URL: "redis://redis:6379" + LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" + LOWCODER_MAX_QUERY_TIMEOUT: 120 + LOWCODER_MAX_REQUEST_SIZE: 20m + LOWCODER_EMAIL_AUTH_ENABLED: ${EMAIL_AUTH_ENABLED:-true} + LOWCODER_EMAIL_SIGNUP_ENABLED: ${EMAIL_SIGNUP_ENABLED:-true} + LOWCODER_CREATE_WORKSPACE_ON_SIGNUP: ${CREATE_WORKSPACE_ON_SIGNUP:-true} + LOWCODER_DB_ENCRYPTION_PASSWORD: ${DB_ENCRYPTION_PASSWORD} + LOWCODER_DB_ENCRYPTION_SALT: ${DB_ENCRYPTION_SALT} + LOWCODER_CORS_DOMAINS: "*" LOWCODER_MAX_ORGS_PER_USER: 100 LOWCODER_MAX_MEMBERS_PER_ORG: 1000 LOWCODER_MAX_GROUPS_PER_ORG: 100 LOWCODER_MAX_APPS_PER_ORG: 1000 LOWCODER_MAX_DEVELOPERS: 50 - #LOWCODER_MONGODB_URL: "mongodb://lowcoder:secret123@mongodb/lowcoder?authSource=admin" - LOWCODER_MONGODB_URL: "mongodb://localhost:27017/lowcoder?authSource=admin" - LOWCODER_REDIS_URL: "redis://localhost:6379" - LOWCODER_EMAIL_SIGNUP_ENABLED: "true" - LOWCODER_EMAIL_AUTH_ENABLED: "true" - LOWCODER_CREATE_WORKSPACE_ON_SIGNUP: "true" - # - # ! PLEASE CHANGE THESE TO SOMETHING UNIQUE ! - # - # LOWCODER_DB_ENCRYPTION_PASSWORD and LOWCODER_DB_ENCRYPTION_SALT is used - # to encrypt sensitive data in database so it is important to change the defaults - # - LOWCODER_DB_ENCRYPTION_PASSWORD: "lowcoder.org" - LOWCODER_DB_ENCRYPTION_SALT: "lowcoder.org" - LOWCODER_CORS_DOMAINS: "*" - # - # API-KEY secret - should be a string of at least 32 random characters - # - on linux/mac, generate one eg. with: head /dev/urandom | head -c 30 | shasum -a 256 - # - LOWCODER_API_KEY_SECRET: "5a41b090758b39b226603177ef48d73ae9839dd458ccb7e66f7e7cc028d5a50b" - # api and node service parameters + LOWCODER_API_KEY_SECRET: ${API_KEY_SECRET} LOWCODER_PLUGINS_DIR: "../plugins" LOWCODER_API_RATE_LIMIT: 50 - LOWCODER_API_SERVICE_URL: "http://localhost:8080" - LOWCODER_NODE_SERVICE_URL: "http://localhost:6060" - # frontend parameters - LOWCODER_MAX_REQUEST_SIZE: 20m - LOWCODER_MAX_QUERY_TIMEOUT: 120 LOWCODER_WORKSPACE_MODE: SAAS LOWCODER_MARKETPLACE_PRIVATE_MODE: "true" - # Lowcoder notification emails setup - LOWCODER_ADMIN_SMTP_HOST: localhost - LOWCODER_ADMIN_SMTP_PORT: 587 - LOWCODER_ADMIN_SMTP_USERNAME: - LOWCODER_ADMIN_SMTP_PASSWORD: - LOWCODER_ADMIN_SMTP_AUTH: "true" - LOWCODER_ADMIN_SMTP_SSL_ENABLED: "false" - LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED: "true" - LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED: "true" - # Email used as sender in lost password email - LOWCODER_EMAIL_NOTIFICATIONS_SENDER: info@localhost - # Lowcoder superuser details - LOWCODER_SUPERUSER_USERNAME: admin@localhost - # If left blank, a password will be generated and written into log (lowcoder-stacks/logs/api-service/api-service.log) - LOWCODER_SUPERUSER_PASSWORD: + LOWCODER_ADMIN_SMTP_HOST: ${SMTP_HOST} + LOWCODER_ADMIN_SMTP_PORT: ${SMTP_PORT:-587} + LOWCODER_ADMIN_SMTP_USERNAME: ${SMTP_USERNAME} + LOWCODER_ADMIN_SMTP_PASSWORD: ${SMTP_PASSWORD} + LOWCODER_ADMIN_SMTP_AUTH: ${SMTP_AUTH:-true} + LOWCODER_ADMIN_SMTP_SSL_ENABLED: ${SMTP_SSL:-false} + LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED: ${SMTP_STARTTLS:-true} + LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED: ${SMTP_STARTTLS_REQUIRED:-true} + LOWCODER_EMAIL_NOTIFICATIONS_SENDER: ${EMAIL_SENDER:-info@localhost} + LOWCODER_SUPERUSER_USERNAME: ${ADMIN_EMAIL:-admin@localhost} + LOWCODER_SUPERUSER_PASSWORD: ${ADMIN_PASSWORD} + restart: unless-stopped + depends_on: + - mongodb + - redis volumes: - - ./lowcoder-stacks:/lowcoder-stacks - - ./lowcoder-stacks/assets:/lowcoder/assets + - lowcoder_assets:/lowcoder/assets + + lowcoder-node-service: + image: lowcoderorg/lowcoder-ce-node-service:latest + environment: + LOWCODER_PUID: "9001" + LOWCODER_PGID: "9001" + LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" restart: unless-stopped + depends_on: + - lowcoder-api-service + + lowcoder-frontend: + image: lowcoderorg/lowcoder-ce-frontend:latest + ports: + - "${PORT:-3000}:3000" + environment: + LOWCODER_PUID: "9001" + LOWCODER_PGID: "9001" + LOWCODER_MAX_REQUEST_SIZE: 20m + LOWCODER_MAX_QUERY_TIMEOUT: 120 + LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" + LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" + restart: unless-stopped + depends_on: + - lowcoder-node-service + - lowcoder-api-service + volumes: + - lowcoder_assets:/lowcoder/assets +volumes: + mongodb_data: + redis_data: + lowcoder_assets: From 95ca0f0d673815498feb36c3ce66319c10f58096 Mon Sep 17 00:00:00 2001 From: Sebastian Witkowski Date: Fri, 22 Nov 2024 10:17:16 +0000 Subject: [PATCH 2/4] Update docker-compose.yaml --- deploy/docker/docker-compose.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index 14c0b54dfc..f8c0a56631 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -19,7 +19,7 @@ services: lowcoder-api-service: image: lowcoderorg/lowcoder-ce-api-service:latest environment: - LOWCODER_PUBLIC_URL: ${APP_URL} + LOWCODER_PUBLIC_URL: "http://localhost:3000/" LOWCODER_PUID: "9001" LOWCODER_PGID: "9001" LOWCODER_MONGODB_URL: "mongodb://lowcoder:${MONGODB_PASSWORD}@mongodb/lowcoder?authSource=admin" @@ -74,7 +74,7 @@ services: lowcoder-frontend: image: lowcoderorg/lowcoder-ce-frontend:latest ports: - - "${PORT:-3000}:3000" + - "443:3000" environment: LOWCODER_PUID: "9001" LOWCODER_PGID: "9001" @@ -82,6 +82,9 @@ services: LOWCODER_MAX_QUERY_TIMEOUT: 120 LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" + labels: + coolify.enable.traefik: true + coolify.enable.https: true restart: unless-stopped depends_on: - lowcoder-node-service From 3c4df884e6e39a29ef4c205b5cbef7dac35cd860 Mon Sep 17 00:00:00 2001 From: Sebastian Witkowski Date: Fri, 22 Nov 2024 10:51:10 +0000 Subject: [PATCH 3/4] Update docker-compose.yaml --- deploy/docker/docker-compose.yaml | 119 ++++++++++-------------------- 1 file changed, 37 insertions(+), 82 deletions(-) diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index f8c0a56631..f266e50865 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -1,98 +1,53 @@ version: "3" services: - mongodb: - image: "mongo:7.0" - environment: - MONGO_INITDB_DATABASE: lowcoder - MONGO_INITDB_ROOT_USERNAME: lowcoder - MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD} - volumes: - - mongodb_data:/data/db - restart: unless-stopped - - redis: - image: redis:7-alpine - restart: unless-stopped - volumes: - - redis_data:/data - lowcoder-api-service: - image: lowcoderorg/lowcoder-ce-api-service:latest + image: lowcoderorg/lowcoder-ce:latest + container_name: lowcoder + ports: + - "3000:3000" + - "3443:3443" environment: LOWCODER_PUBLIC_URL: "http://localhost:3000/" - LOWCODER_PUID: "9001" - LOWCODER_PGID: "9001" - LOWCODER_MONGODB_URL: "mongodb://lowcoder:${MONGODB_PASSWORD}@mongodb/lowcoder?authSource=admin" - LOWCODER_REDIS_URL: "redis://redis:6379" - LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" - LOWCODER_MAX_QUERY_TIMEOUT: 120 - LOWCODER_MAX_REQUEST_SIZE: 20m - LOWCODER_EMAIL_AUTH_ENABLED: ${EMAIL_AUTH_ENABLED:-true} - LOWCODER_EMAIL_SIGNUP_ENABLED: ${EMAIL_SIGNUP_ENABLED:-true} - LOWCODER_CREATE_WORKSPACE_ON_SIGNUP: ${CREATE_WORKSPACE_ON_SIGNUP:-true} - LOWCODER_DB_ENCRYPTION_PASSWORD: ${DB_ENCRYPTION_PASSWORD} - LOWCODER_DB_ENCRYPTION_SALT: ${DB_ENCRYPTION_SALT} - LOWCODER_CORS_DOMAINS: "*" + LOWCODER_REDIS_ENABLED: "true" + LOWCODER_MONGODB_ENABLED: "true" + LOWCODER_MONGODB_EXPOSED: "false" + LOWCODER_API_SERVICE_ENABLED: "true" + LOWCODER_NODE_SERVICE_ENABLED: "true" + LOWCODER_FRONTEND_ENABLED: "true" + LOWCODER_PUID: "1000" + LOWCODER_PGID: "1000" LOWCODER_MAX_ORGS_PER_USER: 100 LOWCODER_MAX_MEMBERS_PER_ORG: 1000 LOWCODER_MAX_GROUPS_PER_ORG: 100 LOWCODER_MAX_APPS_PER_ORG: 1000 LOWCODER_MAX_DEVELOPERS: 50 - LOWCODER_API_KEY_SECRET: ${API_KEY_SECRET} + LOWCODER_MONGODB_URL: "mongodb://localhost:27017/lowcoder?authSource=admin" + LOWCODER_REDIS_URL: "redis://localhost:6379" + LOWCODER_EMAIL_SIGNUP_ENABLED: "true" + LOWCODER_EMAIL_AUTH_ENABLED: "true" + LOWCODER_CREATE_WORKSPACE_ON_SIGNUP: "true" + LOWCODER_DB_ENCRYPTION_PASSWORD: "lowcoder.org" + LOWCODER_DB_ENCRYPTION_SALT: "lowcoder.org" + LOWCODER_CORS_DOMAINS: "*" + LOWCODER_API_KEY_SECRET: "5a41b090758b39b226603177ef48d73ae9839dd458ccb7e66f7e7cc028d5a50b" LOWCODER_PLUGINS_DIR: "../plugins" LOWCODER_API_RATE_LIMIT: 50 + LOWCODER_API_SERVICE_URL: "http://localhost:8080" + LOWCODER_NODE_SERVICE_URL: "http://localhost:6060" + LOWCODER_MAX_REQUEST_SIZE: 20m + LOWCODER_MAX_QUERY_TIMEOUT: 120 LOWCODER_WORKSPACE_MODE: SAAS LOWCODER_MARKETPLACE_PRIVATE_MODE: "true" - LOWCODER_ADMIN_SMTP_HOST: ${SMTP_HOST} - LOWCODER_ADMIN_SMTP_PORT: ${SMTP_PORT:-587} - LOWCODER_ADMIN_SMTP_USERNAME: ${SMTP_USERNAME} - LOWCODER_ADMIN_SMTP_PASSWORD: ${SMTP_PASSWORD} - LOWCODER_ADMIN_SMTP_AUTH: ${SMTP_AUTH:-true} - LOWCODER_ADMIN_SMTP_SSL_ENABLED: ${SMTP_SSL:-false} - LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED: ${SMTP_STARTTLS:-true} - LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED: ${SMTP_STARTTLS_REQUIRED:-true} - LOWCODER_EMAIL_NOTIFICATIONS_SENDER: ${EMAIL_SENDER:-info@localhost} - LOWCODER_SUPERUSER_USERNAME: ${ADMIN_EMAIL:-admin@localhost} - LOWCODER_SUPERUSER_PASSWORD: ${ADMIN_PASSWORD} - restart: unless-stopped - depends_on: - - mongodb - - redis + LOWCODER_ADMIN_SMTP_HOST: localhost + LOWCODER_ADMIN_SMTP_PORT: 587 + LOWCODER_ADMIN_SMTP_AUTH: "true" + LOWCODER_ADMIN_SMTP_SSL_ENABLED: "false" + LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED: "true" + LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED: "true" + LOWCODER_EMAIL_NOTIFICATIONS_SENDER: info@localhost + LOWCODER_SUPERUSER_USERNAME: admin@localhost + LOWCODER_SUPERUSER_PASSWORD: volumes: - - lowcoder_assets:/lowcoder/assets - - lowcoder-node-service: - image: lowcoderorg/lowcoder-ce-node-service:latest - environment: - LOWCODER_PUID: "9001" - LOWCODER_PGID: "9001" - LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" - restart: unless-stopped - depends_on: - - lowcoder-api-service - - lowcoder-frontend: - image: lowcoderorg/lowcoder-ce-frontend:latest - ports: - - "443:3000" - environment: - LOWCODER_PUID: "9001" - LOWCODER_PGID: "9001" - LOWCODER_MAX_REQUEST_SIZE: 20m - LOWCODER_MAX_QUERY_TIMEOUT: 120 - LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" - LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" - labels: - coolify.enable.traefik: true - coolify.enable.https: true + - ./lowcoder-stacks:/lowcoder-stacks + - ./lowcoder-stacks/assets:/lowcoder/assets restart: unless-stopped - depends_on: - - lowcoder-node-service - - lowcoder-api-service - volumes: - - lowcoder_assets:/lowcoder/assets - -volumes: - mongodb_data: - redis_data: - lowcoder_assets: From 805b8bfdb27fb9c041f4d106d20be6fce3798800 Mon Sep 17 00:00:00 2001 From: Sebastian Witkowski Date: Fri, 22 Nov 2024 11:00:56 +0000 Subject: [PATCH 4/4] Update docker-compose.yaml --- deploy/docker/docker-compose.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deploy/docker/docker-compose.yaml b/deploy/docker/docker-compose.yaml index f266e50865..4bf836f1f0 100644 --- a/deploy/docker/docker-compose.yaml +++ b/deploy/docker/docker-compose.yaml @@ -51,3 +51,8 @@ services: - ./lowcoder-stacks:/lowcoder-stacks - ./lowcoder-stacks/assets:/lowcoder/assets restart: unless-stopped + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:3000/ || exit 1"] + interval: 30s + timeout: 10s + retries: 3