Shipyard - Automated Deployment Tool for elixir/phoenix project

Shipyard is an open-source, self-hosted automated deployment platform Functioning similarly to flyctl, it streamlines the DevOps workflow by enabling modern blue-green deployments on your own infrastructure (VPS) to achieve zero-downtime updates.

The architecture consists of two main components:

  1. Shipyard Server: A central hub providing an HTTP API, secure database storage (SQLite/PostgreSQL), and a modern Web UI built with SolidJS for visual management.

  2. Shipyard CLI: A lightweight command-line tool that developers use to configure hosts, manage secrets, and trigger deployments.

Key Features:

  • Zero-Downtime: Leverages the Caddy to perform seamless traffic switching between old and new versions.

  • Multi-Host & Multi-App: Manage multiple independent applications across various remote servers from a single control plane.

  • Configuration Management: Native support for multiple environments (staging/production), domain bindings, and encrypted secret management.

  • Audit Trails: Automatically records detailed deployment history and logs for troubleshooting.

  • No Docker Overhead: Optimized for Elixir/Phoenix projects. Runs native BEAM releases directly on the host, avoiding the memory footprint of container runtimes. Perfect for maximizing performance on small VPS instances (e.g., 512MB RAM).

  • Local Build Strategy: Builds are performed on the developer’s machine (CLI), not the server. This eliminates the need for a high-performance build server and keeps the deployment server lightweight.

11 Likes

Why are you hardcoding the path to MSYS2?

1 Like

Can you clarify this?

2 Likes

I use golang to build this tool, actually it only can deploy elixir/phoenix project for now. i edited this post

Use Docker to build the release, avoiding path issues on Windows.