oneuptime/docker-compose.base.yml

492 lines
15 KiB
YAML
Raw Normal View History

2023-07-11 21:31:38 +00:00
2023-07-12 08:29:36 +00:00
x-common-variables: &common-variables
2023-09-20 08:51:32 +00:00
HOST: ${HOST}
2023-09-29 11:24:45 +00:00
HTTP_PROTOCOL: ${HTTP_PROTOCOL}
OTEL_COLLECTOR_HOST: ${OTEL_COLLECTOR_HOST}
2024-02-02 14:43:40 +00:00
FLUENTD_HOST: ${FLUENTD_HOST}
STATUS_PAGE_CNAME_RECORD: ${STATUS_PAGE_CNAME_RECORD}
2024-04-05 16:52:34 +00:00
LOG_LEVEL: ${LOG_LEVEL}
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}
2023-07-15 10:32:30 +00:00
ANALYTICS_KEY: ${ANALYTICS_KEY}
ANALYTICS_HOST: ${ANALYTICS_HOST}
2023-07-12 08:29:36 +00:00
ALLOWED_ACTIVE_MONITOR_COUNT_IN_FREE_PLAN: ${ALLOWED_ACTIVE_MONITOR_COUNT_IN_FREE_PLAN}
2023-09-27 15:46:38 +00:00
SERVER_ACCOUNTS_HOSTNAME: accounts
SERVER_APP_HOSTNAME: app
2023-09-27 15:46:38 +00:00
SERVER_ALERT_HOSTNAME: alert
2023-10-09 17:54:23 +00:00
SERVER_INGESTOR_HOSTNAME: ingestor
2023-09-27 15:46:38 +00:00
SERVER_TEST_SERVER_HOSTNAME: test-server
SERVER_STATUS_PAGE_HOSTNAME: status-page
SERVER_DASHBOARD_HOSTNAME: dashboard
SERVER_ADMIN_DASHBOARD_HOSTNAME: admin-dashboard
SERVER_OTEL_COLLECTOR_HOSTNAME: otel-collector
SERVER_ISOLATED_VM_HOSTNAME: isolated-vm
SERVER_WORKER_HOSTNAME: worker
SERVER_HOME_HOSTNAME: home
SERVER_WORKFLOW_HOSTNAME: workflow
SERVER_API_REFERENCE_HOSTNAME: api-reference
SERVER_DOCS_HOSTNAME: docs
2023-09-27 15:46:38 +00:00
#Ports. Usually they don't need to change.
APP_PORT: ${APP_PORT}
HOME_PORT: ${HOME_PORT}
2023-10-09 17:54:23 +00:00
INGESTOR_PORT: ${INGESTOR_PORT}
2023-09-27 15:46:38 +00:00
PROBE_PORT: ${PROBE_PORT}
TEST_SERVER_PORT: ${TEST_SERVER_PORT}
ACCOUNTS_PORT: ${ACCOUNTS_PORT}
STATUS_PAGE_PORT: ${STATUS_PAGE_PORT}
DASHBOARD_PORT: ${DASHBOARD_PORT}
ADMIN_DASHBOARD_PORT: ${ADMIN_DASHBOARD_PORT}
ISOLATED_VM_PORT: ${ISOLATED_VM_PORT}
WORKER_PORT: ${WORKER_PORT}
WORKFLOW_PORT: ${WORKFLOW_PORT}
API_REFERENCE_PORT: ${API_REFERENCE_PORT}
DOCS_PORT: ${DOCS_PORT}
2023-09-27 15:46:38 +00:00
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: ${OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT}
OPENTELEMETRY_EXPORTER_OTLP_HEADERS: ${OPENTELEMETRY_EXPORTER_OTLP_HEADERS}
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
IS_SERVER: "false"
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}
2023-07-15 10:28:50 +00:00
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}
LETS_ENCRYPT_NOTIFICATION_EMAIL: ${LETS_ENCRYPT_NOTIFICATION_EMAIL}
LETS_ENCRYPT_ACCOUNT_KEY: ${LETS_ENCRYPT_ACCOUNT_KEY}
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}
BILLING_PRIVATE_KEY: ${BILLING_PRIVATE_KEY}
BILLING_PUBLIC_KEY: ${BILLING_PUBLIC_KEY}
BILLING_ENABLED: ${BILLING_ENABLED}
2023-08-22 08:37:39 +00:00
CLICKHOUSE_USER: ${CLICKHOUSE_USER}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD}
CLICKHOUSE_DATABASE: ${CLICKHOUSE_DATABASE}
CLICKHOUSE_HOST: ${CLICKHOUSE_HOST}
CLICKHOUSE_PORT: ${CLICKHOUSE_PORT}
IS_SERVER: "true"
2023-07-15 10:28:50 +00:00
WORKFLOW_SCRIPT_TIMEOUT_IN_MS: ${WORKFLOW_SCRIPT_TIMEOUT_IN_MS}
DISABLE_AUTOMATIC_INCIDENT_CREATION: ${DISABLE_AUTOMATIC_INCIDENT_CREATION}
# Notification Webhooks
NOTIFICATION_WEBHOOK_ON_CREATED_USER: ${NOTIFICATION_WEBHOOK_ON_CREATED_USER}
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
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_PASSWORD: ${INTERNAL_SMTP_PASSWORD}
2024-02-18 20:05:34 +00:00
SMTP_EMAIL: ${INTERNAL_SMTP_EMAIL}
2023-09-25 11:12:22 +00:00
DKIM_SELECTOR: oneuptime
2023-08-15 20:59:44 +00:00
DOMAIN: ${INTERNAL_SMTP_SENDING_DOMAIN}
2023-08-15 14:11:36 +00:00
DKIM_PRIVATE_KEY: ${INTERNAL_SMTP_DKIM_PRIVATE_KEY_AS_BASE64}
DKIM_PUBLIC_KEY: ${INTERNAL_SMTP_DKIM_PUBLIC_KEY_AS_BASE64}
logging:
driver: "local"
options:
max-size: "1000m"
2023-08-15 14:11:36 +00:00
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-11-03 17:35:13 +00:00
command: redis-server --requirepass "${REDIS_PASSWORD}" --save "" --appendonly no
2023-07-15 10:28:50 +00:00
environment:
2023-07-17 12:28:29 +00:00
REDIS_PASSWORD: ${REDIS_PASSWORD}
logging:
driver: "local"
options:
max-size: "1000m"
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/
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
postgres:
2023-09-20 08:51:32 +00:00
image: postgres:15
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
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
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
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}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_ACCOUNTS}
logging:
driver: "local"
options:
max-size: "1000m"
llm:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: 8547
HF_TOKEN: ${LLM_SERVER_HUGGINGFACE_TOKEN}
HF_MODEL_NAME: ${LLM_SERVER_HUGGINGFACE_MODEL_NAME}
volumes:
- ./LLM/Models:/app/Models
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
2023-08-25 14:51:26 +00:00
admin-dashboard:
networks:
- oneuptime
restart: always
environment:
<<: *common-ui-variables
PORT: ${ADMIN_DASHBOARD_PORT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_ADMIN_DASHBOARD}
logging:
driver: "local"
options:
max-size: "1000m"
2023-08-25 14:51:26 +00:00
2023-07-11 21:31:38 +00:00
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}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_DASHBOARD}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
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}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_STATUS_PAGE}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
2023-08-02 17:26:56 +00:00
test-server:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${TEST_SERVER_PORT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_TEST_SERVER}
logging:
driver: "local"
options:
max-size: "1000m"
2023-08-02 17:26:56 +00:00
2023-12-28 15:54:27 +00:00
app:
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: ${APP_PORT}
SMS_DEFAULT_COST_IN_CENTS: ${SMS_DEFAULT_COST_IN_CENTS}
CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE: ${CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE}
SMS_HIGH_RISK_COST_IN_CENTS: ${SMS_HIGH_RISK_COST_IN_CENTS}
CALL_HIGH_RISK_COST_IN_CENTS_PER_MINUTE: ${CALL_HIGH_RISK_COST_IN_CENTS_PER_MINUTE}
INTERNAL_SMTP_EMAIL: ${INTERNAL_SMTP_EMAIL}
INTERNAL_SMTP_FROM_NAME: ${INTERNAL_SMTP_FROM_NAME}
INTERNAL_SMTP_PASSWORD: ${INTERNAL_SMTP_PASSWORD}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_APP}
logging:
driver: "local"
options:
max-size: "1000m"
home:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${HOME_PORT}
logging:
driver: "local"
options:
max-size: "1000m"
worker:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${WORKER_PORT}
logging:
driver: "local"
options:
max-size: "1000m"
docs:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${DOCS_PORT}
logging:
driver: "local"
options:
max-size: "1000m"
api-reference:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${API_REFERENCE_PORT}
logging:
driver: "local"
options:
max-size: "1000m"
2024-09-16 22:22:15 +00:00
workflow:
networks:
- oneuptime
restart: always
environment:
<<: *common-server-variables
PORT: ${WORKFLOW_PORT}
logging:
driver: "local"
options:
max-size: "1000m"
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}
2023-08-06 20:54:12 +00:00
PROBE_MONITORING_WORKERS: ${GLOBAL_PROBE_1_MONITORING_WORKERS}
2023-07-19 11:59:10 +00:00
PROBE_KEY: ${GLOBAL_PROBE_1_KEY}
PROBE_SYNTHETIC_MONITOR_SCRIPT_TIMEOUT_IN_MS: ${GLOBAL_PROBE_1_SYNTHETIC_MONITOR_SCRIPT_TIMEOUT_IN_MS}
PROBE_CUSTOM_CODE_MONITOR_SCRIPT_TIMEOUT_IN_MS: ${GLOBAL_PROBE_1_CUSTOM_CODE_MONITOR_SCRIPT_TIMEOUT_IN_MS}
ONEUPTIME_URL: ${GLOBAL_PROBE_1_ONEUPTIME_URL}
2023-08-07 14:22:45 +00:00
PROBE_MONITOR_FETCH_LIMIT: ${GLOBAL_PROBE_1_MONITOR_FETCH_LIMIT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_PROBE}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-19 11:59:10 +00:00
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}
2023-08-06 20:54:12 +00:00
PROBE_MONITORING_WORKERS: ${GLOBAL_PROBE_2_MONITORING_WORKERS}
2023-07-19 11:59:10 +00:00
PROBE_KEY: ${GLOBAL_PROBE_2_KEY}
ONEUPTIME_URL: ${GLOBAL_PROBE_2_ONEUPTIME_URL}
PROBE_SYNTHETIC_MONITOR_SCRIPT_TIMEOUT_IN_MS: ${GLOBAL_PROBE_2_SYNTHETIC_MONITOR_SCRIPT_TIMEOUT_IN_MS}
PROBE_CUSTOM_CODE_MONITOR_SCRIPT_TIMEOUT_IN_MS: ${GLOBAL_PROBE_2_CUSTOM_CODE_MONITOR_SCRIPT_TIMEOUT_IN_MS}
2023-08-07 14:22:45 +00:00
PROBE_MONITOR_FETCH_LIMIT: ${GLOBAL_PROBE_2_MONITOR_FETCH_LIMIT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_PROBE}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
2023-10-09 18:18:46 +00:00
otel-collector:
networks:
- oneuptime
environment:
<<: *common-variables
2023-10-09 18:18:46 +00:00
restart: always
logging:
driver: "local"
options:
2024-02-02 12:21:29 +00:00
max-size: "1000m"
fluentd:
networks:
- oneuptime
restart: always
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
isolated-vm:
networks:
- oneuptime
restart: always
environment:
PORT: ${ISOLATED_VM_PORT}
ONEUPTIME_SECRET: ${ONEUPTIME_SECRET}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_ISOLATED_VM}
logging:
driver: "local"
options:
max-size: "1000m"
2023-10-09 17:54:23 +00:00
ingestor:
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
2023-10-09 17:54:23 +00:00
PORT: ${INGESTOR_PORT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_INGESTOR}
logging:
driver: "local"
options:
max-size: "1000m"
copilot:
networks:
- oneuptime
restart: always
environment:
ONEUPTIME_URL: ${COPILOT_ONEUPTIME_URL}
ONEUPTIME_REPOSITORY_SECRET_KEY: ${COPILOT_ONEUPTIME_REPOSITORY_SECRET_KEY}
CODE_REPOSITORY_PASSWORD: ${COPILOT_CODE_REPOSITORY_PASSWORD}
CODE_REPOSITORY_USERNAME: ${COPILOT_CODE_REPOSITORY_USERNAME}
ONEUPTIME_LLM_SERVER_URL: ${COPILOT_ONEUPTIME_LLM_SERVER_URL}
DISABLE_COPILOT: ${DISABLE_COPILOT}
OPENAI_API_KEY: ${COPILOT_OPENAI_API_KEY}
LOG_LEVEL: ${LOG_LEVEL}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
e2e:
restart: "no"
network_mode: host # This is needed to access the host network,
environment:
<<: *common-variables
E2E_TEST_IS_USER_REGISTERED: ${E2E_TEST_IS_USER_REGISTERED}
E2E_TEST_REGISTERED_USER_EMAIL: ${E2E_TEST_REGISTERED_USER_EMAIL}
E2E_TEST_REGISTERED_USER_PASSWORD: ${E2E_TEST_REGISTERED_USER_PASSWORD}
E2E_TEST_STATUS_PAGE_URL: ${E2E_TEST_STATUS_PAGE_URL}
E2E_TESTS_FAILED_WEBHOOK_URL: ${E2E_TESTS_FAILED_WEBHOOK_URL}
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
2023-09-13 07:00:24 +00:00
ingress:
2023-07-11 21:31:38 +00:00
restart: always
2023-07-19 13:25:00 +00:00
networks:
- oneuptime
2023-07-17 18:56:14 +00:00
environment:
<<: *common-server-variables
ONEUPTIME_HTTP_PORT: ${ONEUPTIME_HTTP_PORT}
DISABLE_TELEMETRY: ${DISABLE_TELEMETRY_FOR_INGRESS}
2023-07-11 21:31:38 +00:00
ports:
- '${ONEUPTIME_HTTP_PORT}:7849'
- '${STATUS_PAGE_HTTPS_PORT}:7850'
logging:
driver: "local"
options:
max-size: "1000m"
2023-07-11 21:31:38 +00:00
volumes:
postgres:
clickhouse:
networks:
oneuptime:
driver: bridge