Sign inSign up

marvilco/shipherd

By marvilco

•Updated 3 months ago

Web GUI for running & managing code projects on home servers.

Image
Developer tools
0

535

marvilco/shipherd repository overview

⁠Shipherd

Run, monitor, and manage code projects on your own server. Shipherd provides a web UI, Git integrations, real-time metrics and logs, and zero-config tooling for managing your projects.

⁠User Guide

⁠What Shipherd Does
  • Manage multiple projects (Node, Python, Go, Rust, etc.) from a single dashboard.
  • Start/stop/restart projects and stream logs.
  • Track health, CPU, and memory metrics in real time.
  • Sync projects from GitHub, GitLab, Codeberg, and more.
  • Send notifications via Email, Discord, or Webhooks on project events.
  • Expose project ports securely via reverse proxy, or direct acccess on the local network.
⁠Quickstart
⁠Docker Run
docker run -d \
  --name shipherd \
  -p 9744:9744 \
  -v ./shipherd/data:/app/data \
  -v ./shipherd/secrets:/app/secrets \
  -v ./projects:/app/projects \
  marvilco/shipherd:latest
⁠Docker Compose
services:
  shipherd:
    image: marvilco/shipherd:latest
    container_name: shipherd
    restart: always # Or your preferred restart policy
    environment:
      - TZ=America/New_York
      - EXPOSED_PORTS=3000,3001,3002 # For web-based projects
      - SHIPHERD_URL=http://localhost:9744
    ports:
      - "9744:9744"
      - "3000-3002:3000-3002" # Expose your project ports here
    volumes:
      - ./shipherd/data:/app/data
      - ./shipherd/secrets:/app/secrets
      - ./projects:/app/projects
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9744/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
docker compose up -d
⁠Concepts
  • Projects: A project is a codebase that you want to run and manage. It can be a Node.js app, a Python script, a Go binary, etc. You can have multiple projects in Shipherd, each with its own settings, configurations, and environment variables.
  • Ports: If your project exposes a web interface or API, you can access it through your server's IP address if you have the port exposed. Otherwise, you can use Shipherd's reverse proxy feature to access it.
  • Health Checks: Shipherd will regularly monitor your projects' health, CPU, and memory usage. You can set up notifications to alert you if a project goes down.
  • Git Integrations: You can link your projects to Git repositories. Shipherd can pull the latest code from your repo to apply your changes.

⁠Code

Source code here⁠. Mirror on Codeberg⁠,

Tag summary

Content type

Image

Digest

sha256:6883b72fd…

Size

665.3 MB

Last updated

3 months ago

docker pull marvilco/shipherd