mirror of
https://github.com/OneUptime/oneuptime
synced 2024-11-21 22:59:07 +00:00
213 lines
9.7 KiB
Bash
213 lines
9.7 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# Please change this to domain of the server where oneuptime is hosted on.
|
|
HOST=localhost
|
|
|
|
# If this server is hosted on SSL / TLS then change this to https
|
|
HTTP_PROTOCOL=http
|
|
|
|
# Secrets - PLEASE CHANGE THESE. Please change these to something random. All of these can be different values.
|
|
ONEUPTIME_SECRET=please-change-this-to-random-value
|
|
DATABASE_PASSWORD=please-change-this-to-random-value
|
|
CLICKHOUSE_PASSWORD=please-change-this-to-random-value
|
|
REDIS_PASSWORD=please-change-this-to-random-value
|
|
ENCRYPTION_SECRET=please-change-this-to-random-value
|
|
GLOBAL_PROBE_1_KEY=please-change-this-to-random-value
|
|
GLOBAL_PROBE_2_KEY=please-change-this-to-random-value
|
|
INTERNAL_SMTP_PASSWORD=please-change-this-to-random-value
|
|
|
|
# OTEL HOST - if you like the collector to be hosted on a different server then change this to the IP of the server.
|
|
OTEL_COLLECTOR_HOST=
|
|
|
|
# FLUENTD_HOST - if you like the fluentd to be hosted on a different server then change this to the IP of the server.
|
|
FLUENTD_HOST=
|
|
|
|
# OneUptime Port. This is the port where OneUptime will be hosted on.
|
|
ONEUPTIME_HTTP_PORT=80
|
|
ONEUPTIME_HTTPS_PORT=443
|
|
|
|
|
|
# If you would like to attach status page to custom domains use this setting.
|
|
# For example, lets say you would like the status page to be hosted on status.yourcompany.com, then
|
|
# 1. Create a A record in your DNS provider with the name "oneuptime.yourcompany.com" and value to Public IP of the server oneuptime is deployed on.
|
|
# 2. Set the STATUS_PAGE_CNAME_RECORD to "oneuptime.yourcompany.com"
|
|
# 3. Create CNAME record in your DNS provider with the name "status.yourcompany.com" and value "oneuptime.yourcompany.com"
|
|
STATUS_PAGE_CNAME_RECORD=oneuptime.yourcompany.com
|
|
|
|
|
|
# --------------------------------------------- #
|
|
# You can safely ignore anything below this line. Keep them as default to make things work.
|
|
# --------------------------------------------- #
|
|
# This supports test | production | development | ci.
|
|
# Development is used for local development. Test is used for insider / beta / staging builds. Production is used for production ready app. ci is for testing in the CI/CD.
|
|
ENVIRONMENT=production
|
|
|
|
# What image should we pull from docker hub. This only applies when the ENVIRONMENT is production or test
|
|
APP_TAG=release
|
|
|
|
# What is the name of the docker-compose project. This is used to prefix the docker containers.
|
|
COMPOSE_PROJECT_NAME=oneuptime
|
|
|
|
# Clickhouse Settings
|
|
CLICKHOUSE_USER=default
|
|
CLICKHOUSE_DATABASE=oneuptime
|
|
CLICKHOUSE_HOST=clickhouse
|
|
CLICKHOUSE_PORT=8123
|
|
|
|
|
|
# Postgres DB Settings.
|
|
DATABASE_PORT=5432
|
|
DATABASE_USERNAME=postgres
|
|
DATABASE_NAME=oneuptimedb
|
|
DATABASE_HOST=postgres
|
|
|
|
# Used to connect to managed postgres providers.
|
|
# Fill only what your provider needs.
|
|
DATABASE_SSL_REJECT_UNAUTHORIZED=false
|
|
DATABASE_SSL_CA=
|
|
DATABASE_SSL_KEY=
|
|
DATABASE_SSL_CERT=
|
|
|
|
# Redis DB Settings.
|
|
|
|
REDIS_HOST=redis
|
|
REDIS_PORT=6379
|
|
REDIS_DB=0
|
|
REDIS_USERNAME=default
|
|
REDIS_TLS_CA=
|
|
REDIS_TLS_SENTINEL_MODE=false
|
|
|
|
# Hostnames. Usually does not need to change.
|
|
INGESTOR_HOSTNAME=ingestor:3400
|
|
|
|
SERVER_ACCOUNTS_HOSTNAME=accounts
|
|
SERVER_REALTIME_HOSTNAME=realtime
|
|
SERVER_APP_HOSTNAME=app
|
|
SERVER_INGESTOR_HOSTNAME=ingestor
|
|
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
|
|
|
|
#Ports. Usually they don't need to change.
|
|
|
|
APP_PORT=3002
|
|
INGESTOR_PORT=3400
|
|
PROBE_PORT=3500
|
|
TEST_SERVER_PORT=3800
|
|
ACCOUNTS_PORT=3003
|
|
STATUS_PAGE_PORT=3105
|
|
DASHBOARD_PORT=3009
|
|
ADMIN_DASHBOARD_PORT=3158
|
|
OTEL_COLLECTOR_HTTP_PORT=4318
|
|
ISOLATED_VM_PORT=4572
|
|
|
|
|
|
# If USE_INTERNAL_SMTP is true then you need to fill these values.
|
|
INTERNAL_SMTP_FROM_NAME=OneUptime
|
|
INTERNAL_SMTP_DKIM_PRIVATE_KEY_AS_BASE64=
|
|
INTERNAL_SMTP_DKIM_PUBLIC_KEY_AS_BASE64=
|
|
INTERNAL_SMTP_EMAIL=test@yourcompany.com
|
|
INTERNAL_SMTP_SENDING_DOMAIN=yourcompany.com
|
|
|
|
# Plans
|
|
# This is in the format of PlanName,PlanIdFromBillingProvider,MonthlySubscriptionPlanAmountInUSD,YearlySubscriptionPlanAmountInUSD,Order,TrialPeriodInDays
|
|
# Enterprise plan will have -1 which means custom pricing.
|
|
SUBSCRIPTION_PLAN_BASIC=Basic,priceMonthlyId,priceYearlyId,0,0,1,0
|
|
SUBSCRIPTION_PLAN_GROWTH=Growth,priceMonthlyId,priceYearlyId,0,0,2,14
|
|
SUBSCRIPTION_PLAN_SCALE=Scale,priceMonthlyId,priceYearlyId,0,0,3,0
|
|
SUBSCRIPTION_PLAN_ENTERPRISE=Enterprise,priceMonthlyId,priceYearlyId,-1,-1,4,14
|
|
|
|
|
|
# If you want to run the backup script, then you need to fill these values.
|
|
DATABASE_BACKUP_DIRECTORY=/Backups
|
|
DATABASE_BACKUP_HOST=localhost
|
|
DATABASE_BACKUP_PORT=5400
|
|
DATABASE_BACKUP_NAME=oneuptimedb
|
|
DATABASE_BACKUP_USERNAME=postgres
|
|
DATABASE_BACKUP_PASSWORD=${DATABASE_PASSWORD}
|
|
|
|
|
|
# If you want to run the restore script, then you need to fill these values. Use host.docker.internal if you want to use the host machine's IP.
|
|
DATABASE_RESTORE_HOST=host.docker.internal
|
|
DATABASE_RESTORE_DIRECTORY=/Backups
|
|
DATABASE_RESTORE_PORT=5400
|
|
DATABASE_RESTORE_NAME=oneuptimedb
|
|
DATABASE_RESTORE_USERNAME=postgres
|
|
DATABASE_RESTORE_PASSWORD=${DATABASE_PASSWORD}
|
|
DATABASE_RESTORE_FILENAME=db-31.backup
|
|
|
|
ANALYTICS_KEY=
|
|
ANALYTICS_HOST=
|
|
|
|
DATABASE_MIGRATIONS_HOST=localhost
|
|
DATABASE_MIGRATIONS_PORT=5400
|
|
|
|
# Global Probes
|
|
# This is in the format of GLOBAL_PROBE_NAME=ProbeName,ProbeDescription,ProbeKey
|
|
GLOBAL_PROBE_1_NAME="Probe-1"
|
|
GLOBAL_PROBE_1_DESCRIPTION="Global probe to monitor oneuptime resources"
|
|
GLOBAL_PROBE_1_MONITORING_WORKERS=5
|
|
GLOBAL_PROBE_1_MONITOR_FETCH_LIMIT=10
|
|
GLOBAL_PROBE_1_ONEUPTIME_URL=http://ingestor:3400
|
|
|
|
GLOBAL_PROBE_2_NAME="Probe-2"
|
|
GLOBAL_PROBE_2_DESCRIPTION="Global probe to monitor oneuptime resources"
|
|
GLOBAL_PROBE_2_MONITORING_WORKERS=5
|
|
GLOBAL_PROBE_2_MONITOR_FETCH_LIMIT=10
|
|
GLOBAL_PROBE_2_ONEUPTIME_URL=http://ingestor:3400
|
|
|
|
SMS_DEFAULT_COST_IN_CENTS=
|
|
CALL_DEFAULT_COST_IN_CENTS_PER_MINUTE=
|
|
|
|
SMS_HIGH_RISK_COST_IN_CENTS=
|
|
CALL_HIGH_RISK_COST_IN_CENTS_PER_MINUTE=
|
|
|
|
# IS BILLING ENABLED for this installer.
|
|
BILLING_ENABLED=false
|
|
# Public and private key for billing provider, usually stripe.
|
|
BILLING_PUBLIC_KEY=
|
|
BILLING_PRIVATE_KEY=
|
|
|
|
# Use this when you want to disable incident creation.
|
|
DISABLE_AUTOMATIC_INCIDENT_CREATION=false
|
|
|
|
# If you're using an extrenal open telemetry collector, you can set the endpoint here - both server and client endpoint can be the same in this case.
|
|
|
|
# You can set the env var to http://otel-collector:4318 if you want instrumentation to be sent to otel collector.
|
|
SERVER_OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT=
|
|
# You can set the env var to http://localhost/otlp if you want instrumentation to be sent to local otel collector.
|
|
CLIENT_OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT=
|
|
|
|
# You can set the env var to "x-oneuptime-service-token=<YOUR_ONEUPTIME_SERVICE_TOKEN>"
|
|
APP_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
PROBE_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
DASHBOARD_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
STATUS_PAGE_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
ACCOUNTS_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
ADMIN_DASHBOARD_OPENTELEMETRY_EXPORTER_OTLP_HEADERS=
|
|
|
|
|
|
# This can be one of ERROR, WARN, INFO, DEBUG
|
|
LOG_LEVEL=ERROR
|
|
|
|
|
|
# Thse env vars are for E2E tests
|
|
E2E_TEST_IS_USER_REGISTERED=false
|
|
E2E_TEST_USER_EMAIL=
|
|
E2E_TEST_USER_PASSWORD=
|
|
# If you want to run the E2E tests on a status page, then you need to fill in the URL.
|
|
E2E_TEST_STATUS_PAGE_URL=
|
|
|
|
# This URL will be called when the E2E tests fail. This should be a GET endpoint.
|
|
E2E_TESTS_FAILED_WEBHOOK_URL=
|
|
|
|
|
|
# Lets encrypt notification email. This email will be used when certs are about to expire
|
|
LETS_ENCRYPT_NOTIFICATION_EMAIL=
|
|
# Generate a private key via openssl, encode it to base64 and paste it here.
|
|
LETS_ENCRYPT_ACCOUNT_KEY="Ii0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0tLVxuTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFDbVhvYXZ4cmlLMzVDeVxud3YybG40dUlNc3hIVFp4YWVwa21qSWN4NUtzOTBxdmFlZzYvY1Z4SkM2Zmo0WHlyQWc5dEw2b01PWDVzQytzL1xuZ21aQlR4YTg5Z0Jta0c0cHkzamYyQXptRllYVDJtMVp3d2lWN3UzK2FSczcyU2h6U0lteHVhY0RmY0JZNDRPaVxuUTdjWVNMaW9hZkZoN2ppWnlkQUxZcGYxU0FYU2FwUTB6U2xocGFLZzRaSnU1YmYxZkVyR0didXltRThCY0ZRUlxuVm5kRFpvbk5OcmpSUGExNTRyVGJyaVIyaWZUc0xCSU90dTRPb1dYaFJDYVFrTHBGSzVMbGRFWStraWhqWjk4a1xuTGVhQW9ISXRaeTdJVHUzYzZ5enk2ZW5Nc1NnNldlSXVTUHNnaUxnSmxZa0Z3UC9lcHp5WCtwS1pBY013LzErZlxueDJFeTA2YzlBZ01CQUFFQ2dnRUFBNERTRFRsK0FVNmIyV2ZKdDRjWWhSR3N3NE9hMnp6aHBMSW8xcUFlQ3ZzNFxucXkwT3luRTBwRVVlaituYm1pNDg3T3VvQlFIZzY1MkVvcDI0VVgrODF0WEhSR0dlTURzY25Ib01LM3dnaVVsOFxuSy91elhwVGRaaElJaE1ZWjEvT2JFcWI2SVZTd2pDNmVRdmh5RG96WmRwSmtoczloV2J1cUtkTTFwL0NRVHRIdVxuKzE3dUxVUGw0dGRBQURqdms5cnVWRnhuTWdocDByQklidkhmQ2poa1V6dWZqdUh6WjlkL09DS1dqZVJSanhrVlxuQVVoRmtCeStUYkhiaGJhVTNvQnNlSXdENC9qd2Y0aUdXZmFPV1FRc3ExNXIweFQzWWIvaUNJT1ZiNXJ1WkRTN1xudWVtMk1CN3VLU2gwcXZ1VnlsMkEvV3p4dFlSbERDWFdpQ093ZnVMeUFRS0JnUURoWWtQT1V2NUlLbjdQYWFUQ1xuOWNkWTkydUlLR2V0TzZLMi9iZWtoS3VleGFScXZlMXlrTWN1WCsvYnNBeGhZeHNnZFlpL3pGSmwvNmhZNEVkU1xucExCc1NuODdiNy8yRW1kQWNmc2ZHMFpZdGRZTWx1MXNjc3Z4K3NDNndham1tTWUvR0NnVzRoMTFWRlNDdXNFcVxuZzgwaGk2cDFGaGhlMzF4blpaUjN2SGRCM1FLQmdRQzgrQVo0czczRmpHK1hWclFDTldqYU1acjlxVzJCU2p4V1xudWlZL0VIVnY3Q0JCdlBWSE1VbTBqck5sb0IwMjQ5aUh5cWpVWnZ0eHM1S3NZSC9WL1A2dU4yOWxWblZiQ2xIa1xudWpFOHR6L1ExVHMxTlBHK2Y4YjRIUFpkTXdpZ3hWbkJZOFpZWndYcjM4NXAxRHBQYllpYUlqY0wvUFRKNEZBYlxuZWxmbFJqdVU0UUtCZ0FTNmlnK25JQnlsZjVtY2JzK0VWcFZnUTRwTXhyZ1V1em81b29PNklOdW82K1V0YlBEdFxuWnJCclpOM29HS3BtYU9oS2J2OFBLMTltZU1LOG1lSjdBQlNWajR2UXNXZFpSWDlOcE9ZbkxWZXBJUCtNbnhpYVxuWS9zRXRzeDBTYlhrMkxRQ3JyeWtLOWdOVitTU1JJRSsyS3Z1Z1RvSnA2TTk3bk5nNXplSDVieWxBb0dBUTFhM1xuSjZnVmhpSW5XZXpCdE0vSGo0bUJ5OGJtaU40bFpscHJhcW00ejZ0N1N6SEV6aHZZUWdsZ0VHVGdSRUVwVmlwM1xudzBqM2JXc3FaMWJ6OXhOeXhpNW0rZHUzY2p2Wk53TEtyUEk0UVhqYTRuajlkSDhnTGlaVC9KNUZBdFdReUlOL1xubU4wTmxTSnA4Zmg0MXZrWFpxV3VyQXoyUmtJekNiZXRQcnlxV3NFQ2dZRUF0R3dkRTlCeUplOFJjVHpNdEREOFxubEx1ZzE4SXBrQWhYV1QxU1FEQlJjYXpmOGNNN0xQb1o0STd6dDZmbTJ2WEk5bm83Y2c0cG9aVFZoRm01eTZ5dVxuZSsrdi9yM1RaOGhxWmtXOGYzOGc1Z09tQ3lSRmhIWU1VdS9MK0kvQTdtUmRQY1R4TFBreXcwbDM2ZnRvM2pudVxuUnRNOVNzeGtOamlTeE5qa0ZERkNrVGM9XG4tLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tXG4i"
|
|
|
|
|