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:
@@ -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
@@ -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)."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 |
|
||||
|---------|----------|-----|
|
||||
| 47984–47990 | TCP | Moonlight control |
|
||||
| 48010 | TCP | RTSP |
|
||||
| 47998–48000 | 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."
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user