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"
|
configure_caddy_for_service "Home Assistant" "homeassistant:8123" "home"
|
||||||
fi
|
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=""
|
local START_HA=""
|
||||||
prompt_yn "Start Home Assistant now? (y/n):" "y" START_HA
|
prompt_yn "Start Home Assistant now? (y/n):" "y" START_HA
|
||||||
if [ "$START_HA" = "y" ] || [ "$START_HA" = "Y" ]; then
|
if [ "$START_HA" = "y" ] || [ "$START_HA" = "Y" ]; then
|
||||||
|
|||||||
+18
-1
@@ -442,7 +442,24 @@ COMPOSE
|
|||||||
fi
|
fi
|
||||||
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 ""
|
||||||
echo " Access at: http://localhost:${JS99ER_PORT}"
|
echo " Access at: http://localhost:${JS99ER_PORT}"
|
||||||
echo " If you set a domain above, it is also reachable via that domain (HTTPS)."
|
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 " Run: sudo ./setup.sh backup"
|
||||||
echo ""
|
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 ──────────────────────────────
|
# ── Optional: start server and run pre-gen now ──────────────────────────────
|
||||||
local START_MC=""
|
local START_MC=""
|
||||||
prompt_yn "Start the Minecraft server now? (first build takes a few minutes) (y/n) [y]:" "y" 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 " Set up automatic backups with the backup module:"
|
||||||
echo " sudo ./setup.sh backup"
|
echo " sudo ./setup.sh backup"
|
||||||
echo ""
|
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."
|
log_success "Done. Pair Moonlight and play."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user