Skip to content

Feat/setup scripts#60

Merged
over2take merged 8 commits into
mainfrom
feat/setup-scripts
Jul 12, 2026
Merged

Feat/setup scripts#60
over2take merged 8 commits into
mainfrom
feat/setup-scripts

Conversation

@over2take

@over2take over2take commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Summary

Test plan

  • [X ] Tested locally
  • [X ] Tests pass

Pre-merge checklist

Code quality:

  • Code follows project style
  • No breaking changes (or clearly documented)
  • No console errors or warnings

Version & Release:

  • Version bumped? If releasing to users, update:
    • frontend/package.json version
    • docker-compose.yml APP_VERSION
    • CHANGELOG.md with release notes
  • GitHub Actions will auto-tag Docker images with the new version

Before merging to main:

  • All tests passing
  • PR reviewed and approved
  • Branch is up to date with main
  • No merge conflicts

Related issues

Developer and others added 8 commits July 12, 2026 01:29
- 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>
@over2take over2take merged commit 54d53a2 into main Jul 12, 2026
2 checks passed
@over2take over2take deleted the feat/setup-scripts branch July 13, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant