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!