Docs / Installation

Installation

VibeWorks is self-hosted. The easiest way is a Proxmox VE container created with a single command.

Quick start on Proxmox VE 8/9

Run this in the shell of the Proxmox host (as root):

bash -c "$(curl -fsSL https://raw.githubusercontent.com/MoinMornhart/vibeworks/main/install/proxmox.sh)"

The installer checks the host, asks for Default or Advanced, creates an unprivileged Debian container, installs Node.js, PostgreSQL and VibeWorks inside it and sets up auto-update. At the end it shows the address, for example http://192.168.1.50:3000.

SettingDefault
SystemDebian 13 (otherwise 12), unprivileged
CPU / RAM2 cores / 3 GB (the build needs a lot of memory)
Disk10 GB
Networkvmbr0, DHCP

Advanced mode lets you set everything individually: container ID, hostname, resources, static IP, VLAN, storage and a root password.

Demo instance

Pick Demo-Instanz in the menu (or prefix VIBEWORKS_DEMO=1): VibeWorks then creates sample projects by itself, visitors get in with “Open the demo” without a password, everything is read-only, and the demo starts over every night. It only resets while the instance knows nothing but the demo account – an instance with real accounts stays untouched.

Without Proxmox (Debian 12/13, Ubuntu 24.04)

apt-get update && apt-get install -y curl curl -fsSL https://raw.githubusercontent.com/MoinMornhart/vibeworks/main/install/vibeworks-install.sh | bash

The script can safely run again – a second run repairs the installation without overwriting data. Settings live in /opt/vibeworks/shared/.env.

Updates

Every 15 minutes the server checks for new versions by itself. Each version is built in its own directory; it only switches over once the build succeeds and the app answers healthy. A backup is made before every database migration, and if the health check fails it automatically rolls back to the previous version.

CommandEffect
updateInstall the latest version (asks first)
update --statusVersion, releases, auto-update, service
update --rollbackBack to the previous version
update --auto-off / --auto-onTurn automatic updates off or on
update --domain <address>Change the address (APP_URL) and restart

On the Proxmox host the installer also sets up the vibeworks command (short: update): status, update, rollback, domain, logs, shell, repair – without switching into the container. The admin area in the app also has an “Install latest update” button.

Backups

Database backups are kept in /opt/vibeworks/shared/data/backups/ (the last 10), uploads in /opt/vibeworks/shared/data/uploads/. A Proxmox backup of the whole container is worthwhile on top. Under My account → Data you can also export your projects as JSON.

HTTPS and passkeys

Passkeys only work over HTTPS. Put a reverse proxy with a certificate in front, for example Caddy:

vibeworks.example.com { reverse_proxy 192.168.1.50:3000 }

Then set the new address: vibeworks domain https://vibeworks.example.com on the host.

All the details – directories, environment variables, uninstalling – are in docs/INSTALLATION.en.md.