Runp is a process orchestration tool that extends beyond container management. In addition to running containers, Runp orchestrates host processes and SSH tunnels, enabling comprehensive development environment setup and management.
Designed to streamline the complete setup of development environments with a unified configuration approach.
Define your system configuration in a Runpfile:
name: Example
description: |
Sample Runpfile to show runp functionalities
units:
web:
description: Web app
# this process is running on host machine
host:
command: node app.js
workdir: backend
env:
# inherit PATH from host system to find needed tools (e.g. node)
PATH: $PATH
await:
# wait for the DB being available
resource: tcp4://localhost:5432/
timeout: 0h0m10s
mail:
description: Test mail server
# this process is running in a container
container:
image: docker.io/mailhog/mailhog
ports:
- "8025:8025"
- "1025:1025"
db:
description: Corporate DB
# This process is reachable through SSH port forwarding
ssh_tunnel:
user: user
auth:
identity_file: ~/.ssh/id_rsa
local:
port: 5432
jump:
host: dev.host
port: 22
target:
host: corporate.db
port: 5432Execute Runp:
runp up -f /path/to/Runpfile
For additional examples, see the examples directory.
For comprehensive documentation, visit the official documentation.
Clone or download the repository.
Build the project (binaries will be created in bin/):
./.sdlc/build
or
.sdlc\build.cmd
Run code quality checks and tests:
./.sdlc/check
or
.sdlc\check.cmd
Apache 2.0 - see LICENSE file.
Copyright 2020-TODAY runp contributors