// 02 · devops
WASM
Distribution-grade deploy CLI for Linux servers.
STACK
Python 3.10+ · Nginx · Apache · systemd · Certbot · MySQL · PostgreSQL · Redis · MongoDB · PyPI · OBS
STATUS
live
WASM is a proper distribution-grade CLI, not a shell script. It ships on PyPI (pip install wasm-cli) and on the openSUSE Build Service with native packages for Ubuntu 22.04 LTS, 24.04 LTS, Debian 12, Fedora 40 and openSUSE. One install, one command, one server running.
How a deploy flows
The deployers/ registry
Framework detection is pluggable. Each target implements a small interface and registers itself; the CLI picks the right one based on the project contents.
# src/wasm/deployers/registry.py
REGISTRY = {
'nextjs': NextJsDeployer,
'nodejs': NodeJsDeployer,
'vite': ViteDeployer,
'python': PythonDeployer,
'static': StaticDeployer,
'docker-compose': DockerComposeDeployer,
'monorepo': MonorepoDeployer,
}
What it handles for you
- Framework build — runs the right build step, handles lockfiles, caches.
- Web server — generates an Nginx or Apache vhost with sensible defaults (HTTP/2, gzip, security headers, asset caching).
- SSL — issues and renews certificates via Certbot, webroot method. Handles the HTTP-01 challenge during the switch.
- Systemd units — creates a service per app with auto-restart, journald logging, environment file, and resource limits.
- Databases — optional provisioning for MySQL, PostgreSQL, Redis and MongoDB with credentials stored in the service environment.
- Snapshots — every deploy snapshots the previous release.
wasm rollback <app>swaps the symlink and restarts. - Web dashboard — an optional UI for status, logs and one-click rollbacks, served over the same Nginx.
CLI ergonomics
$ wasm deploy --app bitbeet.dev --repo git@github.com:Perkybeet/bitbeet.git
▸ detecting framework → static
▸ cloning + installing → ok
▸ building → dist/ (15.2 MB)
▸ nginx vhost → generated
▸ systemd unit → bitbeet.dev.service
▸ SSL (letsencrypt) → issued
▸ health check → 200 OK
⟹ live at https://bitbeet.dev
This very site is deployed with WASM — the Nginx vhost serving bitbeet.dev came from the wasm deploy tooling.
7
deployer types
4
distros packaged
v0.15
current release