Sign inSign up

marcusholtz/tor-party-line-box

By marcusholtz

•Updated 3 days ago

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

Image
Networking
Security
0

220

marcusholtz/tor-party-line-box repository overview

Tor Party Line

Built for TorDistroboxLicense: MITSource: GitLabSource: GitHub

⁠marcusholtz/tor-party-line-box

Distrobox-ready image for encrypted push-to-talk voice and group party line over Tor hidden services⁠. 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/tor-party-line⁠.

⁠Supported Architectures

ArchitectureTag
x86-64amd64

⁠Quick Start

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

Once inside the container:

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

Optional. Once inside the container, run:

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

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

"Tor Party Line (on partyline-tor)" 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/tor-party-line.sh --export-path ~/.local/bin
⁠Alternative registries
# GitHub Container Registry
distrobox create --image ghcr.io/marcusholtz/tor-party-line-box:latest --name partyline-tor

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

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

distrobox assemble create --file distrobox.ini

After assembly, run tor-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. Tor bootstraps (1-3 min first time, progress shown)
  2. Your permanent .onion address appears
  3. Press 1 to set a shared secret (both sides need the same one)
  4. Share your .onion + secret, one side listens, the other calls

Your .onion keys persist inside the distrobox home directory across restarts.

⁠What's Inside

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

  • Tor
  • Opus codec, OpenSSL, socat
  • PulseAudio utilities, ALSA utilities
  • QR code generation (qrencode)
  • pcm_rms (compiled C audio level meter)
  • tor-party-line.sh at /usr/local/bin/

⁠How It Differs from the Docker Image

Docker imageDistrobox image
Imagetor-party-linetor-party-line-box
Run withdocker compose / docker rundistrobox create + distrobox enter
AudioPulseAudio socket bind-mount + /dev/sndAutomatic host audio passthrough
NetworkContainer networkingHost network (shared)
User mappingContainer rootMapped to your host user
EntrypointCustom entrypointNone (distrobox manages init)

⁠Security

PropertyDetail
EncryptionAES-256-CBC + PBKDF2 + HMAC-SHA256
RelayZero-knowledge: forwards blobs, never has the secret
Authentication.onion address + pre-shared secret
Forward secrecyNone; rotate secrets between conversations
SourceSingle bash script, no binaries, no telemetry

⁠The Party Line Trifecta (Distrobox)

Three networks, same app, same encryption:

⁠License

MIT

Tag summary

Content type

Image

Digest

sha256:f56ebbd5c…

Size

58.6 MB

Last updated

3 days ago

docker pull marcusholtz/tor-party-line-box