podsteadr and podsteadr-player now live on nostr git (relay.ngit.dev), with Gitea as a mirror. Manifest repo links use gitworkshop.dev; the README and vendored Dockerfile give the nostr:// clone URLs and point at the podsteadr repo's archy-integration skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
85 lines
2.4 KiB
YAML
85 lines
2.4 KiB
YAML
app:
|
|
id: podsteadr-player
|
|
name: podsteadr player
|
|
version: "1.0.0"
|
|
description: Installable podcast player for any RSS feed, including podsteadr servers on the FIPS mesh.
|
|
category: media
|
|
|
|
container_name: podsteadr-player
|
|
|
|
container:
|
|
# Static Vue PWA served by unprivileged nginx (uid 101), built from the
|
|
# podsteadr-player repo (see apps/podsteadr/README.md).
|
|
image: source.archipelago-foundation.org/lfg2025/podsteadr-player:1.0.0
|
|
pull_policy: if-not-present
|
|
# pasta, not podsteadr-net: the player's /fips/ gateway fetches feeds and
|
|
# media from other nodes' FIPS (fd00::/8) addresses, which needs IPv6
|
|
# egress. podman's IPv4-only bridge networks can't reach the mesh
|
|
# (ENETUNREACH); pasta can. The player never talks to the other podsteadr
|
|
# containers by name — it only fetches the URLs feeds point at.
|
|
network: pasta
|
|
|
|
dependencies:
|
|
- storage: 64Mi
|
|
|
|
resources:
|
|
cpu_limit: 1
|
|
memory_limit: 128Mi
|
|
disk_limit: 64Mi
|
|
|
|
security:
|
|
capabilities: []
|
|
readonly_root: true
|
|
no_new_privileges: true
|
|
network_policy: isolated
|
|
|
|
ports:
|
|
- host: 8097
|
|
container: 8097
|
|
protocol: tcp
|
|
auth: none
|
|
auth_rationale: >-
|
|
Public podcast player for listeners, like podsteadr's own RSS port:
|
|
a login would lock out the people it's for. It serves only static
|
|
files plus a read-only /fips/ gateway that passes nothing but
|
|
podsteadr catalogs/feeds (8095) and blossom blobs (8098) on
|
|
npub.fips hosts, GET/HEAD only, with no client cookies or
|
|
credentials forwarded (nginx.conf in the podsteadr-player repo).
|
|
|
|
volumes:
|
|
# nginx's pid and temp files; everything else is read-only.
|
|
- type: tmpfs
|
|
target: /tmp
|
|
tmpfs_options: rw,noexec,nosuid,size=16m,mode=1777
|
|
|
|
environment: []
|
|
|
|
health_check:
|
|
type: http
|
|
endpoint: http://localhost:8097
|
|
path: /healthz
|
|
interval: 30s
|
|
timeout: 5s
|
|
retries: 3
|
|
|
|
interfaces:
|
|
main:
|
|
name: Player
|
|
description: Add RSS feeds or podsteadr servers (including npub.fips ones) and play episodes
|
|
type: ui
|
|
port: 8097
|
|
protocol: http
|
|
path: /
|
|
|
|
metadata:
|
|
author: podsteadr
|
|
icon: /assets/img/app-icons/podsteadr.svg
|
|
repo: https://gitworkshop.dev/npub1krldcq2laqxeslseue8uyk24vg6mhmv0ra6ldc52hyfwdx5azd8se5j65x/relay.ngit.dev/podsteadr-player
|
|
tags:
|
|
- podcast
|
|
- player
|
|
- rss
|
|
- fips
|
|
launch:
|
|
open_in_new_tab: true
|