Skip to content
On this page

๐Ÿ”— TCP Port and Address โ€‹

The CoolerControl daemon listens on a TCP port for connections, making the Web UI and REST API available. By default, it binds to the local loopback interface on port 11987.

Default Configuration โ€‹

The default network settings are:

  • Port: 11987 (HTTP/HTTPS)
  • gRPC Port: 11988 (API)
  • IPv4 Address: 127.0.0.1 (localhost)
  • IPv6 Address: ::1 (localhost)

Configuration File โ€‹

You can configure the daemon's bind address and port in the config file /etc/coolercontrol/config.toml:

bash
sudo systemctl stop coolercontrold
sudo nano /etc/coolercontrol/config.toml
sudo systemctl start coolercontrold
toml
[settings]
port = 11987
ipv4_address = "127.0.0.1"
ipv6_address = "::1"

Binding to All Interfaces โ€‹

To allow connections from other machines on your network, bind to all interfaces:

toml
[settings]
port = 11987
ipv4_address = "0.0.0.0"
ipv6_address = "::"

WARNING

Binding to 0.0.0.0 or :: exposes the daemon to your entire network. Ensure you have:

  • Set a strong password via Access Protection
  • Configured firewall rules to restrict access
  • Considered using a proper certificate for SSL/TLS encryption

Binding to a Specific Interface โ€‹

To bind to a specific network interface, use its IP address:

toml
[settings]
port = 11987
ipv4_address = "192.168.1.100"  # Your machine's IP on the network

Environment Variables โ€‹

You can also configure these via environment variables (useful in containerized or ephemeral setups): CC_PORT, CC_HOST_IP4, and CC_HOST_IP6. For example:

bash
export CC_PORT=12000
export CC_HOST_IP4=0.0.0.0
export CC_HOST_IP6=::

For systemd-managed environments, you can also create a drop-in override to persist these settings:

bash
sudo systemctl edit coolercontrold

Then add:

ini
[Service]
Environment = "CC_PORT=12000"
Environment = "CC_HOST_IP4=0.0.0.0"
Environment = "CC_HOST_IP6=::"

Finally, reload and restart:

bash
sudo systemctl daemon-reload
sudo systemctl restart coolercontrold

Firewall Configuration โ€‹

If you're exposing the daemon on your network, configure your firewall to allow access:

UFW (Ubuntu/Debian) โ€‹

bash
sudo ufw allow 11987/tcp

firewalld (Fedora/RHEL) โ€‹

bash
sudo firewall-cmd --permanent --add-port=11987/tcp
sudo firewall-cmd --reload

iptables โ€‹

bash
sudo iptables -A INPUT -p tcp --dport 11987 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

Port Conflicts โ€‹

If port 11987 is already in use, you can change it to any available port. Common alternatives include 8080, 8888, or any port above 1024 that doesn't require root privileges.

See Also โ€‹

Released under the GPLv3+ License.