ferry

command module
v0.0.0-...-240a0d9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 22, 2024 License: MIT Imports: 1 Imported by: 0

README ΒΆ

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.

Golang gopher on a Ferry
GitHub GitHub go.mod Go version GitHub tag (latest SemVer)

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

  • logs
  • deploy
  • rollback
  • env

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

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL