Feat/setup scripts#60
Merged
Merged
Conversation
- setup.ps1 (Windows) and setup.sh (Linux/Mac) walk users through .env config - setup.bat double-click launcher so Windows users skip execution-policy friction - Auto-generates JWT_SECRET; admin password input is hidden while typing - Optional gated DuckDNS section for internet access - Root .env gets only compose-substitution values (no secrets); backend/.env gets full config - README: Quick Setup section with a prominent untrusted-scripts warning - .gitignore exceptions so setup scripts are tracked despite *.ps1/*.bat rules Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
setup.sh must stay LF or bash fails on Linux/Mac checkouts with autocrlf. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Detect the machine's LAN IPv4 (default-route interface, private-range fallback) - Print three connection tiers: localhost, same-network URL, DuckDNS internet URL - Internet tier includes port-forward and firewall reminders; shows how to enable it when DuckDNS was skipped - Connection info also prints when the user defers launching Docker - Guard macOS getifaddr behind uname check (Windows ipconfig is a different tool) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
If another program already listens on the chosen port (e.g. NVIDIA Broadcast holds 127.0.0.1:8080, making localhost hit it instead of City_Net), warn the user, name the process (Windows), and offer to pick a different port. City_Net's own Docker listeners are excluded so re-running setup while the app is up doesn't false-alarm. Also gitignore *.env.bak/.backup files created when testing setup locally. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The LAN IP URL works on the host machine too, while localhost can be hijacked by loopback squatters (e.g. NVIDIA Broadcast on 127.0.0.1:8080). One URL that always works beats two where one might not. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Preflight detects Docker and Node 18+; asks which to use when both exist, offers manual as fallback when only Node is present - Manual mode: writes backend/.env only (PORT instead of APP_PORT), runs npm install + frontend build, offers to start the server - Manual mode warns that the bundled DuckDNS service requires Docker and points to the README connectivity options (Cloudflare Tunnel) instead - Warns that a manually-run server stops when its terminal closes - Connection guide tailors the internet tier per install mode Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Manual-install users can start the server with a double-click (start.bat) or `bash start.sh` instead of remembering cd backend && node server.js. Both guard against missing config or unbuilt frontend with pointers back to setup. Setup scripts now reference the launchers in their instructions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
Pre-merge checklist
Code quality:
Version & Release:
frontend/package.jsonversiondocker-compose.ymlAPP_VERSIONCHANGELOG.mdwith release notesBefore merging to main:
Related issues