Expand .env.example to cover all machine-specific config

Adds TIMEZONE, BASE_DIR, MOVIES_DIR (commented out) so .env.example
is a complete reference — location, storage paths, RTSP URLs, Mattermost
credentials, and notification endpoints all in one place.

https://claude.ai/code/session_01C4jbd3waXG3eKZYbGUjLUQ
This commit is contained in:
Claude
2026-04-22 13:43:02 +00:00
parent 74a74570fc
commit 2a28c8e5ea
+27 -26
View File
@@ -244,43 +244,44 @@ done
# ── Generate .env.example ────────────────────────────────────────────────────
env_example="$HERE/.env.example"
{
echo "# sky-cam credentials — copy to .env and fill in real values."
echo "# sky-cam runtime config — copy to .env and fill in real values."
echo "# .env is gitignored and never checked in."
echo "# Everything here overrides the defaults in sky-cam.conf."
echo ""
echo "# RTSP stream URLs — one line per camera (variable name = CAM_RTSP_<camname>)"
echo "#"
echo "# Use single quotes around the whole value to prevent shell interpretation."
echo "# Special characters in the PASSWORD must be URL-encoded (number-row reference):"
echo "#"
echo "# ! %21 @ %40 # %23 \$ %24 % %25 ^ %5E"
echo "# & %26 * %2A ( %28 ) %29 - safe _ safe"
echo "# + %2B = %3D ~ %7E \` %60 space %20"
echo "#"
echo "# Also critical (break URL parsing if unencoded): : %3A / %2F"
echo "#"
echo "# Example: password my@p\$ss:word! -> my%40p%24ss%3Aword%21"
echo "# ── Location ────────────────────────────────────────────────────────────────"
echo "# Used by sunrise.py to calculate today's sunrise time."
echo "# Right-click your location in Google Maps to get lat/long."
echo "# TIMEZONE: use the TZ identifier column from"
echo "# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
echo "LATITUDE=0.0000"
echo "LONGITUDE=0.0000"
echo "TIMEZONE=America/New_York"
echo ""
echo "# ── Storage paths ───────────────────────────────────────────────────────────"
echo "# Override any of these if your images, videos, or music live on a"
echo "# different drive. Leave commented to use the defaults next to the scripts."
echo "#BASE_DIR=/path/to/images # default: ~/sky-cam/data"
echo "#MOVIES_DIR=/path/to/videos # default: \$BASE_DIR/movies"
echo "#MUSIC_DIR=/path/to/music/4Seasons # default: ~/sky-cam/music"
echo ""
echo "# ── RTSP stream URLs ────────────────────────────────────────────────────────"
echo "# One line per camera. Use single quotes to prevent shell interpretation."
echo "# URL-encode special characters in the password:"
echo "# !=%21 @=%40 #=%23 \$=%24 %=%25 ^=%5E &=%26 *=%2A :=%3A /=%2F"
echo "# Example: password my@p\$ss:word! → my%40p%24ss%3Aword%21"
echo ""
for cam in "${CAMERAS[@]}"; do
echo "CAM_RTSP_${cam}='rtsp://admin:PASSWORD@192.168.1.XXX:554/stream1'"
done
echo ""
echo "# Location — used by sunrise.py to calculate sunrise time each day."
echo "# Right-click your location in Google Maps to get coordinates."
echo "LATITUDE=0.0000"
echo "LONGITUDE=0.0000"
echo ""
echo "# Music directory — path to your Four Seasons music files."
echo "# Files must be named so that the season and Mvt number appear in the filename,"
echo "# e.g. 'Vivaldi_Spring_Mvt1.mp3'. Defaults to a 'music' subfolder next to the scripts."
echo "# MUSIC_DIR=/path/to/your/music/4 Seasons"
echo ""
echo "# Mattermost upload"
echo "# ── Mattermost upload ───────────────────────────────────────────────────────"
echo "mattermost_url=https://your-mattermost-server.example.com"
echo "access_token=your-access-token-here"
echo "channel_id=your-daily-upload-channel-id-here"
echo ""
echo "# Notifications"
echo "# ntfy — set NTFY_ENABLED=true in sky-cam.conf, then set your topic URL here:"
echo "# ── Notifications ───────────────────────────────────────────────────────────"
echo "# Also set NTFY_ENABLED=true / EMAIL_ENABLED=true / MM_NOTIFY_ENABLED=true"
echo "# in sky-cam.conf to activate the method."
echo "#NTFY_URL=https://ntfy.sh/your-topic"
echo "#EMAIL_TO=you@example.com"
echo "#MM_NOTIFY_CHANNEL_ID=your-notify-channel-id-here"