Setup
This is the setup guide for VyHub. VyHub is fully self-hosted and runs on your own server.
Creating and activating the instance
- Navigate to https://app.vyhub.net/new-instance and create your instance
- Insert the name of your instance and your domain
- Finish the instance creation
- Go to your instance dashboard
Installing
Pick whichever matches what you already have.
Use this if you already have a Debian or Ubuntu server and want to wire up docker compose yourself.
Prerequisites
- Someone who knows how to use linux and docker
- A linux server (virtual or dedicated)
- At least 2 CPU cores and 4GB RAM
- If a virtual server is used, make sure that the vCPU supports
x86-64-v2or higher. A script that displays the supported architecture can be found attools/cpucheckin thevyhub-onpremrepository. - Recommended: A recent Debian or Ubuntu LTS version
- Install Docker Server
- Install Docker Compose Plugin
- A domain
- Create an A (and if available AAAA) DNS record that points to your server
- If using Cloudflare, set the security level for the
/apipath toLow
- An SSL certificate
- When not using Cloudflare: Setup certbot to get a LetsEncrypt certificate
- When using Cloudflare: Generate a free origin certificate on the Cloudflare dashboard
- Backup
- It is highly recommended to set up a backup solution for your server
Steps
- Connect to your server via SSH (all following steps are done on the server)
-
Clone the
vyhub-onpremrepository: -
Navigate into the
vyhub-onpremfolder and rungen-secrets.sh: -
Put your SSL certificate and key in the folder
/opt/vyhub-onprem/nginx/certs/. They should be in PEM format and namedvyhub.crtandvyhub.key.If you are using certbot, consider creating a symbolic link to the actual cert/key with
ln -s. -
In the VyHub Setup dialog on vyhub.net choose Manual (existing Debian / Ubuntu server).
-
Log in to the VyHub container registry. Copy the
docker logincommand shown in the Setup dialog and run it on the server - this is required to pull the VyHub image. -
Paste the
VYHUB_*env block from the Setup dialog into.env. -
In
.env, insert your Steam API key that can be generated here.If you know what you are doing, you can further adjust config parameters. They are documented here.
-
In
docker-compose.override.yml, change the vyhub image version to the newest version (see changelog) -
Start VyHub via docker compose:
Check that all 8 containers are running:
If a container is missing or is not running, check the logs with:
-
Visit your VyHub instance and check that everything works.
Use this if you have no server yet and want everything provisioned for you. The setup script uses OpenTofu to spin up a Debian 13 + Docker VM on Hetzner Cloud, runs the full installer, and optionally requests a Let's Encrypt certificate. Nightly auto-updates, self-healing healthchecks, and daily DB backups are configured out of the box.
Prerequisites
On your laptop (a Linux machine, or WSL on Windows):
tofu>= 1.6ssh,ssh-keygen,curl,jq,openssl- An SSH keypair (
~/.ssh/id_ed25519or~/.ssh/id_rsa)
In the cloud:
- A Hetzner account
- A Hetzner Cloud project: https://console.hetzner.cloud/projects → + New project
- An API token with Read & Write permission for the project: open the project, Security → API Tokens → Generate API Token. Copy the token immediately - Hetzner only shows it once.
Steps
-
Clone the
vyhub-onpremrepository and run the setup script on your laptop: -
The script will:
- Ask for the Hetzner API token, location, server type and SSH key
- Ask for the VyHub config string. Open the Setup dialog on vyhub.net, choose Automated (Hetzner Cloud) and paste the single string shown there. It carries both the
VYHUB_*env block and the registry credentials. - Provision a Debian 13 VM with a firewall that only allows TCP 22/80/443
- Run the installer on the VM (Docker, secrets, stack startup) via cloud-init
- Print the A/AAAA DNS records you need to create
- Optionally request a Let's Encrypt certificate once DNS resolves
-
Visit your VyHub instance and check that everything works.
The script is idempotent. If something fails mid-way, you can re-run individual steps:
./hcloud-setup.sh apply # re-run `tofu apply` with the saved tfvars
./hcloud-setup.sh outputs # show server IPs + management cheatsheet
./hcloud-setup.sh wait # block until cloud-init finishes (streams the log)
./hcloud-setup.sh logs # tail the cloud-init / install.sh output log
./hcloud-setup.sh ssh # ssh root@<server>
./hcloud-setup.sh certbot # request / replace the Let's Encrypt cert
./hcloud-setup.sh redeploy # destroy + reprovision from scratch
./hcloud-setup.sh destroy # delete the Hetzner resources