Merge branch 'next' into main
This commit is contained in:
19
templates/compose/actualbudget.yaml
Normal file
19
templates/compose/actualbudget.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
# documentation: https://actualbudget.org/docs/install/docker
|
||||
# slogan: A local-first personal finance app.
|
||||
# tags: budgeting,actual,finance,budget,money,expenses,income
|
||||
# logo: svgs/actualbudget.png
|
||||
# port: 5006
|
||||
|
||||
services:
|
||||
actual_server:
|
||||
image: actualbudget/actual-server:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_ACTUAL_5006
|
||||
- ACTUAL_LOGIN_METHOD=password
|
||||
volumes:
|
||||
- actual_data:/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/5006' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
@@ -23,6 +23,7 @@ services:
|
||||
- JWT_SECRET=${SERVICE_PASSWORD_JWTSECRET}
|
||||
- AUTH_TOKEN=${SERVICE_PASSWORD_AUTHTOKEN}
|
||||
- SERVER_PORT=${SERVER_PORT:-3001}
|
||||
- VECTOR_DB=lancedb
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
volumes:
|
||||
|
||||
28
templates/compose/calibre-web.yaml
Normal file
28
templates/compose/calibre-web.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
# documentation: https://github.com/linuxserver/docker-calibre-web
|
||||
# slogan: Calibre-web is a web app providing a clean interface for browsing, reading and downloading eBooks.
|
||||
# tags: calibre,calibre-web,ebook,library,epub,ereader,kindle,book,reader
|
||||
# logo: svgs/calibre-web.svg
|
||||
# port: 8083
|
||||
|
||||
services:
|
||||
calibre-web:
|
||||
image: lscr.io/linuxserver/calibre-web:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_CALIBRE_8083
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=${TZ:-Etc/UTC}
|
||||
# optional & x86-64 only Adds the ability to perform ebook conversion
|
||||
- 'DOCKER_MODS=${DOCKER_MODS:-linuxserver/mods:universal-calibre}'
|
||||
volumes:
|
||||
- calibre_web_data:/config
|
||||
- calibre_library:/books
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://127.0.0.1:8083'
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
19
templates/compose/cockpit.yaml
Normal file
19
templates/compose/cockpit.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
# documentation: https://getcockpit.com/documentation/
|
||||
# slogan: Cockpit is a headless content platform that is lightweight, fast and ready for takeoff.
|
||||
# tags: cockpit, headless, cms, database, nosql
|
||||
# logo: svgs/cockpit.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
cockpit:
|
||||
image: cockpithq/cockpit:core-latest
|
||||
volumes:
|
||||
- cockpit-config:/var/www/html/config
|
||||
- cockpit-spaces:/var/www/html/.spaces
|
||||
- cockpit-storage:/var/www/html/storage
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD", "wget", "-q", "--spider", "http://127.0.0.1/api/system/healthcheck"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -5,7 +5,7 @@
|
||||
# port: 5000
|
||||
|
||||
services:
|
||||
radarr:
|
||||
fileflows:
|
||||
image: revenz/fileflows
|
||||
environment:
|
||||
- SERVICE_FQDN_FILEFLOWS_5000
|
||||
|
||||
@@ -57,6 +57,10 @@ services:
|
||||
- GITHUB_APP_NAME=${GITHUB_APP_NAME}
|
||||
- GITHUB_APP_ID=${GITHUB_APP_ID}
|
||||
- GITHUB_APP_PRIVATE_KEY=${GITHUB_APP_PRIVATE_KEY}
|
||||
- DISCORD_CLIENT_ID=${DISCORD_CLIENT_ID}
|
||||
- DISCORD_CLIENT_SECRET=${DISCORD_CLIENT_SECRET}
|
||||
- DISCORD_SERVER_ID=${DISCORD_SERVER_ID}
|
||||
- DISCORD_SERVER_ROLES=${DISCORD_SERVER_ROLES}
|
||||
- PGSSLMODE=${PGSSLMODE:-disable}
|
||||
- FORCE_HTTPS=${FORCE_HTTPS:-true}
|
||||
healthcheck:
|
||||
|
||||
26
templates/compose/gotenberg.yaml
Normal file
26
templates/compose/gotenberg.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
# documentation: https://gotenberg.dev/docs/getting-started/introduction
|
||||
# slogan: Gotenberg is a Docker-powered stateless API for PDF files.
|
||||
# tags: api,backend,pdf,tool
|
||||
# logo: svgs/gotenberg.png
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
gotenberg:
|
||||
image: gotenberg/gotenberg:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_GOTENBERG_3000
|
||||
# NOTE: requires the --api-enable-basic-auth option in "command"
|
||||
- GOTENBERG_API_BASIC_AUTH_USERNAME=${SERVICE_USER_GOTENBERG}
|
||||
- GOTENBERG_API_BASIC_AUTH_PASSWORD=${SERVICE_PASSWORD_GOTENBERG}
|
||||
command: [
|
||||
"gotenberg",
|
||||
# See the full list of options at https://gotenberg.dev/docs/configuration
|
||||
"--api-enable-basic-auth"
|
||||
#"--api-timeout=60s",
|
||||
#"--chromium-auto-start"
|
||||
]
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:3000/version"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -1,3 +1,4 @@
|
||||
# ignore: true
|
||||
# documentation: https://jitsi.github.io/handbook/docs/intro
|
||||
# slogan: World's easiest way to add meetings to your apps
|
||||
# logo: svgs/jitsi.svg
|
||||
|
||||
@@ -12,6 +12,8 @@ services:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_LABELSTUDIO_8080
|
||||
- CSRF_TRUSTED_ORIGINS=${SERVICE_FQDN_LABELSTUDIO}
|
||||
- EXPERIMENTAL_FEATURES=${EXPERIMENTAL_FEATURES:-false}
|
||||
- DJANGO_DB=${DJANGO_DB:-default}
|
||||
- POSTGRE_NAME=${POSTGRES_DB:-labelstudio}
|
||||
- POSTGRE_USER=${SERVICE_USER_POSTGRES}
|
||||
|
||||
@@ -12,8 +12,8 @@ services:
|
||||
- N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N}
|
||||
- WEBHOOK_URL=${SERVICE_FQDN_N8N}
|
||||
- N8N_HOST=${SERVICE_URL_N8N}
|
||||
- GENERIC_TIMEZONE=Europe/Berlin
|
||||
- TZ=Europe/Berlin
|
||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}
|
||||
- TZ=${TZ:-Europe/Berlin}
|
||||
- DB_TYPE=postgresdb
|
||||
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB:-n8n}
|
||||
- DB_POSTGRESDB_HOST=postgresql
|
||||
|
||||
@@ -12,8 +12,8 @@ services:
|
||||
- N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N}
|
||||
- WEBHOOK_URL=${SERVICE_FQDN_N8N}
|
||||
- N8N_HOST=${SERVICE_URL_N8N}
|
||||
- GENERIC_TIMEZONE=Europe/Berlin
|
||||
- TZ=Europe/Berlin
|
||||
- GENERIC_TIMEZONE=${GENERIC_TIMEZONE:-Europe/Berlin}
|
||||
- TZ=${TZ:-Europe/Berlin}
|
||||
volumes:
|
||||
- n8n-data:/home/node/.n8n
|
||||
healthcheck:
|
||||
|
||||
@@ -12,7 +12,7 @@ services:
|
||||
volumes:
|
||||
- nocodb-data:/usr/app/data/
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8080"]
|
||||
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:8080/api/v1/health"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
54
templates/compose/nodebb.yaml
Normal file
54
templates/compose/nodebb.yaml
Normal file
@@ -0,0 +1,54 @@
|
||||
# documentation: https://docs.nodebb.org/
|
||||
# slogan: A next-generation discussion platform.
|
||||
# tags: communication, forums, discussion
|
||||
# logo: svgs/nodebb.svg
|
||||
# port: 4567
|
||||
|
||||
services:
|
||||
nodebb:
|
||||
image: ghcr.io/nodebb/nodebb:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_NODEBB_4567
|
||||
volumes:
|
||||
- nodebb_build:/usr/src/app/build
|
||||
- nodebb_uploads:/usr/src/app/public/uploads
|
||||
- nodebb_config:/opt/config
|
||||
command: >
|
||||
/bin/bash -c "
|
||||
cat > /usr/src/app/setup.json <<EOL
|
||||
{
|
||||
\"defaults\": {
|
||||
\"postgres\": {
|
||||
\"host\": \"postgres\",
|
||||
\"port\": 5432,
|
||||
\"database\": \"nodebb\",
|
||||
\"username\": \"${SERVICE_USER_POSTGRES}\",
|
||||
\"password\": \"${SERVICE_PASSWORD_POSTGRES}\"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOL
|
||||
&& tini -- entrypoint.sh
|
||||
"
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/4567' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
|
||||
postgres:
|
||||
image: postgres:17.2-alpine
|
||||
environment:
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_DB=nodebb
|
||||
volumes:
|
||||
- nodebb_postgres_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -2,15 +2,18 @@
|
||||
# slogan: Penpot is the first Open Source design and prototyping platform for product teams.
|
||||
# tags: penpot,design,prototyping,figma,open,source
|
||||
# logo: svgs/penpot.svg
|
||||
# port: 80
|
||||
|
||||
services:
|
||||
frontend:
|
||||
image: "penpotapp/frontend:latest"
|
||||
image: penpotapp/frontend:latest
|
||||
volumes:
|
||||
- penpot-assets:/opt/data/assets
|
||||
depends_on:
|
||||
- penpot-backend
|
||||
- penpot-exporter
|
||||
penpot-backend:
|
||||
condition: service_healthy
|
||||
penpot-exporter:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_FRONTEND
|
||||
- PENPOT_FLAGS=${PENPOT_FRONTEND_FLAGS:-enable-login-with-password}
|
||||
@@ -19,13 +22,16 @@ services:
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
penpot-backend:
|
||||
image: penpotapp/backend:latest
|
||||
volumes:
|
||||
- penpot-assets:/opt/data/assets
|
||||
depends_on:
|
||||
- postgres
|
||||
- redis
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- PENPOT_FLAGS=${PENPOT_BACKEND_FLAGS:-enable-login-with-password enable-smtp enable-prepl-server}
|
||||
- PENPOT_HTTP_SERVER_PORT=6060
|
||||
@@ -49,19 +55,32 @@ services:
|
||||
- PENPOT_SMTP_TLS=${PENPOT_SMTP_TLS:-false}
|
||||
- PENPOT_SMTP_SSL=${PENPOT_SMTP_SSL:-false}
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:6060"]
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:6060/readyz"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
penpot-exporter:
|
||||
image: penpotapp/exporter:latest
|
||||
environment:
|
||||
- PENPOT_PUBLIC_URI=$SERVICE_FQDN_FRONTEND
|
||||
- PENPOT_REDIS_URI=redis://redis/0
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://127.0.0.1:6061/readyz"]
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
mailpit:
|
||||
image: "axllent/mailpit:latest"
|
||||
image: axllent/mailpit:latest
|
||||
environment:
|
||||
- SERVICE_FQDN_MAILPIT_8025
|
||||
healthcheck:
|
||||
test: ["CMD", "/mailpit", "readyz"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
postgres:
|
||||
image: postgres:15
|
||||
volumes:
|
||||
@@ -76,6 +95,7 @@ services:
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
command: redis-server --appendonly yes
|
||||
|
||||
47
templates/compose/rallly.yaml
Normal file
47
templates/compose/rallly.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
# documentation: https://support.rallly.co/self-hosting/introduction
|
||||
# slogan: Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier.
|
||||
# tags: scheduling,rallly,events,meeting,doodle
|
||||
# logo: svgs/rallly.svg
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
rallly_db:
|
||||
image: postgres:14.2
|
||||
volumes:
|
||||
- rallly_db_data:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-rallly}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"
|
||||
interval: 2s
|
||||
timeout: 10s
|
||||
retries: 15
|
||||
|
||||
rallly:
|
||||
image: lukevella/rallly:latest
|
||||
platform: linux/amd64
|
||||
depends_on:
|
||||
rallly_db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_RALLLY_3000
|
||||
- DATABASE_URL=postgres://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@rallly_db:5432/${POSTGRES_DB:-rallly}
|
||||
- SECRET_PASSWORD=${SERVICE_PASSWORD_64_RALLLY}
|
||||
- NEXT_PUBLIC_BASE_URL=https://${SERVICE_URL_RALLLY}
|
||||
- ALLOWED_EMAILS=${ALLOWED_EMAILS}
|
||||
- SUPPORT_EMAIL=${SUPPORT_EMAIL:-support@example.com}
|
||||
- SMTP_HOST=${SMTP_HOST}
|
||||
- SMTP_PORT=${SMTP_PORT}
|
||||
- SMTP_SECURE=${SMTP_SECURE}
|
||||
- SMTP_USER=${SMTP_USER}
|
||||
- SMTP_PWD=${SMTP_PWD}
|
||||
- SMTP_TLS_ENABLED=${SMTP_TLS_ENABLED}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/3000' || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
@@ -15,6 +15,7 @@ services:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- SERVICE_FQDN_SUPABASEKONG_8000
|
||||
- KONG_PORT_MAPS=443:8000
|
||||
- JWT_SECRET=${SERVICE_PASSWORD_JWT}
|
||||
- KONG_DATABASE=off
|
||||
- KONG_DECLARATIVE_CONFIG=/home/kong/kong.yml
|
||||
@@ -278,7 +279,7 @@ services:
|
||||
config:
|
||||
hide_credentials: true
|
||||
supabase-studio:
|
||||
image: supabase/studio:20240923-2e3e90c
|
||||
image: supabase/studio:20241202-71e5240
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
@@ -315,8 +316,9 @@ services:
|
||||
- NEXT_ANALYTICS_BACKEND_PROVIDER=postgres
|
||||
# Uncomment to use Big Query backend for analytics
|
||||
# NEXT_ANALYTICS_BACKEND_PROVIDER=bigquery
|
||||
- 'OPENAI_API_KEY=${OPENAI_API_KEY}'
|
||||
supabase-db:
|
||||
image: supabase/postgres:15.1.1.78
|
||||
image: supabase/postgres:15.6.1.146
|
||||
healthcheck:
|
||||
test: pg_isready -U postgres -h 127.0.0.1
|
||||
interval: 5s
|
||||
@@ -366,6 +368,7 @@ services:
|
||||
\c _supabase
|
||||
create schema if not exists _supavisor;
|
||||
alter schema _supavisor owner to :pguser;
|
||||
\c postgres
|
||||
- type: bind
|
||||
source: ./volumes/db/webhooks.sql
|
||||
target: /docker-entrypoint-initdb.d/init-scripts/98-webhooks.sql
|
||||
@@ -609,6 +612,7 @@ services:
|
||||
\c _supabase
|
||||
create schema if not exists _analytics;
|
||||
alter schema _analytics owner to :pguser;
|
||||
\c postgres
|
||||
# Use named volume to persist pgsodium decryption key between restarts
|
||||
- supabase-db-config:/etc/postgresql-custom
|
||||
|
||||
@@ -927,7 +931,7 @@ services:
|
||||
command: "postgrest"
|
||||
exclude_from_hc: true
|
||||
supabase-auth:
|
||||
image: supabase/gotrue:v2.158.1
|
||||
image: supabase/gotrue:v2.164.0
|
||||
depends_on:
|
||||
supabase-db:
|
||||
# Disable this if you are using an external Postgres database
|
||||
@@ -1018,7 +1022,7 @@ services:
|
||||
|
||||
realtime-dev:
|
||||
# This container name looks inconsistent but is correct because realtime constructs tenant id by parsing the subdomain
|
||||
image: supabase/realtime:v2.30.34
|
||||
image: supabase/realtime:v2.33.70
|
||||
container_name: realtime-dev.supabase-realtime
|
||||
depends_on:
|
||||
supabase-db:
|
||||
@@ -1061,6 +1065,9 @@ services:
|
||||
- RLIMIT_NOFILE=10000
|
||||
- APP_NAME=realtime
|
||||
- SEED_SELF_HOST=true
|
||||
- LOG_LEVEL=error
|
||||
- RUN_JANITOR=true
|
||||
- JANITOR_INTERVAL=60000
|
||||
command: >
|
||||
sh -c "/app/bin/migrate && /app/bin/realtime eval 'Realtime.Release.seeds(Realtime.Repo)' && /app/bin/server"
|
||||
supabase-minio:
|
||||
@@ -1098,7 +1105,7 @@ services:
|
||||
exit 0
|
||||
|
||||
supabase-storage:
|
||||
image: supabase/storage-api:v1.10.1
|
||||
image: supabase/storage-api:v1.14.6
|
||||
depends_on:
|
||||
supabase-db:
|
||||
# Disable this if you are using an external Postgres database
|
||||
@@ -1137,12 +1144,14 @@ services:
|
||||
- UPLOAD_FILE_SIZE_LIMIT=524288000
|
||||
- UPLOAD_FILE_SIZE_LIMIT_STANDARD=524288000
|
||||
- UPLOAD_SIGNED_URL_EXPIRATION_TIME=120
|
||||
- TUS_URL_PATH=/upload/resumable
|
||||
- TUS_URL_PATH=upload/resumable
|
||||
- TUS_MAX_SIZE=3600000
|
||||
- ENABLE_IMAGE_TRANSFORMATION=true
|
||||
- IMGPROXY_URL=http://imgproxy:8080
|
||||
- IMGPROXY_REQUEST_TIMEOUT=15
|
||||
- DATABASE_SEARCH_PATH=storage
|
||||
- NODE_ENV=production
|
||||
- REQUEST_ALLOW_X_FORWARDED_PATH=true
|
||||
|
||||
# - ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzA4OTg4NDAwLAogICJleHAiOiAxODY2ODQxMjAwCn0.jCDqsoXGT58JnAjf27KOowNQsokkk0aR7rdbGG18P-8
|
||||
# - SERVICE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MDg5ODg0MDAsCiAgImV4cCI6IDE4NjY4NDEyMDAKfQ.GA7yF2BmqTzqGkP_oqDdJAQVt0djjIxGYuhE0zFDJV4
|
||||
@@ -1182,7 +1191,7 @@ services:
|
||||
- ./volumes/storage:/var/lib/storage
|
||||
|
||||
supabase-meta:
|
||||
image: supabase/postgres-meta:v0.83.2
|
||||
image: supabase/postgres-meta:v0.84.2
|
||||
depends_on:
|
||||
supabase-db:
|
||||
# Disable this if you are using an external Postgres database
|
||||
@@ -1198,7 +1207,7 @@ services:
|
||||
- PG_META_DB_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
|
||||
supabase-edge-functions:
|
||||
image: supabase/edge-runtime:v1.58.3
|
||||
image: supabase/edge-runtime:v1.65.3
|
||||
depends_on:
|
||||
supabase-analytics:
|
||||
condition: service_healthy
|
||||
|
||||
88
templates/compose/teable.yaml
Normal file
88
templates/compose/teable.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
# documentation: https://help.teable.io/
|
||||
# slogan: Teable is a powerful visual interface built on relational databases (PostgreSQL).
|
||||
# tags: airtable, teable, database, visual, interface, relational, postgresql
|
||||
# logo: svgs/teable.png
|
||||
# port: 3000
|
||||
|
||||
services:
|
||||
teable:
|
||||
image: ghcr.io/teableio/teable:latest
|
||||
volumes:
|
||||
- teable_data:/app/.assets:rw
|
||||
environment:
|
||||
- SERVICE_FQDN_TEABLE_3000
|
||||
- PUBLIC_ORIGIN=${SERVICE_FQDN_TEABLE}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- SECRET_KEY=${SERVICE_PASSWORD_64_SECRET}
|
||||
- TZ=${TIMEZONE}
|
||||
- PRISMA_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@teable-db:${POSTGRES_PORT}/${POSTGRES_DB}
|
||||
- NEXT_ENV_IMAGES_ALL_REMOTE=true
|
||||
- PORT=3000
|
||||
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
||||
- BACKEND_CACHE_PROVIDER=redis
|
||||
- BACKEND_CACHE_REDIS_URI=redis://default:${SERVICE_PASSWORD_REDIS}@teable-cache:6379/0
|
||||
- BACKEND_MAIL_HOST=${BACKEND_MAIL_HOST}
|
||||
- BACKEND_MAIL_PORT=${BACKEND_MAIL_PORT}
|
||||
- BACKEND_MAIL_SECURE=${BACKEND_MAIL_SECURE}
|
||||
- BACKEND_MAIL_SENDER=${BACKEND_MAIL_SENDER}
|
||||
- BACKEND_MAIL_SENDER_NAME=${BACKEND_MAIL_SENDER_NAME}
|
||||
- BACKEND_MAIL_AUTH_USER=${BACKEND_MAIL_AUTH_USER}
|
||||
- BACKEND_MAIL_AUTH_PASS=${BACKEND_MAIL_AUTH_PASS}
|
||||
depends_on:
|
||||
teable-cache:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://127.0.0.1:3000'
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
||||
teable-db:
|
||||
image: postgres:15.4
|
||||
volumes:
|
||||
- teable_db_data:/var/lib/postgresql/data:rw
|
||||
environment:
|
||||
- TZ=${TIMEZONE}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-teable}
|
||||
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
||||
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
||||
- POSTGRES_PORT=${POSTGRES_PORT:-5432}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD-SHELL
|
||||
- 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
teable-db-migrate:
|
||||
image: ghcr.io/teableio/teable-db-migrate:latest
|
||||
restart: no
|
||||
environment:
|
||||
- TZ=${TIMEZONE}
|
||||
- PRISMA_DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@teable-db:${POSTGRES_PORT}/${POSTGRES_DB}
|
||||
depends_on:
|
||||
teable-db:
|
||||
condition: service_healthy
|
||||
teable-cache:
|
||||
image: redis:7.2.4
|
||||
environment:
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_DB=0
|
||||
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
||||
volumes:
|
||||
- teable_cache_data:/data:rw
|
||||
command: redis-server --appendonly yes --requirepass ${SERVICE_PASSWORD_REDIS}
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- redis-cli
|
||||
- '--raw'
|
||||
- incr
|
||||
- ping
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
@@ -23,8 +23,14 @@ services:
|
||||
- RESEND_API_KEY=${RESEND_API_KEY}
|
||||
- FROM_EMAIL=${FROM_EMAIL}
|
||||
- REPLY_TO_EMAIL=${REPLY_TO_EMAIL}
|
||||
- REDIS_HOST=${REDIS_HOST}
|
||||
- REDIS_PORT=${REDIS_PORT}
|
||||
- REDIS_USERNAME=${REDIS_USERNAME}
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
||||
- REDIS_TLS_DISABLED=${REDIS_TLS_DISABLED:-true}
|
||||
|
||||
healthcheck:
|
||||
test: "timeout 10s bash -c ':> /dev/tcp/127.0.0.1/3000' || exit 1"
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
retries: 5
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# ignore: true
|
||||
# documentation: https://docs.twenty.com
|
||||
# slogan: Twenty is a CRM designed to fit your unique business needs.
|
||||
# tags: crm, self-hosted, dashboard
|
||||
|
||||
Reference in New Issue
Block a user