v0.1.0  ·  Open Source  ·  MIT License

Deploy Phoenix
at Lightning Speed

The modern CLI built for Phoenix developers. Zero runtime dependencies — if your server has Bash and SSH, hawk works.

No Ruby, PHP, or Python
Bash 4 + SSH only
Instant rollback
Built for the ecosystem you already use
Phoenix Elixir Docker GitHub PostgreSQL Fly.io systemd Bash
✦ Features

Everything you need to deploy

A complete deployment toolkit without the complexity of Ruby, PHP, or Python runtimes. Read it, understand it, change it.

Lightning Fast Deployments

Capistrano-style releases with timestamped directories and a current symlink. Deploy production applications in seconds with atomic switch-overs.

Zero Downtime

Rolling deployments with automatic health checks. The symlink swap is instantaneous — users see no interruption during your release.

Release Automation

Mix releases, database migrations via Release.migrate/0, and asset compilation handled automatically every deploy.

Deploy Anywhere

Any Linux server reachable over SSH. No vendor lock-in — bring your own VPS, bare metal, Fly.io, or cloud VM. You own your infra.

Instant Rollback

One command to go back. Hawk keeps the last N releases on disk so recovery is always one hawk rollback away.

Developer Experience

Colored terminal output, timestamped logs, and ShellCheck-clean Bash. Modular command files you can read and customize for your workflow.

⌨ CLI

One command for everything

A complete deployment toolkit that stays out of your way. All commands read from hawk.conf in your project root.

$ hawk init

✔ Created hawk.conf
✔ Created my_app.service

# Review and edit hawk.conf for your server
APP_NAME=my_app
SERVER_HOST=example.com
SERVER_USER=deploy
SERVER_PORT=22
GIT_REPO=git@github.com:you/my_app.git
RELEASE_MODULE=MyApp
DB_NAME=my_app_prod
$ hawk deploy

[2026-06-27 18:30:01] Starting deployment → main
✔ Cloning repository
✔ Running mix deps.get
✔ Building Mix release
✔ Compiling assets
✔ Uploading release to server
✔ Running migrations
✔ Switching symlink → releases/20260627183001
✔ Restarting systemd service
✔ Health check passed

🚀 Deployment successful!
→ https://app.example.com
$ hawk status

Current release: 20260627183001
Available releases:
● 20260627183001 (current)
● 20260627180000
● 20260627173000

Service status (systemctl):
● my_app.service — My Phoenix Application
Loaded: loaded (/etc/systemd/system/my_app.service)
Active: active (running) since 18:30:06
$ hawk logs --follow

[2026-06-27 18:30:06] Application started successfully
[2026-06-27 18:30:06] Running MyApp.Endpoint with Cowboy
[2026-06-27 18:30:08] GET /api/health 200 in 1ms
[2026-06-27 18:30:11] GET /api/users 200 in 4ms
[2026-06-27 18:30:13] POST /api/posts 201 in 11ms
[2026-06-27 18:30:15] GET /api/health 200 in 1ms
[2026-06-27 18:30:18] GET /api/metrics 200 in 2ms
... streaming (Ctrl-C to exit)
$ hawk rollback

Current release: 20260627183001
Rolling back to: 20260627180000

✔ Switching symlink → releases/20260627180000
✔ Restarting systemd service
✔ Health check passed

✔ Rollback complete.
Active release is now 20260627180000
📋 Setup

Deploy in three steps

Install

Clone hawk and add it to your PATH. No package manager, no runtime — just Git and Bash 4+.

git clone github.com/Null-logic-0/hawk

Configure

Run hawk init inside your Phoenix project. Review the generated hawk.conf and adjust for your server details.

hawk init && hawk doctor

Deploy

Validate your setup with hawk doctor, then ship. Future deploys, rollbacks, and logs are all one command away.

hawk deploy
⚖ Why HAWK?

The simpler path to production

Capability Traditional tools HAWK
Runtime requirements ✗ Ruby / PHP / Python needed ✓ Bash & SSH only
Configuration ✗ Complex multi-file setup ✓ One hawk.conf
Deploy command ✗ Multiple manual steps ✓ hawk deploy
Rollback ✗ Manual symlink/file management ✓ hawk rollback
Migrations ✗ Manual SSH each release ✓ Automatic per deploy
Customizability ✗ Opaque black boxes ✓ Plain Bash you can read
🌍 Open Source

Built in the open

hawk is MIT licensed and built for the community. Fork it, extend it, ship your own commands — the architecture is designed for it.

MIT Licensed
Use in any project, commercial or otherwise, without restriction
Community Driven
Built by Phoenix developers, for Phoenix developers
GitHub First
Issues, PRs, and releases all live on GitHub, openly
Contributions Welcome
New commands go in commands/ — the router does the rest

Ready to deploy faster?

Install hawk today and ship your next Phoenix release in seconds.

$ git clone https://github.com/Null-logic-0/hawk.git && cd hawk && chmod +x bin/hawk Copied!