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 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:
Verify Key Fingerprint:
Test SSH Connection:
Check Key is on Server:
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)¶
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¶
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¶
Check Disk Space¶
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¶
View environment variables loaded in Homepage¶
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¶
Copy files FROM server¶
Copy directories (recursive)¶
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¶
Environment variables¶
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
sudofor 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
hostnetwork mode