Ansible Installation
Deploy Pllan to production servers with pllan-ansible — an automated installer with security-first architecture.The pllan-ansible repo is the source of truth for Ansible deployment. This page is a quick overview.
Prerequisites
| Requirement | Details |
|---|---|
| OS | Debian 11+ or Ubuntu 20.04+ |
| Access | Root or sudo privileges |
| Network | Internet connection for package installation |
| Ansible | 2.14+ (installed automatically by the quick-start script) |
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:- Tailscale — mesh VPN for secure remote access
- UFW firewall — SSH + Tailscale ports only
- Docker CE + Compose V2 — for agent sandboxes
- Node.js 24 + pnpm — runtime dependencies (Node 22 LTS, currently
22.16+, remains supported) - Pllan — host-based, not containerized
- Systemd service — auto-start with security hardening
The gateway runs directly on the host (not in Docker), but agent sandboxes use Docker for isolation. See Sandboxing for details.
Post-Install Setup
Quick Commands
Security Architecture
The deployment uses a 4-layer defense model:- Firewall (UFW) — only SSH (22) + Tailscale (41641/udp) exposed publicly
- VPN (Tailscale) — gateway accessible only via VPN mesh
- Docker isolation — DOCKER-USER iptables chain prevents external port exposure
- Systemd hardening — NoNewPrivileges, PrivateTmp, unprivileged user
Manual Installation
If you prefer manual control over the automation:Updating
The Ansible installer sets up Pllan for manual updates. See Updating for the standard update flow. To re-run the Ansible playbook (for example, for configuration changes):Troubleshooting
Firewall blocks my connection
Firewall blocks my connection
- Ensure you can access via Tailscale VPN first
- SSH access (port 22) is always allowed
- The gateway is only accessible via Tailscale by design
Service will not start
Service will not start
Docker sandbox issues
Docker sandbox issues
Provider login fails
Provider login fails
Make sure you are running as the
pllan user:Advanced Configuration
For detailed security architecture and troubleshooting, see the pllan-ansible repo:Related
- pllan-ansible — full deployment guide
- Docker — containerized gateway setup
- Sandboxing — agent sandbox configuration
- Multi-Agent Sandbox and Tools — per-agent isolation