Add write_readme, Caddy, and start prompt to wolf/homeassistant/js99er/minecraft

- wolf.sh: add Authelia SSO check, configure_caddy_for_service, write_readme,
  and prompt to start Wolf (it had none of these)
- homeassistant.sh: add write_readme with access URL and manage commands
- js99er.sh: add write_readme with access URL and manage commands
- minecraft.sh: add write_readme with manage and backup commands

Completes the service audit — all 49 services now have full interactive setup,
standalone bootstrap, and self-documenting README in the deploy directory.

https://claude.ai/code/session_014CCYqVwW6d6f5dw1qRokYt
This commit is contained in:
Claude
2026-06-08 18:53:17 +00:00
parent e9f05cc127
commit 9f0ff0bb9f
4 changed files with 111 additions and 1 deletions
+19
View File
@@ -242,6 +242,25 @@ HA_CONFIG
configure_caddy_for_service "Home Assistant" "homeassistant:8123" "home"
fi
write_readme "$HOMEASSISTANT_DIR" << MD
# Home Assistant
Home automation hub. Built-in auth — no Authelia needed.
## Access
- URL: http://localhost:8123
- First run: create your admin account through the onboarding wizard
## Manage
\`\`\`bash
cd $HOMEASSISTANT_DIR
docker compose up -d # start
docker compose down # stop
docker compose logs -f # logs
docker compose pull && docker compose up -d # update
\`\`\`
MD
local START_HA=""
prompt_yn "Start Home Assistant now? (y/n):" "y" START_HA
if [ "$START_HA" = "y" ] || [ "$START_HA" = "Y" ]; then
+18 -1
View File
@@ -442,7 +442,24 @@ COMPOSE
fi
fi
# ── 7. Access summary ────────────────────────────────────────────────────
write_readme "$JS99ER_DIR" << MD
# js99er — TI-99/4A Emulator
Browser-based TI-99/4A emulator. No built-in auth — protect with Authelia if exposing externally.
## Access
- URL: http://localhost:${JS99ER_PORT}
- Online (no install): https://js99er.net
## Manage
\`\`\`bash
cd $JS99ER_DIR
docker compose up -d --build # start (or rebuild)
docker compose down # stop
docker compose logs -f # logs
\`\`\`
MD
echo ""
echo " Access at: http://localhost:${JS99ER_PORT}"
echo " If you set a domain above, it is also reachable via that domain (HTTPS)."
+19
View File
@@ -2489,6 +2489,25 @@ NETEOF
echo " Run: sudo ./setup.sh backup"
echo ""
write_readme "$MC_DIR" << MD
# Minecraft — ${MC_NAME}
## Manage
\`\`\`bash
cd $MC_DIR
docker compose up -d --build # start (builds image on first run)
docker compose down # stop
docker compose logs -f # logs
docker compose pull && docker compose up -d --build # update
\`\`\`
## Backups
World data lives in \`./data\` — covered by Kopia/Borg if installed.
\`\`\`bash
sudo ./setup.sh backup
\`\`\`
MD
# ── Optional: start server and run pre-gen now ──────────────────────────────
local START_MC=""
prompt_yn "Start the Minecraft server now? (first build takes a few minutes) (y/n) [y]:" "y" START_MC
+55
View File
@@ -927,6 +927,61 @@ PYEOF
echo " Set up automatic backups with the backup module:"
echo " sudo ./setup.sh backup"
echo ""
# Wolf's web UI (pair/manage) has no built-in auth — protect with Authelia if available
local WOLF_EXTRA_BLOCK=""
if [ -d "$DOCKER_DIR/authelia" ]; then
local _use_auth=""
prompt_yn "Protect Wolf web UI with Authelia SSO? (y/n):" "y" _use_auth
[[ "$_use_auth" =~ ^[Yy]$ ]] && WOLF_EXTRA_BLOCK=" import authelia"
fi
configure_caddy_for_service "Wolf" "wolf:47990" "wolf" "$WOLF_EXTRA_BLOCK"
write_readme "$WOLF_DIR" << MD
# Wolf — Cloud Gaming (Games-on-Whales)
Stream games to any Moonlight client over your LAN or Tailscale VPN.
## Pair a new client
1. Open Moonlight on the client device
2. Add host: this server's IP
3. Run the pin command on the server:
\`\`\`bash
cd $WOLF_DIR && ./manage.sh pin
\`\`\`
## Manage
\`\`\`bash
cd $WOLF_DIR
./manage.sh start # start Wolf
./manage.sh stop # stop
./manage.sh restart # restart
./manage.sh logs # live logs
./manage.sh status # container status
./manage.sh update # pull latest image and restart
./manage.sh add-apps # add game launchers
\`\`\`
## Ports (open on firewall / router)
| Port(s) | Protocol | Use |
|---------|----------|-----|
| 4798447990 | TCP | Moonlight control |
| 48010 | TCP | RTSP |
| 4799848000 | UDP | RTP video/audio/control |
## Backup
\`\`\`bash
sudo ./setup.sh backup # covers /etc/wolf saves and ES-DE settings
\`\`\`
MD
local START_WOLF=""
prompt_yn "Start Wolf now? (y/n):" "y" START_WOLF
if [[ "$START_WOLF" =~ ^[Yy]$ ]]; then
docker compose up -d \
&& log_success "Wolf started — pair Moonlight to this server's IP" \
|| log_warning "Start failed — check: docker compose logs"
fi
log_success "Done. Pair Moonlight and play."
}