Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
57 lines (48 loc) · 2.53 KB
/
Copy path.env.example
File metadata and controls
57 lines (48 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Canopy — single-file config for the Pi installer (install.sh).
#
# install.sh asks for the essentials interactively and writes them here. To add
# the optional API keys (or change anything), edit this file and re-run
# ~/canopy/install.sh.
# install.sh reads this ONE file and splits it into the per-container secret
# files under $DATA_DIR/env/*.env plus the compose-level knobs — you never
# hand-edit those generated files; edit this one and re-run the installer.
#
# This file itself is never mounted into a container and never leaves this machine
# (it's gitignored). Copied from .env.example by install.sh on first run.
# ── Compose-level knobs (read directly by docker-compose.yml) ───────────────
# Root of all persistent state: pgdata, backups, mosquitto config/data/log,
# grafana, identify-photos, canopy-cache, deploy-history, env/*.env.
# install.sh asks for it (default ~/canopy-data) and creates it.
DATA_DIR=
# Theengs Gateway runs with network_mode: host (required for BLE — see
# docs/technical.md §3), so it reaches Mosquitto via the host's own loopback
# against Mosquitto's published port rather than compose bridge-network DNS.
# Override to the host's LAN IP only if the loopback-hairpin path doesn't work
# on your kernel/nftables config.
MQTT_HOST=127.0.0.1
# Theengs BLE scan duty cycle (seconds): scan window, then pause.
BLE_SCAN_TIME=10
BLE_TIME_BETWEEN_SCANS=50
# Host port overrides.
GRAFANA_PORT=3000
CANOPY_UI_PORT=8090
# ── Secrets (split by install.sh into $DATA_DIR/env/*.env) ──────────────────
# Postgres password for the 'canopy' role, and Grafana's own admin login.
# Leave either blank and install.sh generates a random one for you (and
# writes it back into this file, so reruns stay stable).
POSTGRES_PASSWORD=
GF_SECURITY_ADMIN_PASSWORD=
# Telegram bot — create a bot via @BotFather, then message it (or add it to
# your chat/group) to get TELEGRAM_CHAT_ID. TELEGRAM_ADMIN_USER_ID is your own
# numeric Telegram user id (message @userinfobot to get it) — only this user
# can run admin commands or trigger plant ID by sending a photo. All three
# are required; the bot won't do anything useful without them.
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
TELEGRAM_ADMIN_USER_ID=
# Plant identification — optional. Without these, photo-ID and automatic
# care-threshold lookup are skipped and plants fall back to conservative
# indoor-default thresholds (see docs/technical.md §6).
PLANTNET_API_KEY=
OPENPLANTBOOK_CLIENT_ID=
OPENPLANTBOOK_CLIENT_SECRET=