Merge branch 'next' into patch-1

This commit is contained in:
Alexander G.
2024-10-20 14:24:43 +03:00
committed by GitHub
111 changed files with 2664 additions and 881 deletions

View File

@@ -9,9 +9,9 @@ services:
postgres:
image: postgres:15
environment:
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_DB=azimutt
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-azimutt}
volumes:
- azimutt-postgres-data:/var/lib/postgresql/data
healthcheck:
@@ -80,8 +80,8 @@ services:
- PHX_SERVER=true
- PHX_HOST=$SERVICE_URL_AZIMUTT
- PORT=${PORT:-4000}
- DATABASE_URL=ecto://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgres/azimutt
- SECRET_KEY_BASE=$SERVICE_BASE64_64_AZIMUTT
- DATABASE_URL=ecto://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgres/${POSTGRES_DB:-azimutt}
- SECRET_KEY_BASE=${SERVICE_BASE64_64_AZIMUTT}
- FILE_STORAGE_ADAPTER=${FILE_STORAGE_ADAPTER:-s3}
- AUTH_PASSWORD=${AUTH_PASSWORD:-true}
- SKIP_ONBOARDING_FUNNEL=${SKIP_ONBOARDING_FUNNEL:-true}

View File

@@ -0,0 +1,65 @@
# documentation: https://cal.com/docs
# slogan: Scheduling infrastructure for everyone.
# tags: calcom,calendso,scheduling,open,source
# logo: svgs/calcom.svg
# port: 3000
services:
calcom:
image: calcom.docker.scarf.sh/calcom/cal.com
platform: linux/amd64
environment:
# Some variables still uses Calcom previous name, Calendso
#
# Full list https://github.com/calcom/cal.com/blob/main/.env.example
- SERVICE_FQDN_CALCOM_3000
- NEXT_PUBLIC_LICENSE_CONSENT=agree
- NODE_ENV=production
- NEXT_PUBLIC_WEBAPP_URL=${SERVICE_FQDN_CALCOM}
- NEXT_PUBLIC_API_V2_URL=${SERVICE_FQDN_CALCOM}/api/v2
# https://next-auth.js.org/configuration/options#nextauth_url
# From https://github.com/calcom/docker?tab=readme-ov-file#important-run-time-variables, it should be ${NEXT_PUBLIC_WEBAPP_URL}/api/auth
- NEXTAUTH_URL=${SERVICE_FQDN_CALCOM}/api/auth
# It is highly recommended that the NEXTAUTH_SECRET must be overridden and very unique
# Use `openssl rand -base64 32` to generate a key
- NEXTAUTH_SECRET=${SERVICE_BASE64_CALCOMSECRET}
# Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`
- CALENDSO_ENCRYPTION_KEY=${SERVICE_BASE64_CALCOMKEY}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-calendso}
- DATABASE_HOST=postgresql
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@${DATABASE_HOST:-postgresql}/${POSTGRES_DB:-calendso}
# Needed to run migrations while using a connection pooler like PgBouncer
# Use the same one as DATABASE_URL if you are not using a connection pooler
- DATABASE_DIRECT_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@${DATABASE_HOST:-postgresql}/${POSTGRES_DB:-calendso}
# GOOGLE_API_CREDENTIALS={}
# Set this to 1 if you don't want Cal to collect anonymous usage
- CALCOM_TELEMETRY_DISABLED=1
# E-mail settings
# Configures the global From: header whilst sending emails.
- EMAIL_FROM=${EMAIL_FROM}
- EMAIL_FROM_NAME=${EMAIL_FROM_NAME}
# Configure SMTP settings (@see https://nodemailer.com/smtp/).
- EMAIL_SERVER_HOST=${EMAIL_SERVER_HOST}
- EMAIL_SERVER_PORT=${EMAIL_SERVER_PORT}
- EMAIL_SERVER_USER=${EMAIL_SERVER_USER}
- EMAIL_SERVER_PASSWORD=${EMAIL_SERVER_PASSWORD}
- NEXT_PUBLIC_APP_NAME="Cal.com"
# More info on ALLOWED_HOSTNAMES https://github.com/calcom/cal.com/issues/12201
- ALLOWED_HOSTNAMES=["${SERVICE_FQDN_CALCOM}"]
depends_on:
- postgresql
postgresql:
image: postgres:16-alpine
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-calendso}
volumes:
- calcom-postgresql-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,41 @@
# ignore: true
# documentation: https://www.edgedb.com
# slogan: An open-source database designed as a spiritual successor to SQL and the relational paradigm. Powered by the Postgres query engine under the hood.
# tags: db database sql
# logo: svgs/edgedb.svg
# port: 5656
services:
edgedb:
image: edgedb/edgedb
environment:
- SERVICE_FQDN_EDGEDB_5656
- EDGEDB_SERVER_ADMIN_UI=${EDGEDB_SERVER_ADMIN_UI:-enabled}
- EDGEDB_SERVER_BACKEND_DSN=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql:5432/${POSTGRES_DB:-edgedb}
- EDGEDB_SERVER_SECURITY=${EDGEDB_SERVER_SECURITY:-strict}
- EDGEDB_SERVER_PASSWORD=${SERVICE_PASSWORD_EDGEDB}
- POSTGRES_DB=${POSTGRES_DB:-edgedb}
depends_on:
postgresql:
condition: service_healthy
volumes:
- edgedb-data:/dbschema
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5656/server/status/alive"]
interval: 5s
timeout: 20s
retries: 10
postgresql:
image: postgres:16-alpine
volumes:
- edgedb-postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-edgedb}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10

