Skip to main content

Ansible Installation

Deploy FluffBuzz to production servers with fluffbuzz-ansible — an automated installer with security-first architecture.
The fluffbuzz-ansible repo is the source of truth for Ansible deployment. This page is a quick overview.

Prerequisites

What You Get

  • Firewall-first security — UFW + Docker isolation (only SSH + Tailscale accessible)
  • Tailscale VPN — secure remote access without exposing services publicly
  • Docker — isolated sandbox containers, localhost-only bindings
  • Defense in depth — 4-layer security architecture
  • Systemd integration — auto-start on boot with hardening
  • One-command setup — complete deployment in minutes

Quick Start

One-command install:

What Gets Installed

The Ansible playbook installs and configures:
  1. Tailscale — mesh VPN for secure remote access
  2. UFW firewall — SSH + Tailscale ports only
  3. Docker CE + Compose V2 — for the default agent sandbox backend
  4. Node.js 24 + pnpm — runtime dependencies (Node 22 LTS, currently 22.14+, remains supported)
  5. FluffBuzz — host-based, not containerized
  6. Systemd service — auto-start with security hardening
The gateway runs directly on the host (not in Docker). Agent sandboxing is optional; this playbook installs Docker because it is the default sandbox backend. See Sandboxing for details and other backends.

Post-Install Setup

1

Switch to the fluffbuzz user

2

Run the onboarding wizard

The post-install script guides you through configuring FluffBuzz settings.
3

Connect messaging providers

Log in to WhatsApp, Telegram, Discord, or Signal:
4

Verify the installation

5

Connect to Tailscale

Join your VPN mesh for secure remote access.

Quick Commands

Security Architecture

The deployment uses a 4-layer defense model:
  1. Firewall (UFW) — only SSH (22) + Tailscale (41641/udp) exposed publicly
  2. VPN (Tailscale) — gateway accessible only via VPN mesh
  3. Docker isolation — DOCKER-USER iptables chain prevents external port exposure
  4. Systemd hardening — NoNewPrivileges, PrivateTmp, unprivileged user
To verify your external attack surface:
Only port 22 (SSH) should be open. All other services (gateway, Docker) are locked down. Docker is installed for agent sandboxes (isolated tool execution), not for running the gateway itself. See Multi-Agent Sandbox and Tools for sandbox configuration.

Manual Installation

If you prefer manual control over the automation:
1

Install prerequisites

2

Clone the repository

3

Install Ansible collections

4

Run the playbook

Alternatively, run directly and then manually execute the setup script afterward:

Updating

The Ansible installer sets up FluffBuzz for manual updates. See Updating for the standard update flow. To re-run the Ansible playbook (for example, for configuration changes):
This is idempotent and safe to run multiple times.

Troubleshooting

  • Ensure you can access via Tailscale VPN first
  • SSH access (port 22) is always allowed
  • The gateway is only accessible via Tailscale by design
Make sure you are running as the fluffbuzz user:

Advanced Configuration

For detailed security architecture and troubleshooting, see the fluffbuzz-ansible repo: