Pin - Local Pipeline

Pin - Local Pipeline

Local pipeline project with Docker Golang API.

8 followers

The pin is a local pipeline project like Gitlab CI/CD Pipeline. You can create your pipeline with a simple YAML file for your project and run it easily. Pin developed with Golang and uses Golang Docker API for communicating with Docker Daemon.
This is the 2nd launch from Pin - Local Pipeline. View more

pin

pipeline daemon with real-time events & HTTP API
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.
pin gallery image
pin gallery image
pin gallery image
pin gallery image
Free
Launch Team
ace.me
ace.me
Your new website, email address & cloud storage
Promoted

What do you think? …

Muhammed İKİNCİ

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:

# 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


Quick demo for daemon mode:

# Start the daemon
pin apply --daemon
# Trigger a pipeline
curl -X POST --data-binary @pipeline.yaml http://localhost:8081/trigger
# Watch live events
curl -N http://localhost:8081/events


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