Files
coolify/tests/Fixtures/parser/expected/reference-with-application-settings.yaml
Andras BacsaiandClaude Opus 5.5 8d07d178f0 fix(log-drain): send Coolify labels to Fluent Bit drains
Containers without the Coolify default variables sent no project,
environment, or service to the drain. The fluentd driver now also sends
the Coolify container labels; the built-in configs use them as a
fallback and add coolify.service_name.

Closes #8415

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 22:42:37 +01:00

2792 lines
129 KiB
YAML

1_deploy:
applications:
api:
fqdn: 'http://api-referenceservice00000001.10.0.0.1.sslip.io/api'
required_port: 3000
exclude_from_status: false
ports: '3000:3000,3001:3001/tcp'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/api-data
mount_path: /data
is_directory: true
blog:
fqdn: 'http://blog-referenceservice00000001.10.0.0.1.sslip.io/blog'
required_port: 2368
exclude_from_status: false
ports: ''
gateway:
fqdn: 'http://gateway-referenceservice00000001.10.0.0.1.sslip.io'
exclude_from_status: false
ports: ''
gateway-ws:
fqdn: 'http://gateway-referenceservice00000001.10.0.0.1.sslip.io/ws'
exclude_from_status: false
ports: ''
my-app:
fqdn: 'http://my_app-referenceservice00000001.10.0.0.1.sslip.io'
required_port: 80
exclude_from_status: false
ports: ''
scheduler:
required_port: 8080
exclude_from_status: true
ports: ''
sidecar:
exclude_from_status: true
ports: ''
web:
fqdn: 'http://web-referenceservice00000001.10.0.0.1.sslip.io'
required_port: 8080
exclude_from_status: false
ports: ''
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/web-init.sh
mount_path: /docker-entrypoint.d/init.sh
is_directory: false
content: |
#!/bin/sh
echo "reference fixture"
-
fs_path: /data/coolify/services/referenceservice00000001/config
mount_path: /etc/nginx/conf.d
is_directory: true
worker:
required_port: 8080
exclude_from_status: false
ports: ''
www:
fqdn: 'http://www-referenceservice00000001.10.0.0.1.sslip.io'
exclude_from_status: false
ports: ''
databases:
db:
exclude_from_status: false
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
environment_variables:
API_URL: '${SERVICE_URL_API}'
APP_URL: '${SERVICE_URL_WEB}'
BARE_PASSTHROUGH: null
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
BUILD_VERSION: null
DASH_DEFAULT_VAR: null
GHOST_URL: '${SERVICE_URL_GHOST}'
HEX_128: '${SERVICE_HEX_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
INTERPOLATED_HOST: null
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
MAP_NULL: null
NESTED_INNER: null
NESTED_NO_DEFAULT_INNER: null
NESTED_NO_DEFAULT_OUTER: null
NESTED_OUTER: null
NO_BRACES_DEFAULT_VAR: null
NO_BRACES_VALUE: null
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_USER: '${SERVICE_USER_DB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
REQUIRED:
value: 'REQUIRED must be set'
required: true
SELF_REF: null
SERVICE_BASE64_64_WEB: '<generated:SERVICE_BASE64_64_WEB:64>'
SERVICE_BASE64_WEB: '<generated:SERVICE_BASE64_WEB:32>'
SERVICE_FOO_WEB: null
SERVICE_FQDN_API: api-referenceservice00000001.10.0.0.1.sslip.io/api
SERVICE_FQDN_BLOG: blog-referenceservice00000001.10.0.0.1.sslip.io/blog
SERVICE_FQDN_BLOG_2368: 'blog-referenceservice00000001.10.0.0.1.sslip.io/blog:2368'
SERVICE_FQDN_DB: db-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_DB_5432: 'db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_FQDN_GATEWAY: gateway-referenceservice00000001.10.0.0.1.sslip.io/ws
SERVICE_FQDN_GHOST: ghost-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_MY_APP: my_app-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_MY_APP_80: 'my_app-referenceservice00000001.10.0.0.1.sslip.io:80'
SERVICE_FQDN_WEB: web-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_WEB_8080: 'web-referenceservice00000001.10.0.0.1.sslip.io:8080'
SERVICE_FQDN_WWW: www-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_HEX_128_WEB: '<generated:SERVICE_HEX_128_WEB:128>'
SERVICE_HEX_32_WEB: '<generated:SERVICE_HEX_32_WEB:32>'
SERVICE_LOWERCASEUSER_WEB: '<generated:SERVICE_LOWERCASEUSER_WEB:16>'
SERVICE_PASSWORDWITHSYMBOLS_64_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_64_WEB:64>'
SERVICE_PASSWORDWITHSYMBOLS_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_WEB:32>'
SERVICE_PASSWORD_64_WEB: '<generated:SERVICE_PASSWORD_64_WEB:64>'
SERVICE_PASSWORD_DB: '<generated:SERVICE_PASSWORD_DB:32>'
SERVICE_PASSWORD_WEB: '<generated:SERVICE_PASSWORD_WEB:32>'
SERVICE_REALBASE64_128_WEB: '<generated:SERVICE_REALBASE64_128_WEB:172>'
SERVICE_REALBASE64_64_WEB: '<generated:SERVICE_REALBASE64_64_WEB:88>'
SERVICE_SUPABASEANON_KEY: null
SERVICE_URL_API: 'http://api-referenceservice00000001.10.0.0.1.sslip.io/api'
SERVICE_URL_BLOG: 'http://blog-referenceservice00000001.10.0.0.1.sslip.io/blog'
SERVICE_URL_BLOG_2368: 'http://blog-referenceservice00000001.10.0.0.1.sslip.io/blog:2368'
SERVICE_URL_DB: 'http://db-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_URL_GATEWAY: 'http://gateway-referenceservice00000001.10.0.0.1.sslip.io/ws'
SERVICE_URL_GHOST: 'http://ghost-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_MY_APP: 'http://my_app-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_MY_APP_80: 'http://my_app-referenceservice00000001.10.0.0.1.sslip.io:80'
SERVICE_URL_WEB: 'http://web-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_WEB_8080: 'http://web-referenceservice00000001.10.0.0.1.sslip.io:8080'
SERVICE_URL_WWW: 'http://www-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_USER_DB: '<generated:SERVICE_USER_DB:16>'
SERVICE_USER_WEB: '<generated:SERVICE_USER_WEB:16>'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
USER: '${SERVICE_USER_WEB}'
WITH_DEFAULT: null
compose:
services:
web:
image: 'nginx:alpine'
environment:
SERVICE_URL_WEB_8080: 'http://web-referenceservice00000001.10.0.0.1.sslip.io:8080'
LITERAL: plain-value
BARE_PASSTHROUGH: ''
SELF_REF: '${SELF_REF}'
WITH_DEFAULT: '${WITH_DEFAULT:-fallback}'
REQUIRED: '${REQUIRED:?REQUIRED must be set}'
NO_BRACES: $NO_BRACES_VALUE
NESTED: '${NESTED_OUTER:-${NESTED_INNER:-inner-default}}'
NESTED_NO_DEFAULT: '${NESTED_NO_DEFAULT_OUTER:-${NESTED_NO_DEFAULT_INNER}}'
DASH_DEFAULT: '${DASH_DEFAULT_VAR-dash-default}'
NO_BRACES_DEFAULT: '$NO_BRACES_DEFAULT_VAR:-no-braces-default'
SHARED: shared-value
SHARED_MISSING: '{{environment.NOT_DEFINED}}'
INTERPOLATED: 'http://${INTERPOLATED_HOST:-localhost}/path'
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
HEX_128: '${SERVICE_HEX_128_WEB}'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
USER: '${SERVICE_USER_WEB}'
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
API_URL: '${SERVICE_URL_API}'
NO_BRACES_VALUE: null
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: web-referenceservice00000001
COOLIFY_FQDN: web-referenceservice00000001.10.0.0.1.sslip.io
COOLIFY_URL: 'http://web-referenceservice00000001.10.0.0.1.sslip.io'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
labels:
- com.example.team=platform
- com.example.dollar=price-$$5
- traefik.http.middlewares.reference-headers.headers.customresponseheaders.X-Reference=1
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=web-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=web
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:web>'
- coolify.service.subType=application
- coolify.service.subName=web
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- 'traefik.http.middlewares.0-referenceservice00000001-noindex.headers.customresponseheaders.X-Robots-Tag=noindex, nofollow'
- traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.permanent=false
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.regex=^(http|https)://(?:www\.)?(.+)'
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.replacement=$${1}://www.$${2}'
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-web-2567.entryPoints=http
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.middlewares=0-referenceservice00000001-to-www,0-referenceservice00000001-noindex,reference-headers'
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.rule=Host(`web-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567
- traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header.0_-Server=
- 'caddy_0.header.1_X-Robots-Tag="noindex, nofollow"'
- 'caddy_0.redir={scheme}://www.web-referenceservice00000001.10.0.0.1.sslip.io{uri}'
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://web-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
- '/data/coolify/services/referenceservice00000001/config:/etc/nginx/conf.d:ro'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
-
type: bind
source: /data/coolify/services/referenceservice00000001/web-init.sh
target: /docker-entrypoint.d/init.sh
read_only: true
bind:
create_host_path: true
healthcheck:
test:
- CMD
- wget
- '-qO-'
- 'http://127.0.0.1:8080'
interval: 10s
depends_on:
db:
condition: service_healthy
env_file:
- custom.env
- .env
container_name: web-referenceservice00000001
restart: unless-stopped
networks:
referenceservice00000001: null
logging:
driver: fluentd
options:
fluentd-address: 'tcp://127.0.0.1:24224'
fluentd-async: 'true'
fluentd-sub-second-precision: 'true'
env: 'COOLIFY_APP_NAME,COOLIFY_PROJECT_NAME,COOLIFY_SERVER_IP,COOLIFY_ENVIRONMENT_NAME'
labels: 'coolify.projectName,coolify.environmentName,coolify.resourceName,coolify.serviceName'
api:
image: 'node:22-alpine'
build:
context: .
args:
- 'BUILD_VERSION=${BUILD_VERSION:-1.0.0}'
environment:
MAP_LITERAL: map-value
MAP_NULL: null
GHOST_URL: '${SERVICE_URL_GHOST}'
DB_URL: 'postgres://${SERVICE_USER_DB}:${SERVICE_PASSWORD_DB}@db:5432/app'
BUILD_VERSION: '${BUILD_VERSION:-1.0.0}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: api-referenceservice00000001
COOLIFY_FQDN: api-referenceservice00000001.10.0.0.1.sslip.io/api
COOLIFY_URL: 'http://api-referenceservice00000001.10.0.0.1.sslip.io/api'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
ports:
- '3000:3000'
-
target: 3001
published: 3001
protocol: tcp
volumes:
- 'nfs-data:/mnt/nfs'
-
type: bind
source: /data/coolify/services/referenceservice00000001/api-data
target: /data
bind:
create_host_path: true
-
type: bind
source: /data/coolify/services/referenceservice00000001/optional
target: /optional
bind:
create_host_path: false
expose:
- 3000
container_name: api-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=api-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=api
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:api>'
- coolify.service.subType=application
- coolify.service.subName=api
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.middlewares=gzip-sse
- 'traefik.http.routers.http-0-referenceservice00000001-api-8a5d.rule=Host(`api-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/api`)'
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d
- traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}'
- 'caddy_0.handle=/api*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://api-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
my-app:
image: 'httpd:2.4-alpine'
environment:
SERVICE_URL_MY_APP_80: 'http://my_app-referenceservice00000001.10.0.0.1.sslip.io:80'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: my-app-referenceservice00000001
COOLIFY_FQDN: my_app-referenceservice00000001.10.0.0.1.sslip.io
COOLIFY_URL: 'http://my_app-referenceservice00000001.10.0.0.1.sslip.io'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: my-app-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=my-app-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=my-app
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:my-app>'
- coolify.service.subType=application
- coolify.service.subName=my-app
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.middlewares=gzip-sse
- 'traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.rule=Host(`my_app-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb
- traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://my_app-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
www:
image: 'nginx:alpine'
environment:
SERVICE_URL_WWW: 'http://www-referenceservice00000001.10.0.0.1.sslip.io'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: www-referenceservice00000001
COOLIFY_FQDN: www-referenceservice00000001.10.0.0.1.sslip.io
COOLIFY_URL: 'http://www-referenceservice00000001.10.0.0.1.sslip.io'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: www-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=www-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=www
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:www>'
- coolify.service.subType=application
- coolify.service.subName=www
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=gzip-sse
- 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)'
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://www-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
blog:
image: 'ghost:5-alpine'
environment:
SERVICE_URL_BLOG_2368: /blog
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: blog-referenceservice00000001
COOLIFY_FQDN: blog-referenceservice00000001.10.0.0.1.sslip.io/blog
COOLIFY_URL: 'http://blog-referenceservice00000001.10.0.0.1.sslip.io/blog'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: blog-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=blog-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=blog
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:blog>'
- coolify.service.subType=application
- coolify.service.subName=blog
- traefik.docker.network=referenceservice00000001
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.handler=rewrite
- 'caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.regexp=^/blog/(.*)'
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.replacement=/$1
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- 'traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.regex=^/blog/(.*)'
- traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.replacement=/$1
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.entryPoints=http
- 'traefik.http.routers.http-0-referenceservice00000001-blog-126a.middlewares=gzip-sse,redir-ghost-referenceservice00000001'
- 'traefik.http.routers.http-0-referenceservice00000001-blog-126a.rule=Host(`blog-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/blog`)'
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a
- traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}'
- 'caddy_0.handle_path=/blog*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://blog-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-referenceservice00000001
COOLIFY_FQDN: gateway-referenceservice00000001.10.0.0.1.sslip.io
COOLIFY_URL: 'http://gateway-referenceservice00000001.10.0.0.1.sslip.io'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway>'
- coolify.service.subType=application
- coolify.service.subName=gateway
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/`)'
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://gateway-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway-ws:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /ws
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-ws-referenceservice00000001
COOLIFY_FQDN: gateway-referenceservice00000001.10.0.0.1.sslip.io/ws
COOLIFY_URL: 'http://gateway-referenceservice00000001.10.0.0.1.sslip.io/ws'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-ws-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-ws-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway-ws
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway-ws>'
- coolify.service.subType=application
- coolify.service.subName=gateway-ws
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.http-0-referenceservice00000001-gateway-ws-d203-stripprefix.stripprefix.prefixes=/ws
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.entryPoints=http
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=http-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse'
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway-referenceservice00000001.10.0.0.1.sslip.io`) && PathPrefix(`/ws`)'
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/ws*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://gateway-referenceservice00000001.10.0.0.1.sslip.io'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
worker:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
SERVICE_URL_WEB_8080: 'http://web-referenceservice00000001.10.0.0.1.sslip.io:8080'
APP_URL: '${SERVICE_URL_WEB}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: worker-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: worker-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=worker-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=worker
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:worker>'
- coolify.service.subType=application
- coolify.service.subName=worker
networks:
referenceservice00000001: null
env_file:
- .env
scheduler:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: scheduler-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: scheduler-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=scheduler-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=scheduler
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:scheduler>'
- coolify.service.subType=application
- coolify.service.subName=scheduler
networks:
referenceservice00000001: null
env_file:
- .env
db:
image: 'postgres:16-alpine'
environment:
POSTGRES_USER: '${SERVICE_USER_DB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_DB: app
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: db-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
- 'shared-external:/backups'
networks:
internal: null
referenceservice00000001: null
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER}'
interval: 5s
container_name: db-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=db-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=db
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:db>'
- coolify.service.subType=database
- coolify.service.subName=db
env_file:
- .env
sidecar:
image: busybox
restart: 'no'
network_mode: 'service:web'
command:
- 'true'
container_name: sidecar-referenceservice00000001
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=sidecar-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=sidecar
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:sidecar>'
- coolify.service.subType=application
- coolify.service.subName=sidecar
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: sidecar-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
env_file:
- .env
volumes:
db-data:
driver_opts:
type: none
o: bind
device: /srv/db
shared-external:
external: true
nfs-data:
driver_opts:
type: nfs
o: 'addr=10.0.0.2,rw'
device: ':/exports/data'
referenceservice00000001_web-data:
name: referenceservice00000001_web-data
referenceservice00000001_db-data:
driver_opts:
type: none
o: bind
device: /srv/db
name: referenceservice00000001_db-data
networks:
internal: null
default: null
aliased:
aliases:
- alias-name
referenceservice00000001:
name: referenceservice00000001
external: true
2_custom_domains:
applications:
api:
fqdn: 'https://api.example.com/api'
required_port: 3000
exclude_from_status: false
ports: '3000:3000,3001:3001/tcp'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/api-data
mount_path: /data
is_directory: true
blog:
fqdn: 'https://blog.example.com/blog'
required_port: 2368
exclude_from_status: false
ports: ''
gateway:
fqdn: 'https://gateway.example.com'
exclude_from_status: false
ports: ''
gateway-ws:
fqdn: 'https://gateway.example.com/ws'
exclude_from_status: false
ports: ''
my-app:
fqdn: 'https://my_app.example.com'
required_port: 80
exclude_from_status: false
ports: ''
scheduler:
required_port: 8080
exclude_from_status: true
ports: ''
sidecar:
exclude_from_status: true
ports: ''
web:
fqdn: 'https://web.example.com'
required_port: 8080
exclude_from_status: false
ports: ''
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/web-init.sh
mount_path: /docker-entrypoint.d/init.sh
is_directory: false
content: |
#!/bin/sh
echo "reference fixture"
-
fs_path: /data/coolify/services/referenceservice00000001/config
mount_path: /etc/nginx/conf.d
is_directory: true
worker:
required_port: 8080
exclude_from_status: false
ports: ''
www:
fqdn: 'https://www.example.com'
exclude_from_status: false
ports: ''
databases:
db:
exclude_from_status: false
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
environment_variables:
API_URL: '${SERVICE_URL_API}'
APP_URL: '${SERVICE_URL_WEB}'
BARE_PASSTHROUGH: null
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
BUILD_VERSION: null
DASH_DEFAULT_VAR: null
GHOST_URL: '${SERVICE_URL_GHOST}'
HEX_128: '${SERVICE_HEX_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
INTERPOLATED_HOST: null
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
MAP_NULL: null
NESTED_INNER: null
NESTED_NO_DEFAULT_INNER: null
NESTED_NO_DEFAULT_OUTER: null
NESTED_OUTER: null
NO_BRACES_DEFAULT_VAR: null
NO_BRACES_VALUE: null
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_USER: '${SERVICE_USER_DB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
REQUIRED:
value: 'REQUIRED must be set'
required: true
SELF_REF: null
SERVICE_BASE64_64_WEB: '<generated:SERVICE_BASE64_64_WEB:64>'
SERVICE_BASE64_WEB: '<generated:SERVICE_BASE64_WEB:32>'
SERVICE_FOO_WEB: null
SERVICE_FQDN_API: api.example.com/api
SERVICE_FQDN_BLOG: blog.example.com/blog
SERVICE_FQDN_BLOG_2368: 'blog.example.com/blog:2368'
SERVICE_FQDN_DB: db-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_DB_5432: 'db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_FQDN_GATEWAY: gateway.example.com/ws
SERVICE_FQDN_GHOST: ghost-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_MY_APP: my_app.example.com
SERVICE_FQDN_MY_APP_80: 'my_app.example.com:80'
SERVICE_FQDN_WEB: web.example.com
SERVICE_FQDN_WEB_8080: 'web.example.com:8080'
SERVICE_FQDN_WWW: www.example.com
SERVICE_HEX_128_WEB: '<generated:SERVICE_HEX_128_WEB:128>'
SERVICE_HEX_32_WEB: '<generated:SERVICE_HEX_32_WEB:32>'
SERVICE_LOWERCASEUSER_WEB: '<generated:SERVICE_LOWERCASEUSER_WEB:16>'
SERVICE_PASSWORDWITHSYMBOLS_64_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_64_WEB:64>'
SERVICE_PASSWORDWITHSYMBOLS_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_WEB:32>'
SERVICE_PASSWORD_64_WEB: '<generated:SERVICE_PASSWORD_64_WEB:64>'
SERVICE_PASSWORD_DB: '<generated:SERVICE_PASSWORD_DB:32>'
SERVICE_PASSWORD_WEB: '<generated:SERVICE_PASSWORD_WEB:32>'
SERVICE_REALBASE64_128_WEB: '<generated:SERVICE_REALBASE64_128_WEB:172>'
SERVICE_REALBASE64_64_WEB: '<generated:SERVICE_REALBASE64_64_WEB:88>'
SERVICE_SUPABASEANON_KEY: null
SERVICE_URL_API: 'https://api.example.com/api'
SERVICE_URL_BLOG: 'https://blog.example.com/blog'
SERVICE_URL_BLOG_2368: 'https://blog.example.com/blog:2368'
SERVICE_URL_DB: 'http://db-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_URL_GATEWAY: 'https://gateway.example.com/ws'
SERVICE_URL_GHOST: 'http://ghost-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_MY_APP: 'https://my_app.example.com'
SERVICE_URL_MY_APP_80: 'https://my_app.example.com:80'
SERVICE_URL_WEB: 'https://web.example.com'
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
SERVICE_URL_WWW: 'https://www.example.com'
SERVICE_USER_DB: '<generated:SERVICE_USER_DB:16>'
SERVICE_USER_WEB: '<generated:SERVICE_USER_WEB:16>'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
USER: '${SERVICE_USER_WEB}'
WITH_DEFAULT: null
compose:
services:
web:
image: 'nginx:alpine'
environment:
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
LITERAL: plain-value
BARE_PASSTHROUGH: ''
SELF_REF: '${SELF_REF}'
WITH_DEFAULT: '${WITH_DEFAULT:-fallback}'
REQUIRED: '${REQUIRED:?REQUIRED must be set}'
NO_BRACES: $NO_BRACES_VALUE
NESTED: '${NESTED_OUTER:-${NESTED_INNER:-inner-default}}'
NESTED_NO_DEFAULT: '${NESTED_NO_DEFAULT_OUTER:-${NESTED_NO_DEFAULT_INNER}}'
DASH_DEFAULT: '${DASH_DEFAULT_VAR-dash-default}'
NO_BRACES_DEFAULT: '$NO_BRACES_DEFAULT_VAR:-no-braces-default'
SHARED: shared-value
SHARED_MISSING: '{{environment.NOT_DEFINED}}'
INTERPOLATED: 'http://${INTERPOLATED_HOST:-localhost}/path'
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
HEX_128: '${SERVICE_HEX_128_WEB}'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
USER: '${SERVICE_USER_WEB}'
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
API_URL: '${SERVICE_URL_API}'
NO_BRACES_VALUE: null
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: web-referenceservice00000001
COOLIFY_FQDN: web.example.com
COOLIFY_URL: 'https://web.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
labels:
- com.example.team=platform
- com.example.dollar=price-$$5
- traefik.http.middlewares.reference-headers.headers.customresponseheaders.X-Reference=1
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=web-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=web
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:web>'
- coolify.service.subType=application
- coolify.service.subName=web
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.permanent=false
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.regex=^(http|https)://(?:www\.)?(.+)'
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.replacement=$${1}://www.$${2}'
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-web-2567.entryPoints=http
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.middlewares=0-referenceservice00000001-to-www,reference-headers'
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.rule=Host(`web.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567
- traefik.http.routers.https-0-referenceservice00000001-web-2567.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-web-2567.middlewares=0-referenceservice00000001-to-www,reference-headers'
- 'traefik.http.routers.https-0-referenceservice00000001-web-2567.rule=Host(`web.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-web-2567.service=https-0-referenceservice00000001-web-2567
- traefik.http.routers.https-0-referenceservice00000001-web-2567.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-web-2567.tls=true
- traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080
- traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.redir={scheme}://www.web.example.com{uri}'
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://web.example.com, https://web.example.com'
- caddy_ingress_network=referenceservice00000001
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
- '/data/coolify/services/referenceservice00000001/config:/etc/nginx/conf.d:ro'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
-
type: bind
source: /data/coolify/services/referenceservice00000001/web-init.sh
target: /docker-entrypoint.d/init.sh
read_only: true
bind:
create_host_path: true
healthcheck:
test:
- CMD
- wget
- '-qO-'
- 'http://127.0.0.1:8080'
interval: 10s
depends_on:
db:
condition: service_healthy
env_file:
- custom.env
- .env
container_name: web-referenceservice00000001
restart: unless-stopped
networks:
referenceservice00000001: null
logging:
driver: fluentd
options:
fluentd-address: 'tcp://127.0.0.1:24224'
fluentd-async: 'true'
fluentd-sub-second-precision: 'true'
env: 'COOLIFY_APP_NAME,COOLIFY_PROJECT_NAME,COOLIFY_SERVER_IP,COOLIFY_ENVIRONMENT_NAME'
labels: 'coolify.projectName,coolify.environmentName,coolify.resourceName,coolify.serviceName'
api:
image: 'node:22-alpine'
build:
context: .
args:
- 'BUILD_VERSION=${BUILD_VERSION:-1.0.0}'
environment:
MAP_LITERAL: map-value
MAP_NULL: null
GHOST_URL: '${SERVICE_URL_GHOST}'
DB_URL: 'postgres://${SERVICE_USER_DB}:${SERVICE_PASSWORD_DB}@db:5432/app'
BUILD_VERSION: '${BUILD_VERSION:-1.0.0}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: api-referenceservice00000001
COOLIFY_FQDN: api.example.com/api
COOLIFY_URL: 'https://api.example.com/api'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
ports:
- '3000:3000'
-
target: 3001
published: 3001
protocol: tcp
volumes:
- 'nfs-data:/mnt/nfs'
-
type: bind
source: /data/coolify/services/referenceservice00000001/api-data
target: /data
bind:
create_host_path: true
-
type: bind
source: /data/coolify/services/referenceservice00000001/optional
target: /optional
bind:
create_host_path: false
expose:
- 3000
container_name: api-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=api-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=api
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:api>'
- coolify.service.subType=application
- coolify.service.subName=api
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-api-8a5d.rule=Host(`api.example.com`) && PathPrefix(`/api`)'
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-api-8a5d.rule=Host(`api.example.com`) && PathPrefix(`/api`)'
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.service=https-0-referenceservice00000001-api-8a5d
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.tls=true
- traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000
- traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}'
- 'caddy_0.handle=/api*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://api.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
my-app:
image: 'httpd:2.4-alpine'
environment:
SERVICE_URL_MY_APP_80: 'https://my_app.example.com:80'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: my-app-referenceservice00000001
COOLIFY_FQDN: my_app.example.com
COOLIFY_URL: 'https://my_app.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: my-app-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=my-app-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=my-app
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:my-app>'
- coolify.service.subType=application
- coolify.service.subName=my-app
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.rule=Host(`my_app.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.rule=Host(`my_app.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.service=https-0-referenceservice00000001-my-app-4dcb
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.tls=true
- traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80
- traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://my_app.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
www:
image: 'nginx:alpine'
environment:
SERVICE_URL_WWW: 'https://www.example.com'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: www-referenceservice00000001
COOLIFY_FQDN: www.example.com
COOLIFY_URL: 'https://www.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: www-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=www-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=www
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:www>'
- coolify.service.subType=application
- coolify.service.subName=www
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.permanent=false
- 'traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.regex=^(http|https)://www\.(.+)'
- 'traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.replacement=$${1}://$${2}'
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-www-4eae.middlewares=gzip-sse,0-referenceservice00000001-to-non-www'
- 'traefik.http.routers.https-0-referenceservice00000001-www-4eae.rule=Host(`www.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.redir=https://example.com{uri}'
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://www.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
blog:
image: 'ghost:5-alpine'
environment:
SERVICE_URL_BLOG_2368: /blog
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: blog-referenceservice00000001
COOLIFY_FQDN: blog.example.com/blog
COOLIFY_URL: 'https://blog.example.com/blog'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: blog-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=blog-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=blog
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:blog>'
- coolify.service.subType=application
- coolify.service.subName=blog
- traefik.docker.network=referenceservice00000001
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.handler=rewrite
- 'caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.regexp=^/blog/(.*)'
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.replacement=/$1
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- 'traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.regex=^/blog/(.*)'
- traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.replacement=/$1
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-blog-126a.rule=Host(`blog.example.com`) && PathPrefix(`/blog`)'
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-blog-126a.middlewares=gzip-sse,redir-ghost-referenceservice00000001'
- 'traefik.http.routers.https-0-referenceservice00000001-blog-126a.rule=Host(`blog.example.com`) && PathPrefix(`/blog`)'
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.service=https-0-referenceservice00000001-blog-126a
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.tls=true
- traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368
- traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}'
- 'caddy_0.handle_path=/blog*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://blog.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-referenceservice00000001
COOLIFY_FQDN: gateway.example.com
COOLIFY_URL: 'https://gateway.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway>'
- coolify.service.subType=application
- coolify.service.subName=gateway
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://gateway.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway-ws:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /ws
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-ws-referenceservice00000001
COOLIFY_FQDN: gateway.example.com/ws
COOLIFY_URL: 'https://gateway.example.com/ws'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-ws-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-ws-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway-ws
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway-ws>'
- coolify.service.subType=application
- coolify.service.subName=gateway-ws
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.https-0-referenceservice00000001-gateway-ws-d203-stripprefix.stripprefix.prefixes=/ws
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway.example.com`) && PathPrefix(`/ws`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.middlewares=https-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse'
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway.example.com`) && PathPrefix(`/ws`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/ws*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://gateway.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
worker:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
APP_URL: '${SERVICE_URL_WEB}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: worker-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: worker-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=worker-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=worker
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:worker>'
- coolify.service.subType=application
- coolify.service.subName=worker
networks:
referenceservice00000001: null
env_file:
- .env
scheduler:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: scheduler-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: scheduler-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=scheduler-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=scheduler
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:scheduler>'
- coolify.service.subType=application
- coolify.service.subName=scheduler
networks:
referenceservice00000001: null
env_file:
- .env
db:
image: 'postgres:16-alpine'
environment:
POSTGRES_USER: '${SERVICE_USER_DB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_DB: app
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: db-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
- 'shared-external:/backups'
networks:
internal: null
referenceservice00000001: null
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER}'
interval: 5s
container_name: db-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=db-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=db
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:db>'
- coolify.service.subType=database
- coolify.service.subName=db
env_file:
- .env
sidecar:
image: busybox
restart: 'no'
network_mode: 'service:web'
command:
- 'true'
container_name: sidecar-referenceservice00000001
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=sidecar-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=sidecar
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:sidecar>'
- coolify.service.subType=application
- coolify.service.subName=sidecar
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: sidecar-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
env_file:
- .env
volumes:
db-data:
driver_opts:
type: none
o: bind
device: /srv/db
shared-external:
external: true
nfs-data:
driver_opts:
type: nfs
o: 'addr=10.0.0.2,rw'
device: ':/exports/data'
referenceservice00000001_web-data:
name: referenceservice00000001_web-data
referenceservice00000001_db-data:
driver_opts:
type: none
o: bind
device: /srv/db
name: referenceservice00000001_db-data
networks:
internal: null
default: null
aliased:
aliases:
- alias-name
referenceservice00000001:
name: referenceservice00000001
external: true
3_domain_on_applications_without_one:
applications:
api:
fqdn: 'https://api.example.com/api'
required_port: 3000
exclude_from_status: false
ports: '3000:3000,3001:3001/tcp'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/api-data
mount_path: /data
is_directory: true
blog:
fqdn: 'https://blog.example.com/blog'
required_port: 2368
exclude_from_status: false
ports: ''
gateway:
fqdn: 'https://gateway.example.com'
exclude_from_status: false
ports: ''
gateway-ws:
fqdn: 'https://gateway.example.com/ws'
exclude_from_status: false
ports: ''
my-app:
fqdn: 'https://my_app.example.com'
required_port: 80
exclude_from_status: false
ports: ''
scheduler:
fqdn: 'https://scheduler-extra.example.com'
required_port: 8080
exclude_from_status: true
ports: ''
sidecar:
fqdn: 'https://sidecar-extra.example.com'
exclude_from_status: true
ports: ''
web:
fqdn: 'https://web.example.com'
required_port: 8080
exclude_from_status: false
ports: ''
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
files:
-
fs_path: /data/coolify/services/referenceservice00000001/web-init.sh
mount_path: /docker-entrypoint.d/init.sh
is_directory: false
content: |
#!/bin/sh
echo "reference fixture"
-
fs_path: /data/coolify/services/referenceservice00000001/config
mount_path: /etc/nginx/conf.d
is_directory: true
worker:
fqdn: 'https://worker-extra.example.com'
required_port: 8080
exclude_from_status: false
ports: ''
www:
fqdn: 'https://www.example.com'
exclude_from_status: false
ports: ''
databases:
db:
exclude_from_status: false
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
environment_variables:
API_URL: '${SERVICE_URL_API}'
APP_URL: '${SERVICE_URL_WEB}'
BARE_PASSTHROUGH: null
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
BUILD_VERSION: null
DASH_DEFAULT_VAR: null
GHOST_URL: '${SERVICE_URL_GHOST}'
HEX_128: '${SERVICE_HEX_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
INTERPOLATED_HOST: null
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
MAP_NULL: null
NESTED_INNER: null
NESTED_NO_DEFAULT_INNER: null
NESTED_NO_DEFAULT_OUTER: null
NESTED_OUTER: null
NO_BRACES_DEFAULT_VAR: null
NO_BRACES_VALUE: null
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_USER: '${SERVICE_USER_DB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
REQUIRED:
value: 'REQUIRED must be set'
required: true
SELF_REF: null
SERVICE_BASE64_64_WEB: '<generated:SERVICE_BASE64_64_WEB:64>'
SERVICE_BASE64_WEB: '<generated:SERVICE_BASE64_WEB:32>'
SERVICE_FOO_WEB: null
SERVICE_FQDN_API: api.example.com/api
SERVICE_FQDN_BLOG: blog.example.com/blog
SERVICE_FQDN_BLOG_2368: 'blog.example.com/blog:2368'
SERVICE_FQDN_DB: db-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_DB_5432: 'db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_FQDN_GATEWAY: gateway.example.com/ws
SERVICE_FQDN_GHOST: ghost-referenceservice00000001.10.0.0.1.sslip.io
SERVICE_FQDN_MY_APP: my_app.example.com
SERVICE_FQDN_MY_APP_80: 'my_app.example.com:80'
SERVICE_FQDN_WEB: web.example.com
SERVICE_FQDN_WEB_8080: 'web.example.com:8080'
SERVICE_FQDN_WWW: www.example.com
SERVICE_HEX_128_WEB: '<generated:SERVICE_HEX_128_WEB:128>'
SERVICE_HEX_32_WEB: '<generated:SERVICE_HEX_32_WEB:32>'
SERVICE_LOWERCASEUSER_WEB: '<generated:SERVICE_LOWERCASEUSER_WEB:16>'
SERVICE_PASSWORDWITHSYMBOLS_64_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_64_WEB:64>'
SERVICE_PASSWORDWITHSYMBOLS_WEB: '<generated:SERVICE_PASSWORDWITHSYMBOLS_WEB:32>'
SERVICE_PASSWORD_64_WEB: '<generated:SERVICE_PASSWORD_64_WEB:64>'
SERVICE_PASSWORD_DB: '<generated:SERVICE_PASSWORD_DB:32>'
SERVICE_PASSWORD_WEB: '<generated:SERVICE_PASSWORD_WEB:32>'
SERVICE_REALBASE64_128_WEB: '<generated:SERVICE_REALBASE64_128_WEB:172>'
SERVICE_REALBASE64_64_WEB: '<generated:SERVICE_REALBASE64_64_WEB:88>'
SERVICE_SUPABASEANON_KEY: null
SERVICE_URL_API: 'https://api.example.com/api'
SERVICE_URL_BLOG: 'https://blog.example.com/blog'
SERVICE_URL_BLOG_2368: 'https://blog.example.com/blog:2368'
SERVICE_URL_DB: 'http://db-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
SERVICE_URL_GATEWAY: 'https://gateway.example.com/ws'
SERVICE_URL_GHOST: 'http://ghost-referenceservice00000001.10.0.0.1.sslip.io'
SERVICE_URL_MY_APP: 'https://my_app.example.com'
SERVICE_URL_MY_APP_80: 'https://my_app.example.com:80'
SERVICE_URL_WEB: 'https://web.example.com'
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
SERVICE_URL_WWW: 'https://www.example.com'
SERVICE_USER_DB: '<generated:SERVICE_USER_DB:16>'
SERVICE_USER_WEB: '<generated:SERVICE_USER_WEB:16>'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
USER: '${SERVICE_USER_WEB}'
WITH_DEFAULT: null
compose:
services:
web:
image: 'nginx:alpine'
environment:
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
LITERAL: plain-value
BARE_PASSTHROUGH: ''
SELF_REF: '${SELF_REF}'
WITH_DEFAULT: '${WITH_DEFAULT:-fallback}'
REQUIRED: '${REQUIRED:?REQUIRED must be set}'
NO_BRACES: $NO_BRACES_VALUE
NESTED: '${NESTED_OUTER:-${NESTED_INNER:-inner-default}}'
NESTED_NO_DEFAULT: '${NESTED_NO_DEFAULT_OUTER:-${NESTED_NO_DEFAULT_INNER}}'
DASH_DEFAULT: '${DASH_DEFAULT_VAR-dash-default}'
NO_BRACES_DEFAULT: '$NO_BRACES_DEFAULT_VAR:-no-braces-default'
SHARED: shared-value
SHARED_MISSING: '{{environment.NOT_DEFINED}}'
INTERPOLATED: 'http://${INTERPOLATED_HOST:-localhost}/path'
PASSWORD: '${SERVICE_PASSWORD_WEB}'
PASSWORD_64: '${SERVICE_PASSWORD_64_WEB}'
PASSWORD_SYMBOLS: '${SERVICE_PASSWORDWITHSYMBOLS_WEB}'
BASE64: '${SERVICE_BASE64_WEB}'
BASE64_64: '${SERVICE_BASE64_64_WEB}'
REALBASE64_64: '${SERVICE_REALBASE64_64_WEB}'
PASSWORD_SYMBOLS_64: '${SERVICE_PASSWORDWITHSYMBOLS_64_WEB}'
REALBASE64_128: '${SERVICE_REALBASE64_128_WEB}'
HEX_32: '${SERVICE_HEX_32_WEB}'
HEX_128: '${SERVICE_HEX_128_WEB}'
SUPABASE_ANON_WITHOUT_JWT: '${SERVICE_SUPABASEANON_KEY}'
USER: '${SERVICE_USER_WEB}'
LOWERCASE_USER: '${SERVICE_LOWERCASEUSER_WEB}'
UNKNOWN_MAGIC: '${SERVICE_FOO_WEB}'
API_URL: '${SERVICE_URL_API}'
NO_BRACES_VALUE: null
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: web-referenceservice00000001
COOLIFY_FQDN: web.example.com
COOLIFY_URL: 'https://web.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
labels:
- com.example.team=platform
- com.example.dollar=price-$$5
- traefik.http.middlewares.reference-headers.headers.customresponseheaders.X-Reference=1
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=web-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=web
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:web>'
- coolify.service.subType=application
- coolify.service.subName=web
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.permanent=false
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.regex=^(http|https)://(?:www\.)?(.+)'
- 'traefik.http.middlewares.0-referenceservice00000001-to-www.redirectregex.replacement=$${1}://www.$${2}'
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-web-2567.entryPoints=http
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.middlewares=0-referenceservice00000001-to-www,reference-headers'
- 'traefik.http.routers.http-0-referenceservice00000001-web-2567.rule=Host(`web.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-web-2567.service=http-0-referenceservice00000001-web-2567
- traefik.http.routers.https-0-referenceservice00000001-web-2567.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-web-2567.middlewares=0-referenceservice00000001-to-www,reference-headers'
- 'traefik.http.routers.https-0-referenceservice00000001-web-2567.rule=Host(`web.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-web-2567.service=https-0-referenceservice00000001-web-2567
- traefik.http.routers.https-0-referenceservice00000001-web-2567.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-web-2567.tls=true
- traefik.http.services.http-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080
- traefik.http.services.https-0-referenceservice00000001-web-2567.loadbalancer.server.port=8080
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.redir={scheme}://www.web.example.com{uri}'
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=http://web.example.com, https://web.example.com'
- caddy_ingress_network=referenceservice00000001
volumes:
- 'referenceservice00000001_web-data:/usr/share/nginx/html'
- '/data/coolify/services/referenceservice00000001/config:/etc/nginx/conf.d:ro'
- '/var/run/docker.sock:/var/run/docker.sock:ro'
-
type: bind
source: /data/coolify/services/referenceservice00000001/web-init.sh
target: /docker-entrypoint.d/init.sh
read_only: true
bind:
create_host_path: true
healthcheck:
test:
- CMD
- wget
- '-qO-'
- 'http://127.0.0.1:8080'
interval: 10s
depends_on:
db:
condition: service_healthy
env_file:
- custom.env
- .env
container_name: web-referenceservice00000001
restart: unless-stopped
networks:
referenceservice00000001: null
logging:
driver: fluentd
options:
fluentd-address: 'tcp://127.0.0.1:24224'
fluentd-async: 'true'
fluentd-sub-second-precision: 'true'
env: 'COOLIFY_APP_NAME,COOLIFY_PROJECT_NAME,COOLIFY_SERVER_IP,COOLIFY_ENVIRONMENT_NAME'
labels: 'coolify.projectName,coolify.environmentName,coolify.resourceName,coolify.serviceName'
api:
image: 'node:22-alpine'
build:
context: .
args:
- 'BUILD_VERSION=${BUILD_VERSION:-1.0.0}'
environment:
MAP_LITERAL: map-value
MAP_NULL: null
GHOST_URL: '${SERVICE_URL_GHOST}'
DB_URL: 'postgres://${SERVICE_USER_DB}:${SERVICE_PASSWORD_DB}@db:5432/app'
BUILD_VERSION: '${BUILD_VERSION:-1.0.0}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: api-referenceservice00000001
COOLIFY_FQDN: api.example.com/api
COOLIFY_URL: 'https://api.example.com/api'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
ports:
- '3000:3000'
-
target: 3001
published: 3001
protocol: tcp
volumes:
- 'nfs-data:/mnt/nfs'
-
type: bind
source: /data/coolify/services/referenceservice00000001/api-data
target: /data
bind:
create_host_path: true
-
type: bind
source: /data/coolify/services/referenceservice00000001/optional
target: /optional
bind:
create_host_path: false
expose:
- 3000
container_name: api-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=api-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=api
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:api>'
- coolify.service.subType=application
- coolify.service.subName=api
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-api-8a5d.rule=Host(`api.example.com`) && PathPrefix(`/api`)'
- traefik.http.routers.http-0-referenceservice00000001-api-8a5d.service=http-0-referenceservice00000001-api-8a5d
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-api-8a5d.rule=Host(`api.example.com`) && PathPrefix(`/api`)'
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.service=https-0-referenceservice00000001-api-8a5d
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-api-8a5d.tls=true
- traefik.http.services.http-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000
- traefik.http.services.https-0-referenceservice00000001-api-8a5d.loadbalancer.server.port=3000
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle.0_reverse_proxy={{upstreams 3000}}'
- 'caddy_0.handle=/api*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://api.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
my-app:
image: 'httpd:2.4-alpine'
environment:
SERVICE_URL_MY_APP_80: 'https://my_app.example.com:80'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: my-app-referenceservice00000001
COOLIFY_FQDN: my_app.example.com
COOLIFY_URL: 'https://my_app.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: my-app-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=my-app-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=my-app
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:my-app>'
- coolify.service.subType=application
- coolify.service.subName=my-app
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.rule=Host(`my_app.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-my-app-4dcb.service=http-0-referenceservice00000001-my-app-4dcb
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.rule=Host(`my_app.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.service=https-0-referenceservice00000001-my-app-4dcb
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-my-app-4dcb.tls=true
- traefik.http.services.http-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80
- traefik.http.services.https-0-referenceservice00000001-my-app-4dcb.loadbalancer.server.port=80
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 80}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://my_app.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
www:
image: 'nginx:alpine'
environment:
SERVICE_URL_WWW: 'https://www.example.com'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: www-referenceservice00000001
COOLIFY_FQDN: www.example.com
COOLIFY_URL: 'https://www.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: www-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=www-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=www
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:www>'
- coolify.service.subType=application
- coolify.service.subName=www
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.permanent=false
- 'traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.regex=^(http|https)://www\.(.+)'
- 'traefik.http.middlewares.0-referenceservice00000001-to-non-www.redirectregex.replacement=$${1}://$${2}'
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-www-4eae.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-www-4eae.rule=Host(`www.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-www-4eae.middlewares=gzip-sse,0-referenceservice00000001-to-non-www'
- 'traefik.http.routers.https-0-referenceservice00000001-www-4eae.rule=Host(`www.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-www-4eae.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.redir=https://example.com{uri}'
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://www.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
blog:
image: 'ghost:5-alpine'
environment:
SERVICE_URL_BLOG_2368: /blog
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: blog-referenceservice00000001
COOLIFY_FQDN: blog.example.com/blog
COOLIFY_URL: 'https://blog.example.com/blog'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: blog-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=blog-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=blog
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:blog>'
- coolify.service.subType=application
- coolify.service.subName=blog
- traefik.docker.network=referenceservice00000001
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.handler=rewrite
- 'caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.regexp=^/blog/(.*)'
- caddy_0.handle_path.0_redir-ghost-referenceservice00000001.rewrite.replacement=/$1
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- 'traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.regex=^/blog/(.*)'
- traefik.http.middlewares.redir-ghost-referenceservice00000001.redirectregex.replacement=/$1
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-blog-126a.rule=Host(`blog.example.com`) && PathPrefix(`/blog`)'
- traefik.http.routers.http-0-referenceservice00000001-blog-126a.service=http-0-referenceservice00000001-blog-126a
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-blog-126a.middlewares=gzip-sse,redir-ghost-referenceservice00000001'
- 'traefik.http.routers.https-0-referenceservice00000001-blog-126a.rule=Host(`blog.example.com`) && PathPrefix(`/blog`)'
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.service=https-0-referenceservice00000001-blog-126a
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-blog-126a.tls=true
- traefik.http.services.http-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368
- traefik.http.services.https-0-referenceservice00000001-blog-126a.loadbalancer.server.port=2368
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 2368}}'
- 'caddy_0.handle_path=/blog*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://blog.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-referenceservice00000001
COOLIFY_FQDN: gateway.example.com
COOLIFY_URL: 'https://gateway.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway>'
- coolify.service.subType=application
- coolify.service.subName=gateway
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.rule=Host(`gateway.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-gateway-3e21.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://gateway.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
gateway-ws:
image: traefik/whoami
environment:
SERVICE_URL_GATEWAY: /ws
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: gateway-ws-referenceservice00000001
COOLIFY_FQDN: gateway.example.com/ws
COOLIFY_URL: 'https://gateway.example.com/ws'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: gateway-ws-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=gateway-ws-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=gateway-ws
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:gateway-ws>'
- coolify.service.subType=application
- coolify.service.subName=gateway-ws
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.https-0-referenceservice00000001-gateway-ws-d203-stripprefix.stripprefix.prefixes=/ws
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway.example.com`) && PathPrefix(`/ws`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.entryPoints=https
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.middlewares=https-0-referenceservice00000001-gateway-ws-d203-stripprefix,gzip-sse'
- 'traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.rule=Host(`gateway.example.com`) && PathPrefix(`/ws`)'
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-gateway-ws-d203.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/ws*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://gateway.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
worker:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
SERVICE_URL_WEB_8080: 'https://web.example.com:8080'
APP_URL: '${SERVICE_URL_WEB}'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: worker-referenceservice00000001
COOLIFY_FQDN: worker-extra.example.com
COOLIFY_URL: 'https://worker-extra.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: worker-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=worker-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=worker
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:worker>'
- coolify.service.subType=application
- coolify.service.subName=worker
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-worker-b618.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-worker-b618.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-worker-b618.rule=Host(`worker-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-worker-b618.service=http-0-referenceservice00000001-worker-b618
- traefik.http.routers.https-0-referenceservice00000001-worker-b618.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-worker-b618.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-worker-b618.rule=Host(`worker-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-worker-b618.service=https-0-referenceservice00000001-worker-b618
- traefik.http.routers.https-0-referenceservice00000001-worker-b618.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-worker-b618.tls=true
- traefik.http.services.http-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080
- traefik.http.services.https-0-referenceservice00000001-worker-b618.loadbalancer.server.port=8080
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://worker-extra.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
scheduler:
image: 'nginx:alpine'
command:
- sleep
- infinity
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: scheduler-referenceservice00000001
COOLIFY_FQDN: scheduler-extra.example.com
COOLIFY_URL: 'https://scheduler-extra.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
container_name: scheduler-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=scheduler-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=scheduler
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:scheduler>'
- coolify.service.subType=application
- coolify.service.subName=scheduler
- traefik.docker.network=referenceservice00000001
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-scheduler-499f.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-scheduler-499f.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-scheduler-499f.rule=Host(`scheduler-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.http-0-referenceservice00000001-scheduler-499f.service=http-0-referenceservice00000001-scheduler-499f
- traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.rule=Host(`scheduler-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.service=https-0-referenceservice00000001-scheduler-499f
- traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-scheduler-499f.tls=true
- traefik.http.services.http-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080
- traefik.http.services.https-0-referenceservice00000001-scheduler-499f.loadbalancer.server.port=8080
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams 8080}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://scheduler-extra.example.com'
- caddy_ingress_network=referenceservice00000001
networks:
referenceservice00000001: null
env_file:
- .env
db:
image: 'postgres:16-alpine'
environment:
POSTGRES_USER: '${SERVICE_USER_DB}'
POSTGRES_PASSWORD: '${SERVICE_PASSWORD_DB}'
POSTGRES_DB: app
SERVICE_URL_DB_5432: 'http://db-referenceservice00000001.10.0.0.1.sslip.io:5432'
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: db-referenceservice00000001
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
volumes:
- 'referenceservice00000001_db-data:/var/lib/postgresql/data'
- 'shared-external:/backups'
networks:
internal: null
referenceservice00000001: null
healthcheck:
test:
- CMD-SHELL
- 'pg_isready -U $${POSTGRES_USER}'
interval: 5s
container_name: db-referenceservice00000001
restart: unless-stopped
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=db-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=db
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:db>'
- coolify.service.subType=database
- coolify.service.subName=db
env_file:
- .env
sidecar:
image: busybox
restart: 'no'
network_mode: 'service:web'
command:
- 'true'
container_name: sidecar-referenceservice00000001
labels:
- coolify.managed=true
- coolify.version=<coolify-version>
- coolify.serviceUuid=referenceservice00000001
- coolify.type=service
- coolify.name=sidecar-referenceservice00000001
- coolify.resourceName=reference
- coolify.projectName=reference-project
- coolify.serviceName=sidecar
- coolify.environmentName=production
- coolify.pullRequestId=0
- 'coolify.service.subUuid=<uuid:sidecar>'
- coolify.service.subType=application
- coolify.service.subName=sidecar
- traefik.enable=true
- traefik.http.middlewares.gzip-sse.compress.excludedcontenttypes=text/event-stream
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- traefik.http.routers.http-0-referenceservice00000001-sidecar-9523.entryPoints=http
- traefik.http.routers.http-0-referenceservice00000001-sidecar-9523.middlewares=redirect-to-https
- 'traefik.http.routers.http-0-referenceservice00000001-sidecar-9523.rule=Host(`sidecar-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.entryPoints=https
- traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.middlewares=gzip-sse
- 'traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.rule=Host(`sidecar-extra.example.com`) && PathPrefix(`/`)'
- traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls.certresolver=letsencrypt
- traefik.http.routers.https-0-referenceservice00000001-sidecar-9523.tls=true
- 'caddy_0.encode=zstd gzip'
- caddy_0.handle_path.0_reverse_proxy.stream_close_delay=24h
- 'caddy_0.handle_path.0_reverse_proxy={{upstreams}}'
- 'caddy_0.handle_path=/*'
- caddy_0.header=-Server
- 'caddy_0.try_files={path} /index.html /index.php'
- 'caddy_0=https://sidecar-extra.example.com'
- caddy_ingress_network=referenceservice00000001
environment:
COOLIFY_RESOURCE_UUID: referenceservice00000001
COOLIFY_CONTAINER_NAME: sidecar-referenceservice00000001
COOLIFY_FQDN: sidecar-extra.example.com
COOLIFY_URL: 'https://sidecar-extra.example.com'
COOLIFY_APP_NAME: reference
COOLIFY_PROJECT_NAME: 'Reference Project'
COOLIFY_ENVIRONMENT_NAME: production
COOLIFY_SERVER_IP: 10.0.0.1
SERVICE_NAME_WEB: web
SERVICE_NAME_API: api
SERVICE_NAME_MY_APP: my-app
SERVICE_NAME_WWW: www
SERVICE_NAME_BLOG: blog
SERVICE_NAME_GATEWAY: gateway
SERVICE_NAME_GATEWAY_WS: gateway-ws
SERVICE_NAME_WORKER: worker
SERVICE_NAME_SCHEDULER: scheduler
SERVICE_NAME_DB: db
SERVICE_NAME_SIDECAR: sidecar
env_file:
- .env
volumes:
db-data:
driver_opts:
type: none
o: bind
device: /srv/db
shared-external:
external: true
nfs-data:
driver_opts:
type: nfs
o: 'addr=10.0.0.2,rw'
device: ':/exports/data'
referenceservice00000001_web-data:
name: referenceservice00000001_web-data
referenceservice00000001_db-data:
driver_opts:
type: none
o: bind
device: /srv/db
name: referenceservice00000001_db-data
networks:
internal: null
default: null
aliased:
aliases:
- alias-name
referenceservice00000001:
name: referenceservice00000001
external: true