oneuptime/docker-compose.base.yml

415 lines
11 KiB
YAML
Raw Normal View History

2023-07-11 21:31:38 +00:00
version: '3.7'
2023-07-12 08:29:36 +00:00
x-common-variables: &common-variables
2023-07-15 10:28:50 +00:00
NODE_ENV: ${ENVIRONMENT}
BILLING_ENABLED: ${BILLING_ENABLED}
BILLING_PUBLIC_KEY: ${BILLING_PUBLIC_KEY}
SUBSCRIPTION_PLAN_BASIC: ${SUBSCRIPTION_PLAN_BASIC}
SUBSCRIPTION_PLAN_GROWTH: ${SUBSCRIPTION_PLAN_GROWTH}
SUBSCRIPTION_PLAN_SCALE: ${SUBSCRIPTION_PLAN_SCALE}
SUBSCRIPTION_PLAN_ENTERPRISE: ${SUBSCRIPTION_PLAN_ENTERPRISE}
METERED_PLAN_ACTIVE_MONITORING: ${METERED_PLAN_ACTIVE_MONITORING}
DOMAIN: ${DOMAIN}
2023-07-15 10:32:30 +00:00
ANALYTICS_KEY: ${ANALYTICS_KEY}
ANALYTICS_HOST: ${ANALYTICS_HOST}
2023-07-17 12:08:02 +00:00
HTTP_PROTOCOL: ${HTTP_PROTOCOL}
2023-07-12 08:29:36 +00:00
x-common-ui-variables: &common-ui-variables
2023-07-17 12:28:29 +00:00
<<: *common-variables
2023-07-15 10:28:50 +00:00
REALTIME_ROUTE: ${REALTIME_ROUTE}
NOTIFICATION_ROUTE: ${NOTIFICATION_ROUTE}
DASHBOARD_ROUTE: ${DASHBOARD_ROUTE}
DASHBOARD_API_ROUTE: ${DASHBOARD_API_ROUTE}
PROBE_API_ROUTE: ${PROBE_API_ROUTE}
DATA_INGESTOR_ROUTE: ${DATA_INGESTOR_ROUTE}
ACCOUNTS_ROUTE: ${ACCOUNTS_ROUTE}
HOME_ROUTE: ${HOME_ROUTE}
HELMCHARTS_ROUTE: ${HELMCHARTS_ROUTE}
API_REFERENCE_ROUTE: ${API_REFERENCE_ROUTE}
IDENTITY_ROUTE: ${IDENTITY_ROUTE}
WORKFLOW_ROUTE: ${WORKFLOW_ROUTE}
FILE_ROUTE: ${FILE_ROUTE}
STATUS_PAGE_ROUTE: ${STATUS_PAGE_ROUTE}
IS_SERVER: false
STATUS_PAGE_CNAME_RECORD: ${STATUS_PAGE_CNAME_RECORD}
2023-07-17 12:08:02 +00:00
2023-07-12 08:29:36 +00:00
x-common-server-variables: &common-server-variables
2023-07-17 12:28:29 +00:00
<<: *common-variables
2023-07-15 10:28:50 +00:00
ONEUPTIME_SECRET: ${ONEUPTIME_SECRET}
DATABASE_PORT: ${DATABASE_PORT}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_HOST: ${DATABASE_HOST}
2023-07-30 13:28:27 +00:00
DATABASE_SSL_CA: ${DATABASE_SSL_CA}
DATABASE_SSL_KEY: ${DATABASE_SSL_KEY}
DATABASE_SSL_CERT: ${DATABASE_SSL_CERT}
DATABASE_SSL_REJECT_UNAUTHORIZED: ${DATABASE_SSL_REJECT_UNAUTHORIZED}
2023-07-15 10:28:50 +00:00
REDIS_USERNAME: ${REDIS_USERNAME}
2023-07-15 10:28:50 +00:00
REDIS_PASSWORD: ${REDIS_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_DB: ${REDIS_DB}
REDIS_TLS_CA: ${REDIS_TLS_CA}
REDIS_TLS_SENTINEL_MODE: ${REDIS_TLS_SENTINEL_MODE}
2023-07-15 10:28:50 +00:00
ENCRYPTION_SECRET: ${ENCRYPTION_SECRET}
DISABLE_SIGNUP: ${DISABLE_SIGNUP}
REALTIME_HOSTNAME: ${REALTIME_HOSTNAME}
NOTIFICATION_HOSTNAME: ${NOTIFICATION_HOSTNAME}
DASHBOARD_HOSTNAME: ${DASHBOARD_HOSTNAME}
DASHBOARD_API_HOSTNAME: ${DASHBOARD_API_HOSTNAME}
PROBE_API_HOSTNAME: ${DATA_INGESTOR_HOSTNAME}
DATA_INGESTOR_HOSTNAME: ${DATA_INGESTOR_HOSTNAME}
ACCOUNTS_HOSTNAME: ${ACCOUNTS_HOSTNAME}
HOME_HOSTNAME: ${HOME_HOSTNAME}
WORKER_HOSTNAME: ${WORKER_HOSTNAME}
WORKFLOW_HOSTNAME: ${WORKFLOW_HOSTNAME}
BILLING_PRIVATE_KEY: ${BILLING_PRIVATE_KEY}
BILLING_PUBLIC_KEY: ${BILLING_PUBLIC_KEY}
BILLING_ENABLED: ${BILLING_ENABLED}
REALTIME_ROUTE: ${REALTIME_ROUTE}
NOTIFICATION_ROUTE: ${NOTIFICATION_ROUTE}
DASHBOARD_ROUTE: ${DASHBOARD_ROUTE}
DASHBOARD_API_ROUTE: ${DASHBOARD_API_ROUTE}
PROBE_API_ROUTE: ${PROBE_API_ROUTE}
DATA_INGESTOR_ROUTE: ${DATA_INGESTOR_ROUTE}
ACCOUNTS_ROUTE: ${ACCOUNTS_ROUTE}
HOME_ROUTE: ${HOME_ROUTE}
HELMCHARTS_ROUTE: ${HELMCHARTS_ROUTE}
API_REFERENCE_ROUTE: ${API_REFERENCE_ROUTE}
IDENTITY_ROUTE: ${IDENTITY_ROUTE}
FILE_ROUTE: ${FILE_ROUTE}
WORKFLOW_ROUTE: ${WORKFLOW_ROUTE}
STATUS_PAGE_ROUTE: ${STATUS_PAGE_ROUTE}
IS_SERVER: true
2023-07-12 08:29:36 +00:00
2023-07-11 21:31:38 +00:00
services:
2023-08-01 15:41:21 +00:00
minio:
networks:
- oneuptime
image: minio/minio:latest
restart: always
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
volumes:
- minio:/data
2023-07-11 21:31:38 +00:00
haraka:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
image: oneuptime/haraka:${APP_TAG}
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
SMTP_USER: ${INTERNAL_SMTP_USER}
SMTP_PASSWORD: ${INTERNAL_SMTP_PASSWORD}
2023-07-11 21:31:38 +00:00
redis:
2023-08-04 19:51:53 +00:00
image: redis:7.0.12
2023-07-11 21:31:38 +00:00
restart: always
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
command: redis-server --requirepass "${REDIS_PASSWORD}"
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
REDIS_PASSWORD: ${REDIS_PASSWORD}
2023-07-11 21:31:38 +00:00
clickhouse:
image: clickhouse/clickhouse-server:23.7
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
CLICKHOUSE_DB: ${CLICKHOUSE_DATABASE}
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: 1
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
volumes:
- clickhouse:/var/lib/clickhouse/
postgres:
image: postgres:latest
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
POSTGRES_USER: ${DATABASE_USERNAME}
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
POSTGRES_DB: ${DATABASE_NAME}
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
volumes:
- postgres:/var/lib/postgresql/data
notification:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${NOTIFICATION_PORT}
SMTP_USERNAME: ${SMTP_USERNAME}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_PORT: ${SMTP_PORT}
SMTP_EMAIL: ${SMTP_EMAIL}
SMTP_FROM_NAME: ${SMTP_FROM_NAME}
SMTP_IS_SECURE: ${SMTP_IS_SECURE}
SMTP_HOST: ${SMTP_HOST}
SENDGRID_API_KEY: ${SENDGRID_API_KEY}
TWILIO_ACCOUNT_SID: ${TWILIO_ACCOUNT_SID}
TWILIO_AUTH_TOKEN: ${TWILIO_AUTH_TOKEN}
TWILIO_PHONE_NUMBER: ${TWILIO_PHONE_NUMBER}
SMS_DEFAULT_COST_IN_CENTS: ${SMS_DEFAULT_COST_IN_CENTS}
CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE: ${CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE}
2023-07-11 21:31:38 +00:00
depends_on:
- haraka
accounts:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-ui-variables
PORT: ${ACCOUNTS_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- identity
dashboard:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-ui-variables
PORT: ${DASHBOARD_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- identity
- accounts
status-page:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-ui-variables
PORT: ${STATUS_PAGE_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- accounts
- dashboard-api
2023-08-02 17:26:56 +00:00
test-server:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${TEST_SERVER_PORT}
2023-07-11 21:31:38 +00:00
dashboard-api:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${DASHBOARD_API_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- redis
- postgres
- notification
links:
- redis
- postgres
- notification
2023-07-29 23:03:00 +00:00
link-shortener:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-17 12:28:29 +00:00
environment:
<<: *common-server-variables
2023-07-29 23:03:00 +00:00
PORT: ${LINK_SHORTENER_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- redis
- postgres
links:
- redis
- postgres
workflow:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${WORKFLOW_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- redis
- postgres
- notification
links:
- redis
- postgres
- notification
workers:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${WORKERS_PORT}
ENVIRONMENT: ${ENVIRONMENT}
2023-07-11 21:31:38 +00:00
depends_on:
- postgres
- notification
links:
- postgres
- notification
volumes:
- ./Certs:/usr/src/Certs
2023-07-19 11:59:10 +00:00
probe-1:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${PROBE_PORT}
2023-07-19 11:59:10 +00:00
PROBE_NAME: ${GLOBAL_PROBE_1_NAME}
PROBE_DESCRIPTION: ${GLOBAL_PROBE_1_DESCRIPTION}
PROBE_KEY: ${GLOBAL_PROBE_1_KEY}
PROBE_API_URL: http://${PROBE_API_HOSTNAME}
depends_on:
- probe-api
links:
- probe-api
probe-2:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${PROBE_PORT}
PROBE_NAME: ${GLOBAL_PROBE_2_NAME}
PROBE_DESCRIPTION: ${GLOBAL_PROBE_2_DESCRIPTION}
PROBE_KEY: ${GLOBAL_PROBE_2_KEY}
2023-07-17 12:28:29 +00:00
PROBE_API_URL: http://${PROBE_API_HOSTNAME}
2023-07-11 21:31:38 +00:00
depends_on:
- probe-api
links:
- probe-api
identity:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${IDENTITY_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- redis
- postgres
- notification
links:
- redis
- postgres
- notification
probe-api:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${PROBE_API_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- redis
- postgres
- notification
links:
- redis
- postgres
- notification
file:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-server-variables
PORT: ${FILE_PORT}
2023-07-11 21:31:38 +00:00
depends_on:
- postgres
links:
- postgres
home:
networks:
- oneuptime
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-ui-variables
PORT: ${HOME_PORT}
2023-07-19 14:10:47 +00:00
2023-07-11 21:31:38 +00:00
api-reference:
networks:
- oneuptime
2023-07-11 21:31:38 +00:00
restart: always
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
<<: *common-ui-variables
PORT: ${API_DOCS_PORT}
2023-07-11 21:31:38 +00:00
nginx:
depends_on:
- identity
- accounts
- dashboard-api
- dashboard
- home
- notification
restart: always
2023-07-19 13:25:00 +00:00
networks:
- oneuptime
2023-08-04 19:52:07 +00:00
image: nginx:1.25.1-alpine
2023-07-17 18:56:14 +00:00
environment:
<<: *common-variables
2023-07-11 21:31:38 +00:00
ports:
- '80:80'
2023-07-19 11:54:37 +00:00
- '443:443'
2023-07-11 21:31:38 +00:00
volumes:
- ./Certs:/etc/nginx/certs
volumes:
postgres:
clickhouse:
2023-08-01 15:41:21 +00:00
minio:
networks:
oneuptime:
driver: bridge