Ferry
Your own Fly.io. Ferry allows you to deploy Docker based apps to your own VPS. It provides a simple way to manage deployments, environment variables, logs, databases, rollbacks and more across multiple servers. And the beauty of it costs you nothing on top of your existing VPS hosting.
Features
- π» Deploy any application from a Dockerfile
- β Zero downtime deployment
- π High availability and load balancing
- π Zero config SSL Certs and auto renewal
- π Deploy and update environment variables with SOPS
- π View logs in real time
- π Rollback to previous versions
- π One command deployment
Commands
Installation
go install github.com/ronxjansen/ferry@latest
cd ferry
go install
Getting started
Before you can get started, this is what you will need:
- a Ubuntu LTS VPS with SSH access to it
- Traefik, SOPS and Docker installed on your VPS
- a git repo with a Dockerfile
That's it!
Prerequisites
- Go 1.16 or later
- SSH access to remote servers
- a Ubuntu LTS VPS with SSH access to it
Contributing
Contributions are welcome! Please open an issue or submit a PR.
Motivation
Kamal and Sidekick are two major inspirations for writing this tool. Kamal is a great solution, but Ruby based. I am not in the mood to learn Ruby to be able to create custom deployments. Sidekick is the Golang based Kamal alternative, yet very early stage. I've considered to write a few PR's, but considering the scope of the changes I wanted to bring, I decided to built it from scratch.
Roadmap
- Deploy databases (using docker or docker compose)
- Add SOPS
- Local build and deploy
- Support multiple servers
- Generate a preview of the changes before applying them
- Hooks
- Docker compose support
- Migrations
- Rolling restarts
- Rollback
- Better zero downtime deployment (we now only rely on Traefik)
- Add support for more Linux distros
- Asset bridging
- Minimal dashboard + metrics in a terminal UI (traffic, CPU, memory, etc.)
Out of scope
At least for the forseeable future, the following features are not in scope:
- VPS provisioning (setting up Traefik, Docker, SOPS, etc.)
- VPS SSH and firewall hardening
- Windows support
- Docker compose support