-
Notifications
You must be signed in to change notification settings - Fork 17
Command Line and Signals
Invocation:
./tinyice [flags]
./tinyice <subcommand> [args]| 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).
| 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| 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 stopUnder systemd, systemctl reload tinyice and systemctl stop tinyice map to
these.
The listening sockets use SO_REUSEADDR + SO_REUSEPORT, so a new build can
bind the same port while the old process is still serving:
- Start the new binary on the same
-port. Both processes share incoming connections. - Once the new one is healthy,
SIGTERMthe 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
Repository · Releases · Issues · Security policy · Apache-2.0
Getting started
Streaming
Integrations
Operations
Internals
Help