View File

@@ -39,4 +39,3 @@ services:
interval: 5s
timeout: 20s
retries: 10

View File

@@ -0,0 +1,48 @@
# documentation: https://docs.mindsdb.com/what-is-mindsdb
# slogan: MindsDB is the platform for building AI from enterprise data, enabling smarter organizations.
# tags: mysql, postgresdb, machine-learning, ai
# logo: svgs/mindsdb.svg
# port: 47334
services:
mindsdb:
image: mindsdb/mindsdb:latest
environment:
- SERVICE_FQDN_MINDSDB_47334
- SERVICE_FQDN_API_47335=/api
- MINDSDB_DOCKER_ENV=true
- MINDSDB_STORAGE_DIR=/mindsdb/var
- FLASK_DEBUG=${FLASK_DEBUG:-1} # This will make sure http requests are logged regardless of log level
- OPENAI_API_KEY=${OPENAI_API_KEY}
- LANGFUSE_HOST=${LANGFUSE_HOST}
- LANGFUSE_PUBLIC_KEY=${LANGFUSE_PUBLIC_KEY}
- LANGFUSE_SECRET_KEY=${LANGFUSE_SECRET_KEY}
- LANGFUSE_RELEASE=${LANGFUSE_RELEASE:-local}
- LANGFUSE_DEBUG=${LANGFUSE_DEBUG:-False}
- LANGFUSE_TIMEOUT=${LANGFUSE_TIMEOUT:-10}
- LANGFUSE_SAMPLE_RATE=${LANGFUSE_SAMPLE_RATE:-1.0}
- MINDSDB_DB_CON=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@postgresql/${POSTGRES_DB:-mindsdb-db}
volumes:
- mindsdb-data:/mindsdb/var
depends_on:
postgresql:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:47334/api/util/ping"]
interval: 30s
timeout: 5s
retries: 15
postgresql:
image: postgres:16-alpine
volumes:
- mindsdb-postgresql-data:/var/lib/postgresql/data
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-mindsdb-db}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 15

View File

@@ -0,0 +1,48 @@
# documentation: https://mosquitto.org/documentation/
# slogan: Mosquitto is lightweight and suitable for use on all devices, from low-power single-board computers to full servers.
# tags: mosquitto, mqtt, open-source
# logo: svgs/mosquitto.svg
# port: 1883
services:
mosquitto:
image: eclipse-mosquitto
environment:
- SERVICE_FQDN_MOSQUITTO_1883
- MQTT_USERNAME=${SERVICE_USER_MOSQUITTO}
- MQTT_PASSWORD=${SERVICE_PASSWORD_MOSQUITTO}
- REQUIRE_CERTIFICATE=${REQUIRE_CERTIFICATE:-false}
- ALLOW_ANONYMOUS=${ALLOW_ANONYMOUS:-true}
volumes:
- mosquitto-config:/mosquitto/config
- mosquitto-certs:/certs
healthcheck:
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
entrypoint: 'sh -c "
if [ ''$REQUIRE_CERTIFICATE'' = ''true'' ]; then
echo ''listener 8883'' > /mosquitto/config/mosquitto.conf &&
echo ''cafile /certs/ca.crt'' >> /mosquitto/config/mosquitto.conf &&
echo ''certfile /certs/server.crt'' >> /mosquitto/config/mosquitto.conf &&
echo ''keyfile /certs/server.key'' >> /mosquitto/config/mosquitto.conf;
else
echo ''listener 1883'' > /mosquitto/config/mosquitto.conf;
fi &&
echo ''require_certificate ''$REQUIRE_CERTIFICATE >> /mosquitto/config/mosquitto.conf &&
echo ''allow_anonymous ''$ALLOW_ANONYMOUS >> /mosquitto/config/mosquitto.conf &&
if [ -n ''$SERVICE_USER_MOSQUITTO''] && [ -n ''$SERVICE_PASSWORD_MOSQUITTO'' ]; then
echo ''password_file /mosquitto/config/passwords'' >> /mosquitto/config/mosquitto.conf &&
touch /mosquitto/config/passwords &&
chmod 0700 /mosquitto/config/passwords &&
chown root:root /mosquitto/config/passwords &&
mosquitto_passwd -b -c /mosquitto/config/passwords $SERVICE_USER_MOSQUITTO $SERVICE_PASSWORD_MOSQUITTO &&
chown mosquitto:mosquitto /mosquitto/config/passwords;
fi &&
exec mosquitto -c /mosquitto/config/mosquitto.conf
"'
labels:
- traefik.tcp.routers.mqtt.entrypoints=mqtt
- traefik.tcp.routers.mqtts.entrypoints=mqtts

