IDENTITY

title: "TICKET_050: Hetzner Infrastructure Prep — Swap, tmux, Node.js, Docker Compose"
type: ticket
subtype: execution
purpose: "Prepare Hetzner CPX32 for Bus MCP Server deployment: approve swap, install tmux, verify Node.js 20+, update Docker Compose for new services."

GOVERNANCE

status: ready
priority: P0
sprint: S001_base_and_mvp1
assignee: "Claude Code CLI (Hetzner terminal)"
estimated_hours: 1
depends_on: []
blocks: [TICKET_049]
last_updated: "2026-03-21"

TICKET_050: Hetzner Infrastructure Prep

Objective

Get Hetzner CPX32 ready for the Bus MCP Server stack (Postgres, Bus, Paperclip, Caddy).

Context

Execution Steps

Step 1: Approve Swap (Shai Action)

# In the existing terminal on Hetzner, hit 1 (Yes) to approve swap
# If terminal is gone, re-run:
ssh root@89.167.96.154
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
free -h  # verify swap shows 4G

Step 2: Install tmux

apt-get update && apt-get install -y tmux
# Create persistent session
tmux new-session -d -s struxio

Step 3: Verify Node.js

node --version  # need 20+
npm --version
# If not installed:
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs

Step 4: Verify Docker + Compose

docker --version
docker compose version
# Both should already be installed. If not:
apt-get install -y docker.io docker-compose-plugin

Step 5: Create Bus Directory Structure

mkdir -p /opt/struxio/bus
mkdir -p /opt/struxio/paperclip
mkdir -p /opt/struxio/backups
mkdir -p /var/lib/struxio-bus/spool

Step 6: Verify Ports Available

# Check nothing is using our target ports
ss -tlnp | grep -E '(8088|3100|80|443)'
# Port 80/443: should be free (Caddy will take these)
# Port 8088: should be free (Bus)
# Port 3100: should be free (Paperclip)
# If occupied, identify and resolve

Step 7: Verify Existing Services Still Running

docker ps
curl -s http://localhost:8010/health || echo "BEP engine check"
# Ensure existing DEVXIO services are unaffected

Acceptance Criteria

Rollback

No destructive changes. tmux and directories can be removed if needed.


STRUXIO.ai // Confidential & Proprietary // © 2026