Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Command Line and Signals

DatanoiseTV edited this page Jun 18, 2026 · 1 revision

Command Line and Signals

Invocation:

./tinyice [flags]
./tinyice <subcommand> [args]

Flags

Flag Default Description
-host 0.0.0.0 Network interface to bind.
-port 8000 HTTP / Icecast port.
-https-port 443 HTTPS port.
-use-https false Enable HTTPS.
-auto-https false Automatic TLS via ACME (Let's Encrypt).
-domains Comma-separated domains for the ACME certificate.
-config tinyice.json Config file path.
-log-file Log output file (stdout if unset).
-auth-log-file Separate auth/audit log.
-log-level info debug · info · warn · error.
-json-logs false Structured JSON logging.
-daemon false Run in the background.
-pid-file Write the PID to this file.

Flags are a convenience layer over tinyice.json; the config file is the durable source of truth (Configuration).

Subcommands

Command Effect
dump-config Pretty-print the effective configuration (after defaults/migrations).
get <key> Read one config key.
set <key> <value> Write one config key and save.
reload Find the running instance (via the PID file) and send it SIGHUP.
help Usage.

get/set understand the common scalar keys — host/bind_host, port, hostname, use_https, auto_https, https_port, page_title, page_subtitle, acme_email, acme_directory_url, domains, location, admin_email, base_url, low_latency_mode, max_listeners, directory_listing, directory_server, cert_file, key_file. For anything structured (mounts, AutoDJs, transcoders, webhooks), edit tinyice.json or use the admin UI / HTTP API.

./tinyice set base_url https://radio.example.com
./tinyice get max_listeners
./tinyice dump-config | less

Signals

Signal Effect
SIGHUP Reload config from disk without dropping listeners — re-reads mounts, passwords, relays, and UI settings, and re-syncs relays (start new, stop deleted).
SIGINT / SIGTERM Graceful shutdown — stops accepting, closes live publisher connections (so Ctrl+C quits within seconds even mid-RTMP-stream), drains, exits.
kill -HUP $(cat /run/tinyice.pid) # reload (same as ./tinyice reload)
kill -TERM $(cat /run/tinyice.pid) # graceful stop

Under systemd, systemctl reload tinyice and systemctl stop tinyice map to these.

Zero-downtime binary swap

The listening sockets use SO_REUSEADDR + SO_REUSEPORT, so a new build can bind the same port while the old process is still serving:

  1. Start the new binary on the same -port. Both processes share incoming connections.
  2. Once the new one is healthy, SIGTERM the old one — it drains and exits.

The admin UI's hot-swap action triggers the same handoff. See Deployment.


Next: Configuration · Deployment · Troubleshooting and FAQ

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /