Skip to content

Server Access Guide for AI Agents

Server Information

Server Type: Kimsufi KS-5 Dedicated Server Location: Canada (BHS datacenter) Provider: OVH/Kimsufi OS: Ubuntu 24.04 LTS Public IP: 144.217.76.53 Tailscale IP: 100.88.231.43

SSH Access

From Mac (Local Machine)

ssh ubuntu@144.217.76.53

SSH Key Configuration: - Private Key Location: ~/.ssh/id_ed25519 (already configured) - Public Key Location: ~/.ssh/id_ed25519.pub - Authentication: Key-based only (no password) - Key Type: ED25519 - Permissions: Private key should be 600, public key 644

Your Public Key:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDWgAFuCQ0F7tP+bwTaAvj6+M7+6M68jpkm7HaR5HRDT kavi@MacBook-Pro-de-Kavi.local

View Public Key:

cat ~/.ssh/id_ed25519.pub

Verify Key Fingerprint:

ssh-keygen -lf ~/.ssh/id_ed25519.pub

Test SSH Connection:

ssh -v ubuntu@144.217.76.53 "echo 'SSH connection successful!'"

Check Key is on Server:

ssh ubuntu@144.217.76.53 "cat ~/.ssh/authorized_keys"

SSH Config Entry (Optional): Add to ~/.ssh/config for easier access:

Host kimsufi-plex
    HostName 144.217.76.53
    User ubuntu
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 60

Then connect with: ssh kimsufi-plex

Alternative access (if SSH fails): - KVM Console: https://ca.ovh.com/manager/ → Dedicated Servers → KVM/IPMI

User Accounts

  • ubuntu (primary user): Full sudo access, used for all operations
  • root: SSH login disabled for security

Important Directories

# Docker Compose files and configurations
~/docker/
├── docker-compose.yml
└── .env

# Media storage (RAID 0 array - 4TB total)
/mnt/media/
├── config/          # All service configurations
   ├── plex/
   ├── radarr/
   ├── sonarr/
   ├── prowlarr/
   ├── bazarr/
   ├── lidarr/
   ├── sabnzbd/
   ├── qbittorrent/
   ├── overseerr/
   ├── homepage/
   └── tailscale/
├── movies/          # Radarr output
├── tv/              # Sonarr output
└── downloads/       # SABnzbd/qBittorrent downloads

Service Access URLs (via Tailscale)

Access all services through Tailscale IP: 100.88.231.43

Service URL Port Purpose
Plex http://100.88.231.43:32400/web 32400 Media streaming
Homepage http://100.88.231.43:3000 3000 Dashboard
Radarr http://100.88.231.43:7878 7878 Movie management
Sonarr http://100.88.231.43:8989 8989 TV show management
Prowlarr http://100.88.231.43:9696 9696 Indexer manager
SABnzbd http://100.88.231.43:8081 8081 Usenet downloader
qBittorrent http://100.88.231.43:8080 8080 Torrent downloader
Bazarr http://100.88.231.43:6767 6767 Subtitle management
Lidarr http://100.88.231.43:8686 8686 Music management
Overseerr http://100.88.231.43:5055 5055 Request management

API Keys (Stored in ~/docker/.env)

# View all API keys
ssh ubuntu@144.217.76.53 "cat ~/docker/.env | grep API_KEY"

Current API Keys: - Plex Token: {{HOMEPAGE_VAR_PLEX_TOKEN}} (in .env) - Radarr: 5b8941aca5fa44d4a801e83ff3ffbfa6 - Sonarr: 23561ba9deb74ea2aafc63c64b6d540d - Prowlarr: 9e41d377aa62472ca4d6fefeced0cce6 - Bazarr: 3526aa275fd8db2a49bdfdaa46c9b0a3 - Lidarr: 9c0d410d23c24349b4b40dcd36b66a07 - SABnzbd: 81c13c9cb4e34d18adf290190713797f - Overseerr: MTc2NTQ3MzY5MDQ2MmI2Y2NmMDViLTRjMWItNDk5ZC04OGMzLTk4ZDY5YjI3Y2RiZQ== - qBittorrent: username admin, password adminadmin

Docker Management

View all containers

ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose ps"

View logs

# Specific service
ssh ubuntu@144.217.76.53 "sudo docker logs <container_name>"

# Follow logs
ssh ubuntu@144.217.76.53 "sudo docker logs -f <container_name>"

Restart services

# Single service
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose restart <service_name>"

# All services
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose restart"

Stop/Start services

# Stop
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose stop <service_name>"

# Start
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose up -d <service_name>"

Storage Information

RAID Configuration

  • Type: RAID 0 (striped, no redundancy)
  • Capacity: 4TB total (2×2TB HDDs)
  • Filesystem: ext4
  • Mount Point: /mnt/media

Check RAID Status

ssh ubuntu@144.217.76.53 "cat /proc/mdstat"

Check Disk Space

ssh ubuntu@144.217.76.53 "df -h /mnt/media"

Network Configuration

Tailscale VPN

  • Container: tailscale
  • Network: 100.0.0.0/8
  • Server IP on Tailnet: 100.88.231.43

Docker Network

  • Network Name: media-network
  • Type: bridge
  • Gateway IP: 172.18.0.1

Important: Plex uses network_mode: host, so it's accessed via Docker gateway IP 172.18.0.1:32400 from other containers.

Common Operations

Check service health

ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose ps"

View environment variables loaded in Homepage

