Skip to content
/ sindri Public

Consistent dev environments anywhere. Define once in YAML, deploy to Docker, Fly.io, or DevPod. Pre-built extensions for AI, languages & infrastructure.

License

Notifications You must be signed in to change notification settings

pacphi/sindri

Repository files navigation

Sindri

License CI FAQ

A declarative, provider-agnostic cloud development environment system. Deploy consistent development environments to Fly.io, local Docker, or via DevPod to Kubernetes, AWS, GCP, Azure, and other cloud providers using YAML-defined extensions.

   ███████╗██╗███╗   ██╗██████╗ ██████╗ ██╗
   ██╔════╝██║████╗  ██║██╔══██╗██╔══██╗██║
   ███████╗██║██╔██╗ ██║██║  ██║██████╔╝██║
   ╚════██║██║██║╚██╗██║██║  ██║██╔══██╗██║
   ███████║██║██║ ╚████║██████╔╝██║  ██║██║
   ╚══════╝╚═╝╚═╝  ╚═══╝╚═════╝ ╚═╝  ╚═╝╚═╝

   🔨 Forging Development Environments
   📦 https://github.com/pacphi/sindri

About the Name

Sindri (Old Norse: "spark") was a legendary dwarf blacksmith in Norse mythology, renowned for forging three of the most powerful artifacts: Mjölnir (Thor's hammer), Draupnir (Odin's ring), and Gullinbursti (Freyr's golden boar).

Like its mythological namesake, Sindri forges powerful development environments from raw materials—transforming cloud infrastructure, YAML configuration, and Docker into consistent, reproducible developer workspaces.

Quick Start

# Clone repository
git clone https://github.com/pacphi/sindri
cd sindri

# Initialize configuration
./cli/sindri config init

# Edit sindri.yaml for your needs
# See examples/ directory for templates

# Deploy locally
./cli/sindri deploy --provider docker

# Or deploy to Fly.io
./cli/sindri deploy --provider fly

Prerequisites: Docker, yq. For Fly.io: flyctl CLI. For DevPod: devpod CLI.

Core Features

  • Modular Extension System - YAML-driven with dependency resolution
  • Fast Startup - Optimized Docker images with pre-installed tools (10-15s cold start)
  • Extension System - 32 modular extensions for languages, tools, and infrastructure
  • Schema Validation - All YAML validated against JSON schemas
  • Provider Adapters - Clean abstraction for Docker, Fly.io, and DevPod (with Kubernetes, AWS, GCP, Azure backends)
  • Volume Architecture - Immutable /docker/lib system, mutable $HOME volume containing workspace
  • BOM Tracking - Comprehensive software bill of materials for security auditing

Documentation

Getting Started

Extensions

Deployment

Development & Operations

Claude Code Integration

A Claude Code skill is available to guide extension development. When using Claude Code, ask about creating extensions and it will automatically provide guidance. See Sindri Extension Guide for the skill definition.

Example questions:
- "Help me create a new extension for Lua development"
- "What fields are required in extension.yaml?"
- "How do I use the apt installation method?"
- "Show me an example of a script-based extension"

License

MIT License - see LICENSE file for details.

About

Consistent dev environments anywhere. Define once in YAML, deploy to Docker, Fly.io, or DevPod. Pre-built extensions for AI, languages & infrastructure.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •