What You'll Learn
A workflow for testing any GitHub project in 2 minutes - no Docker Compose, no manual setup, no debugging. Just clone and run.
- Deploy any project with 2 commands
- Automatic project detection and Docker config
- Healthchecks and .env templates included
- Works with Python, Node, Go, Rust, PHP projects
The Problem
You find an interesting GitHub project. You want to test it. Here's what usually happens:
- Clone the repo
- Read the README for 20 minutes
- Realize the Docker setup is incomplete or outdated
- Write a Dockerfile
- Write docker-compose.yml
- Add healthchecks manually
- Set up .env with the right variables
- Debug for an hour
Total time: 1-3 hours. Often you give up.
The Solution
stacker init --from-github owner/repo --with-ai --force
stacker deploy --target local
That's it. Stacker handles everything else.
How It Works
1. Stacker clones the repo
stacker init --from-github https://github.com/plausible/analytics --force
2. It detects the project type
Stacker reads the repo and figures out:
- Language (Python, Node, Go, Rust, PHP)
- Framework (Flask, Express, Gin, Actix)
- Services (PostgreSQL, Redis, Elasticsearch, etc.)
- Port mappings from docker-compose.yml or source
3. It generates the Docker config
# What gets created:
stacker.yml # Deployment config
.stacker/Dockerfile # Optimized for the project
.stacker/docker-compose.yml # Production-ready
.env.example # All env vars with placeholders
scripts/generate-secrets.sh # Auto-generates passwords
4. You deploy
cp .env.example .env
./scripts/generate-secrets.sh
stacker deploy --target local
Real Examples
Test a password manager
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
# Running at http://localhost:8080
Test a wiki
mkdir ~/wiki && cd ~/wiki
stacker init --from-github Requarks/wiki --with-ai --force
cp .env.example .env && ./scripts/generate-secrets.sh
stacker deploy --target local
# Running at http://localhost:3000
Test a code editor
mkdir ~/editor && cd ~/editor
stacker init --from-github coder/code-server --with-ai --force
cp .env.example .env && ./scripts/generate-secrets.sh
stacker deploy --target local
# Running at http://localhost:8080
Test a file manager
mkdir ~/files && cd ~/files
stacker init --from-github filebrowser/filebrowser --with-ai --force
cp .env.example .env && ./scripts/generate-secrets.sh
stacker deploy --target local
# Running at http://localhost:8080
What If Detection Fails?
If Stacker can't auto-detect the project, it falls back to asking you or using the project's existing Dockerfile. You can also use AI to help:
stacker init --from-github owner/repo --with-ai --force
# AI reads the README and source code to figure out the stack
Customizing After Deployment
Edit stacker.yml to change ports, add services, or configure networking:
# Change the port
app:
ports:
- "8081:8080"
# Add a database
services:
- name: postgres
image: postgres:16-alpine
environment:
POSTGRES_DB: myapp
POSTGRES_PASSWORD: "${DB_PASSWORD}"
volumes:
- pg_data:/var/lib/postgresql/data
# Add a reverse proxy
proxy:
type: nginx
auto_detect: true
domains:
- domain: myapp.local
ssl: off
upstream: app:8080
Cleaning Up
# Stop everything
stacker destroy --target local
# Remove all generated files
rm -rf .stacker stacker.yml .env .env.example scripts/
The Full Workflow
# 1. Find a project
# 2. Test it in 2 minutes
mkdir ~/project && cd ~/project
stacker init --from-github owner/repo --with-ai --force
cp .env.example .env && ./scripts/generate-secrets.sh
stacker deploy --target local
# 3. Like it? Deploy to a server
stacker config setup server
stacker deploy --target server
# 4. Done. Two commands from GitHub to production.
Key Takeaways
- Any GitHub project can be tested in 2 minutes
- Stacker handles detection, Docker config, healthchecks, and secrets
- Works with Python, Node, Go, Rust, PHP, and more
- The same config works on local, server, or cloud
- Source: github.com/trydirect/stacker