# dashink configuration. # Copy to .env next to the compose file on the node; .env never lives in git. # # Nothing here is required. Every source is omitted from the panel when it is # not configured, so the smallest useful install is two coordinates. # --- Panel ---------------------------------------------------------------- # en or de. To add one, copy server/lang/en.py and register it in # server/lang/__init__.py. LANG_CODE=en # Shown top-left. Falls back to PVE_NODE, then to the container hostname. NODE_NAME= # --- Host stats ----------------------------------------------------------- # local = CPU load, memory and uptime from /proc. Works anywhere. # proxmox = the Proxmox node API, using the PVE_* block below. # An incomplete PVE_* block falls back to local rather than failing to boot. HOST_SOURCE=local # Read-only token, created on the host with: # pveum user add dashink@pve # pveum aclmod / -user dashink@pve -role PVEAuditor # pveum user token add dashink@pve dash --privsep 0 PVE_HOST= PVE_PORT=8006 # Defaults to "pve" where it is used. Setting it here also names the panel # header, including on a node that never talks to Proxmox. #PVE_NODE=pve PVE_TOKEN_ID=dashink@pve!dash PVE_TOKEN_SECRET= # The host uses a self-signed certificate. Set true only if you install its CA. PVE_VERIFY_SSL=false # --- Weather (Open-Meteo, no API key) ------------------------------------- # Leave the coordinates empty and the weather block is omitted entirely. # Decimal degrees. WEATHER_TZ=auto resolves from the coordinates. WEATHER_LAT= WEATHER_LON= WEATHER_LABEL= WEATHER_TZ=auto # --- Storage tile --------------------------------------------------------- # Filled by POSTing to /ingest/media. See collect/dashink-collect.sh for the # collector this repo uses. Without a token the endpoint is closed and the tile # is omitted, so this is also the switch that turns the feature off. # Generate with: openssl rand -hex 32 INGEST_TOKEN= # --- Monitors tile (Uptime Kuma) ------------------------------------------ # Both required or the tile is omitted. The key comes from Kuma under # Settings -> API Keys; states are read from its Prometheus endpoint, which # covers every monitor rather than only those added to a status page. KUMA_URL= KUMA_API_KEY= # --- Art (optional) -------------------------------------------------------- # Shows a random photo from Immich instead of the panel, inside a time window. # # Point IMMICH_ALBUM_ID at album rather than a whole library. The ID # is the UUID at the end of the album's URL in the Immich web UI. # # Two schedules, and they compose. The window wins where they overlap. # # ART_FROM / ART_UNTIL photos for a stretch of the day. Later FROM than # UNTIL wraps past midnight. Empty disables it. # ART_ALTERNATE_MINUTES outside that window, alternate between the panel # and a photo every N minutes. 0 disables it. Match # it to the device's refresh so each fetch flips. # # Alternating replaces the whole screen every cycle, which ghosts on e-ink # unless the device clears fully each time. Set FULL_EVERY=1 in # kindle/dashink.sh if you alternate. IMMICH_URL= IMMICH_API_KEY= IMMICH_ALBUM_ID= ART_FROM=22:00 ART_UNTIL=07:00 ART_ALTERNATE_MINUTES=0