DocHub
All server IPs, container details, SSH access, port forwarding, and developer connection scripts

OmelasAI Network Configuration

Single source of truth for all server IPs, container details, SSH access, and connection scripts. Last updated: 2026-03-08


OVH5 “main” — AI Development Host

Detail Value
IP 62.72.47.64
Provider OVH
Purpose LXC host for 5 Claude Code containers
OS Ubuntu (host)
LXC bridge lxcbr0, subnet 10.0.3.0/24, gateway 10.0.3.1

LXC Containers on OVH5

Container Owner Internal IP SSH Port (external) Mosh UDP Range
chasclaude Chas 10.0.3.11 2211 60011–60020
infoclaude Chas 10.0.3.12 2212 60021–60030
seanclaude Sean 10.0.3.13 2213 60031–60040
jazclaude Jaz 10.0.3.14 2214 60041–60050
managerclaude Shared 10.0.3.15 2215 60051–60060
  • User on all containers: dev
  • SSH key type: ed25519
  • Port forwarding: OVH5 host forwards external SSH ports (2211–2215) to each container’s port 22

Production & Development Servers

Alias IP SSH User SSH Port Purpose Key Rule
ovh 192.99.145.61 ubuntu 22 WhatsApp CRM (Queunir) Dedicated — ONLY WhatsApp CRM
ovh2 15.204.10.51 ubuntu 22 General development N8N dev, general dev
ovh3 15.204.11.95 ubuntu 22 Production projects N8N prod, Ricoya, scrapers
ovh4 15.204.10.38 ubuntu 22 OpenClaw Active, user ubuntu
ovh5 62.72.47.64 AI development LXC host, not accessed directly
cms-droplet 178.128.183.166 ubuntu 22 CMS, DocHub, WIT DigitalOcean
hostinger 88.223.84.186 u578339199 65002 Static websites hypnoelp.com, omelasai.com, queunir.com, lifeonroatan.com

SSH Key Requirements Per Container

Each container needs these SSH keys to reach the servers it works with:

infoclaude (this container)

Key File Target Status
~/.ssh/cms_droplet cms-droplet (178.128.183.166) Present
~/.ssh/hostinger_key Hostinger (88.223.84.186) Present
~/.ssh/ovh2_dev OVH2 (15.204.10.51) Present
~/.ssh/id_ed25519 OVH3 (15.204.11.95) Present
~/.ssh/ovh_vps OVH WhatsApp (192.99.145.61) MISSING — needs copy from chasclaude

chasclaude

Key File Target Status
~/.ssh/ovh_vps OVH WhatsApp (192.99.145.61) Expected present (primary dev)
All others All servers Expected present (owner container)

seanclaude / jazclaude

Key File Target Status
Project-specific keys As needed TBD per developer

SSH Config Template

For containers (internal ~/.ssh/config)

# === Production Servers ===

Host ovh
    HostName 192.99.145.61
    User ubuntu
    IdentityFile ~/.ssh/ovh_vps
    IdentitiesOnly yes
    StrictHostKeyChecking no

Host cms-droplet
    HostName 178.128.183.166
    User ubuntu
    IdentityFile ~/.ssh/cms_droplet
    IdentitiesOnly yes
    StrictHostKeyChecking no

Host hostinger
    HostName 88.223.84.186
    User u578339199
    Port 65002
    IdentityFile ~/.ssh/hostinger_key
    IdentitiesOnly yes
    StrictHostKeyChecking no

Host ovh2
    HostName 15.204.10.51
    User ubuntu
    IdentityFile ~/.ssh/ovh2_dev
    IdentitiesOnly yes
    StrictHostKeyChecking no

Host ovh3
    HostName 15.204.11.95
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    StrictHostKeyChecking no

Host ovh4
    HostName 15.204.10.38
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    StrictHostKeyChecking no

# === LXC Containers (inter-container via internal network) ===

Host chasclaude
    HostName 10.0.3.11
    User dev
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Host infoclaude
    HostName 10.0.3.12
    User dev
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Host seanclaude
    HostName 10.0.3.13
    User dev
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Host jazclaude
    HostName 10.0.3.14
    User dev
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Host managerclaude
    HostName 10.0.3.15
    User dev
    IdentityFile ~/.ssh/id_ed25519
    StrictHostKeyChecking no

Developer Connection Scripts

For Chas (owner — all access)

#!/bin/bash
# connect-chasclaude.sh — Connect to Chas's primary container
# Requires: SSH key authorized on OVH5 for port 2211

# SSH (simple, works everywhere)
ssh -p 2211 dev@62.72.47.64

