Skip to content

Security

Robin Müller edited this page Aug 3, 2026 · 3 revisions

Security

Smart Drink Fridge is designed for a trusted home network.

Recommended boundary

  • Keep port 5000 private
  • Do not create a public router port-forward
  • Use Tailscale and HTTPS or another VPN for remote access
  • Use a long random SECRET_KEY
  • Use a private cancellation password
  • Keep .env, Home Assistant tokens, Pushover credentials, and Tailscale keys secret
  • Install security updates on the Docker host

Docker socket

The optional one-click updater requires /var/run/docker.sock. Access to this socket is effectively root control over the Docker host.

Only enable docker-compose.updates.yml when:

  • The application is reachable exclusively by trusted users
  • The host and container images are kept updated
  • You accept the Docker daemon access risk

Use standard manual updates if that risk is not acceptable. See Updates.

Raspberry Pi power controls

Reboot and power-off buttons are disabled by default. They require the same Docker socket override as one-click updates, explicit activation under Settings, an administrator session, a fresh administrator password (or the cancellation password when accounts are disabled), and a confirmation prompt.

These controls start a short-lived privileged helper container with the host PID namespace. This grants host-level control. Do not enable them on a publicly reachable or untrusted installation.

HTTPS

HTTPS protects credentials and application traffic in transit. Tailscale HTTPS is the recommended approach because it avoids public exposure and provides a browser-trusted certificate.

User accounts and NFC

User accounts are optional and disabled by default. PINs and passwords are stored as one-way password hashes. NFC identifiers are stored as keyed hashes, not as the original card UID.

Treat inexpensive NFC cards as convenient identification rather than strong authentication because cards can sometimes be copied. Use a password for administrative access and protect SECRET_KEY: changing it prevents existing stored NFC hashes from matching.

Reporting a vulnerability

Avoid publishing secrets or exploitable details in a public issue. Contact the repository owner privately when sensitive disclosure is required.

Clone this wiki locally