CLI tool for automating project setup and management in the Monolinie studio.
Shorthand: You can use
mlas an abbreviation formonoliniein all commands, e.g.ml new my-appinstead ofmonolinie new my-app.
One command to go from zero to a fully deployed Next.js app with a GitHub repo, PostgreSQL database, DNS, and HTTPS — plus commands to manage, monitor, and tear down projects.
monolinie new <project-name> runs through these steps automatically:
- Creates a GitHub repository (private by default)
- Scaffolds a Next.js project with Dockerfile
- Pushes the initial commit
- Creates a Dokploy project and application
- Provisions a PostgreSQL database
- Sets environment variables
- Creates a DNS A record (Hetzner)
- Configures the domain with Let's Encrypt
- Triggers the first deployment
go install github.com/monolinie/cli/cmd/monolinie@latest
# or
go install github.com/monolinie/cli/cmd/ml@latestOr build from source:
git clone https://github.com/monolinie/cli.git
cd cli
go install ./cmd/monolinie
# or
go install ./cmd/mlStore your credentials and settings with monolinie config set:
monolinie config set github-org your-org
monolinie config set domain your-domain.com
monolinie config set dokploy-url https://dokploy.your-domain.com
monolinie config set dokploy-api-key your-api-key
monolinie config set dokploy-server-ip 1.2.3.4
monolinie config set hetzner-dns-token your-tokenConfig is stored in ~/.monolinie/config.yaml.
View current config:
monolinie config listSensitive values (keys and tokens) are masked in the output.
Get a single config value:
monolinie config get github-org| Command | Description |
|---|---|
monolinie new <name> |
Create a new project (repo, app, DB, DNS, deploy) |
monolinie list |
List all projects with app/DB counts and URLs |
monolinie status <name> |
Check DNS resolution and HTTPS availability |
monolinie logs <name> |
Show latest deployment log |
monolinie redeploy <name> |
Trigger a fresh deployment |
monolinie env list <name> |
List environment variables |
monolinie env get <name> <KEY> |
Get a single env var |
monolinie env set <name> K=V ... |
Set one or more env vars |
monolinie domain list <name> |
List domains for a project |
monolinie domain add <name> <domain> |
Add domain (DNS + HTTPS) |
monolinie domain remove <name> <domain> |
Remove domain and DNS record |
monolinie open <name> |
Open project URL in browser |
monolinie sync <local|prod> |
Sync Dokploy projects with the home app database |
monolinie delete <name> [name...] |
Delete one or more projects and all resources |
The sync command requires an environment argument, while new and delete accept an optional --env flag (defaults to prod):
# Sync with local dev server
ml sync local # → http://localhost:3000
# Sync with production
ml sync prod # → https://preview.monolinie.com
# Create project and register with local home app
ml new my-app --env local
# Delete project and deregister from local home app
ml delete my-app --env localURLs are configurable:
monolinie config set home_local_url http://localhost:3000
monolinie config set home_prod_url https://preview.monolinie.com
monolinie config set home_api_key your-api-keynew:--public(public repo),--no-db(skip database),--env <local|prod>(home app environment, default: prod)sync:--prune(remove orphaned projects from the home app database)logs:-n, --lines <N>(last N lines)delete:-f, --force(skip confirmation),--all(bulk delete by prefix),--env <local|prod>(home app environment, default: prod). Accepts multiple names:ml delete ww11 ww1135
- GitHub CLI (
gh) — authenticated - Dokploy instance with API access
- Hetzner DNS account for DNS management