Run pipelines as a daemon service with live monitoring via Server-Sent Events. Trigger builds remotely through HTTP API, watch logs in real-time, and run isolated Docker containers. Simple YAML config, powerful execution.
I built Pin as a side project to experiment with Docker-based pipelines and real-time streaming.
What it does: Pin is a pipeline tool that runs as a daemon service. You can trigger pipelines via HTTP and watch them execute in real-time through Server-Sent Events.
Quick example:
# build.yaml
workflow:
- build
- test
build:
image: golang:1.21-alpine
copyFiles: true
script:
- go mod download
- go build -o app ./cmd/main.go
- ls -la
test:
image: golang:1.21-alpine
copyFiles: true
script:
- go test ./...
Run yaml:
pin apply -f build.yaml
Output:
✅ Pipeline validation successful
⚉ build Image pulling: golang:1.24-alpine
Status: Downloaded newer image for golang:1.24-alpine
⚉ build Start creating container
⚉ build Starting the container
⚉ build soloExecution disabled, shell command started!
⚉ build Command execution successful
⚉ build Command Log:
...
⚉ build Container stopping
⚉ build Container stopped
⚉ build Container removing
⚉ build Container removed
⚉ build Job ended
⚉ test Image is available
⚉ test Start creating container
⚉ test Starting the container
⚉ test soloExecution disabled, shell command started!
⚉ test Command execution successful
⚉ test Command Log:
...
⚉ test Container stopping
⚉ test Container stopped
⚉ test Container removing
⚉ test Container removed
⚉ test Job ended
Some features I added: - Parallel job execution - Automatic retry with exponential backoff - Conditional execution based on environment - Docker isolation for clean builds
It's open source and pretty straightforward to use. If you need pipeline automation with live monitoring, give it a try.
Replies
Terminal Gif Maker
Hey Product Hunt! 👋
I built Pin as a side project to experiment with Docker-based pipelines and real-time streaming.
What it does:
Pin is a pipeline tool that runs as a daemon service. You can trigger pipelines via HTTP and watch them execute in real-time through Server-Sent Events.
Quick example:
Run yaml:
Output:
Quick demo for daemon mode:
Some features I added:
- Parallel job execution
- Automatic retry with exponential backoff
- Conditional execution based on environment
- Docker isolation for clean builds
It's open source and pretty straightforward to use. If you need pipeline automation with live monitoring, give it a try.
Would love to hear your thoughts or feedback!
📖 Docs: https://github.com/muhammedikinci/pin/blob/main/docs/README.md
💡 Examples: https://github.com/muhammedikinci/pin/blob/main/docs/examples.md