Crema
lowess/crema:latest
https://hub.docker.com/r/lowess/crema
bridge
false
https://github.com/Aurel-Charles/crema/issues
Crema is a small Node.js LAN messenger for always-on displays. It serves a PWA, a display view, settings, history, and logs over HTTP.
Network:Web Tools:
http://[IP]:[PORT:3000]
https://raw.githubusercontent.com/Lowess/docker-templates-unraid/main/Lowess/crema.xml
https://raw.githubusercontent.com/Lowess/docker-templates-unraid/main/Lowess/images/crema.png
Crema runs a peer/PWA Node.js service for sending short LAN messages between devices.
WEB UI:
- PWA sender: http://[IP]:[PORT:3000]/
- Display view: http://[IP]:[PORT:3000]/display
- Settings: http://[IP]:[PORT:3000]/settings
- History: http://[IP]:[PORT:3000]/history
- Logs: http://[IP]:[PORT:3000]/logs
DOCKER NETWORKING:
Crema's native peer-to-peer mode uses mDNS/.local discovery, which is fragile from Docker.
This template runs Crema's lightweight broker inside the same container and points the app at
ws://127.0.0.1:4000, so Docker does not need to resolve .local names.
TRANSPORT:
The default transport is broker mode. Other Crema peers can use this container as their broker
by setting their Broker URL to ws://<unraid-ip>:4000, or to whatever host port you map for
the broker.
OTHER PEERS:
Crema in broker mode does not discover peers with .local/mDNS. Aurel/Flo/other devices must
connect to this broker explicitly:
CREMA_TRANSPORT=broker
CREMA_BROKER_URL=ws://<unraid-ip>:4000
Use the Unraid server LAN IP here, not 127.0.0.1.
BROKER ADVERTISEMENT:
CREMA_BROKER_ADVERTISE=0 disables mDNS advertisement of the broker itself. Keep it disabled
for Docker. Set it to 1 only if you deliberately want _crema-broker._tcp mDNS advertisement
and your Docker host has working Avahi/mDNS support.
P2P ADDRESS RESOLUTION:
When p2p/dual mode is enabled, CREMA_MDNS_RESOLVE_ADDRESSES=1 tells Crema to use IPv4
addresses returned by mDNS instead of depending on .local hostname resolution inside Docker.
PERSISTENCE:
Runtime state is stored in /app/data and should be mapped to appdata. This includes replies,
shortcuts, Do Not Disturb state, history.db, and event logs.
PERMISSIONS:
The container entrypoint fixes ownership of /app/data, then runs Crema as the upstream node user
(UID 1000 / GID 1000). This prevents SQLite startup failures when Unraid creates the appdata
directory as root on first install.
False
https://github.com/Aurel-Charles/crema
2026-05-21
###v1.3.4 (2026-05-21)
- Add mDNS address resolution setting for p2p/dual deployments.
###v1.3.3 (2026-05-21)
- Clarify broker advertisement and peer setup for Docker broker mode.
###v1.3.2 (2026-05-21)
- Keep embedded broker mode broker-only by default to prevent Docker from starting p2p/mDNS discovery.
###v1.3.1 (2026-05-21)
- Use a PNG conversion of the upstream SVG icon so the Unraid Docker tab renders it correctly.
###v1.3.0 (2026-05-21)
- Use Crema's built-in embedded broker mode from the Docker image.
- Remove template-level shell process control.
###v1.2.0 (2026-05-21)
- Run Crema's broker inside the same container instead of requiring a separate app.
- Switch back to bridge networking and publish both the web and broker ports.
###v1.1.0 (2026-05-21)
- Default to broker transport for Docker-friendly networking.
- Add a pinned broker URL setting to avoid .local/mDNS resolution inside the container.
###v1.0.1 (2026-05-21)
- Fix appdata ownership at startup before running Crema as node.
###v1.0.0 (2026-05-21)
- Initial Unraid template release.
- Uses the upstream Crema icon from public/icon.svg.
bridge
3000
3000
tcp
4000
4000
tcp
3000
4000
/mnt/user/appdata/crema
Unraid
broker
1
ws://127.0.0.1:4000
0
0
1
49.8941
2.2958