diff --git a/src/freedombone-app-scuttlebot b/src/freedombone-app-scuttlebot
index 977fcad3f74b90539e409236a371fc20bdbe4962..a0bad79828257002308c593d8f103644aebfb464 100755
--- a/src/freedombone-app-scuttlebot
+++ b/src/freedombone-app-scuttlebot
@@ -197,6 +197,46 @@ function remove_scuttlebot {
     sed -i '/scuttlebot /d' $COMPLETION_FILE
 }
 
+function mesh_install_scuttlebot {
+    cat <<EOF > $rootdir/usr/bin/install_scuttlebot
+#!/bin/bash
+npm install -g scuttlebot@${SCUTTLEBOT_VERSION}
+EOF
+    chroot "$rootdir" /bin/chmod +x /usr/bin/install_scuttlebot
+    chroot "$rootdir" /usr/bin/install_scuttlebot
+    rm $rootdir/usr/bin/install_scuttlebot
+
+    if [ ! -f $rootdir/usr/local/bin/sbot ]; then
+        echo $'Scuttlebot was not installed'
+        exit 528253
+    fi
+
+    if [ ! -d $rootdir/etc/scuttlebot ]; then
+        mkdir -p $rootdir/etc/scuttlebot
+    fi
+
+    # an unprivileged user to run as
+    chroot "$rootdir" useradd -d /etc/scuttlebot/ scuttlebot
+
+    # daemon
+    echo '[Unit]' > $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'Description=Scuttlebot (messaging system)' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'After=syslog.target' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'After=network.target' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo '' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo '[Service]' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'Type=simple' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'User=scuttlebot' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'Group=scuttlebot' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo "WorkingDirectory=/etc/scuttlebot" >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'ExecStart=/usr/local/bin/sbot server' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'Restart=always' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'Environment="USER=scuttlebot"' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo '' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo '[Install]' >> $rootdir/etc/systemd/system/scuttlebot.service
+    echo 'WantedBy=multi-user.target' >> $rootdir/etc/systemd/system/scuttlebot.service
+}
+
 function install_scuttlebot {
     function_check install_nodejs
     install_nodejs scuttlebot
diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise
index 039d7aa14c5d63b7f04101bc8ec17ffd116aec18..ac827bc39366cf2e9859266e6526d200ed577314 100755
--- a/src/freedombone-image-customise
+++ b/src/freedombone-image-customise
@@ -701,6 +701,7 @@ initialise_mesh() {
     #install_tahoelafs
     #install_librevault
     install_patchwork
+    mesh_install_scuttlebot
     install_ferment
     install_ipfs
     install_tox
diff --git a/src/freedombone-image-mesh b/src/freedombone-image-mesh
index f727afb3029c6067c3b581f3ce1442b7be66b5fd..4c1ea0d018f4a45cc6d2dd8050ea8133142f9530 100755
--- a/src/freedombone-image-mesh
+++ b/src/freedombone-image-mesh
@@ -756,6 +756,41 @@ function mesh_setup_vpn {
     systemctl restart openvpn
 }
 
+function initialise_scuttlebot_pub {
+    chown -R scuttlebot:scuttlebot /etc/scuttlebot
+
+    systemctl enable scuttlebot.service
+    systemctl daemon-reload
+    systemctl start scuttlebot.service
+
+    sleep 3
+
+    if [ ! -d /etc/scuttlebot/.ssb ]; then
+        echo $'Scuttlebot config not generated' >> /var/log/${PROJECT_NAME}.log
+        exit 73528
+    fi
+
+    echo '{' > /etc/scuttlebot/.ssb/config
+    echo "  \"host\": \"${HOSTNAME}\"," >> /etc/scuttlebot/.ssb/config
+    echo "  \"port\": 8008," >> /etc/scuttlebot/.ssb/config
+    echo '  "timeout": 30000,' >> /etc/scuttlebot/.ssb/config
+    echo '  "pub": true,' >> /etc/scuttlebot/.ssb/config
+    echo '  "local": true,' >> /etc/scuttlebot/.ssb/config
+    echo '  "friends": {' >> /etc/scuttlebot/.ssb/config
+    echo '    "dunbar": 150,' >> /etc/scuttlebot/.ssb/config
+    echo '    "hops": 3' >> /etc/scuttlebot/.ssb/config
+    echo '  },' >> /etc/scuttlebot/.ssb/config
+    echo '  "gossip": {' >> /etc/scuttlebot/.ssb/config
+    echo '    "connections": 2' >> /etc/scuttlebot/.ssb/config
+    echo '  },' >> /etc/scuttlebot/.ssb/config
+    echo '  "master": [],' >> /etc/scuttlebot/.ssb/config
+    echo '  "logging": {' >> /etc/scuttlebot/.ssb/config
+    echo '    "level": "error"' >> /etc/scuttlebot/.ssb/config
+    echo '  }' >> /etc/scuttlebot/.ssb/config
+    echo '}' >> /etc/scuttlebot/.ssb/config
+    chown scuttlebot:scuttlebot /etc/scuttlebot/.ssb/config
+    systemctl restart scuttlebot.service
+}
 
 # whether to reset the identity
 set_new_identity=
@@ -819,6 +854,7 @@ if [ -f $MESH_INSTALL_SETUP ]; then
     create_tox_user
     #setup_tahoelafs
     mesh_setup_vpn
+    initialise_scuttlebot_pub
     setup_ipfs
     mesh_amnesic
     make_root_read_only
diff --git a/src/freedombone-mesh-batman b/src/freedombone-mesh-batman
index fa5386842aa911dedfa36f212b67e02c2d46c908..67f6651ce53ebbe73fe8eb3f17160fa9c8fd264d 100755
--- a/src/freedombone-mesh-batman
+++ b/src/freedombone-mesh-batman
@@ -155,7 +155,7 @@ function stop {
     iptables -D INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
     iptables -D INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
     iptables -D INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
-    # SSB/Patchwork
+    # SSB/Scuttlebot/Patchwork
     iptables -D INPUT -p udp --dport 8008 -j ACCEPT
     iptables -D INPUT -p tcp --dport 8008 -j ACCEPT
     # vpn over the internet
@@ -325,7 +325,7 @@ function start {
     iptables -A INPUT -p tcp --dport $LIBREVAULT_PORT -j ACCEPT
     iptables -A INPUT -p udp --dport $LIBREVAULT_PORT -j ACCEPT
     iptables -A INPUT -p tcp --dport $TAHOELAFS_PORT -j ACCEPT
-    # SSB/Patchwork
+    # SSB/Scuttlebot/Patchwork
     iptables -A INPUT -p udp --dport 8008 -j ACCEPT
     iptables -A INPUT -p tcp --dport 8008 -j ACCEPT
     # vpn over the internet