Files
app/.env.example
T
stroblmeandClaude Opus 5 ba707c8051 nodes: what porting the house needed from the vocabulary
Four small things, each with a device behind it.

An MQTT filter now routes what it subscribed to. `+` and `#` reached the
broker and were then looked up in an exact-match dict, so every message a
wildcard subscription received was dropped in silence.

`json_key` lifts a value out of the object a device wraps it in — Victron
publishes `{"value": 47}` on every path, which was otherwise a Python node
per port.

The trigger node learned `passthrough` and `wait_port`, because how long to
wait can be a value rather than a constant: a rollershutter takes 26 seconds
up and 28 down. A wait of zero sends nothing afterwards and still cancels
what the last message scheduled, which is how a stop is commanded once
instead of forever.

The HTTP sender takes fixed `query` parameters, so an API key is a secret
reference rather than a message on the canvas, and `send_inputs` off for a
request whose inputs are only a trigger.

Also: `delay` accepts fractional seconds, and `TZ` reaches the container, so
a cron expression means local time. Left unset it is UTC, as before.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 14:16:08 +02:00

63 lines
2.0 KiB
Bash

# Template for the app stack's .env. The workspace root's scripts/setup.sh copies
# this file to .env on first run and then keeps the shared keys in sync with the
# root .env. Secrets stay as `changethis` here and are generated locally.
# Domain Traefik routes on and acquires TLS certificates for.
DOMAIN=localhost
# Used by the backend to build links in outgoing emails.
FRONTEND_HOST=http://localhost:5173
# local, staging, production
ENVIRONMENT=local
PROJECT_NAME="Fluksio"
STACK_NAME=fluksio-app
# Backend
# `http://frontend` is the compose-network origin the Playwright job loads the
# SPA from (docker/compose.ci.yml); without it every spec fails CORS at login.
BACKEND_CORS_ORIGINS="http://localhost,http://localhost:5173,http://app.localhost,https://localhost,https://localhost:5173,http://frontend"
SECRET_KEY=changethis
FIRST_SUPERUSER=admin@fluksio.com
FIRST_SUPERUSER_PASSWORD=changethis
# Emails
SMTP_HOST=
SMTP_USER=
SMTP_PASSWORD=
EMAILS_FROM_EMAIL=info@fluksio.com
SMTP_TLS=True
SMTP_SSL=False
SMTP_PORT=587
# Where this installation keeps everything: the database, flows, secrets,
# artifacts and the user venv. The compose stack sets it to the /data volume.
DATA_DIR=flow-data
# Any SQLAlchemy URL. Empty means SQLite in the data directory, which is what
# the engine is designed around — one process owns this database.
DATABASE_URL=
# The Postgres the optional Umami analytics profile runs on. Nothing else uses
# it; `make umami` provisions a least-privilege role inside it.
POSTGRES_DB=app
POSTGRES_USER=postgres
POSTGRES_PASSWORD=changethis
# Redis — flow engine state. Empty keeps the state in memory; the compose stack
# points the backend at its own `redis` service.
REDIS_HOST=
REDIS_PORT=6379
SENTRY_DSN=
# Docker registry images
DOCKER_IMAGE_BACKEND=fluksio-backend
DOCKER_IMAGE_FRONTEND=fluksio-frontend
# The MCP endpoint agents connect to, and the OAuth server behind it.
MCP_ENABLED=true
# Local time for schedules; set from the root .env by scripts/setup.sh.
TZ=UTC