CAUTION This is a cheat-sheet for a fast startup. Security requirements are not considered here. If you follow the instructions, apps will be available from outside of the host without even any password protection! You have been warned.
Install Docker via automated script
curl -sSL https://get.docker.com | sh
Consider setting up the Docker daemon in rootless mode for your user
sudo apt install uidmap
dockerd-rootless-setuptool.sh install
Some info from the installer good to keep it for later
systemctl --user (start|stop|restart) docker.servicesudo loginctl enable-linger piGood to know about rootless mode
--device option.--user option, in some not.persistence true # CAUTION - consider persistence
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
allow_anonymous true # CAUTION - make sure you really want it
listener 1883 0.0.0.0
docker network create YOUR_NETWORKdocker run --rm \
--name mosquitto \
-p 1883:1883 \
-v MQTT_CONFIG_DIR:/mosquitto/config \
-v MQTT_DATA_DIR:/mosquitto/data \
-v MQTT_LOG_DIR:/mosquitto/log \
--network YOUR_NETWORK \
eclipse-mosquitto
sudo chmod 666 /dev/ttyUSB0sudo nano /etc/udev/rules.d/99-user.rules SUBSYSTEMS=="usb", ATTRS{idVendor}=="XXXX", ATTRS{idProduct}=="XXXX", MODE="0666" sudo udevadm control --reload seems no to have the rights to apply the new mode) docker run --rm \
--name zigbee2mqtt \
-p 8080:8080 \
-v ZIGBEE2MQTT_DATA_DIR:/app/data \
-v /run/udev:/run/udev:ro \
--device=/dev/ttyUSB0 \
--network YOUR_NETWORK \
-e TZ=Europe/Amsterdam \
ghcr.io/koenkk/zigbee2mqtt
mqtt://mosquitto:1883docker run -d \ # daemon
-i \ # interactive mode
--restart unless-stopped \ # auto-restart, manual stop takes precedence
--name mosquitto \
-p 1883:1883 \
-v MQTT_CONFIG_DIR:/mosquitto/config \
-v MQTT_DATA_DIR:/mosquitto/data \
-v MQTT_LOG_DIR:/mosquitto/log \
--network YOUR_NETWORK \
eclipse-mosquitto
docker run -d \ # daemon
-i \ # interactive mode
--restart unless-stopped \
--name zigbee2mqtt -p 8080:8080 \
-v ZIGBEE2MQTT_DATA_DIR:/app/data \
-v /run/udev:/run/udev:ro \
--device=/dev/serial/by-id/XXXXX \ # unique identification of the device
--network YOUR_NETWORK \
-e TZ=Europe/Amsterdam \
ghcr.io/koenkk/zigbee2mqtt
Next: InfluxDB3 on Raspberry Pi / jemalloc: Unsupported system page size