View File

@@ -10,31 +10,60 @@ services:
command: 'sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"'
environment:
- SERVICE_FQDN_PLAUSIBLE
- "DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@plausible_db/plausible"
- BASE_URL=$SERVICE_FQDN_PLAUSIBLE
- SECRET_KEY_BASE=$SERVICE_BASE64_64_PLAUSIBLE
- TOTP_VAULT_KEY=$SERVICE_REALBASE64_32_TOTP
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@plausible-db:5432/${POSTGRES_DB:-plausible-db}
- CLICKHOUSE_DATABASE_URL=http://plausible-events-db:8123/plausible_events_db
- BASE_URL=${SERVICE_FQDN_PLAUSIBLE}
- SECRET_KEY_BASE=${SERVICE_BASE64_64_PLAUSIBLE}
- TOTP_VAULT_KEY=${SERVICE_REALBASE64_32_TOTP}
depends_on:
- plausible_db
- plausible_events_db
- mail
plausible-db:
condition: service_healthy
plausible-events-db:
condition: service_healthy
mail:
condition: service_healthy
healthcheck:
test:
[
"CMD",
"wget",
"--no-verbose",
"--tries=1",
"--spider",
"http://127.0.0.1:8000/api/health",
]
interval: 10s
timeout: 5s
retries: 5
start_period: 45s
mail:
image: bytemark/smtp
platform: linux/amd64
healthcheck:
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/25' || exit 1"]
interval: 5s
timeout: 10s
retries: 20
plausible_db:
plausible-db:
image: "postgres:16-alpine"
volumes:
- "db-data:/var/lib/postgresql/data"
- plausible-postgres-data:/var/lib/postgresql/data
environment:
- POSTGRES_DB=plausible
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_DB=${POSTGRES_DB:-plausible-db}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 20s
retries: 10
plausible_events_db:
plausible-events-db:
image: "clickhouse/clickhouse-server:24.3.3.102-alpine"
volumes:
- type: volume
source: event-data
target: /var/lib/clickhouse
- plausible-events-data:/var/lib/clickhouse
- type: bind
source: ./clickhouse/clickhouse-config.xml
target: /etc/clickhouse-server/config.d/logging.xml
@@ -49,3 +78,10 @@ services:
nofile:
soft: 262144
hard: 262144
healthcheck:
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1",
]
start_period: 30s

View File

@@ -11,10 +11,11 @@ services:
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_DB=${POSTGRES_DB:-windmill}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
- POSTGRES_DB=${POSTGRES_DB:-windmill-db}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
@@ -23,16 +24,16 @@ services:
image: ghcr.io/windmill-labs/windmill:main
environment:
- SERVICE_FQDN_WINDMILL_8000
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-server}
- BASE_URL=$SERVICE_FQDN_WINDMILL
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db/${POSTGRES_DB:-windmill-db}
- MODE=server
- BASE_URL=${SERVICE_FQDN_WINDMILL}
depends_on:
db:
condition: service_healthy
volumes:
- worker-logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
@@ -40,9 +41,9 @@ services:
windmill-worker-1:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db/${POSTGRES_DB:-windmill-db}
- MODE=worker
- WORKER_GROUP=default
depends_on:
db:
condition: service_healthy
@@ -51,7 +52,7 @@ services:
- worker-dependency-cache:/tmp/windmill/cache
- worker-logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
@@ -59,9 +60,9 @@ services:
windmill-worker-2:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db/${POSTGRES_DB:-windmill-db}
- MODE=worker
- WORKER_GROUP=default
depends_on:
db:
condition: service_healthy
@@ -70,7 +71,7 @@ services:
- worker-dependency-cache:/tmp/windmill/cache
- worker-logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
@@ -78,9 +79,9 @@ services:
windmill-worker-3:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-default}
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db/${POSTGRES_DB:-windmill-db}
- MODE=worker
- WORKER_GROUP=default
depends_on:
db:
condition: service_healthy
@@ -89,7 +90,7 @@ services:
- worker-dependency-cache:/tmp/windmill/cache
- worker-logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
@@ -97,18 +98,18 @@ services:
windmill-worker-native:
image: ghcr.io/windmill-labs/windmill:main
environment:
- DATABASE_URL=postgres://postgres:$SERVICE_PASSWORD_POSTGRES@db/windmill
- MODE=${MODE:-worker}
- WORKER_GROUP=${WORKER_GROUP:-native}
- NUM_WORKERS=${NUM_WORKERS:-8}
- SLEEP_QUEUE=${SLEEP_QUEUE:-200}
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@db/${POSTGRES_DB:-windmill-db}
- MODE=worker
- WORKER_GROUP=native
- NUM_WORKERS=8
- SLEEP_QUEUE=200
depends_on:
db:
condition: service_healthy
volumes:
- worker-logs:/tmp/windmill/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/version || exit 1"]
test: ["CMD-SHELL", "exit 0"]
interval: 30s
timeout: 10s
retries: 3
@@ -122,3 +123,4 @@ services:
interval: 30s
timeout: 10s
retries: 3
start_period: 20s