A web-first operating system built on Alpine Linux.
"Vula" is Zulu for "open".
Install · Features · Development · Contributing · License
Alpha Software — Under active development. Not recommended for production use yet.
Download, flash, boot — like Ubuntu.
| Platform | File | Devices |
|---|---|---|
| x86_64 | vulos-vX.X.X-x86_64.img.gz |
PC, laptop, server |
| ARM64 | vulos-vX.X.X-arm64.img.gz |
Raspberry Pi, Pine64, Rock64 |
| postmarketOS | See alpine/ build scripts |
PinePhone, Librem 5, OnePlus 6 |
gunzip -c vulos-vX.X.X-x86_64.img.gz | sudo dd of=/dev/sdX bs=4M status=progressOr use Balena Etcher — drag and drop the .img.gz file.
Try without installing:
docker run -p 8080:8080 --shm-size=1g -v vulos-data:/root/.vulos ghcr.io/vul-os/vulos:latestOpen http://localhost:8080.
- Desktop Shell — Window manager, dock, launchpad, multi-desktop, screensaver
- Terminal — Persistent PTY sessions with detach/reattach
- Chromium Browser — Remote browser streamed via WebRTC
- File Manager — Browse, upload, download, manage files
- AI Assistant — Pluggable backend (Ollama, OpenAI, Anthropic) with sandboxed code execution
- App Hub — Install apps from the registry
- Auth & Security — Multi-user, OAuth, sessions, rate limiting
- Remote Access — Built-in tunneling
- Mobile Ready — Alpine Linux and postmarketOS builds
| Layer | Technology |
|---|---|
| Frontend | React 19, Tailwind CSS 4, Vite 8, xterm.js |
| Backend | Go (24 services, 110+ API endpoints) |
| Apps | Python/HTML apps with JSON manifests |
| Infrastructure | Alpine Linux, Docker, Chromium, GStreamer |
git clone https://github.com/vul-os/vulos.git
cd vulos
./dev.sh # Local dev — Go + Vite HMR (localhost:5173)
./dev.sh deploy # Full Docker build (localhost:8080)
./dev.sh deploy quick # Quick rebuild into running containerAll config lives in .env at the repo root:
PORT=8080
APP_URL=http://localhost:8080
LANDING_PORT=3000
LANDING_URL=http://localhost:3000
vulos/
├── src/ # React frontend
│ ├── auth/ # Login, setup, lock screen
│ ├── builtin/ # Terminal, files, browser, activity monitor, etc.
│ ├── core/ # Settings, app registry, telemetry
│ ├── layouts/ # Desktop and mobile layouts
│ └── shell/ # Window manager, dock, launchpad
├── backend/ # Go backend (24 services)
├── apps/ # Plugin apps with JSON manifests
├── landing/ # Landing page & docs (separate server)
├── alpine/ # postmarketOS build scripts
└── dev.sh # Dev, build, deploy script
Each release produces:
- System images —
vulos-vX.X.X-x86_64.img.gzandvulos-vX.X.X-arm64.img.gzfor bare metal - Docker images —
ghcr.io/vul-os/vulos:latestforlinux/amd64andlinux/arm64
git tag v0.1.0 && git push origin v0.1.0Download from the Releases page.
- Fork and clone
./dev.shto run locally- Create a branch (
feat/,fix/,docs/,refactor/) - Open a PR
See DEVELOPMENT.md for detailed setup.
MIT


