The exec < /dev/tty approach silently killed the script under set -e
if /dev/tty wasn't accessible. Replace with surgical redirects on
just the interactive reads and setup.sh invocation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When piped through curl, stdin is the download stream, not the
terminal. This caused setup wizard prompts to read empty input
(the 'rogue enter' bug). Fix: reopen stdin from /dev/tty before
any interactive prompts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Color system: green checkmarks for success, orange bold for info/hints,
cyan section headers, bold white title headers, yellow warnings, red
errors. Rolling progress preview lines shown in dim. UFW "Rules updated"
noise suppressed.
Updated all repository URLs from github.com/websitebox/websitebox to
git.constantprojects.xyz/tankadmin/websitebox across install.sh,
guide.md, and README.md.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Long-running apt commands now show a live 4-line preview window that
overwrites in place using terminal escape codes. Users see what's
happening without the screen flooding with package manager output.
Preview auto-clears when each step completes.
Also fixes: duplicate else branch in Docker if/else block,
adds DEBIAN_FRONTEND=noninteractive and --force-confold to prevent
interactive dpkg prompts (sshd_config, etc).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds --force-confold to prevent interactive dpkg prompts (e.g.
sshd_config) that would block unattended installation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Each major install step now shows what it does and how long to expect:
- System update: 2-10 min on fresh servers
- Security tools: under a minute
- Docker: 1-3 min (largest download)
- Clone: a few seconds
Updated guide.md terminal output to match.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add itemized cost breakdown in intro step
- Explain "root" before SSH step, recommend password managers
- Add VPS web console fallback tip
- Explain what ssh root@IP means inline
- Explain what curl | bash does with link to source code
- Add registrar-specific DNS navigation instructions
- Add www CNAME record tip
- Add dig/dnsutils install hint
- Expand dpkg pink/purple screen guidance
- Add SSH reconnection tip if connection drops during install
- Fix "Going Further" to reference automated (not manual) security setup
- Improve password storage callout with Bitwarden/1Password links
- Add SMTP pricing details for email services
- Describe WordPress dashboard sidebar layout
- Explain Ctrl+C key combo for beginners
- Add SSH timeout troubleshooting with web console reference
- Add GitHub issues link for getting help
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move firewall (UFW), fail2ban, auto-updates, and Docker log rotation
from manual guide steps into install.sh automation. Update guide.md
to describe the automated process instead of manual commands.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
In the "Secure Your Server" guide step:
- Install unattended-upgrades for automatic OS security patches
- dpkg-reconfigure to enable daily auto-updates
- Callout explaining auto-updates won't touch Docker/WordPress
- Create /etc/docker/daemon.json with log rotation (10MB max,
3 files per container) before Docker is installed
- mkdir -p to handle pre-Docker directory creation
- Harmless docker restart with || true fallback
- Updated intro text to reflect four setup concerns
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New "Secure Your Server" step between connecting and installing:
- apt update/upgrade for security patches
- UFW firewall: allow SSH, HTTP, HTTPS only
- fail2ban: brute-force SSH protection
- Clear danger callout about SSH lockout risk
- Expected terminal output for verification
- Plain-English explanations of what each command does
- Updated "Going Further" to reference earlier security setup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Any change that alters user-facing flow must also be reflected in
guide.md. This ensures the beginner deployment guide stays accurate
as the codebase evolves.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix all step number references to use descriptive names instead
(step numbering shifts when steps are added/removed)
- Add WordPress.org vs WordPress.com explainer callout
- Fix Age Gate link to wordpress.org plugin directory
- Explain ./ prefix for running scripts
- Add popular SMTP relay services (Mailgun, SendGrid, Amazon SES)
- Break down nuclear option commands line by line
- Add server security tip (SSH keys) in Going Further
- Add WordPress block editor guide link
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add "What You're Building" intro step explaining WordPress and
what users will end up with, plus a pre-flight checklist
- Add Debian 12 to supported OS choices
- Fix broken Porkbun registrar link
- Explain terminal concepts: cd, ~, dig +short
- Break down intimidating password reset command with worked example
- Add "Going Further" step with next ideas (offsite backups, contact
forms, SEO, CDN, learning resources)
- Add "what does success look like" description after first visit
- Clarify SSH reconnection instructions in maintenance section
- Add dig fallback for systems without dig installed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add detailed explanations of every concept (VPS, SSH, DNS, Docker)
- Add hyperlinks to all external tools and services
- Expand setup wizard walkthrough with full terminal output example
- Add concrete examples for each wizard prompt
- Add tips for common gotchas (paste shortcuts, invisible passwords, etc.)
- Expand troubleshooting with worked examples
- Add plugin descriptions and links (Wordfence, UpdraftPlus, Age Gate)
- Add healthcheck expected output example
- Add monthly maintenance recommendation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Create guide.md: step-by-step deployment guide in ProjectPublic
markup format, written for non-technical users
- Add guide-format.txt: markup syntax reference
- Fix README.md: remove references to deleted templates/ and parts/
directories in theme tree listing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>