mirror of
https://github.com/Routstr/routstr-core.git
synced 2026-10-29 23:27:45 +00:00
Saved settings win over env after the first boot (Settings.initialize overlays every non-empty DB value, and False survives that filter), so compose.node.yml cannot force analytics off and the compose.analytics.yml opt-in did nothing on a node that had already booted. Point operators at Settings instead, note that analytics publishing ignores HTTP_URL, and drop the recipe and its .gitignore entry.
38 lines
1.3 KiB
YAML
38 lines
1.3 KiB
YAML
# First-run node stack. The API always binds loopback behind an operator's
|
|
# reverse proxy. Identity is generated automatically; whether the node is
|
|
# published depends only on HTTP_URL — set it (public mode) or leave it unset
|
|
# (private, nothing advertised until a URL is configured later).
|
|
services:
|
|
ui:
|
|
env_file: .env
|
|
build:
|
|
context: ./ui
|
|
dockerfile: Dockerfile.build
|
|
args:
|
|
NEXT_PUBLIC_ADMIN_API_KEY: ""
|
|
volumes:
|
|
- ./ui_out:/output:z
|
|
command: ["sh", "-c", "mkdir -p /output && cp -r /app/built/. /output/ && echo 'UI built and ready' && tail -f /dev/null"]
|
|
restart: unless-stopped
|
|
|
|
routstr:
|
|
build: .
|
|
depends_on:
|
|
- ui
|
|
volumes:
|
|
- .:/app:z
|
|
- ./logs:/app/logs:z
|
|
- ./ui_out:/app/ui_out:ro,z
|
|
env_file: .env
|
|
environment:
|
|
# Generate the Nostr identity on first boot; it is stored encrypted and
|
|
# nothing is published until a reachable HTTP_URL/onion endpoint exists.
|
|
AUTO_GENERATE_NSEC: "true"
|
|
# First-boot default only: the saved setting wins afterwards (Settings).
|
|
ENABLE_ANALYTICS_SHARING: "false"
|
|
ports:
|
|
- "127.0.0.1:${ROUTSTR_NODE_PORT:-8000}:8000"
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
restart: unless-stopped
|