ssh ubuntu@144.217.76.53 "sudo docker exec homepage env | grep HOMEPAGE_VAR"

Test API connectivity

# Radarr
ssh ubuntu@144.217.76.53 "curl -s http://localhost:7878/api/v3/system/status -H 'X-Api-Key: 5b8941aca5fa44d4a801e83ff3ffbfa6'"

# Sonarr
ssh ubuntu@144.217.76.53 "curl -s http://localhost:8989/api/v3/system/status -H 'X-Api-Key: 23561ba9deb74ea2aafc63c64b6d540d'"

# Overseerr
ssh ubuntu@144.217.76.53 "curl -s http://localhost:5055/api/v1/settings/plex -H 'X-Api-Key: MTc2NTQ3MzY5MDQ2MmI2Y2NmMDViLTRjMWItNDk5ZC04OGMzLTk4ZDY5YjI3Y2RiZQ=='"

Edit configurations

# Docker Compose
ssh ubuntu@144.217.76.53 "nano ~/docker/docker-compose.yml"

# Environment variables
ssh ubuntu@144.217.76.53 "nano ~/docker/.env"

# Homepage services
ssh ubuntu@144.217.76.53 "nano /mnt/media/config/homepage/services.yaml"

SSH Troubleshooting

Permission Denied

# Check key permissions
ls -la ~/.ssh/id_ed25519
# Should be: -rw------- (600)

# Fix permissions if needed
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

Connection Timeout

# Check server is reachable
ping -c 3 144.217.76.53

# Check SSH port is open
nc -zv 144.217.76.53 22

# Try with verbose output
ssh -vvv ubuntu@144.217.76.53

Key Not Working

# Verify your public key is on the server
ssh ubuntu@144.217.76.53 "cat ~/.ssh/authorized_keys"

# Should contain:
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDWgAFuCQ0F7tP+bwTaAvj6+M7+6M68jpkm7HaR5HRDT kavi@MacBook-Pro-de-Kavi.local

Emergency Access

If SSH is completely broken, use OVH's KVM console: 1. Go to https://ca.ovh.com/manager/ 2. Select your server 3. Click "KVM" or "IPMI" 4. Login as ubuntu (you set the password during installation, or use root recovery mode)

Troubleshooting

Service not responding

# Check if container is running
ssh ubuntu@144.217.76.53 "sudo docker ps -a | grep <service_name>"

# Check logs for errors
ssh ubuntu@144.217.76.53 "sudo docker logs <container_name> --tail 50"

# Restart service
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose restart <service_name>"

Homepage API errors

# Check Homepage logs
ssh ubuntu@144.217.76.53 "sudo docker logs homepage -f"

# Verify environment variables loaded
ssh ubuntu@144.217.76.53 "sudo docker exec homepage env | grep HOMEPAGE_VAR | wc -l"
# Should return 11

# Recreate Homepage to reload env vars
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose up -d --force-recreate homepage"

Plex connectivity issues from Docker

# Test from Homepage container
ssh ubuntu@144.217.76.53 "sudo docker exec homepage wget -qO- http://172.18.0.1:32400/identity"

# Should return Plex XML with machineIdentifier

qBittorrent "Unauthorized" errors

# Run whitelist fix script
ssh ubuntu@144.217.76.53 "bash ~/kimsufi-plex-stack/scripts/fix-qbittorrent-whitelist.sh"

File Transfer

Copy files TO server

scp /local/path/file ubuntu@144.217.76.53:/remote/path/

Copy files FROM server

scp ubuntu@144.217.76.53:/remote/path/file /local/path/

Copy directories (recursive)

scp -r /local/directory ubuntu@144.217.76.53:/remote/path/

Security Notes

  • SSH: Key-based authentication only, password login disabled
  • Root login: Disabled via SSH
  • Firewall (UFW): Enabled, only ports 22 (SSH) and 41641 (Tailscale) open
  • fail2ban: Active, protects against brute force attacks
  • NordVPN: qBittorrent traffic routed through Gluetun VPN container

Important Configuration Files

docker-compose.yml location

~/docker/docker-compose.yml

Environment variables

~/docker/.env

Homepage configuration

/mnt/media/config/homepage/
├── services.yaml       # Service definitions
├── widgets.yaml        # Widget configurations
├── settings.yaml       # Homepage settings
└── bookmarks.yaml      # Bookmarks

OVH Manager Access

URL: https://ca.ovh.com/manager/

Use this for: - Server reboot/restart - KVM/IPMI console access - OS reinstallation - Monitoring - Support tickets

Quick Reference Commands

# Check all services status
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose ps"

# View disk usage
ssh ubuntu@144.217.76.53 "df -h"

# View RAID status
ssh ubuntu@144.217.76.53 "cat /proc/mdstat"

# Restart all services
ssh ubuntu@144.217.76.53 "cd ~/docker && sudo docker compose restart"

# View Homepage logs
ssh ubuntu@144.217.76.53 "sudo docker logs homepage -f"

# Check Tailscale connection
ssh ubuntu@144.217.76.53 "sudo docker exec tailscale tailscale status"

Notes for AI Agents

  • All commands can be executed remotely via SSH without interactive login
  • Use ssh ubuntu@144.217.76.53 "command" syntax for single commands
  • For multi-line operations, use semicolons or && to chain commands
  • Always use sudo for Docker commands
  • The server responds to both public IP (144.217.76.53) and Tailscale IP (100.88.231.43)
  • Plex requires special network configuration due to host network mode