Skip to content

Ansible

Ansible Installation

Deploy RemoteClaw to production servers with remoteclaw-ansible — an automated installer with security-first architecture.

The [remoteclaw-ansible](https://github.com/remoteclaw/remoteclaw-ansible) repo is the source of truth for Ansible deployment. This page is a quick overview.

Prerequisites

RequirementDetails
OSDebian 11+ or Ubuntu 20.04+
AccessRoot or sudo privileges
NetworkInternet connection for package installation
Ansible2.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:

Terminal window
curl -fsSL https://raw.githubusercontent.com/remoteclaw/remoteclaw-ansible/main/install.sh | bash

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 agent sandboxes
  4. Node.js 24 + pnpm — runtime dependencies (Node 22 LTS, currently 22.16+, remains supported)
  5. RemoteClaw — host-based, not containerized
  6. 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](/gateway/sandboxing) for details.

Post-Install Setup

```bash sudo -i -u remoteclaw ``` The post-install script guides you through configuring RemoteClaw settings. Log in to WhatsApp, Telegram, Discord, or Signal: ```bash remoteclaw channels login ``` ```bash sudo systemctl status remoteclaw sudo journalctl -u remoteclaw -f ``` Join your VPN mesh for secure remote access.

Quick Commands

Terminal window
# Check service status
sudo systemctl status remoteclaw
# View live logs
sudo journalctl -u remoteclaw -f
# Restart gateway
sudo systemctl restart remoteclaw
# Provider login (run as remoteclaw user)
sudo -i -u remoteclaw
remoteclaw channels login

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:

Terminal window
nmap -p- YOUR_SERVER_IP

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:

```bash sudo apt update && sudo apt install -y ansible git ``` ```bash git clone https://github.com/remoteclaw/remoteclaw-ansible.git cd remoteclaw-ansible ``` ```bash ansible-galaxy collection install -r requirements.yml ``` ```bash ./run-playbook.sh ```
/tmp/remoteclaw-setup.sh
Alternatively, run directly and then manually execute the setup script afterward:
```bash
ansible-playbook playbook.yml --ask-become-pass
```

Updating

The Ansible installer sets up RemoteClaw for manual updates. See Updating for the standard update flow.

To re-run the Ansible playbook (for example, for configuration changes):

Terminal window
cd remoteclaw-ansible
./run-playbook.sh

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 ```bash # Check logs sudo journalctl -u remoteclaw -n 100
# Verify permissions
sudo ls -la /opt/remoteclaw
# Test manual start
sudo -i -u remoteclaw
cd ~/remoteclaw
remoteclaw gateway run
```
```bash # Verify Docker is running sudo systemctl status docker
# Check sandbox image
sudo docker images | grep remoteclaw-sandbox
# Build sandbox image if missing
cd /opt/remoteclaw/remoteclaw
sudo -u remoteclaw ./scripts/sandbox-setup.sh
```
Make sure you are running as the `remoteclaw` user: ```bash sudo -i -u remoteclaw remoteclaw channels login ```

Advanced Configuration

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