Skip to main content

Remote VM Deployment

The most common remote deployment method is a Virtual Machine (VM) running Docker. We provide a seamless "Remote CLI" experience that allows you to manage these VMs as if they were local.

Remote Management via --remote

The --remote flag switches the CLI client to communicate with a remote node. This allows you to manage lifecycle events (like stopping a node) without manually SSHing into the machine.

Example: Shutting down a remote node without authentication prompts

para docker --remote [node_id] down -y --no-auth

Context Management The CLI maintains a Context for every node created. This tracks where a node lives (Local, VM, or Kubernetes) and its unique ID.

View all contexts: para context show

Unique IDs: Every node is assigned a globally unique ID. Even if you have a local version and a remote version of the same project, they are tracked as distinct entities in your context.

Setting Up a Remote VM To deploy to a remote provider (e.g., AWS, GCP, DigitalOcean), follow these steps:

1. Provision the VM

Create a VM instance and ensure Docker is installed.

2. Configure SSH

The CLI utilizes your local SSH config. Add your VM details to ~/.ssh/config:

Host my-remote-node
HostName [IP_ADDRESS]
User [USERNAME]
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes

3. Deploy

Once the SSH config is set, you can deploy the node remotely. This action will add the node to your local context.

para docker --remote deploy node

Note on DNS: While the SSH Host is for CLI access, you should point your DNS provider (e.g., node.example.com) to the VM's IP address to make it accessible to the network.