Compare commits
3 Commits
afbef2737a
...
ffd817aecc
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ffd817aecc | ||
| 6bba20d887 | |||
| b62a14b1d5 |
55
CLAUDE.md
Normal file
55
CLAUDE.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Installer
|
||||
|
||||
## Deployment Modes
|
||||
|
||||
The installer (`install.sh`) supports two deployment modes:
|
||||
|
||||
| | Multi-tenant SaaS (`DEPLOYMENT_MODE=saas`) | Standalone (`DEPLOYMENT_MODE=standalone`) |
|
||||
|---|---|---|
|
||||
| **Containers** | traefik, postgres, clickhouse, logto, cameleer-saas | traefik, postgres, clickhouse, server, server-ui |
|
||||
| **Auth** | Logto OIDC (SaaS admin + tenant users) | Local auth (built-in admin, no identity provider) |
|
||||
| **Tenant management** | SaaS admin creates/manages tenants via UI | Single server instance, no fleet management |
|
||||
| **PostgreSQL** | `cameleer-postgres` image (multi-DB init) | Stock `postgres:16-alpine` (server creates schema via Flyway) |
|
||||
| **Use case** | Platform vendor managing multiple customers | Single customer running the product directly |
|
||||
|
||||
Standalone mode generates a simpler compose with the server running directly. No Logto, no SaaS management plane, no bootstrap. The admin logs in with local credentials at `/`.
|
||||
|
||||
## Compose templates
|
||||
|
||||
The installer uses static docker-compose templates in `templates/`. Templates are copied to the install directory and composed via `COMPOSE_FILE` in `.env`:
|
||||
- `docker-compose.yml` — shared infrastructure (traefik, postgres, clickhouse)
|
||||
- `docker-compose.saas.yml` — SaaS mode (logto, cameleer-saas)
|
||||
- `docker-compose.server.yml` — standalone mode (server, server-ui)
|
||||
- `docker-compose.tls.yml` — overlay: custom TLS cert volume
|
||||
- `docker-compose.monitoring.yml` — overlay: external monitoring network
|
||||
|
||||
## SMTP configuration
|
||||
|
||||
The installer prompts for SMTP settings in SaaS mode when the user opts in ("Configure SMTP for email verification?"). SMTP is required for self-service sign-up — without it, only admin-created users can sign in.
|
||||
|
||||
Env vars: `SMTP_HOST`, `SMTP_PORT` (default 587), `SMTP_USER`, `SMTP_PASS`, `SMTP_FROM_EMAIL` (default `noreply@<PUBLIC_HOST>`). Passed to the `cameleer-logto` container. The bootstrap script discovers the SMTP connector factory and creates the connector with Cameleer-branded email templates.
|
||||
|
||||
CLI args: `--smtp-host`, `--smtp-port`, `--smtp-user`, `--smtp-pass`, `--smtp-from-email`. Persisted in `cameleer.conf` for upgrades/reconfigure.
|
||||
|
||||
## Registry configuration
|
||||
|
||||
The installer supports pulling images from a custom Docker registry via `--registry`. Default: `gitea.siegeln.net/cameleer`.
|
||||
|
||||
When a registry is configured, the installer writes `*_IMAGE` env vars to `.env` (e.g. `TRAEFIK_IMAGE`, `POSTGRES_IMAGE`, `CAMELEER_IMAGE`) which override the defaults baked into the compose templates. In SaaS mode, provisioning image refs (`CAMELEER_SAAS_PROVISIONING_*IMAGE`) are also set from the registry.
|
||||
|
||||
For private registries, pass `--registry-user` / `--registry-token`. The installer runs `docker login` before pulling images. Credentials are persisted in `cameleer.conf` for upgrades/reconfigure.
|
||||
|
||||
## Env var naming convention
|
||||
|
||||
- `CAMELEER_AGENT_*` — agent config (consumed by the Java agent)
|
||||
- `CAMELEER_SERVER_*` — server config (consumed by cameleer-server)
|
||||
- `CAMELEER_SAAS_*` — SaaS management plane config
|
||||
- `CAMELEER_SAAS_PROVISIONING_*` — "SaaS forwards this to provisioned tenant servers"
|
||||
- `SMTP_*` — email delivery config for Logto (consumed by bootstrap, SaaS mode only)
|
||||
- No prefix (e.g. `POSTGRES_PASSWORD`, `PUBLIC_HOST`) — shared infrastructure, consumed by multiple components
|
||||
|
||||
## Development
|
||||
|
||||
This repo is used as a git submodule in `cameleer-saas` at `installer/`. The dev compose in `cameleer-saas` chains the production templates from this repo via `COMPOSE_FILE` — no duplication.
|
||||
|
||||
Fixes to compose templates go here, then `git submodule update --remote installer` in cameleer-saas propagates them to dev.
|
||||
253
README.md
253
README.md
@@ -1,3 +1,252 @@
|
||||
# cameleer-saas-installer
|
||||
# Cameleer SaaS Installer
|
||||
|
||||
One-line installer for the Cameleer SaaS platform
|
||||
One-line installer for the [Cameleer](https://cameleer.io) observability platform. Deploys as Docker containers behind Traefik with automatic TLS, Logto OIDC, and multi-tenant provisioning.
|
||||
|
||||
## Quick Start
|
||||
|
||||
**Linux / macOS:**
|
||||
|
||||
```bash
|
||||
curl -fsSL https://registry.cameleer.io/cameleer/cameleer-saas-installer/raw/branch/main/get-cameleer.sh | bash
|
||||
cd installer && ./install.sh
|
||||
```
|
||||
|
||||
**Windows (PowerShell):**
|
||||
|
||||
```powershell
|
||||
irm https://registry.cameleer.io/cameleer/cameleer-saas-installer/raw/branch/main/get-cameleer.ps1 | iex
|
||||
cd installer; .\install.sh
|
||||
```
|
||||
|
||||
**Pin a version:**
|
||||
|
||||
```bash
|
||||
curl -fsSL .../get-cameleer.sh | bash -s -- --version=v1.0.0
|
||||
```
|
||||
|
||||
## Deployment Modes
|
||||
|
||||
| | Multi-tenant SaaS | Standalone |
|
||||
|---|---|---|
|
||||
| **Containers** | Traefik, PostgreSQL, ClickHouse, Logto, Cameleer SaaS | Traefik, PostgreSQL, ClickHouse, Server, Server UI |
|
||||
| **Auth** | Logto OIDC (platform admin + tenant users) | Local auth (built-in admin, no IdP) |
|
||||
| **Tenants** | Create/manage multiple tenants via UI | Single server instance |
|
||||
| **Use case** | Platform vendor managing customers | Single customer running the product |
|
||||
|
||||
## Installation Modes
|
||||
|
||||
| Mode | Flag | Description |
|
||||
|------|------|-------------|
|
||||
| Simple | *(default)* | 6 questions, sensible defaults |
|
||||
| Expert | `--expert` | Configure everything |
|
||||
| Silent | `--silent` | Fully automated, all values from CLI/env/config |
|
||||
|
||||
## Upgrade / Reconfigure
|
||||
|
||||
Re-running the installer on an existing installation presents a menu:
|
||||
|
||||
```
|
||||
[1] Upgrade — pull new images, update compose, restart
|
||||
[2] Reconfigure — re-run interactive setup, preserve data
|
||||
[3] Reinstall — fresh install (destroys data volumes)
|
||||
[4] Cancel
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Configuration Reference
|
||||
|
||||
Settings can be provided via CLI flags, environment variables, config file (`cameleer.conf`), or interactive prompts. Priority (highest to lowest):
|
||||
|
||||
1. CLI arguments
|
||||
2. Environment variables
|
||||
3. Config file (via `--config` or auto-detected)
|
||||
4. Interactive prompts
|
||||
5. Default values
|
||||
|
||||
### Hostname & Protocol
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Public hostname | `--public-host` | `PUBLIC_HOST` | `public_host` | auto-detected |
|
||||
| Auth hostname | `--auth-host` | `AUTH_HOST` | `auth_host` | same as `PUBLIC_HOST` |
|
||||
| Protocol | `--public-protocol` | `PUBLIC_PROTOCOL` | `public_protocol` | `https` |
|
||||
|
||||
`PUBLIC_HOST` is the primary hostname for the platform. `AUTH_HOST` defaults to the same value (single-domain setup). Set a separate `AUTH_HOST` only if Logto runs on a dedicated domain.
|
||||
|
||||
### Admin Credentials
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Admin username | `--admin-user` | `SAAS_ADMIN_USER` | `admin_user` | `admin` |
|
||||
| Admin password | `--admin-password` | `SAAS_ADMIN_PASS` | `admin_password` | auto-generated |
|
||||
|
||||
In standalone mode, the env vars are `SERVER_ADMIN_USER` / `SERVER_ADMIN_PASS`.
|
||||
|
||||
### TLS Certificates
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| TLS mode | `--tls-mode` | `TLS_MODE` | `tls_mode` | `self-signed` |
|
||||
| Certificate file | `--cert-file` | `CERT_FILE` | `cert_file` | — |
|
||||
| Private key file | `--key-file` | `KEY_FILE` | `key_file` | — |
|
||||
| CA bundle | `--ca-file` | `CA_FILE` | `ca_file` | — |
|
||||
|
||||
Set `--tls-mode=custom` and provide PEM-encoded certificate files. With `self-signed`, a certificate is auto-generated at install time.
|
||||
|
||||
### Network Ports
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| HTTP port | `--http-port` | `HTTP_PORT` | `http_port` | `80` |
|
||||
| HTTPS port | `--https-port` | `HTTPS_PORT` | `https_port` | `443` |
|
||||
| Logto console port | `--logto-console-port` | `LOGTO_CONSOLE_PORT` | `logto_console_port` | `3002` |
|
||||
| Logto console exposed | `--logto-console-exposed` | `LOGTO_CONSOLE_EXPOSED` | `logto_console_exposed` | `true` |
|
||||
|
||||
HTTP traffic is auto-redirected to HTTPS. The Logto admin console is bound to `127.0.0.1` by default (localhost only). Set `--logto-console-exposed` to bind on all interfaces.
|
||||
|
||||
### Database Passwords
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| PostgreSQL password | `--postgres-password` | `POSTGRES_PASSWORD` | `postgres_password` | auto-generated |
|
||||
| ClickHouse password | `--clickhouse-password` | `CLICKHOUSE_PASSWORD` | `clickhouse_password` | auto-generated |
|
||||
|
||||
Auto-generated passwords are stored in `credentials.txt` inside the install directory.
|
||||
|
||||
### Docker
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Docker socket | `--docker-socket` | `DOCKER_SOCKET` | `docker_socket` | `/var/run/docker.sock` |
|
||||
| Compose project name | `--compose-project` | `COMPOSE_PROJECT` | `compose_project` | `cameleer-saas` |
|
||||
|
||||
The Docker socket is required for tenant provisioning (SaaS mode) — the platform creates per-tenant server containers on demand.
|
||||
|
||||
### Image Registry
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Registry | `--registry` | `REGISTRY` | `registry` | `gitea.siegeln.net/cameleer` |
|
||||
| Registry username | `--registry-user` | `REGISTRY_USER` | `registry_user` | — |
|
||||
| Registry token | `--registry-token` | `REGISTRY_TOKEN` | `registry_token` | — |
|
||||
| Image version | `--version` | `VERSION` | `version` | `latest` |
|
||||
|
||||
For private registries, provide credentials and the installer runs `docker login` before pulling. The registry prefix is applied to all container images.
|
||||
|
||||
### SMTP (SaaS Mode)
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| SMTP host | `--smtp-host` | `SMTP_HOST` | `smtp_host` | — |
|
||||
| SMTP port | `--smtp-port` | `SMTP_PORT` | `smtp_port` | `587` |
|
||||
| SMTP username | `--smtp-user` | `SMTP_USER` | `smtp_user` | — |
|
||||
| SMTP password | `--smtp-pass` | `SMTP_PASS` | `smtp_pass` | — |
|
||||
| From email | `--smtp-from-email` | `SMTP_FROM_EMAIL` | `smtp_from_email` | `noreply@<PUBLIC_HOST>` |
|
||||
|
||||
SMTP is required for self-service sign-up (email verification codes). Without it, only admin-created users can sign in.
|
||||
|
||||
### Monitoring
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Monitoring network | `--monitoring-network` | `MONITORING_NETWORK` | `monitoring_network` | — |
|
||||
|
||||
Specify an external Docker network name to attach containers for Prometheus scraping. Containers expose metrics via `prometheus.io/*` labels.
|
||||
|
||||
### TLS Verification
|
||||
|
||||
| Setting | CLI Flag | Env Var | Config Key | Default |
|
||||
|---------|----------|---------|------------|---------|
|
||||
| Node TLS reject | `--node-tls-reject` | `NODE_TLS_REJECT` | `node_tls_reject` | `0` (self-signed) / `1` (custom) |
|
||||
|
||||
Controls `NODE_TLS_REJECT_UNAUTHORIZED` inside the Logto container. Set to `0` for self-signed certificates, `1` for production certificates from a trusted CA.
|
||||
|
||||
---
|
||||
|
||||
## Auto-Generated Secrets
|
||||
|
||||
These are generated automatically and never need to be set manually:
|
||||
|
||||
| Secret | Env Var | Description |
|
||||
|--------|---------|-------------|
|
||||
| JWT signing secret | `CAMELEER_SERVER_SECURITY_JWTSECRET` | Shared secret for JWT token signing across provisioned tenant servers |
|
||||
| Bootstrap token | `BOOTSTRAP_TOKEN` | Server initialization token (standalone mode only) |
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────┐
|
||||
│ Traefik :443 │
|
||||
│ TLS termination + path routing │
|
||||
└──────┬──────────────┬───────────────┘
|
||||
│ │
|
||||
/platform/* │ │ /* (catch-all)
|
||||
│ │
|
||||
┌──────▼──────┐ ┌─────▼──────────┐
|
||||
│ Cameleer │ │ Logto │
|
||||
│ SaaS :8080 │ │ OIDC :3001 │
|
||||
│ Vendor + │ │ Custom sign-in │
|
||||
│ Tenant UI │ │ Admin :3002 │
|
||||
└──────┬─────┘ └─────────────────┘
|
||||
│
|
||||
Docker API │ provisions per-tenant
|
||||
│
|
||||
┌──────▼──────────────────────┐
|
||||
│ /t/{slug}/* │
|
||||
│ cameleer-server + server-ui │
|
||||
│ (one pair per tenant) │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
All services share a single hostname. Routing:
|
||||
|
||||
| Path | Target |
|
||||
|------|--------|
|
||||
| `/platform/*` | Cameleer SaaS management plane |
|
||||
| `/t/{slug}/*` | Per-tenant server dashboard |
|
||||
| `/*` | Logto (sign-in, OIDC, experience API) |
|
||||
| `/` | Redirect to `/platform/` |
|
||||
|
||||
---
|
||||
|
||||
## Files
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `get-cameleer.sh` | Bootstrap script (bash) — downloads installer files |
|
||||
| `get-cameleer.ps1` | Bootstrap script (PowerShell) — downloads installer files |
|
||||
| `install.sh` | Main installer — interactive or silent deployment |
|
||||
| `templates/docker-compose.yml` | Base infrastructure (Traefik, PostgreSQL, ClickHouse) |
|
||||
| `templates/docker-compose.saas.yml` | SaaS mode (Logto + management plane) |
|
||||
| `templates/docker-compose.server.yml` | Standalone mode (server + UI) |
|
||||
| `templates/docker-compose.tls.yml` | Overlay: custom TLS certificate volume |
|
||||
| `templates/docker-compose.monitoring.yml` | Overlay: external monitoring network |
|
||||
| `templates/traefik-dynamic.yml` | Traefik TLS certificate configuration |
|
||||
| `templates/.env.example` | Documented environment variable template |
|
||||
|
||||
---
|
||||
|
||||
## Silent Install Example
|
||||
|
||||
```bash
|
||||
./install.sh --silent \
|
||||
--public-host=app.example.com \
|
||||
--admin-user=admin \
|
||||
--admin-password=s3cret \
|
||||
--tls-mode=custom \
|
||||
--cert-file=/etc/ssl/cert.pem \
|
||||
--key-file=/etc/ssl/key.pem \
|
||||
--smtp-host=smtp.example.com \
|
||||
--smtp-user=noreply@example.com \
|
||||
--smtp-pass=mailpass \
|
||||
--registry=registry.example.com/cameleer \
|
||||
--registry-user=deploy \
|
||||
--registry-token=ghp_xxx
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
Proprietary. See [cameleer.io](https://cameleer.io) for licensing.
|
||||
|
||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
||||
|
||||
CAMELEER_INSTALLER_VERSION="1.0.0"
|
||||
CAMELEER_DEFAULT_VERSION="latest"
|
||||
DEFAULT_REGISTRY="gitea.siegeln.net/cameleer"
|
||||
DEFAULT_REGISTRY="registry.cameleer.io/cameleer"
|
||||
|
||||
# --- Colors ---
|
||||
RED='\033[0;31m'
|
||||
@@ -234,7 +234,7 @@ show_help() {
|
||||
echo " --help Show this help"
|
||||
echo ""
|
||||
echo "Registry options:"
|
||||
echo " --registry REGISTRY Image registry (default: gitea.siegeln.net/cameleer)"
|
||||
echo " --registry REGISTRY Image registry (default: registry.cameleer.io/cameleer)"
|
||||
echo " --registry-user USER Registry username for docker login"
|
||||
echo " --registry-token TOKEN Registry token/password for docker login"
|
||||
echo ""
|
||||
|
||||
@@ -90,9 +90,9 @@ DOCKER_GID=0
|
||||
# ============================================================
|
||||
# Provisioning images (SaaS mode only)
|
||||
# ============================================================
|
||||
# CAMELEER_SAAS_PROVISIONING_SERVERIMAGE=gitea.siegeln.net/cameleer/cameleer-server:latest
|
||||
# CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE=gitea.siegeln.net/cameleer/cameleer-server-ui:latest
|
||||
# CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE=gitea.siegeln.net/cameleer/cameleer-runtime-base:latest
|
||||
# CAMELEER_SAAS_PROVISIONING_SERVERIMAGE=registry.cameleer.io/cameleer/cameleer-server:latest
|
||||
# CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE=registry.cameleer.io/cameleer/cameleer-server-ui:latest
|
||||
# CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE=registry.cameleer.io/cameleer/cameleer-runtime-base:latest
|
||||
|
||||
# ============================================================
|
||||
# Monitoring (optional)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
services:
|
||||
cameleer-logto:
|
||||
image: ${LOGTO_IMAGE:-gitea.siegeln.net/cameleer/cameleer-logto}:${VERSION:-latest}
|
||||
image: ${LOGTO_IMAGE:-registry.cameleer.io/cameleer/cameleer-logto}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
cameleer-postgres:
|
||||
@@ -68,7 +68,7 @@ services:
|
||||
- monitoring
|
||||
|
||||
cameleer-saas:
|
||||
image: ${CAMELEER_IMAGE:-gitea.siegeln.net/cameleer/cameleer-saas}:${VERSION:-latest}
|
||||
image: ${CAMELEER_IMAGE:-registry.cameleer.io/cameleer/cameleer-saas}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
cameleer-logto:
|
||||
@@ -91,9 +91,9 @@ services:
|
||||
CAMELEER_SAAS_PROVISIONING_DATASOURCEPASSWORD: ${POSTGRES_PASSWORD}
|
||||
CAMELEER_SAAS_PROVISIONING_CLICKHOUSEPASSWORD: ${CLICKHOUSE_PASSWORD}
|
||||
CAMELEER_SERVER_SECURITY_JWTSECRET: ${CAMELEER_SERVER_SECURITY_JWTSECRET:?CAMELEER_SERVER_SECURITY_JWTSECRET must be set in .env}
|
||||
CAMELEER_SAAS_PROVISIONING_SERVERIMAGE: ${CAMELEER_SAAS_PROVISIONING_SERVERIMAGE:-gitea.siegeln.net/cameleer/cameleer-server:latest}
|
||||
CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE: ${CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE:-gitea.siegeln.net/cameleer/cameleer-server-ui:latest}
|
||||
CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE: ${CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE:-gitea.siegeln.net/cameleer/cameleer-runtime-base:latest}
|
||||
CAMELEER_SAAS_PROVISIONING_SERVERIMAGE: ${CAMELEER_SAAS_PROVISIONING_SERVERIMAGE:-registry.cameleer.io/cameleer/cameleer-server:latest}
|
||||
CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE: ${CAMELEER_SAAS_PROVISIONING_SERVERUIIMAGE:-registry.cameleer.io/cameleer/cameleer-server-ui:latest}
|
||||
CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE: ${CAMELEER_SAAS_PROVISIONING_RUNTIMEBASEIMAGE:-registry.cameleer.io/cameleer/cameleer-runtime-base:latest}
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.saas.rule=PathPrefix(`/platform`)
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER:-cameleer} -d $${POSTGRES_DB:-cameleer}"]
|
||||
|
||||
cameleer-server:
|
||||
image: ${SERVER_IMAGE:-gitea.siegeln.net/cameleer/cameleer-server}:${VERSION:-latest}
|
||||
image: ${SERVER_IMAGE:-registry.cameleer.io/cameleer/cameleer-server}:${VERSION:-latest}
|
||||
container_name: cameleer-server
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
@@ -40,7 +40,7 @@ services:
|
||||
CAMELEER_SERVER_RUNTIME_JARSTORAGEPATH: /data/jars
|
||||
CAMELEER_SERVER_RUNTIME_DOCKERNETWORK: cameleer-apps
|
||||
CAMELEER_SERVER_RUNTIME_JARDOCKERVOLUME: cameleer-jars
|
||||
CAMELEER_SERVER_RUNTIME_BASEIMAGE: gitea.siegeln.net/cameleer/cameleer-runtime-base:${VERSION:-latest}
|
||||
CAMELEER_SERVER_RUNTIME_BASEIMAGE: registry.cameleer.io/cameleer/cameleer-runtime-base:${VERSION:-latest}
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
- traefik.http.routers.server-api.rule=PathPrefix(`/api`)
|
||||
@@ -67,7 +67,7 @@ services:
|
||||
- monitoring
|
||||
|
||||
cameleer-server-ui:
|
||||
image: ${SERVER_UI_IMAGE:-gitea.siegeln.net/cameleer/cameleer-server-ui}:${VERSION:-latest}
|
||||
image: ${SERVER_UI_IMAGE:-registry.cameleer.io/cameleer/cameleer-server-ui}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
cameleer-server:
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
services:
|
||||
cameleer-traefik:
|
||||
image: ${TRAEFIK_IMAGE:-gitea.siegeln.net/cameleer/cameleer-traefik}:${VERSION:-latest}
|
||||
image: ${TRAEFIK_IMAGE:-registry.cameleer.io/cameleer/cameleer-traefik}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${HTTP_PORT:-80}:80"
|
||||
@@ -28,7 +28,7 @@ services:
|
||||
- monitoring
|
||||
|
||||
cameleer-postgres:
|
||||
image: ${POSTGRES_IMAGE:-gitea.siegeln.net/cameleer/cameleer-postgres}:${VERSION:-latest}
|
||||
image: ${POSTGRES_IMAGE:-registry.cameleer.io/cameleer/cameleer-postgres}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: ${POSTGRES_DB:-cameleer_saas}
|
||||
@@ -46,7 +46,7 @@ services:
|
||||
- monitoring
|
||||
|
||||
cameleer-clickhouse:
|
||||
image: ${CLICKHOUSE_IMAGE:-gitea.siegeln.net/cameleer/cameleer-clickhouse}:${VERSION:-latest}
|
||||
image: ${CLICKHOUSE_IMAGE:-registry.cameleer.io/cameleer/cameleer-clickhouse}:${VERSION:-latest}
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:?CLICKHOUSE_PASSWORD must be set in .env}
|
||||
|
||||
Reference in New Issue
Block a user