Skip to main content
Shipyard is a backend CI/CD engine you can self-host to automate your entire deployment workflow. Connect any GitHub repository, push code, and Shipyard handles cloning, building, testing, and deploying your project — all inside isolated Docker containers with real-time log streaming to your frontend.

Quickstart

Connect your first GitHub repo and trigger a build in minutes

API Reference

Explore all REST endpoints and WebSocket events

Architecture

Understand how the CI/CD pipeline works end to end

Connect a repo

Step-by-step guide to connecting and configuring a repository

How it works

Shipyard automates the full lifecycle from code push to live deployment:
1

Authenticate with GitHub

Sign in via GitHub OAuth. Shipyard requests read:user, repo, and read:org scopes so it can register webhooks and clone private repositories on your behalf.
2

Connect a repository

Select a GitHub repo, choose a branch, and provide install and build commands. Shipyard automatically registers a webhook on the repo via the GitHub API.
3

Push code

Every push to the configured branch triggers the webhook. Shipyard verifies the HMAC-SHA256 signature, then starts a build automatically.
4

Build and test

Shipyard clones the repo, generates a Dockerfile if needed, builds a Docker image, and runs your install and build commands inside an isolated container. Logs stream to your client in real time via Socket.io.
5

Deploy

If the build passes and the project has no sensitive environment variables, Shipyard copies the build output to a deployment directory and serves it at a project-named subdomain.

Key features

Docker-isolated builds

Every build runs inside a fresh Docker container. Projects without a Dockerfile get one generated automatically.

Real-time log streaming

Build and test logs stream to your frontend via Socket.io as they happen, with line numbers and error classification.

Encrypted secrets

Environment variables are stored with AES-256-GCM encryption and injected at build time — never exposed in API responses.

Subdomain deployments

Static sites and SPAs are served at <project-name>.<your-domain> with SPA fallback support for client-side routing.

Rollback support

Revert any project to a previous deployment by re-running the build from that deployment’s commit hash.

Framework detection

Vite and Next.js projects are automatically detected and their output directories resolved without manual configuration.