Skip to content

Connecting a Server

import { Steps, Aside, Tabs, TabItem } from ‘@astrojs/starlight/components’;

Deploy Monkey connects to your server via SSH to manage Docker containers. You can bring your own server or provision a new one through a cloud provider.

Connect any Linux VPS you already have. You provide one-time SSH credentials — Deploy Monkey installs its own managed key and never stores your credentials.

Works with any provider: Hetzner, DigitalOcean, AWS Lightsail, Linode, OVH, or any VPS with SSH access.

Create a new VPS directly from Deploy Monkey. Connect your Vultr account, choose a region and plan, and the server is provisioned and configured automatically.

Requirements: A Vultr account with a Personal Access Token (PAT).

RequirementMinimumRecommended
OSUbuntu 22.04+ or Debian 12+Ubuntu 24.04 LTS
RAM2 GB4 GB+
CPU1 vCPU2 vCPU+
Disk20 GB40 GB+ SSD
NetworkPublic IPv4Public IPv4
  1. Go to Servers — In the Deploy Monkey dashboard, click “Add Server” and select SSH / Manual.

  2. Enter server details — Provide a display name, the server’s public IP address, SSH port (default 22), and username (default root).

  3. Provide one-time credentials — Enter either your SSH private key or password. These are used only for the initial connection to install Deploy Monkey’s managed key — they are never stored.

  4. Automatic key setup — Deploy Monkey generates an Ed25519 SSH keypair, installs the public key on your server, and verifies the new key works. Your credentials are discarded immediately.

  5. Server Setup Wizard — The page transitions to a 2-step wizard:

    • Step 1 (Connect): Already complete — your server is connected.
    • Step 2 (Setup): Click “Start Setup” to install Docker, Nginx, security hardening, and system optimization (2-5 minutes).
  6. Ready — Your server appears as “Active” in the dashboard and is ready for Odoo deployments.

  1. Go to Servers — Click “Add Server” and select Vultr.

  2. Connect your Vultr account — Enter your Personal Access Token (PAT). To get one:

    • Go to Vultr API Settings
    • Click Enable API if not already enabled
    • Copy your Personal Access Token
    • Under Access Control, allow your IPv4 and IPv6 addresses
  3. Configure your server — Choose a region and plan size. All servers are provisioned with Ubuntu 24.04 LTS.

  4. Create — Deploy Monkey creates the VPS via Vultr’s API and generates a managed SSH keypair.

  5. Wait for provisioning — The Setup Wizard shows Step 1 (Connect) with a progress indicator while the Vultr server boots and becomes SSH-ready (1-3 minutes).

  6. Automatic setup — Once the server is ready, Step 2 (Setup) begins. Docker, Nginx, security hardening, and system optimization are installed automatically.

  7. Ready — Your server appears as “Active” and is ready for deployments.

Deploy Monkey uses managed Ed25519 SSH keys:

  • A unique keypair is generated per server
  • The private key is encrypted at rest using Fernet encryption
  • Your one-time credentials are never stored
  • Keys can be regenerated from the server settings page (two-phase rotation — new key installed and verified before old key is removed)

The Server Setup Wizard runs 5 steps via SSH:

StepWhat it does
Update System PackagesInstalls essential packages (curl, wget, git, htop, jq), creates deploymonkey system user and /opt/deploymonkey directory structure
Install Docker & ComposeInstalls Docker CE and Docker Compose plugin, enables the daemon, adds deploymonkey to the docker group
Install & Configure NginxInstalls Nginx, creates proxy defaults config with timeouts, forwarded headers, and 200M upload limit
Security HardeningConfigures UFW firewall (SSH port + 80 + 443 only), installs fail2ban with sshd jail, hardens SSH config (no password auth, prohibit root login, no X11 forwarding)
System OptimizationCreates swap file if RAM < 4GB, tunes kernel parameters (swappiness, connection limits, file descriptors), configures Docker log rotation (10MB max, 3 files)

Each step shows live progress — you can see exactly which step is running, which are complete, and which are pending.

Setup options:

  • Skip: Skip the setup entirely if your server is already configured
  • Cancel: Cancel a running setup at the next step boundary
  • Retry: Retry if a step fails (e.g. network timeout during package installation)

The setup wizard configures UFW to allow only these ports:

PortProtocolPurpose
SSH portTCPSSH access (default 22, reads from server config)
80TCPHTTP
443TCPHTTPS

All other incoming traffic is denied by default.

  • SSH servers: Removing from Deploy Monkey only deletes the DM record. Your server is not affected.
  • Vultr servers: You can choose to detach (remove from DM only) or destroy (delete the VPS via Vultr API).
  • Verify the IP address is correct and the server is running
  • Check that the SSH port is open in your cloud provider’s firewall
  • Ensure SSH is enabled: sudo systemctl status sshd
  • Make sure root login is allowed (at least PermitRootLogin prohibit-password)
  • Check that the server meets minimum requirements (2 GB RAM, Ubuntu 22.04+ or Debian 12+)
  • Ensure the server has internet access for downloading packages
  • Try running apt update manually to check for package manager issues
  • Use the “Retry Setup” button — the setup wizard is idempotent (safe to re-run)
  • If a step has been running for more than 15 minutes, it will be marked as stale
  • You can retry setup — it starts a fresh run
  • Common cause: slow package mirrors or network timeouts