Docker Management

    Deploy Arcane on RamNode VPS

    A modern, open-source Docker management platform with an intuitive web interface for managing containers, images, volumes, and networks. Built with SvelteKit and Go.

    Ubuntu 22.04+
    Docker
    ⏱️ 15-20 minutes

    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
    2

    Initial Server Setup

    Connect to your RamNode VPS and prepare the system:

    Connect via SSH
    ssh root@your-server-ip
    Update System Packages
    apt update && apt upgrade -y
    Create Non-Root User (Recommended)
    adduser deployer
    usermod -aG sudo deployer
    su - deployer

    💡 Security: Using a non-root user for deployment is a security best practice.

    3

    Installing Docker

    Install Docker Engine and Docker Compose plugin:

    Install Prerequisites
    sudo apt install -y ca-certificates curl gnupg lsb-release
    Add Docker GPG Key
    sudo 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.gpg
    Add Docker Repository
    echo "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/null
    Install Docker Engine
    sudo apt update
    sudo apt install -y docker-ce docker-ce-cli containerd.io \
      docker-buildx-plugin docker-compose-plugin
    Add User to Docker Group
    sudo usermod -aG docker $USER
    newgrp docker
    Verify Installation
    docker --version
    docker compose version
    4

    Deploying Arcane

    Create the project directory and generate security keys:

    Create Project Directory
    mkdir -p ~/arcane && cd ~/arcane
    Generate Security Keys
    # 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.

    docker-compose.yml
    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:
    VariableDescription
    APP_URLBase URL for Arcane (update when using reverse proxy)
    ENCRYPTION_KEY32-byte key for encrypting sensitive settings (required)
    JWT_SECRETSecret for JWT token signing (required)
    PUID/PGIDUser/group IDs for file permissions (use id -u and id -g)
    Start Arcane
    docker compose up -d
    Verify Container
    docker compose logs -f arcane
    5

    Initial Setup

    Access Arcane and complete the onboarding:

    Access URL:

    http://your-server-ip:3552

    Complete the Setup Wizard:

    1. Create your admin account with a strong password
    2. Configure your default settings
    3. Set up your projects directory
    4. Start managing your Docker containers!

    ✅ Arcane is now running and ready to manage your Docker containers.

    6

    Reverse Proxy with SSL

    For production deployments, configure Nginx as a reverse proxy with SSL:

    Install Nginx and Certbot
    sudo apt install -y nginx certbot python3-certbot-nginx
    Create Nginx Configuration
    sudo nano /etc/nginx/sites-available/arcane
    /etc/nginx/sites-available/arcane
    server {
        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;
        }
    }
    Enable Site and Get SSL
    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
    Update Arcane APP_URL
    # In docker-compose.yml, update:
    - APP_URL=https://arcane.yourdomain.com
    Recreate Container
    docker compose up -d
    7

    Security Hardening

    Secure your Arcane installation:

    Configure Firewall:

    UFW Configuration
    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 3552

    Docker Socket Security (Optional):

    For enhanced security, consider using a Docker socket proxy to limit what Arcane can do:

    Docker Socket Proxy
    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=1
    8

    Maintenance & Backups

    Keep your installation up to date and backed up:

    Update Arcane:

    Pull Latest Version
    cd ~/arcane
    docker compose pull
    docker compose up -d

    Backup Script:

    backup-arcane.sh
    #!/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:

    Container Logs
    # Real-time logs
    docker compose logs -f arcane
    
    # Last 100 lines
    docker compose logs --tail 100 arcane
    9

    Troubleshooting

    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.