# Mosh (resilient — survives brownouts, device switches)
mosh --ssh="ssh -p 2211" dev@62.72.47.64 -- tmux attach -t main
#!/bin/bash
# connect-infoclaude.sh — Connect to Chas's secondary container
ssh -p 2212 dev@62.72.47.64
# Or with mosh:
mosh --ssh="ssh -p 2212" dev@62.72.47.64 -- tmux attach -t main

For Sean

#!/bin/bash
# connect-seanclaude.sh — Connect to Sean's dev container
# Requires: Sean's ed25519 key authorized on seanclaude

# SSH
ssh -p 2213 dev@62.72.47.64

# Mosh (recommended — resilient to network drops)
mosh --ssh="ssh -p 2213" dev@62.72.47.64 -- tmux attach -t main

# Resume Claude Code session:
# Once connected, you'll be in tmux. Claude Code is already running.
# If not attached: tmux attach -t main

For Jaz

#!/bin/bash
# connect-jazclaude.sh — Connect to Jaz's dev container
# Requires: Jaz's ed25519 key authorized on jazclaude

# SSH
ssh -p 2214 dev@62.72.47.64

# Mosh (recommended — resilient to network drops)
mosh --ssh="ssh -p 2214" dev@62.72.47.64 -- tmux attach -t main

# Resume Claude Code session:
# Once connected, you'll be in tmux. Claude Code is already running.
# If not attached: tmux attach -t main

Port Forwarding Rules (OVH5 Host iptables)

These rules must be set on the OVH5 host to route external traffic to containers:

# SSH port forwarding
iptables -t nat -A PREROUTING -p tcp --dport 2211 -j DNAT --to-destination 10.0.3.11:22
iptables -t nat -A PREROUTING -p tcp --dport 2212 -j DNAT --to-destination 10.0.3.12:22
iptables -t nat -A PREROUTING -p tcp --dport 2213 -j DNAT --to-destination 10.0.3.13:22
iptables -t nat -A PREROUTING -p tcp --dport 2214 -j DNAT --to-destination 10.0.3.14:22
iptables -t nat -A PREROUTING -p tcp --dport 2215 -j DNAT --to-destination 10.0.3.15:22

# Mosh UDP forwarding
iptables -t nat -A PREROUTING -p udp --dport 60011:60020 -j DNAT --to-destination 10.0.3.11
iptables -t nat -A PREROUTING -p udp --dport 60021:60030 -j DNAT --to-destination 10.0.3.12
iptables -t nat -A PREROUTING -p udp --dport 60031:60040 -j DNAT --to-destination 10.0.3.13
iptables -t nat -A PREROUTING -p udp --dport 60041:60050 -j DNAT --to-destination 10.0.3.14
iptables -t nat -A PREROUTING -p udp --dport 60051:60060 -j DNAT --to-destination 10.0.3.15

# Allow forwarding
iptables -A FORWARD -i eth0 -o lxcbr0 -j ACCEPT
iptables -A FORWARD -i lxcbr0 -o eth0 -j ACCEPT

# Masquerade for outbound from containers
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE

Propagation Script

Run from any container with the ClaudeSkills repo to distribute files to all containers:

#!/bin/bash
# propagate.sh — Push config files to all containers via OVH5 port forwarding
# Run from any container that has SSH key access to the others

HOST="62.72.47.64"
PORTS=(2211 2212 2213 2214 2215)
NAMES=(chasclaude infoclaude seanclaude jazclaude managerclaude)

for i in "${!PORTS[@]}"; do
    echo "==> ${NAMES[$i]} (port ${PORTS[$i]})"

    # Push CLAUDE-BASE.md
    scp -P "${PORTS[$i]}" CLAUDE-BASE.md "dev@${HOST}:~/code/ClaudeSkills/CLAUDE-BASE.md" 2>/dev/null && \
        echo "   CLAUDE-BASE.md ✓" || echo "   CLAUDE-BASE.md ✗ (no access)"

    # Push network config
    ssh -p "${PORTS[$i]}" "dev@${HOST}" "mkdir -p ~/code/ClaudeSkills/infrastructure" 2>/dev/null
    scp -P "${PORTS[$i]}" infrastructure/network-config.md "dev@${HOST}:~/code/ClaudeSkills/infrastructure/network-config.md" 2>/dev/null && \
        echo "   network-config.md ✓" || echo "   network-config.md ✗ (no access)"
done

Verification Checklist

Run these from each container to verify connectivity:

# 1. Can reach GitHub?
gh auth status

# 2. Can reach production servers? (test each one configured)
ssh -o ConnectTimeout=5 ovh 'echo OK'
ssh -o ConnectTimeout=5 cms-droplet 'echo OK'
ssh -o ConnectTimeout=5 hostinger 'echo OK'

# 3. Claude Net hub reachable?
curl -s http://10.0.3.1:3500/machines | head -20

# 4. Mosh installed?
mosh --version

# 5. tmux running?
tmux list-sessions