Skip to main content

Overview

Run profClaw on a VPS or bare-metal server with production-grade configuration: systemd service management, TLS via Caddy or Nginx, and basic monitoring.

Server Requirements

ComponentMinimumRecommended
OSUbuntu 22.04+ / Debian 12+Ubuntu 24.04 LTS
RAM2GB (mini)4GB+
CPU2 cores4 cores
Disk10GB50GB SSD
Node.js22+22 LTS

Installation

# Install Node.js 22
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt-get install -y nodejs

# Install profClaw
npm install -g profclaw

# Initialize
profclaw init
profclaw onboard

Systemd Service

Create /etc/systemd/system/profclaw.service:
[Unit]
Description=profClaw AI Agent Engine
After=network.target redis-server.service

[Service]
Type=simple
User=profclaw
Group=profclaw
WorkingDirectory=/opt/profclaw
ExecStart=/usr/bin/profclaw serve
Restart=always
RestartSec=5
Environment=NODE_ENV=production
Environment=PROFCLAW_MODE=pro
Environment=PORT=3000
EnvironmentFile=/opt/profclaw/.env

[Install]
WantedBy=multi-user.target
Enable and start:
sudo systemctl daemon-reload
sudo systemctl enable profclaw
sudo systemctl start profclaw

TLS with Caddy

Install Caddy for automatic HTTPS:
sudo apt install -y caddy
Edit /etc/caddy/Caddyfile:
profclaw.example.com {
    reverse_proxy localhost:3000
}
sudo systemctl restart caddy
Caddy automatically provisions and renews Let’s Encrypt certificates.

Firewall

sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP (redirect)
sudo ufw allow 443/tcp   # HTTPS
sudo ufw enable

Redis (Pro Mode)

sudo apt install redis-server
sudo systemctl enable redis-server
Add to your .env:
REDIS_URL=redis://localhost:6379

Backup Cron

Add to crontab:
0 2 * * * profclaw backup create --output /opt/profclaw/backups/
0 3 * * 0 find /opt/profclaw/backups/ -mtime +30 -delete

Monitoring

Check status:
sudo systemctl status profclaw
profclaw status
profclaw doctor
Health endpoint for uptime monitors:
curl -f https://profclaw.example.com/api/health

Log Management

# View live logs
sudo journalctl -u profclaw -f

# View recent logs
profclaw logs --since 1h
Configure log rotation in settings.yml:
logging:
  level: info
  maxFiles: 10
  maxSize: 10m