Welcome to Reploy

Reploy creates a unique staging or "preview" environment for every pull request. After just a few commands and clicks of setup, we’ll deploy your environment on every Pull Request with a fully managed link!

Why is this helpful?

In most engineering/product teams today, the staging environment is often a blocker when trying to get product out of the door. Whether it's waiting for changes to be seen in staging or lack of clarity regarding what production changes will look like, it can be hard to manage changes before a proper production release.

Reploy solves this problem by spinning up ephemeral staging environments on every commit. We're able to do this very quickly by caching previous runs and we handle the garbage collection of environments when they're not being used.

Beyond that, setup is extremely easy and requires almost no effort on your end. All we need are the commands you use in your dev environment, and we're off to the races 😃.

What does it look like?

On Github, this is what it looks like:

How does it work?

To setup Reploy, all that's required is a reploy.yml at the root of your repository. This file describes your environment i.e. the services in your web application stack.

The reploy.yml file

For our project at github.com/getreploy/fullstack-sample the file looks like this:

services:
backend:
port: 5000
image: ./Dockerfile
build:
- cd backend
- go build -o reploy
serve:
- ./reploy
frontend:
port: 3000
** runtime: nodejs
build:
- cd frontend
- npm install
- npm run build
serve:
- npx serve build/ -l 3000
env:
frontend: something.com
redis:
port: 6379
image: redis
postgres:
port: 5432
image: reploy/postgres:v1

As you can see, all that's required are your services and their respective build and serve commands. To learn more about the file specification, take a look: