Getting Started with Hylius
Hylius is a self-hosted deployment platform that lets you deploy any application to your own VPS with the same ease as Vercel or Render — without giving up control of your infrastructure.
How It Works
Hylius gives you two ways to deploy:
Regardless of the method, Hylius handles the heavy lifting: it provisions managed databases, clones your repo, builds a Docker image (or uses Railpack if you have no Dockerfile), and runs it — with zero-downtime atomic deploys. Every deployment is versioned and symlink-swapped, so rollbacks are instant.
Prerequisites
Before you begin, you'll need:
Installation
Install the Hylius CLI globally via npm:
bashnpm install -g hylius
Verify the installation:
bashhylius --version
Quick Start (3 steps)
Step 1 — Provision your VPS
Run hylius setup once to install Docker, Railpack, and configure your server's firewall:
bashhylius setup
The CLI will prompt you for your VPS credentials. See Server Provisioning for full details.
Step 2 — Deploy your app
Navigate to your project directory and run:
bashhylius deploy
The CLI will ask for your VPS connection details and Git repo URL, then deploy atomically with zero downtime.
Step 3 — (Optional) Automate with CI/CD
To deploy automatically on every git push, generate a GitHub Actions workflow:
bashhylius ci-generate
See the CI/CD Guide for the full workflow.
Command Reference
| Command | Description |
|---|---|
hylius setup | Provision a fresh VPS with Docker + security hardening |
hylius deploy | Deploy your app to your VPS (interactive or headless) |
hylius ci-generate | Generate GitHub Actions workflow files |
hylius ci-generate --dagger | Generate a Dagger-powered pipeline (GHCR builds + preview deploys) |
hylius ci-generate --full | Generate setup + deploy pipeline |
Supported Frameworks
Hylius auto-detects your project type using Railpack and generates the optimal Docker config:
| Framework | Detection Signal |
|---|---|
| Next.js | next.config.* file |
| Vite | vite.config.ts/js file |
| Node.js | package.json |
| Python / FastAPI | requirements.txt, pyproject.toml |
| Laravel | composer.json + artisan |
| Go | go.mod |
| Java | pom.xml |
| Generic PHP | composer.json |
If Hylius detects no framework, it will prompt Docker's built-in docker init command to guide configuration.
You can bypass auto-detection and use your ownDockerfileorcompose.yaml. Hylius will always prefer existing Docker files over auto-generated ones.