reploy

package module
v0.0.0-...-43e0272 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2026 License: MIT Imports: 2 Imported by: 0

README

Reploy

CI Go version Release Docs License

Reploy is an experimental deployment lifecycle tool for services.

Reploy turns an environment blueprint into a local staging workspace, lets you configure and test it, then installs its optional workload. Docker is the first supported runtime.

Host OS Docker Staging User install System install
Linux Docker Engine ✅ ✅ ✅
macOS Docker-compatible ✅ ✅ —
Windows Docker Desktop ✅ ✅ —

Generated builds select their builder from the chosen local engine. Docker uses BuildKit. For experiments with a local Linux Podman Docker-compatible socket, Reploy selects the compatible build API and checks local-image access, offline RUN, read-only mounts and result loading before generated builds. Users do not need to set DOCKER_BUILDKIT.

When Podman's compatible inspection omits healthcheck metadata, Reploy reads its image export through the same local endpoint and verifies the actual config against the immutable image ID. Absent metadata is never treated as disabled. Verified metadata is reused only within the current invocation.

This fallback streams the full image archive without extracting it. Client limits are 64 GiB, five minutes, 4 MiB for config JSON, 1 MiB for the manifest, and 10,000 archive entries. Podman first creates a full server-side temporary archive; client limits do not bound that disk cost. Large images can therefore make the first metadata check expensive. Docker uses normal inspection.

For Podman, Reploy prepares newly created containers through the same local engine's native update API before initialization/start, so disabled image healthchecks cannot create timers. Image metadata and validation stay intact. Compose startup prepares each new container, including replacements. An old container with a disabled check and a positive timer interval is removed before recreation, while Podman can still clean up its existing timer. No global timer setting or separately installed Podman CLI is required.

This is a temporary compatibility path for disabled-check scheduling. Full Podman compatibility remains unqualified.

Install

Install the latest release binary:

curl -fsSL https://reploy.cli.dev/install.sh | sh

On Windows, use the PowerShell installer:

irm https://reploy.cli.dev/install.ps1 | iex

From cmd.exe, invoke PowerShell explicitly:

powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://reploy.cli.dev/install.ps1 | iex"

See the installation docs for script options and other installation methods.

Quickstart

Try Reploy with the included OmegaConf Inspector demo:

OmegaConf Inspector is a small browser app for merging YAML config layers and inspecting the OmegaConf result. It is useful as a Reploy demo because it has real Python dependencies, service config, a browser UI, health checks, logs, control commands, and writable project data, but stays neutral enough to try without learning a domain-specific app first.

APP_REF=omegaconf-inspector-demo

# Create a self-contained staging workspace in ./reploy-staging.
reploy stage "$APP_REF"

# Resolve packages, build the image, and validate it.
reploy build

# Configure and operate the app through its staging-owned command.
./reploy-staging/appctl config init
./reploy-staging/appctl config check

# Start and test the staged service.
./reploy-staging/appctl up
reploy test

# Install the tested staging workspace for the current user.
reploy install --scope user --to "$PWD/omegaconf-inspector-installed"

# Tail logs through the installed app control script.
./omegaconf-inspector-installed/appctl logs --tail=100

Read the app installation guide for the full staging and install workflow.

Documentation

Read the Reploy documentation for the full guide.

Maintainer setup is documented in docs/MAINTAINING.md. Design notes live in docs/. The public controlled-session host and controller boundaries are documented in website/docs/controlled-sessions.md.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var BuildCommit string
View Source
var BuildDirty string
View Source
var BuildTimestamp string
View Source
var Version string

Functions

func DisplayVersion

func DisplayVersion() string

Types

This section is empty.

Directories

Path Synopsis
cmd
reploy command
reploy-probe command
internal
buildprofile
Package buildprofile records opt-in, hierarchical build timings.
Package buildprofile records opt-in, hierarchical build timings.
canonical
Package canonical provides the single canonical JSON and identity service used by Reploy's content-addressed records.
Package canonical provides the single canonical JSON and identity service used by Reploy's content-addressed records.
cli
controlledsession
Package controlledsession defines the host-owned authorization, wire protocol, and lifecycle state machine for one controlled session.
Package controlledsession defines the host-owned authorization, wire protocol, and lifecycle state machine for one controlled session.
endpointname
Package endpointname defines the shared logical workload-endpoint name contract used by blueprint resolution and runtime authorization.
Package endpointname defines the shared logical workload-endpoint name contract used by blueprint resolution and runtime authorization.
fsowner
Package fsowner preserves the owner of private metadata during privileged preparation.
Package fsowner preserves the owner of private metadata during privileged preparation.
probearchive
Package probearchive owns the release-binary archive that carries the container-native reploy-probe variants and controlled-session client executables.
Package probearchive owns the release-binary archive that carries the container-native reploy-probe variants and controlled-session client executables.
providerstore
Package providerstore owns content-addressed provider artifact records and, later, their deployment-local publication and reachability.
Package providerstore owns content-addressed provider artifact records and, later, their deployment-local publication and reachability.
runtimeidentity
Package runtimeidentity defines the portable container-local identity contract shared by blueprint resolution, runtime planning, and controlled sessions.
Package runtimeidentity defines the portable container-local identity contract shared by blueprint resolution, runtime planning, and controlled sessions.
sessionclientcmd
Package sessionclientcmd implements the controller-side session tool.
Package sessionclientcmd implements the controller-side session tool.
toolrequest
Package toolrequest parses and canonically merges portable-tool requests without consulting catalog data or a tool-specific version scheme.
Package toolrequest parses and canonically merges portable-tool requests without consulting catalog data or a tool-specific version scheme.
wheelinventory
Package wheelinventory performs the bounded, content-free structural walk shared by Python wheel consumers.
Package wheelinventory performs the bounded, content-free structural walk shared by Python wheel consumers.

Jump to

Keyboard shortcuts

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