The player now takes any RSS feed URL as well as a podsteadr server, and plays podsteadr feeds hosted on the FIPS mesh. A browser can't speak FIPS, and an HTTPS page can't fetch or play http:// URLs, so .fips URLs are routed one of two ways (src/lib/net.ts): - served over the mesh (http://<npub>.fips:8097/), the page fetches .fips URLs directly over the device's own FIPS connection; - served over HTTPS (player.atobitcoin.io), .fips URLs are rewritten to the host's /fips/<host>/<port>/<path> gateway, which relays only podsteadr feeds (8095) and blossom blobs (8098) over the host's FIPS link (deploy/player-domain.conf). Also: - "Add" accepts a feed, an OPML catalog, or a server address and works out which; old saved servers migrate to the new subscription format - PWA: manifest, icons, service worker caching only the app shell (never feeds, audio or the gateway), install button, safe areas - lock-screen controls and artwork via the Media Session API - artwork, dates and durations in the episode list - no secure-context-only APIs on the mesh copy (randomUUID, clipboard) - buying episodes over FIPS is refused with a clear message: NIP-98 signs the server's public URL, which a .fips address never matches Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.1 KiB
1.1 KiB
Deploying podsteadr-player on podsteadr
Two ways in, one container:
| URL | How .fips feeds load | Installable / offline |
|---|---|---|
https://player.atobitcoin.io |
via the host's /fips/ gateway (player-domain.conf) |
yes |
http://<node-npub>.fips:8097/ |
directly, over the device's own FIPS connection | no (plain http) |
Container
Source lives at /var/lib/archipelago/podsteadr-player-src (the path
restore-podsteadr.sh restores from at boot):
cd /var/lib/archipelago/podsteadr-player-src
podman-compose build && podman-compose up -d # serves :8097
Mesh access
Allow the container's port through the fips0 default-deny baseline, in the
hand-maintained /etc/fips/fips.d/90-podsteadr.nft, then reload:
tcp dport 8097 accept
sudo nft -f /etc/fips/fips.nft
HTTPS domain + gateway
- Install only the port-80 server block from
player-domain.confas/etc/nginx/sites-available/player-domain, symlink it intosites-enabled,nginx -t && systemctl reload nginx. sudo certbot certonly --nginx -d player.atobitcoin.io- Install the full
player-domain.conf,nginx -t, reload.