Checking the install counter.

Deploy Docker projects without giving up the box.

Vessyl is a self-hosted deployment tool for Docker-managed machines. It gives you a Railway-style workflow with more direct control over how builds run, how containers start, and how domains reach the app.

Build with Nixpacks or a Dockerfile, keep runtime settings in one place, and let the proxy route real hostnames to the right container. The worker handles the API layer and resource state; the UI stays focused on operating the deployment.

  • 01

    Run builds in Docker with Nixpacks or a hand-written Dockerfile.

  • 02

    Configure env vars, ports, volumes, networks, and domains per resource.

  • 03

    Operate the worker, UI, and proxy as one deploy surface instead of stitching separate tools together.

What ships with Vessyl

The product is not just a thin Docker wrapper. It is a small deployment stack with clear responsibilities for build, orchestration, routing, and operator workflow.

01

buildenv

Builds each project in Docker with either Nixpacks or a Dockerfile.

02

worker

Runs the API, stores project state, manages deploys, and updates container settings.

03

ui

Gives you one place to create resources, adjust runtime settings, and watch deploy output.

04

proxy

Routes hostnames to the right container so deployed apps can sit behind real domains.

What you can configure

The current worker already exposes the useful parts: deploy triggers, settings updates, port inspection, GitHub credential storage, and container lifecycle actions.

Build inputs

  • Git-based deploys with optional GitHub PAT support
  • Per-project base directory support for monorepos
  • Nixpacks or Dockerfile build modes
  • Streaming build logs during deploy

Runtime controls

  • Environment variables, ports, volumes, and custom networks
  • Container start, stop, remove, logs, and stats actions
  • Per-resource settings stored by the worker
  • Automatic restarts for deployed containers

Routing and access

  • Domain mapping through the proxy layer
  • Port discovery from running containers
  • One UI for resource settings and deploy triggers
  • Designed for self-hosted Docker instances

Operations

  • Mongo-backed users, resources, and settings
  • Authentication for user-facing API calls
  • Update endpoint support inside the worker
  • A simpler path than wiring these pieces together yourself

Deploy flow

A deploy in Vessyl stays understandable. The system moves from repository to image to running container, then exposes the app through the proxy.

  1. 01

    Connect a repo

    Point Vessyl at a source repository and choose Nixpacks or a Dockerfile.

  2. 02

    Build an image

    buildenv runs the Docker build in isolation and streams the output back to the UI.

  3. 03

    Set runtime options

    Add env vars, ports, volumes, domains, and any base-directory or network settings.

  4. 04

    Route traffic

    The proxy maps your hostname to the running app so the deploy is reachable immediately.

Install Vessyl

The site hosts install and removal scripts directly. Pick the path you want, run it on the machine, and use the UI to start creating resources afterward.

Standard install for an Ubuntu or Debian host.

Command

curl -fsSL https://vessyl.app/install.sh | bash
Open scriptHostname updates automatically on the deployed site.