What You'll Build
Five real self-hosted apps running on your machine - each deployed with two commands. Total time: under 10 minutes.
- Plausible - web analytics (Google Analytics alternative)
- Vaultwarden - password manager (Bitwarden compatible)
- Outline - team wiki and note-taking
- Code Server - VS Code in your browser
- Filebrowser - web-based file manager
Quick Answer
# For any of these apps:
mkdir ~/app-name && cd ~/app-name
stacker init --from-github owner/repo --with-ai --force
cp .env.example .env && ./scripts/generate-secrets.sh
stacker deploy --target local
Same pattern. Different repo. 2 minutes each.
Prerequisites
- Docker (
docker --version) - Stacker (
stacker --version)
curl -fsSL https://raw.githubusercontent.com/trydirect/stacker/main/install.sh | bash
1. Plausible Analytics (2 min)
Privacy-first web analytics. No cookies, no personal data collection.
mkdir ~/plausible && cd ~/plausible
stacker init --from-github plausible/analytics --with-ai --force
cp .env.example .env
./scripts/generate-secrets.sh
# Edit .env - set your domain:
# PLAUSIBLE_BASE_URL=http://localhost:8000
stacker deploy --target local
# Dashboard: http://localhost:8000
Stacker handles: ClickHouse database, PostgreSQL, the Plausible API, and the tracker script endpoint.
2. Vaultwarden (2 min)
Lightweight Bitwarden-compatible password manager. Self-host, sync across devices.
mkdir ~/vaultwarden && cd ~/vaultwarden
stacker init --from-github dani-garcia/vaultwarden --with-ai --force
cp .env.example .env
./scripts/generate-secrets.sh
stacker deploy --target local
# Web UI: http://localhost:8080
Create an admin account, then use the Bitwarden mobile app with your self-hosted URL.
3. Outline Wiki (3 min)
Fast, collaborative team wiki. Notion alternative, open source.
mkdir ~/outline && cd ~/outline
stacker init --from-github outline/outline --with-ai --force
cp .env.example .env
./scripts/generate-secrets.sh
# Outline needs an OIDC provider - edit .env:
# OIDC_CLIENT_ID=your-id
# OIDC_CLIENT_SECRET=your-secret
# OIDC_AUTH_URI=http://localhost:3000
stacker deploy --target local
# Wiki: http://localhost:3000
Outline requires an authentication provider (Google, Slack, or OIDC). The .env.example lists all required variables.
4. Code Server (1 min)
VS Code running in your browser. Access your dev environment from anywhere.
mkdir ~/code-server && cd ~/code-server
stacker init --from-github coder/code-server --with-ai --force
cp .env.example .env
./scripts/generate-secrets.sh
# Set your password in .env:
# PASSWORD=your-secure-password
stacker deploy --target local
# IDE: http://localhost:8080
5. Filebrowser (1 min)
Web-based file manager. Browse, edit, and share files from your browser.
mkdir ~/filebrowser && cd ~/filebrowser
stacker init --from-github filebrowser/filebrowser --with-ai --force
cp .env.example .env
./scripts/generate-secrets.sh
stacker deploy --target local
# File manager: http://localhost:8080
Running Everything Together
All five apps can run simultaneously on different ports:
stacker status
# plausible running :8000
# vaultwarden running :8080
# outline running :3000
# code-server running :8443
# filebrowser running :8500
Customizing Ports
If a port conflicts, edit stacker.yml:
# Example: move Vaultwarden to port 8081
app:
ports:
- "8081:8080"
Deploying to a Server
Once everything works locally, push to a server:
stacker config setup server
stacker deploy --target server
Or deploy to cloud:
stacker config setup cloud
stacker deploy --target cloud
What Each App Needs
| App | Services | Port | Setup Notes |
|---|---|---|---|
| Plausible | ClickHouse, PostgreSQL | 8000 | Set PLAUSIBLE_BASE_URL in .env |
| Vaultwarden | None (single container) | 8080 | Just set PASSWORD |
| Outline | PostgreSQL, Redis, S3 | 3000 | Needs OIDC provider |
| Code Server | None (single container) | 8080 | Set PASSWORD |
| Filebrowser | None (single container) | 8080 | Zero config |
Key Takeaways
- Same pattern for every app: init, configure, deploy
- Stacker handles Docker complexity automatically
- Healthchecks, port isolation, and secret generation are built in
- Works identically on local, server, or cloud
- Source: github.com/trydirect/stacker