Sign inSign up

marcusholtz/reticulum-party-line-box

By marcusholtz

•Updated 3 days ago

Encrypted push-to-talk voice and group party line over Reticulum for Distrobox.

Image
Networking
Security
0

256

marcusholtz/reticulum-party-line-box repository overview

Reticulum Party Line

Built for ReticulumDistroboxLicense: MITSource: GitLabSource: GitHub

⁠marcusholtz/reticulum-party-line-box

Distrobox-ready image for encrypted push-to-talk voice and group party line over Reticulum⁠. No accounts, no phone numbers, no third-party servers.

Built for Distrobox⁠, not Docker Compose. Your mic, speakers, and network are shared with the container automatically. Ideal for immutable or atomic Linux distros (Bazzite, Silverblue, SteamOS, etc.).

For Docker Compose or standalone Docker usage, see marcusholtz/reticulum-party-line⁠.

⁠Supported Architectures

ArchitectureTag
x86-64amd64

⁠Quick Start

⁠Create and enter
distrobox create --image marcusholtz/reticulum-party-line-box:latest --name partyline-rns
distrobox enter partyline-rns
⁠Run the party line

Once inside the container:

rns-party-line.sh
⁠Add to the application menu

Optional. Once inside the container, run:

distrobox-export --app /usr/share/applications/rns-party-line.desktop

Use the full path (/usr/share/applications/tor-party-line.desktop).

"Reticulum Party Line (on partyline-rns)" appears in your host application menu with its own icon and opens in a terminal. Remove it with the same command plus --delete.

To also run it from your host shell:

distrobox-export --bin /usr/local/bin/rns-party-line.sh --export-path ~/.local/bin
⁠Alternative registries
# GitHub Container Registry
distrobox create --image ghcr.io/marcusholtz/reticulum-party-line-box:latest --name partyline-rns

# GitLab Container Registry
distrobox create --image registry.gitlab.com/marcusholtz/reticulum-party-line/box:latest --name partyline-rns
⁠One-command setup with distrobox.ini

A distrobox.ini manifest is included in the source repo⁠. It creates the container, exports rns-party-line.sh to ~/.local/bin, and adds no menu entries:

distrobox assemble create --file distrobox.ini

After assembly, run rns-party-line.sh directly from your host shell.

For an application menu (.desktop) entry, uncomment the exported_apps line in distrobox.ini before assembling, or use the distrobox-export command above.

⁠First Run

  1. RNS initializes and discovers network peers
  2. Your Reticulum destination hash appears
  3. Press 1 to set a shared secret (both sides need the same one)
  4. Share your destination hash + secret, one side runs relay, the other calls

Your RNS identity persists inside the distrobox home directory across restarts.

⁠What's Inside

Everything pre-installed, no first-run dependency installation needed:

  • Python 3.12 + RNS⁠ + LXMF⁠
  • Opus codec, OpenSSL, socat, FFmpeg
  • PulseAudio utilities, ALSA utilities
  • pcm_rms (compiled C audio level meter)
  • rns-party-line.sh at /usr/local/bin/

⁠How It Differs from the Docker Image

Docker imageDistrobox image
Imagereticulum-party-linereticulum-party-line-box
Run withdocker compose / docker rundistrobox create + distrobox enter
AudioPulseAudio socket bind-mountAutomatic host audio passthrough
NetworkContainer networkingHost network (shared)
User mappingContainer rootMapped to your host user
Entrypointdocker-entrypoint.shNone (distrobox manages init)

⁠Security

PropertyDetail
EncryptionAES-256-CBC + PBKDF2 + HMAC-SHA256
RelayZero-knowledge reflector: forwards blobs, never has the secret
AuthenticationDestination hash + pre-shared secret
Forward secrecyNone; rotate secrets between conversations
SourceSingle bash script + Python RNS bridge, no telemetry

⁠The Party Line Trifecta (Distrobox)

Three networks, same app, same encryption:

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:1bf6556b5…

Size

227.8 MB

Last updated

3 days ago

docker pull marcusholtz/reticulum-party-line-box