Remote access
SoundChex runs on one machine in your home. Reaching it from a phone on mobile data is a networking problem, not an application one — nothing in the app changes. Pick one of the options below, or wait for SCNet to do it for you.
First, confirm it works at home: open
http://<your-server-ip>:8000/app from another device on your own network.
If that fails, remote access won't help yet — check APP_URL (port included) and
the firewall.
How the apps choose a route
The apps race every address they know — LAN, tailnet, tunnel, relay — and take the fastest that answers, re-checking every thirty seconds and whenever the device wakes. A relay ranks last however well it measures: it works from anywhere, and it's roughly twenty times slower than a direct route. So adding remote access never slows you down at home.
Option 1 — Cloudflare Tunnel (recommended)
Free, needs a domain you own, and works even if your ISP blocks inbound ports or changes your IP. No port forwarding.
brew install cloudflared # or the package for your OS
cloudflared tunnel login
cloudflared tunnel create soundchex
cloudflared tunnel route dns soundchex media.yourdomain.com
~/.cloudflared/config.yml:
tunnel: soundchex
credentials-file: /Users/YOU/.cloudflared/<tunnel-id>.json
ingress:
- hostname: media.yourdomain.com
service: http://localhost:80
- service: http_status:404
Run it as a service, then point the app at its public name:
sudo cloudflared service install
# .env
APP_URL=https://media.yourdomain.com
APP_ENV=production
Then php artisan config:clear.
APP_ENV=production matters: it turns on HTTPS URL generation
and hides detailed error pages from the internet. And remember a tunnel puts your login page
on the public internet — login is rate-limited (5 attempts per minute, per IP and per
account), but if you'd rather nobody outside the household can even reach it, put Cloudflare
Access in front of the hostname for an email-verification step before any request touches
your server.
Option 2 — Tailscale (most private)
Free for personal use, no domain, no public exposure at all. The trade-off: every device you use must have Tailscale installed — excellent for family, awkward for guests.
brew install tailscale
sudo tailscale up
Install Tailscale on your phone, sign in with the same account, and open
http://<tailscale-ip>/app. For a real hostname and automatic HTTPS:
tailscale cert <machine>.<tailnet>.ts.net
tailscale serve https / http://localhost:80
Then set APP_URL to that https://…ts.net address.
Option 3 — VPS reverse proxy
A small VPS holds a stable public IP and forwards over WireGuard to your home server. Worth it only if your home connection is unreliable; costs a few dollars a month and takes about half a day. The two options above are free and faster to set up.
Option 4 — SCNet (coming soon)
The SoundChex Network: sign in from anywhere through our hosted relay — no ports, no tunnels, no domain, no setup. A subscription that buys convenience, never capability: direct routes are still always preferred when one exists. Join the waitlist.
After it's reachable
- Install it on your phone — open the library in the phone's browser and use Add to Home Screen. SoundChex ships a web app manifest, so it launches without browser chrome, with your artwork as the icon.
- Keep the queue running — enrichment and downloads are background jobs; see Background workers.