Pipelyn

Self-hosting

Install and run Pipelyn on your own server

Pipelyn ships as a single compiled binary that bundles the web UI and API server. No Node, no Bun, no runtime dependencies — just the binary and the built assets alongside it.

One-line install

Use your public distribution/docs repository for install commands. Examples below assume patrickaigbogun/pipelyn-distribution.

Linux / macOS

curl -fsSL https://raw.githubusercontent.com/patrickaigbogun/pipelyn-distribution/main/install.sh | sh

This downloads the latest release for your platform, verifies the SHA-256 checksum, and installs the launcher to ~/.local/bin/pipelyn.

Windows (PowerShell)

irm https://raw.githubusercontent.com/patrickaigbogun/pipelyn-distribution/main/install.ps1 | iex

Installs to %LOCALAPPDATA%\pipelyn and adds it to your user PATH.

Pin a specific version

PIPELYN_VERSION=v1.0.0 \
  curl -fsSL https://raw.githubusercontent.com/patrickaigbogun/pipelyn-distribution/main/install.sh | sh

You can also override release source inside the installer:

PIPELYN_RELEASE_REPO=patrickaigbogun/pipelyn-distribution \
  curl -fsSL https://raw.githubusercontent.com/patrickaigbogun/pipelyn-distribution/main/install.sh | sh

Manual install

Download the tarball for your platform from your public distribution Releases page, extract it, and run the binary directly.

# Example: Linux x64
VERSION=v1.0.0
curl -LO "https://github.com/patrickaigbogun/pipelyn-distribution/releases/download/${VERSION}/pipelyn-${VERSION}-linux-x64.tar.gz"
tar -xzf "pipelyn-${VERSION}-linux-x64.tar.gz"
cd "pipelyn-${VERSION}-linux-x64"
./pipelyn

Available platforms: linux-x64, linux-arm64, darwin-x64, darwin-arm64, windows-x64.


Running the server

pipelyn
# → Dex starter running at 0.0.0.0:7990

Open http://localhost:7990 in your browser to use the optimizer UI. The REST API is available at http://localhost:7990/api.

Environment variables

Copy .env.example from the repo to .env in your working directory:

VariableDefaultDescription
PORT7990HTTP listen port
PIPELYN_API_KEYS(none)Comma-separated API keys. When set, all requests require x-api-key
PIPELYN_MAX_INPUT_BYTES125829120 (120 MiB)Maximum upload size in bytes
PIPELYN_STORAGE_DRIVERlocallocal or s3
PIPELYN_S3_ENDPOINTS3-compatible endpoint URL
PIPELYN_S3_REGIONe.g. auto for R2
PIPELYN_S3_BUCKETBucket name
PIPELYN_S3_ACCESS_KEY_IDS3 access key
PIPELYN_S3_SECRET_ACCESS_KEYS3 secret key
PIPELYN_S3_PUBLIC_URLOptional CDN prefix for download URLs
PIPELYN_STORE_DIR.pipelyn-storeLocal job output directory

Docker

A Dockerfile is included in the repository that builds and runs the full stack:

# Build
docker build -t pipelyn https://github.com/patrickaigbogun/pipelyn.git

# Run
docker run -p 7990:7990 pipelyn

# With environment variables
docker run -p 7990:7990 \
  -e PIPELYN_API_KEYS="my-secret-key" \
  -e PIPELYN_MAX_INPUT_BYTES="262144000" \
  -v "$PWD/.pipelyn-store:/app/.pipelyn-store" \
  pipelyn

Fly.io

The repo includes a ready-to-use fly.toml. To deploy:

# First time
fly launch --no-deploy
fly secrets set PIPELYN_API_KEYS="your-key"
fly deploy

# Subsequent deploys
git tag v1.0.0 && git push origin v1.0.0   # triggers the release workflow
fly deploy --image ghcr.io/patrickaigbogun/pipelyn:v1.0.0

The default fly.toml mounts a persistent volume at /app/.pipelyn-store for local job storage. Switch to PIPELYN_STORAGE_DRIVER=s3 and remove the [mounts] section for stateless deployments across multiple machines.


Keeping up to date

Re-run the install script to upgrade to the latest release:

curl -fsSL https://raw.githubusercontent.com/patrickaigbogun/pipelyn-distribution/main/install.sh | sh

Or re-run the PowerShell command on Windows.

On this page