Sign inSign up

tuxick/parties-server

By tuxick

Updated 6 months ago

Image
0

1.2K

tuxick/parties-server repository overview

Parties Server

Self-hosted voice, video, and text communication server. Uses QUIC (UDP) for all traffic on a single port — low latency voice chat with Ed25519 identity-based authentication.

Quick Start

docker run -d \
  --name parties \
  -p 7800:7800/udp \
  -v parties-data:/data \
  -e PARTIES_SERVER_NAME="My Server" \
  tuxick/parties-server:latest

Or with Docker Compose:

services:
  parties-server:
    image: tuxick/parties-server:latest
    ports:
      - "7800:7800/udp"
    volumes:
      - parties-data:/data
    environment:
      PARTIES_SERVER_NAME: "My Server"
      PARTIES_ROOT_FINGERPRINTS: "your-ed25519-fingerprint-here"
    restart: unless-stopped

volumes:
  parties-data:

Configuration

Configure via environment variables, a server.toml file in /data, or both. Environment variables take priority over the TOML file.

Environment Variables
VariableDescriptionDefault
PARTIES_SERVER_NAMEServer display nameParties Server
PARTIES_LISTEN_IPBind address0.0.0.0
PARTIES_PORTQUIC UDP port7800
PARTIES_MAX_CLIENTSMax concurrent connections64
PARTIES_PASSWORDServer password (empty = no password)
PARTIES_CERT_FILETLS certificate path (relative to /data)server.pem
PARTIES_KEY_FILETLS private key path (relative to /data)server.key.pem
PARTIES_DB_PATHSQLite database pathparties.db
PARTIES_ROOT_FINGERPRINTSComma-separated Ed25519 fingerprints for Owner role
PARTIES_MAX_USERS_PER_CHANNELMax users per voice channel32
PARTIES_DEFAULT_BITRATEOpus bitrate in bps32000
PARTIES_LOG_LEVELdebug, info, or warninfo
TOML Configuration

Mount a server.toml into /data for file-based config:

[server]
name = "My Server"
listen_ip = "0.0.0.0"
port = 7800
max_clients = 64
# password = "optional-server-password"

[tls]
cert_file = "server.pem"
key_file = "server.key.pem"

[database]
path = "parties.db"

[identity]
root_fingerprints = ["your-ed25519-fingerprint"]

[voice]
max_users_per_channel = 32
default_bitrate = 32000

[logging]
level = "info"

TLS Certificates

The server generates a self-signed certificate on first run if no cert files are found. To use your own:

docker run -d \
  -p 7800:7800/udp \
  -v parties-data:/data \
  -v /path/to/certs:/certs:ro \
  -e PARTIES_CERT_FILE=/certs/server.pem \
  -e PARTIES_KEY_FILE=/certs/server.key.pem \
  tuxick/parties-server:latest

Volumes

PathPurpose
/dataWorking directory — stores server.toml, certificates, and parties.db

Networking

The server uses a single UDP port (default 7800) for everything: QUIC control plane, voice, and video. Make sure your firewall and Docker port mapping use UDP:

-p 7800:7800/udp

Owner / Root Access

Set PARTIES_ROOT_FINGERPRINTS to a comma-separated list of Ed25519 identity fingerprints. Users with matching fingerprints get Owner (root) privileges — full server administration including channel management and user moderation.

Your fingerprint is shown in the Parties client under your identity settings.

Source Code

github.com/emcifuntik/miniaudio-rnnoise

Tag summary

Content type

Image

Digest

sha256:9625e4fba

Size

32.3 MB

Last updated

6 months ago

docker pull tuxick/parties-server