Merge branch 'coollabsio:next' into next

This commit is contained in:
David Alejandro Londoño authored and GitHub committed 2025-10-16 10:10:23 -05:00
commit a02240d143
331 files changed
+24497 -10900

No files matched your search

+34 -48
View File
@@ -7,61 +7,47 @@
services:
pds:
image: 'ghcr.io/bluesky-social/pds:latest'
image: 'ghcr.io/bluesky-social/pds:0.4.182'
volumes:
- ./pds-data:/pds
- pds-data:/pds
environment:
- SERVICE_URL_PDS_3000
- PDS_HOSTNAME=${SERVICE_URL_PDS}
- PDS_JWT_SECRET=${SERVICE_PASSWORD_JWT_SECRET}
- PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}
- PDS_ADMIN_EMAIL=${SERVICE_EMAIL_ADMIN}
- PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}
- PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}
- PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATA_DIRECTORY:-/pds}/blocks
- PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-52428800}
- PDS_DID_PLC_URL=${PDS_DID_PLC_URL:-https://plc.directory}
- PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL:-https://api.bsky.app}
- PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID:-did:web:api.bsky.app}
- PDS_REPORT_SERVICE_URL=${PDS_REPORT_SERVICE_URL:-https://mod.bsky.app/xrpc/com.atproto.moderation.createReport}
- PDS_REPORT_SERVICE_DID=${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac}
- PDS_CRAWLERS=${PDS_CRAWLERS:-https://bsky.network}
- LOG_ENABLED=${LOG_ENABLED:-true}
command: >
- 'PDS_HOSTNAME=${SERVICE_FQDN_PDS_3000}'
- 'PDS_JWT_SECRET=${SERVICE_HEX_32_JWTSECRET}'
- 'PDS_ADMIN_PASSWORD=${SERVICE_PASSWORD_ADMIN}'
- 'PDS_ADMIN_EMAIL=${PDS_ADMIN_EMAIL}'
- 'PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${SERVICE_HEX_32_ROTATIONKEY}'
- 'PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}'
- 'PDS_BLOBSTORE_DISK_LOCATION=${PDS_DATA_DIRECTORY:-/pds}/blocks'
- 'PDS_BLOB_UPLOAD_LIMIT=${PDS_BLOB_UPLOAD_LIMIT:-104857600}'
- 'PDS_DID_PLC_URL=${PDS_DID_PLC_URL:-https://plc.directory}'
- 'PDS_EMAIL_FROM_ADDRESS=${PDS_EMAIL_FROM_ADDRESS}'
- 'PDS_EMAIL_SMTP_URL=${PDS_EMAIL_SMTP_URL}'
- 'PDS_BSKY_APP_VIEW_URL=${PDS_BSKY_APP_VIEW_URL:-https://api.bsky.app}'
- 'PDS_BSKY_APP_VIEW_DID=${PDS_BSKY_APP_VIEW_DID:-did:web:api.bsky.app}'
- 'PDS_REPORT_SERVICE_URL=${PDS_REPORT_SERVICE_URL:-https://mod.bsky.app/xrpc/com.atproto.moderation.createReport}'
- 'PDS_REPORT_SERVICE_DID=${PDS_REPORT_SERVICE_DID:-did:plc:ar7c4by46qjdydhdevvrndac}'
- 'PDS_CRAWLERS=${PDS_CRAWLERS:-https://bsky.network}'
- 'LOG_ENABLED=${LOG_ENABLED:-true}'
command: |
sh -c '
echo "Installing curl, bash, and pdsadmin..."
apk add --no-cache curl bash && \
curl -o /usr/local/bin/pdsadmin.sh https://raw.githubusercontent.com/bluesky-social/pds/main/pdsadmin.sh && \
chmod +x /usr/local/bin/pdsadmin.sh && \
set -euo pipefail
echo "Installing required packages and pdsadmin..."
apk add --no-cache openssl curl bash jq coreutils gnupg util-linux-misc >/dev/null
curl -o /usr/local/bin/pdsadmin.sh https://raw.githubusercontent.com/bluesky-social/pds/main/pdsadmin.sh
chmod 700 /usr/local/bin/pdsadmin.sh
ln -sf /usr/local/bin/pdsadmin.sh /usr/local/bin/pdsadmin
echo "Generating /pds/pds.env..."
printf "%s\n" \
"SERVICE_FQDN_PDS_3000=$${SERVICE_FQDN_PDS_3000}" \
"PDS_HOSTNAME=$${PDS_HOSTNAME}" \
"PDS_JWT_SECRET=$${PDS_JWT_SECRET}" \
"PDS_ADMIN_PASSWORD=$${PDS_ADMIN_PASSWORD}" \
"PDS_ADMIN_EMAIL=$${PDS_ADMIN_EMAIL}" \
"PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=$${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}" \
"PDS_DATA_DIRECTORY=$${PDS_DATA_DIRECTORY}" \
"PDS_BLOBSTORE_DISK_LOCATION=$${PDS_DATA_DIRECTORY}/blocks" \
"PDS_BLOB_UPLOAD_LIMIT=$${PDS_BLOB_UPLOAD_LIMIT}" \
"PDS_DID_PLC_URL=$${PDS_DID_PLC_URL}" \
"PDS_BSKY_APP_VIEW_URL=$${PDS_BSKY_APP_VIEW_URL}" \
"PDS_BSKY_APP_VIEW_DID=$${PDS_BSKY_APP_VIEW_DID}" \
"PDS_REPORT_SERVICE_URL=$${PDS_REPORT_SERVICE_URL}" \
"PDS_REPORT_SERVICE_DID=$${PDS_REPORT_SERVICE_DID}" \
"PDS_CRAWLERS=$${PDS_CRAWLERS}" \
"LOG_ENABLED=$${LOG_ENABLED}" \
> /pds/pds.env
echo "Launching PDS..."
echo "Creating an empty pds.env file so pdsadmin works..."
touch ${PDS_DATA_DIRECTORY}/pds.env
echo "Launching PDS, enjoy!..."
exec node --enable-source-maps index.js
'
healthcheck:
test: ["CMD", "wget", "--spider", "http://127.0.0.1:3000/xrpc/_health"]
interval: 2s
test:
- CMD
- wget
- '--spider'
- 'http://127.0.0.1:3000/xrpc/_health'
interval: 5s
timeout: 10s
retries: 10
+30 -10
View File
@@ -1,4 +1,4 @@
# documentation: https://docs.convex.dev/
# documentation: https://github.com/get-convex/convex-backend/blob/main/self-hosted/README.md
# slogan: Convex is the open-source reactive database for app developers.
# category: backend
# tags: database, reactive, database, ai, agents, chatbot, api, team, bot, flows
@@ -7,7 +7,7 @@
services:
backend:
image: ghcr.io/get-convex/convex-backend:5143fec81f146ca67495c12c6b7a15c5802c37e2
image: ghcr.io/get-convex/convex-backend:00bd92723422f3bff968230c94ccdeb8c1719832
volumes:
- data:/convex/data
environment:
@@ -16,22 +16,42 @@ services:
- INSTANCE_SECRET=${SERVICE_HEX_32_SECRET}
- CONVEX_RELEASE_VERSION_DEV=${CONVEX_RELEASE_VERSION_DEV:-}
- ACTIONS_USER_TIMEOUT_SECS=${ACTIONS_USER_TIMEOUT_SECS:-}
- CONVEX_CLOUD_ORIGIN=${SERVICE_URL_CONVEX_3210}
- CONVEX_SITE_ORIGIN=${SERVICE_URL_CONVEX_3211}
# URL of the Convex API as accessed by the client/frontend.
- CONVEX_CLOUD_ORIGIN=${SERVICE_URL_CONVEX}
# URL of Convex HTTP actions as accessed by the client/frontend.
- CONVEX_SITE_ORIGIN=${SERVICE_URL_BACKEND}
- DATABASE_URL=${DATABASE_URL:-}
- DISABLE_BEACON=${DISABLE_BEACON:-}
- REDACT_LOGS_TO_CLIENT=${REDACT_LOGS_TO_CLIENT:-}
- CONVEX_SELF_HOSTED_URL=${SERVICE_URL_CONVEX_6791}
- DISABLE_BEACON=${DISABLE_BEACON:?false}
- REDACT_LOGS_TO_CLIENT=${REDACT_LOGS_TO_CLIENT:?false}
- DO_NOT_REQUIRE_SSL=${DO_NOT_REQUIRE_SSL:?true}
- POSTGRES_URL=${POSTGRES_URL:-}
- MYSQL_URL=${MYSQL_URL:-}
- RUST_LOG=${RUST_LOG:-info}
- RUST_BACKTRACE=${RUST_BACKTRACE:-}
- AWS_REGION=${AWS_REGION:-}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}
- AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN:-}
- AWS_S3_FORCE_PATH_STYLE=${AWS_S3_FORCE_PATH_STYLE:-}
- AWS_S3_DISABLE_SSE=${AWS_S3_DISABLE_SSE:-}
- AWS_S3_DISABLE_CHECKSUMS=${AWS_S3_DISABLE_CHECKSUMS:-}
- S3_STORAGE_EXPORTS_BUCKET=${S3_STORAGE_EXPORTS_BUCKET:-}
- S3_STORAGE_SNAPSHOT_IMPORTS_BUCKET=${S3_STORAGE_SNAPSHOT_IMPORTS_BUCKET:-}
- S3_STORAGE_MODULES_BUCKET=${S3_STORAGE_MODULES_BUCKET:-}
- S3_STORAGE_FILES_BUCKET=${S3_STORAGE_FILES_BUCKET:-}
- S3_STORAGE_SEARCH_BUCKET=${S3_STORAGE_SEARCH_BUCKET:-}
- S3_ENDPOINT_URL=${S3_ENDPOINT_URL:-}
healthcheck:
test: curl -f http://127.0.0.1:3210/version
interval: 5s
start_period: 5s
start_period: 10s
dashboard:
image: ghcr.io/get-convex/convex-dashboard:5143fec81f146ca67495c12c6b7a15c5802c37e2
image: ghcr.io/get-convex/convex-dashboard:33cef775a8a6228cbacee4a09ac2c4073d62ed13
environment:
- SERVICE_URL_CONVEX_6791
- NEXT_PUBLIC_DEPLOYMENT_URL=$SERVICE_URL_BACKEND_3210
# URL of the Convex API as accessed by the dashboard (browser).
- NEXT_PUBLIC_DEPLOYMENT_URL=${SERVICE_URL_BACKEND}
depends_on:
backend:
condition: service_healthy
+9
View File
@@ -19,6 +19,15 @@ services:
- APP_URL=$SERVICE_URL_DOCMOST_3000
- DATABASE_URL=postgresql://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql/docmost?schema=public
- REDIS_URL=redis://redis:6379
- MAIL_DRIVER=${MAIL_DRIVER}
- SMTP_HOST=${SMTP_HOST}
- SMTP_PORT=${SMTP_PORT}
- SMTP_USERNAME=${SMTP_USERNAME}
- SMTP_PASSWORD=${SMTP_PASSWORD}
- SMTP_SECURE=${SMTP_SECURE}
- MAIL_FROM_ADDRESS=${MAIL_FROM_ADDRESS}
- MAIL_FROM_NAME=${MAIL_FROM_NAME}
- POSTMARK_TOKEN=${POSTMARK_TOKEN}
volumes:
- "docmost:/app/data/storage"
healthcheck:
+2 -1
View File
@@ -7,7 +7,7 @@
services:
documenso:
image: documenso/documenso
image: documenso/documenso:v1.12.10 # Released at Oct 9, 2025
depends_on:
database:
condition: service_healthy
@@ -18,6 +18,7 @@ services:
- NEXT_PRIVATE_ENCRYPTION_KEY=${SERVICE_BASE64_ENCRYPTIONKEY}
- NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${SERVICE_BASE64_SECONDARYENCRYPTIONKEY}
- NEXT_PUBLIC_WEBAPP_URL=${SERVICE_URL_DOCUMENSO}
- NEXT_PRIVATE_RESEND_API_KEY=${NEXT_PRIVATE_RESEND_API_KEY}
- NEXT_PRIVATE_SMTP_TRANSPORT=${NEXT_PRIVATE_SMTP_TRANSPORT}
- NEXT_PRIVATE_SMTP_HOST=${NEXT_PRIVATE_SMTP_HOST}
- NEXT_PRIVATE_SMTP_PORT=${NEXT_PRIVATE_SMTP_PORT}
@@ -0,0 +1,88 @@
# documentation: https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-kibana-with-docker
# slogan: Elastic + Kibana is a Free and Open Source Search, Monitoring, and Visualization Stack
# tags: elastic,kibana,elasticsearch,search,visualization,logging,monitoring,observability,analytics,stack,devops
# logo: svgs/elasticsearch.svg
# port: 5601
services:
elasticsearch:
image: 'elastic/elasticsearch:9.1.2'
container_name: elasticsearch
restart: unless-stopped
environment:
- ELASTIC_PASSWORD=${SERVICE_PASSWORD_ELASTICSEARCH}
- 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
- discovery.type=single-node
- bootstrap.memory_lock=true
- xpack.security.enabled=true
- xpack.security.http.ssl.enabled=false
- xpack.security.transport.ssl.enabled=false
volumes:
- '/etc/localtime:/etc/localtime:ro'
- 'elasticsearch-data:/usr/share/elasticsearch/data'
healthcheck:
test:
- CMD-SHELL
- 'curl --user elastic:${SERVICE_PASSWORD_ELASTICSEARCH} --silent --fail http://localhost:9200/_cluster/health || exit 1'
interval: 10s
timeout: 10s
retries: 24
kibana:
image: 'kibana:9.1.2'
container_name: kibana
restart: unless-stopped
environment:
- SERVICE_URL_KIBANA_5601
- 'SERVER_NAME=${SERVICE_URL_KIBANA}'
- 'SERVER_PUBLICBASEURL=${SERVICE_URL_KIBANA}'
- 'ELASTICSEARCH_HOSTS=http://elasticsearch:9200'
- 'ELASTICSEARCH_USERNAME=kibana_system'
- 'ELASTICSEARCH_PASSWORD=${SERVICE_PASSWORD_KIBANA}'
- 'XPACK_SECURITY_ENCRYPTIONKEY=${SERVICE_PASSWORD_XPACKSECURITY}'
- 'XPACK_REPORTING_ENCRYPTIONKEY=${SERVICE_PASSWORD_XPACKREPORTING}'
- 'XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${SERVICE_PASSWORD_XPACKENCRYPTEDSAVEDOBJECTS}'
- 'TELEMETRY_OPTIN=${TELEMETRY_OPTIN:-false}'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- 'kibana-data:/usr/share/kibana/data'
depends_on:
setup:
condition: service_completed_successfully
healthcheck:
test:
- CMD-SHELL
- "curl -s http://localhost:5601/api/status | grep -q '\"level\":\"available\"' || exit 1"
interval: 10s
timeout: 10s
retries: 120
setup:
image: 'elastic/elasticsearch:9.1.2'
container_name: kibana-setup
depends_on:
elasticsearch:
condition: service_healthy
exclude_from_hc: true
environment:
- 'ELASTIC_PASSWORD=${SERVICE_PASSWORD_ELASTICSEARCH}'
- 'KIBANA_PASSWORD=${SERVICE_PASSWORD_KIBANA}'
entrypoint:
- sh
- '-c'
- |
echo "Setting up Kibana user password..."
until curl -s -u "elastic:${ELASTIC_PASSWORD}" http://elasticsearch:9200/_cluster/health | grep -q '"status":"green\|yellow"'; do
echo "Waiting for Elasticsearch..."
sleep 2
done
echo "Setting password for kibana_system user..."
curl -s -X POST -u "elastic:${ELASTIC_PASSWORD}" \
-H "Content-Type: application/json" \
http://elasticsearch:9200/_security/user/kibana_system/_password \
-d "{\"password\":\"${KIBANA_PASSWORD}\"}" || exit 1
echo "Kibana setup completed successfully"
restart: 'no'
+129
View File
@@ -0,0 +1,129 @@
# documentation: https://help.ente.io/self-hosting/installation/compose
# slogan: Ente Photos is a fully open source, End to End Encrypted alternative to Google Photos and Apple Photos.
# category: media
# tags: photos,gallery,backup,encryption,privacy,self-hosted,google-photos,alternative
# logo: svgs/ente-photos.svg
# port: 8080
services:
museum:
image: 'ghcr.io/ente-io/server:613c6a96390d7a624cf30b946955705d632423cc' # Released at 2025-09-14T22:16:37-07:00
environment:
- SERVICE_URL_MUSEUM_8080
- ENTE_DB_HOST=postgres
- ENTE_DB_PORT=5432
- 'ENTE_DB_NAME=${POSTGRES_DB:-ente_db}'
- 'ENTE_DB_USER=${SERVICE_USER_POSTGRES}'
- 'ENTE_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'ENTE_HTTP_USE_TLS=${ENTE_HTTP_USE_TLS:-false}'
- ENTE_S3_ARE_LOCAL_BUCKETS=false
- ENTE_S3_USE_PATH_STYLE_URLS=true
- 'ENTE_S3_B2_EU_CEN_KEY=${SERVICE_USER_MINIO}'
- 'ENTE_S3_B2_EU_CEN_SECRET=${SERVICE_PASSWORD_MINIO}'
- 'ENTE_S3_B2_EU_CEN_ENDPOINT=${SERVICE_FQDN_MINIO_9000}'
- ENTE_S3_B2_EU_CEN_REGION=eu-central-2
- ENTE_S3_B2_EU_CEN_BUCKET=b2-eu-cen
- 'ENTE_KEY_ENCRYPTION=${SERVICE_REALBASE64_ENCRYPTION}'
- 'ENTE_KEY_HASH=${SERVICE_REALBASE64_64_HASH}'
- 'ENTE_JWT_SECRET=${SERVICE_REALBASE64_JWT}'
- 'ENTE_INTERNAL_ADMIN=${ENTE_INTERNAL_ADMIN:-1580559962386438}'
- 'ENTE_INTERNAL_DISABLE_REGISTRATION=${ENTE_INTERNAL_DISABLE_REGISTRATION:-false}'
volumes:
- 'museum-data:/data'
- 'museum-config:/config'
depends_on:
postgres:
condition: service_healthy
minio:
condition: service_started
healthcheck:
test:
- CMD
- wget
- '--spider'
- 'http://127.0.0.1:8080/ping'
interval: 30s
timeout: 10s
retries: 3
web:
image: 'ghcr.io/ente-io/web:ca03165f5e7f2a50105e6e40019c17ae6cdd934f' # Released at 2025-10-08T00:57:05-07:00
environment:
- SERVICE_URL_WEB_3000
- 'ENTE_API_ORIGIN=${SERVICE_URL_MUSEUM}'
healthcheck:
test:
- CMD
- curl
- '--fail'
- 'http://localhost:3000'
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
postgres:
image: 'postgres:15-alpine'
environment:
- 'POSTGRES_USER=${SERVICE_USER_POSTGRES}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'POSTGRES_DB=${POSTGRES_DB:-ente_db}'
volumes:
- 'postgres-data:/var/lib/postgresql/data'
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U ${SERVICE_USER_POSTGRES} -d ${POSTGRES_DB:-ente_db}'
interval: 10s
timeout: 5s
retries: 5
minio:
image: 'quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z' # Released at 2025-09-07T16-13-09Z
command: 'server /data --console-address ":9001"'
environment:
- MINIO_SERVER_URL=$MINIO_SERVER_URL
- MINIO_BROWSER_REDIRECT_URL=$MINIO_BROWSER_REDIRECT_URL
- MINIO_ROOT_USER=$SERVICE_USER_MINIO
- MINIO_ROOT_PASSWORD=$SERVICE_PASSWORD_MINIO
volumes:
- 'minio-data:/data'
healthcheck:
test:
- CMD
- mc
- ready
- local
interval: 5s
timeout: 20s
retries: 10
minio-init:
image: 'minio/mc:RELEASE.2025-08-13T08-35-41Z' # Released at 2025-08-13T08-35-41Z
depends_on:
minio:
condition: service_started
restart: on-failure
exclude_from_hc: true
environment:
- 'MINIO_ROOT_USER=${SERVICE_USER_MINIO}'
- 'MINIO_ROOT_PASSWORD=${SERVICE_PASSWORD_MINIO}'
- 'MINIO_CORS_URLS=$SERVICE_URL_MUSEUM,$SERVICE_URL_WEB'
entrypoint: |-
/bin/sh -c "
echo \"MINIO_CORS_URLS: \$${MINIO_CORS_URLS}\";
sleep 5;
until mc alias set minio http://minio:9000 \$${MINIO_ROOT_USER} \$${MINIO_ROOT_PASSWORD}; do
echo 'Waiting for MinIO...';
sleep 2;
done;
mc admin config set minio api cors_allow_origin='$MINIO_CORS_URLS' || true;
mc mb minio/b2-eu-cen --ignore-existing;
mc mb minio/wasabi-eu-central-2-v3 --ignore-existing;
mc mb minio/scw-eu-fr-v3 --ignore-existing;
echo 'MinIO buckets and CORS configured';
"
+80
View File
@@ -0,0 +1,80 @@
# documentation: https://help.ente.io/self-hosting/installation/compose
# slogan: Ente Photos is a fully open source, End to End Encrypted alternative to Google Photos and Apple Photos.
# category: media
# tags: photos,gallery,backup,encryption,privacy,self-hosted,google-photos,alternative
# logo: svgs/ente-photos.svg
# port: 8080
services:
museum:
image: ghcr.io/ente-io/server:latest
environment:
- SERVICE_URL_MUSEUM_8080
- ENTE_HTTP_USE_TLS=${ENTE_HTTP_USE_TLS:-false}
- ENTE_APPS_PUBLIC_ALBUMS=${SERVICE_URL_WEB_3002}
- ENTE_APPS_CAST=${SERVICE_URL_WEB_3004}
- ENTE_APPS_ACCOUNTS=${SERVICE_URL_WEB_3001}
- ENTE_DB_HOST=${ENTE_DB_HOST:-postgres}
- ENTE_DB_PORT=${ENTE_DB_PORT:-5432}
- ENTE_DB_NAME=${ENTE_DB_NAME:-ente_db}
- ENTE_DB_USER=${SERVICE_USER_POSTGRES:-pguser}
- ENTE_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- ENTE_KEY_ENCRYPTION=${SERVICE_REALBASE64_ENCRYPTION}
- ENTE_KEY_HASH=${SERVICE_REALBASE64_64_HASH}
- ENTE_JWT_SECRET=${SERVICE_REALBASE64_JWT}
- ENTE_INTERNAL_ADMIN=${ENTE_INTERNAL_ADMIN:-1580559962386438}
- ENTE_INTERNAL_DISABLE_REGISTRATION=${ENTE_INTERNAL_DISABLE_REGISTRATION:-false}
- ENTE_S3_B2_EU_CEN_ARE_LOCAL_BUCKETS=${PRIMARY_STORAGE_ARE_LOCAL_BUCKETS:-false}
- ENTE_S3_B2_EU_CEN_USE_PATH_STYLE_URLS=${PRIMARY_STORAGE_USE_PATH_STYLE_URLS:-true}
- ENTE_S3_B2_EU_CEN_KEY=${S3_STORAGE_KEY:?}
- ENTE_S3_B2_EU_CEN_SECRET=${S3_STORAGE_SECRET:?}
- ENTE_S3_B2_EU_CEN_ENDPOINT=${S3_STORAGE_ENDPOINT:?}
- ENTE_S3_B2_EU_CEN_REGION=${S3_STORAGE_REGION:-us-east-1}
- ENTE_S3_B2_EU_CEN_BUCKET=${S3_STORAGE_BUCKET:?}
depends_on:
postgres:
condition: service_healthy
volumes:
- museum-data:/data
- museum-config:/config
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:8080/ping"]
interval: 5s
timeout: 5s
retries: 10
web:
image: ghcr.io/ente-io/web
environment:
- SERVICE_URL_WEB_3000
- ENTE_API_ORIGIN=${SERVICE_URL_MUSEUM}
- ENTE_ALBUMS_ORIGIN=${SERVICE_URL_WEB_3002}
healthcheck:
test: ["CMD", "curl", "--fail", "http://127.0.0.1:3000"]
interval: 5s
timeout: 5s
retries: 10
postgres:
image: postgres:15
environment:
- POSTGRES_USER=${SERVICE_USER_POSTGRES:-pguser}
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
- POSTGRES_DB=${SERVICE_DB_NAME:-ente_db}
volumes:
- postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
-5
View File
@@ -29,8 +29,3 @@ services:
"address": "0.0.0.0",
"port": 80
}
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:80"]
interval: 2s
timeout: 10s
retries: 15
+29
View File
@@ -0,0 +1,29 @@
# documentation: https://gotify.net/docs/install
# slogan: Gotify is an open-source self-hosted notification server.
# category: productivity
# tags: productivity,notification,collaboration
# logo: svgs/gotify.png
# port: 80
services:
gotify:
image: gotify/server:2.7.3
environment:
- SERVICE_URL_GOTIFY_80
- GOTIFY_DEFAULTUSER_NAME=${GOTIFY_USERNAME:-admin}
- GOTIFY_DEFAULTUSER_PASS=${SERVICE_PASSWORD_GOTIFY}
- GOTIFY_DATABASE_DIALECT=${GOTIFY_DATABASE_DIALECT:-sqlite3}
- GOTIFY_DATABASE_CONNECTION=${GOTIFY_DATABASE_CONNECTION:-data/gotify.db}
- GOTIFY_PASSSTRENGTH=${GOTIFY_PASSSTRENGTH:-10}
- GOTIFY_UPLOADEDIMAGESDIR=${GOTIFY_UPLOADEDIMAGESDIR:-data/images}
- GOTIFY_PLUGINSDIR=${GOTIFY_PLUGINSDIR:-data/plugins}
- GOTIFY_SERVER_PORT=${GOTIFY_SERVER_PORT:-80}
- GOTIFY_REGISTRATION=${GOTIFY_REGISTRATION:-false}
volumes:
- 'gotify-data:/app/data'
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:80/health"]
interval: 5s
timeout: 20s
retries: 10
+59
View File
@@ -0,0 +1,59 @@
# documentation: https://www.grampsweb.org/install_setup/setup/
# slogan: Open Source Online Genealogy System.
# category: family
# tags: family, genealogy, personal
# logo: svgs/gramps-web.svg
# port: 5000
services:
grampsweb:
image: ghcr.io/gramps-project/grampsweb:25.9.0
environment:
- SERVICE_URL_GRAMPSWEB_5000
- GRAMPSWEB_TREE=${GRAMPSWEB_TREE:-Gramps Web} # will create a new tree if not exists
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
- GRAMPSWEB_CELERY_CONFIG__result_backend=redis://grampsweb_redis:6379/0
- GRAMPSWEB_RATELIMIT_STORAGE_URI=redis://grampsweb_redis:6379/1
- GUNICORN_NUM_WORKERS=${GUNICORN_NUM_WORKERS:-2}
depends_on:
- grampsweb_redis
volumes: &volumes
- gramps_users:/app/users # persist user database
- gramps_index:/app/indexdir # persist search index
- gramps_thumb_cache:/app/thumbnail_cache # persist thumbnails
- gramps_cache:/app/cache # persist export and report caches
- gramps_secret:/app/secret # persist flask secret
- gramps_db:/root/.gramps/grampsdb # persist Gramps database
- gramps_media:/app/media # persist media files
- gramps_tmp:/tmp
healthcheck:
test: wget -O - http://localhost:5000 > /dev/null 2>&1
interval: 5s
timeout: 10s
retries: 3
grampsweb_celery:
image: ghcr.io/gramps-project/grampsweb:25.9.0
environment:
- GRAMPSWEB_TREE=${GRAMPSWEB_TREE:-Gramps Web} # will create a new tree if not exists
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
- GRAMPSWEB_CELERY_CONFIG__result_backend=redis://grampsweb_redis:6379/0
- GRAMPSWEB_RATELIMIT_STORAGE_URI=redis://grampsweb_redis:6379/1
depends_on:
- grampsweb_redis
volumes:
<<: *volumes
command: celery -A gramps_webapi.celery worker --loglevel=INFO --concurrency=2
healthcheck:
test: SECRET_KEY="$(cat secret/secret)" celery -A gramps_webapi.celery status || exit 1
interval: 5s
timeout: 10s
retries: 3
grampsweb_redis:
image: docker.io/library/redis:7.2.4-alpine
healthcheck:
test: redis-cli ping | grep PONG
interval: 5s
timeout: 10s
retries: 3
+4 -4
View File
@@ -7,14 +7,14 @@
services:
homarr:
image: ghcr.io/ajnart/homarr:latest
image: ghcr.io/homarr-labs/homarr:v1.40.0
environment:
- SERVICE_URL_HOMARR_7575
- SERVICE_HEX_32_HOMARR
- 'SECRET_ENCRYPTION_KEY=${SERVICE_HEX_32_HOMARR}'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./homarr/configs:/app/data/configs
- ./homarr/icons:/app/public/icons
- ./homarr/data:/data
- ./homarr/appdata:/appdata
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:7575"]
interval: 5s
+22
View File
@@ -0,0 +1,22 @@
# documentation: https://github.com/lobehub/lobe-chat?tab=readme-ov-file#b-deploying-with-docker
# slogan: An open-source, modern-design AI chat framework.
# category: ai
# tags: ai, chat, openai, llm, chatbot
# logo: svgs/lobe-chat.png
# port: 3210
services:
lobe-chat:
image: "lobehub/lobe-chat:1.135.5"
environment:
- SERVICE_URL_LOBECHAT_3210
- OPENAI_API_KEY=${OPENAI_API_KEY}
- OPENAI_PROXY_URL=${OPENAI_BASE_URL:-https://api.openai.com/v1}
- ACCESS_CODE=${SERVICE_PASSWORD_ACCESSCODE}
healthcheck:
test:
- CMD-SHELL
- "wget -qO- http://localhost:3210/ || exit 1"
interval: 5s
timeout: 20s
retries: 10
+6 -11
View File
@@ -10,12 +10,12 @@ services:
image: mattermost/mattermost-team-edition:release-10
platform: linux/amd64
volumes:
- 'mattermost-data-config:/mattermost/config:rw'
- 'mattermost-data-data:/mattermost/data:rw'
- 'mattermost-data-logs:/mattermost/logs:rw'
- 'mattermost-data-plugins:/mattermost/plugins:rw'
- 'mattermost-data-client-plugins:/mattermost/client/plugins:rw'
- 'mattermost-data-bleve-indexes:/mattermost/bleve-indexes:rw'
- "mattermost-data-config:/mattermost/config:rw"
- "mattermost-data-data:/mattermost/data:rw"
- "mattermost-data-logs:/mattermost/logs:rw"
- "mattermost-data-plugins:/mattermost/plugins:rw"
- "mattermost-data-client-plugins:/mattermost/client/plugins:rw"
- "mattermost-data-bleve-indexes:/mattermost/bleve-indexes:rw"
environment:
- SERVICE_URL_MATTERMOST_8065
- MM_SERVICESETTINGS_SITEURL=${SERVICE_URL_MATTERMOST}
@@ -26,11 +26,6 @@ services:
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:8065"]
interval: 5s
timeout: 20s
retries: 10
postgres:
image: postgres:16-alpine
+19 -3
View File
@@ -18,9 +18,18 @@ services:
- MARIADB_COLLATE=utf8mb4_unicode_ci
volumes:
- mariadb-data:/var/lib/mysql
healthcheck:
test:
- CMD-SHELL
- bash -c '</dev/tcp/localhost/3306'
interval: 10s
timeout: 5s
retries: 5
moodle:
image: docker.io/bitnami/moodle:4.3
image: docker.io/bitnamilegacy/moodle:4.3
depends_on:
- mariadb
environment:
- SERVICE_URL_MOODLE_8080
- MOODLE_DATABASE_HOST=mariadb
@@ -36,5 +45,12 @@ services:
volumes:
- moodle-data:/bitnami/moodle
- moodledata-data:/bitnami/moodledata
depends_on:
- mariadb
healthcheck:
test:
- CMD
- php
- -r
- "exit(file_exists('/opt/bitnami/moodle/config.php') ? 0 : 1);"
interval: 20s
timeout: 10s
retries: 5
+56
View File
@@ -0,0 +1,56 @@
# documentation: https://docs.newapi.pro/en/getting-started/
# slogan: The next-generation LLM gateway and AI asset management system supports multiple languages.
# category: api
# tags: api, openai, llm, api-gateway, api-management
# logo: svgs/newapi.png
# port: 3000
services:
new-api:
image: calciumion/new-api:v0.9.2.0
depends_on:
postgresql:
condition: service_healthy
redis:
condition: service_healthy
environment:
- SERVICE_URL_NEW_API_3000
- SQL_DSN=postgres://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/${POSTGRES_DATABASE:-newapi}?sslmode=disable&TimeZone=${TZ:-Asia/Shanghai}
- REDIS_CONN_STRING=redis://redis:6379
- TZ=${TZ:-Asia/Shanghai}
- SESSION_SECRET=$SERVICE_BASE64_64_SESSION_SECRET
- ERROR_LOG_ENABLED=${ERROR_LOG_ENABLED:-true}
healthcheck:
test:
- CMD-SHELL
- "wget -q -O - http://localhost:3000/api/status | grep -o '\"success\":\\s*true' | awk -F: '{print $2}'"
interval: 30s
timeout: 10s
retries: 3
postgresql:
image: postgres:16-alpine
environment:
- POSTGRES_USER=$SERVICE_USER_POSTGRES
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
- POSTGRES_DB=${POSTGRES_DATABASE:-newapi}
volumes:
- postgresql-data:/var/lib/postgresql/data
healthcheck:
test:
- CMD-SHELL
- "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB:-newapi}"
interval: 5s
timeout: 10s
retries: 20
redis:
image: redis:7-alpine
volumes:
- redis-data:/data
healthcheck:
test:
- CMD
- redis-cli
- PING
interval: 5s
timeout: 10s
retries: 20
+27
View File
@@ -0,0 +1,27 @@
# documentation: https://github.com/basecamp/once-campfire
# slogan: Super simple group chat, without a subscription.
# category: messaging
# tags: campfire,chat,communication,rails,once,basecamp,37signals
# logo: svgs/once-campfire.png
# port: 80
services:
campfire:
image: ghcr.io/basecamp/once-campfire:${TAG:-main}
restart: unless-stopped
volumes:
- campfire-storage:/rails/storage
environment:
- SERVICE_URL_CAMPFIRE_80
- SECRET_KEY_BASE=${SERVICE_BASE64_64_CAMPFIRE} # required, set this to a secure random value
- VAPID_PUBLIC_KEY=${VAPID_PUBLIC_KEY} # optional, for notifications
- VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY} # optional, for notifications
- DISABLE_SSL=${DISABLE_SSL:-true} # optional, disable SSL
- SSL_DOMAIN=${SSL_DOMAIN:-false} # optional, for SSL
- SKIP_TELEMETRY=${SKIP_TELEMETRY:-true} # optional, set to disable telemetry
- SENTRY_DSN=${SENTRY_DSN} # optional, for error reporting
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/up"]
interval: 10s
timeout: 5s
retries: 5
+21
View File
@@ -0,0 +1,21 @@
# documentation: https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
# slogan: pgAdmin is a web-based database management tool for administering your PostgreSQL databases through a user-friendly interface.
# category: database
# tags: database management
# logo: svgs/postgresql.svg
# port: 80
services:
pgadmin:
image: 'dpage/pgadmin4:latest'
environment:
- SERVICE_URL_PGADMIN
- 'PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL:?}'
- 'PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD:?}'
volumes:
- pgadmin-data:/var/lib/pgadmin
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:80/login"]
interval: 5s
timeout: 10s
retries: 5
+1 -1
View File
@@ -31,7 +31,7 @@ services:
retries: 15
mongodb:
image: docker.io/bitnami/mongodb:5.0
image: docker.io/bitnamilegacy/mongodb:5.0
volumes:
- mongodb_data:/bitnami/mongodb
environment:
+133
View File
@@ -0,0 +1,133 @@
# documentation: https://rybbit.io/docs
# slogan: Open-source, privacy-first web analytics.
# tags: analytics,web,privacy,self-hosted,clickhouse,postgres
# logo: svgs/rybbit.svg
# port: 3002
services:
rybbit:
image: 'ghcr.io/rybbit-io/rybbit-client:v1.6.1'
environment:
- SERVICE_URL_RYBBIT_3002
- NODE_ENV=production
- 'NEXT_PUBLIC_BACKEND_URL=${SERVICE_URL_RYBBIT}'
- 'NEXT_PUBLIC_DISABLE_SIGNUP=${DISABLE_SIGNUP:-false}'
depends_on:
- rybbit_backend
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 3002"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
rybbit_backend:
image: 'ghcr.io/rybbit-io/rybbit-backend:v1.6.1'
environment:
- NODE_ENV=production
- TRUST_PROXY=true
- 'BASE_URL=${SERVICE_URL_RYBBIT}'
# --- Coolify-Managed Secrets ---
- 'CLICKHOUSE_PASSWORD=${SERVICE_PASSWORD_CLICKHOUSE}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
- 'BETTER_AUTH_SECRET=${SERVICE_BASE64_64_BACKEND}'
# --- User Settings ---
- 'DISABLE_SIGNUP=${DISABLE_SIGNUP:-false}'
- 'DISABLE_TELEMETRY=${DISABLE_TELEMETRY:-true}'
# --- Internal Config ---
- 'CLICKHOUSE_HOST=http://rybbit_clickhouse:8123'
- 'CLICKHOUSE_USER=${CLICKHOUSE_USER:-default}'
- 'CLICKHOUSE_DB=${CLICKHOUSE_DB:-analytics}'
- POSTGRES_HOST=rybbit_postgres
- POSTGRES_PORT=5432
- 'POSTGRES_DB=${POSTGRES_DB:-analytics}'
- 'POSTGRES_USER=${POSTGRES_USER:-frog}'
depends_on:
rybbit_clickhouse:
condition: service_healthy
rybbit_postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:3001/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
rybbit_postgres:
image: 'postgres:17.4'
environment:
- 'POSTGRES_DB=${POSTGRES_DB:-analytics}'
- 'POSTGRES_USER=${POSTGRES_USER:-frog}'
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}'
volumes:
- 'postgres_data:/var/lib/postgresql/data'
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 30s
timeout: 10s
retries: 3
rybbit_clickhouse:
image: 'clickhouse/clickhouse-server:25.4.2'
environment:
- 'CLICKHOUSE_DB=${CLICKHOUSE_DB:-analytics}'
- 'CLICKHOUSE_USER=${CLICKHOUSE_USER:-default}'
- 'CLICKHOUSE_PASSWORD=${SERVICE_PASSWORD_CLICKHOUSE}'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8123/ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
volumes:
- 'clickhouse_data:/var/lib/clickhouse'
- type: bind
source: ./clickhouse_config/enable_json.xml
target: /etc/clickhouse-server/config.d/enable_json.xml
content: |
<clickhouse>
<settings>
<enable_json_type>1</enable_json_type>
</settings>
</clickhouse>
- type: bind
source: ./clickhouse_config/logging_rules.xml
target: /etc/clickhouse-server/config.d/logging_rules.xml
content: |
<clickhouse>
<logger>
<level>warning</level>
<console>true</console>
</logger>
<query_thread_log remove="remove"/>
<query_log remove="remove"/>
<text_log remove="remove"/>
<trace_log remove="remove"/>
<metric_log remove="remove"/>
<asynchronous_metric_log remove="remove"/>
<session_log remove="remove"/>
<part_log remove="remove"/>
<latency_log remove="remove"/>
<processors_profile_log remove="remove"/>
</clickhouse>
- type: bind
source: ./clickhouse_config/network.xml
target: /etc/clickhouse-server/config.d/network.xml
content: |
<clickhouse>
<listen_host>0.0.0.0</listen_host>
</clickhouse>
- type: bind
source: ./clickhouse_config/user_logging.xml
target: /etc/clickhouse-server/config.d/user_logging.xml
content: |
<clickhouse>
<profiles>
<default>
<log_queries>0</log_queries>
<log_query_threads>0</log_query_threads>
<log_processors_profiles>0</log_processors_profiles>
</default>
</profiles>
</clickhouse>
+171
View File
@@ -0,0 +1,171 @@
# documentation: https://docs.swetrix.com/selfhosting/how-to
# slogan: Privacy-friendly and cookieless European web analytics alternative to Google Analytics.
# category: analytics
# tags: analytics,privacy,monitoring,open-source,clickhouse,redis
# logo: svgs/swetrix.svg
# port: 3000
services:
swetrix:
image: swetrix/swetrix-fe:v4.0.5
depends_on:
- swetrix-api
environment:
- SERVICE_URL_SWETRIX_3000
- API_URL=$SERVICE_URL_SWETRIXAPI
healthcheck:
test:
- CMD-SHELL
- wget --no-verbose --tries=1 --spider http://localhost:3000/ping || exit 1
timeout: 5s
retries: 10
interval: 30s
start_period: 15s
swetrix-api:
image: swetrix/swetrix-api:v4.0.5
environment:
# Required
- SECRET_KEY_BASE=$SERVICE_BASE64_64_SECRETKEYBASE
- SERVICE_URL_SWETRIXAPI
# Optional
- DISABLE_REGISTRATION=${DISABLE_REGISTRATION:-false}
- IP_GEOLOCATION_DB_PATH=${IP_GEOLOCATION_DB_PATH:-}
- DEBUG_MODE=${DEBUG_MODE:-false}
- CLOUDFLARE_PROXY_ENABLED=${CLOUDFLARE_PROXY_ENABLED:-false}
# SMTP (optional)
- SMTP_HOST=${SMTP_HOST:-}
- SMTP_PORT=${SMTP_PORT:-}
- SMTP_USER=${SMTP_USER:-}
- SMTP_PASSWORD=${SMTP_PASSWORD:-}
- FROM_EMAIL=${FROM_EMAIL:-}
- SMTP_MOCK=${SMTP_MOCK:-false}
# OIDC (optional)
- OIDC_ENABLED=${OIDC_ENABLED:-false}
- OIDC_ONLY_AUTH=${OIDC_ONLY_AUTH:-false}
- OIDC_DISCOVERY_URL=${OIDC_DISCOVERY_URL:-}
- OIDC_CLIENT_ID=${OIDC_CLIENT_ID:-}
- OIDC_CLIENT_SECRET=${OIDC_CLIENT_SECRET:-}
# Required service endpoints
- REDIS_HOST=redis
- CLICKHOUSE_HOST=http://clickhouse
- CLICKHOUSE_PASSWORD=$SERVICE_PASSWORD_CLICKHOUSE
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
depends_on:
redis:
condition: service_healthy
clickhouse:
condition: service_healthy
healthcheck:
test:
- CMD-SHELL
- wget --no-verbose --tries=1 --spider http://localhost:5005/ping || exit 1
timeout: 5s
retries: 10
interval: 30s
start_period: 15s
redis:
image: redis:8.2-alpine
environment:
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_USER=${REDIS_USER:-default}
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
healthcheck:
test:
- CMD-SHELL
- redis-cli ping | grep PONG
timeout: 5s
retries: 10
interval: 30s
start_period: 1m
clickhouse:
image: clickhouse/clickhouse-server:24.10-alpine
environment:
- CLICKHOUSE_DATABASE=${CLICKHOUSE_DATABASE:-analytics}
- CLICKHOUSE_USER=${CLICKHOUSE_USER:-default}
- CLICKHOUSE_PORT=${CLICKHOUSE_PORT:-8123}
- CLICKHOUSE_PASSWORD=$SERVICE_PASSWORD_CLICKHOUSE
healthcheck:
test:
- CMD-SHELL
- wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1
timeout: 5s
retries: 10
interval: 30s
start_period: 1m
cap_add:
- SYS_NICE
volumes:
# Persistent storage for ClickHouse
- swetrix-events-data:/var/lib/clickhouse
# Disable logging
- type: bind
source: ./disable-user-logging.xml
target: /etc/clickhouse-server/users.d/disable-user-logging.xml
read_only: true
content: |
<clickhouse>
<profiles>
<default>
<log_queries>0</log_queries>
<log_query_threads>0</log_query_threads>
</default>
</profiles>
</clickhouse>
- type: bind
source: ./reduce-logs.xml
target: /etc/clickhouse-server/config.d/reduce-logs.xml
read_only: true
content: |
<clickhouse>
<logger>
<level>warning</level>
<console>true</console>
</logger>
<query_thread_log remove="remove"/>
<query_log remove="remove"/>
<text_log remove="remove"/>
<trace_log remove="remove"/>
<metric_log remove="remove"/>
<asynchronous_metric_log remove="remove"/>
<session_log remove="remove"/>
<part_log remove="remove"/>
</clickhouse>
# Reduce RAM usage
- type: bind
source: ./preserve-ram-config.xml
target: /etc/clickhouse-server/config.d/preserve-ram-config.xml
read_only: true
content: |
<clickhouse>
<mark_cache_size>536870912</mark_cache_size>
<concurrent_threads_soft_limit_num>1</concurrent_threads_soft_limit_num>
</clickhouse>
- type: bind
source: ./preserve-ram-user.xml
target: /etc/clickhouse-server/users.d/preserve-ram-user.xml
read_only: true
content: |
<clickhouse>
<profiles>
<default>
<max_block_size>2048</max_block_size>
<max_download_threads>1</max_download_threads>
<input_format_parallel_parsing>0</input_format_parallel_parsing>
<output_format_parallel_formatting>0</output_format_parallel_formatting>
</default>
</profiles>
</clickhouse>
ulimits:
nofile:
soft: 262144
hard: 262144
+1 -1
View File
@@ -30,7 +30,7 @@ services:
postgres:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8082/ping"]
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8082"]
interval: 30s
timeout: 10s
retries: 3