Key Features
- • Container lifecycle management (start, stop, restart, logs, exec)
- • Docker Compose project deployment
- • Image, volume, and network administration
- • Real-time resource monitoring
- • Multi-environment support via remote agents
- • Dark/light mode with mobile-responsive design
Prerequisites
Before starting, ensure you have:
Server Requirements
- • Ubuntu 22.04/24.04 LTS
- • 2GB RAM minimum (4GB recommended)
- • 20GB+ SSD storage
- • Ports 80, 443, 3552 available
Optional Requirements
- • Domain for SSL/HTTPS access
- • DNS records configured
- • Basic command line knowledge
- • SSH client installed
Initial Server Setup
Connect to your RamNode VPS and prepare the system:
ssh root@your-server-ipapt update && apt upgrade -yadduser deployer
usermod -aG sudo deployer
su - deployer💡 Security: Using a non-root user for deployment is a security best practice.
Installing Docker
Install Docker Engine and Docker Compose plugin:
sudo apt install -y ca-certificates curl gnupg lsb-releasesudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpgecho "deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-pluginsudo usermod -aG docker $USER
newgrp dockerdocker --version
docker compose versionDeploying Arcane
Create the project directory and generate security keys:
mkdir -p ~/arcane && cd ~/arcane# Generate 32-byte encryption key (base64)
openssl rand -base64 32
# Generate JWT secret
openssl rand -base64 32⚠️ Important: Save these keys securely—you'll need them for the configuration.
services:
arcane:
image: ghcr.io/getarcaneapp/arcane:latest
container_name: arcane
restart: unless-stopped
ports:
- '3552:3552'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
- /opt/docker:/opt/docker
environment:
- APP_URL=http://localhost:3552
- PUID=1000
- PGID=1000
- ENCRYPTION_KEY=your_generated_encryption_key
- JWT_SECRET=your_generated_jwt_secret
volumes:
arcane-data:| Variable | Description |
|---|---|
| APP_URL | Base URL for Arcane (update when using reverse proxy) |
| ENCRYPTION_KEY | 32-byte key for encrypting sensitive settings (required) |
| JWT_SECRET | Secret for JWT token signing (required) |
| PUID/PGID | User/group IDs for file permissions (use id -u and id -g) |
docker compose up -ddocker compose logs -f arcaneInitial Setup
Access Arcane and complete the onboarding:
Access URL:
http://your-server-ip:3552Complete the Setup Wizard:
- Create your admin account with a strong password
- Configure your default settings
- Set up your projects directory
- Start managing your Docker containers!
✅ Arcane is now running and ready to manage your Docker containers.
Reverse Proxy with SSL
For production deployments, configure Nginx as a reverse proxy with SSL:
sudo apt install -y nginx certbot python3-certbot-nginxsudo nano /etc/nginx/sites-available/arcaneserver {
listen 80;
server_name arcane.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3552;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}sudo ln -s /etc/nginx/sites-available/arcane /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d arcane.yourdomain.com# In docker-compose.yml, update:
- APP_URL=https://arcane.yourdomain.comdocker compose up -dSecurity Hardening
Secure your Arcane installation:
Configure Firewall:
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
# Block direct access to port 3552 (use reverse proxy instead)
sudo ufw deny 3552Docker Socket Security (Optional):
For enhanced security, consider using a Docker socket proxy to limit what Arcane can do:
services:
socket-proxy:
image: tecnativa/docker-socket-proxy
container_name: socket-proxy
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- CONTAINERS=1
- IMAGES=1
- NETWORKS=1
- VOLUMES=1Maintenance & Backups
Keep your installation up to date and backed up:
Update Arcane:
cd ~/arcane
docker compose pull
docker compose up -dBackup Script:
#!/bin/bash
BACKUP_DIR=/opt/backups/arcane
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
docker run --rm -v arcane_arcane-data:/data \
-v $BACKUP_DIR:/backup alpine \
tar czf /backup/arcane-$DATE.tar.gz -C /data .View Logs:
# Real-time logs
docker compose logs -f arcane
# Last 100 lines
docker compose logs --tail 100 arcaneTroubleshooting
Container Won't Start
- Check logs:
docker compose logs arcane - Verify Docker socket permissions:
ls -la /var/run/docker.sock - Ensure ENCRYPTION_KEY is exactly 32 bytes
Permission Denied Errors
- Verify PUID/PGID match your user:
id -u && id -g - Check Docker group membership:
groups $USER - Re-login or run:
newgrp docker
WebSocket Connection Issues
- Ensure Nginx configuration includes WebSocket headers
- Check that proxy_read_timeout is set sufficiently high
- Verify APP_URL matches your actual domain
🎉 Deployment Complete!
You now have a fully functional Arcane installation on your RamNode VPS. Arcane provides a clean, modern interface for managing your Docker containers, images, volumes, and networks.
