Web Configuration
EveryUp Web is the dashboard and API server. It stores monitoring history, manages users, receives Docker Collector and OTLP data, and sends notifications based on the alert rules you configure.
Install
Run the dashboard without cloning the repository:
mkdir everyup && cd everyup
curl -O \
https://raw.githubusercontent.com/ai-turn/everyup/main/web/docker-compose.yml
docker compose up -dOpen http://<dashboard server IP>:3001 (or http://localhost:3001 on the same machine) in a browser and create the first admin account. This Compose file runs Web only; install the Docker Collector on each Docker host you want to monitor as described in the Quick Start.
Environment Variables
Web runs with working defaults and needs no env vars for a basic setup. The ones below matter for production, networking, and automation. Precedence is env var > config.json > default.
How to set them
The Quick Start Compose file passes only EVERYUP_PUBLIC_URL into the container. Add any other variable under environment: in docker-compose.yml, then recreate the container with docker compose up -d.
services:
everyup:
environment:
EVERYUP_PUBLIC_URL: ${EVERYUP_PUBLIC_URL:-}
EVERYUP_ENCRYPTION_KEY: ${EVERYUP_ENCRYPTION_KEY}
EVERYUP_RETENTION_LOGS: 7dKeep secrets in .env in the same directory and reference them with ${…} so they stay out of the Compose file.
# .env
EVERYUP_ENCRYPTION_KEY=<output of openssl rand -hex 32>Server
EVERYUP_PUBLIC_URL
External address users and monitored servers use to reach Web. Used in Docker installation commands, direct OTLP setup, and infrastructure Collector configuration. Must be an absolute http(s) URL without credentials, query, or fragmentEVERYUP_SERVER_HOST· default0.0.0.0
Bind addressEVERYUP_SERVER_PORT· default3001
Dashboard/API portEVERYUP_SERVER_MODE· defaultproductiondevelopmentenables verbose errors and stack tracesEVERYUP_SERVER_ALLOWORIGINS
CORS allowed origins; set when the frontend is served from another domain (e.g.https://app.example.com)EVERYUP_DATABASE_PATH· default./data/monitoring.db
SQLite file path (the Docker image persists/app/data)
Security and accounts
EVERYUP_ENCRYPTION_KEY· default auto-generated
64-char hex (32 bytes) AES key for secrets (Docker Collector API keys, notification channels). Set this in production; otherwise a key is generated into the data directory and a database restore alone cannot decrypt secrets (Backup and restore)EVERYUP_ADMIN_USERNAME
Create an admin account with this name on startup without the setup UI (headless provisioning). If the account already exists, its password is reset toEVERYUP_ADMIN_PASSWORDon every startupEVERYUP_ADMIN_PASSWORD
Required withEVERYUP_ADMIN_USERNAME. Inproductionmode (the default), Web refuses to start if it is shorter than 8 characters or isadmin,password, orchangeme
Retention
The value format depends on the variable name. Variables ending in DAYS take a whole number of days (14); the other three take a unit suffix such as 7d, 12h, or 30m. Without a unit, the value is read as days.
EVERYUP_RETENTION_METRICS· default7d
Health-check metricsEVERYUP_RETENTION_LOGS· default3d
LogsEVERYUP_RETENTION_SYSTEMMETRICS· default7d
Host metricsEVERYUP_RETENTION_APIREQUESTSDAYS· default14
API requests (days)EVERYUP_RETENTION_SPANSDAYS· default7
Traces (days)EVERYUP_RETENTION_BODYCAPTUREDAYS· default7
Captured request/response bodies and body-view audit records (days). Expiry strips the bodies and keeps the tracesEVERYUP_RETENTION_OTELMETRICSDAYS· default7
OTLP metrics (days)
Alerts
EVERYUP_ALERTS_CONSECUTIVEFAILURES· default3
Consecutive failures before a service is marked downEVERYUP_ALERTS_LOGALERTCOOLDOWN· default5
Minimum minutes before the same log alert is sent again
Web host metrics
These settings cover the host Web itself runs on. Collect other servers' resources through a Docker Collector or a directly connected standard OpenTelemetry Collector.
EVERYUP_SYSTEM_ENABLED· defaulttrue
Collect host metricsEVERYUP_SYSTEM_COLLECTINTERVAL· default5
Collection interval (seconds); also editable on the 환경 설정 (Settings) screenEVERYUP_SYSTEM_STOREINTERVAL· default60
Storage interval (seconds)
API Overview
Default prefix: /api/v1.
| Area | Examples |
|---|---|
| Health and auth | GET /health, POST /auth/login, GET /auth/me |
| Monitoring | GET /services, GET /hosts, GET /dashboard/timeline |
| Logs and traces | GET /logs, POST /otlp/v1/logs, POST /otlp/v1/traces |
| Alerting | GET /notifications, GET /alert-rules |
Docker Collector sync (/agents compatibility API) | POST /agents/enroll, POST /agents/:agentId/services, POST /agents/:agentId/events, POST /agents/:agentId/metrics |
| Docker service detail | GET /agents/services/all, GET /agents/:agentId/services/:key/history, GET /agents/:agentId/services/:key/uptime, GET /agents/:agentId/services/:key/logs, GET /agents/:agentId/services/:key/requests |
Docker Collector sync and OTLP export use a per-environment API key. It is issued when you create the environment with Docker 연결 (Connect Docker), and the installer delivers it to the target server directly. For a manual install, open the environment and click API Key to view it. Keep this key in the Collector rather than configuring it in monitored apps.
Directly connected apps use their service's API Key. Apps sending through a Collector gateway without Docker discovery use a service-scoped bearer token.
