{"id":39144491,"url":"https://github.com/mirendev/runtime","last_synced_at":"2026-01-17T21:33:21.824Z","repository":{"id":328250586,"uuid":"899678130","full_name":"mirendev/runtime","owner":"mirendev","description":"Runtime by Miren","archived":false,"fork":false,"pushed_at":"2025-12-20T00:02:35.000Z","size":5451,"stargazers_count":14,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-20T14:12:38.883Z","etag":null,"topics":["deployment"],"latest_commit_sha":null,"homepage":"https://miren.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mirendev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-06T19:16:11.000Z","updated_at":"2025-12-19T23:38:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mirendev/runtime","commit_stats":null,"previous_names":["mirendev/runtime"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/mirendev/runtime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirendev%2Fruntime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirendev%2Fruntime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirendev%2Fruntime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirendev%2Fruntime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mirendev","download_url":"https://codeload.github.com/mirendev/runtime/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mirendev%2Fruntime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28518627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deployment"],"created_at":"2026-01-17T21:33:21.751Z","updated_at":"2026-01-17T21:33:21.812Z","avatar_url":"https://github.com/mirendev.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Miren Runtime\n\n[![Test](https://github.com/mirendev/runtime/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/mirendev/runtime/actions/workflows/test.yml?query=branch%3Amain)\n[![Release](https://img.shields.io/github/v/tag/mirendev/runtime?sort=semver)](https://github.com/mirendev/runtime/releases/latest)\n[![Changelog](https://img.shields.io/badge/changelog-miren.md-blue)](https://miren.md/changelog)\n[![License](https://img.shields.io/github/license/mirendev/runtime)](LICENSE)\n\nA container orchestration system built on containerd for running secure, isolated applications with etcd-backed state management.\n\n## Overview\n\nThe Miren runtime provides a platform for deploying and managing containerized applications with strong isolation guarantees. It features an entity-based architecture with etcd as the distributed state store for managing applications, versions, sandboxes, and infrastructure components.\n\n## Key Features\n\n- **Secure Isolation**: Strong container isolation using containerd\n- **Distributed State**: etcd backend for reliable, distributed state management\n- **Multi-tenant**: Support for projects and isolated environments\n- **HTTP Ingress**: Built-in routing for HTTP traffic to applications\n- **Hot Reload**: Applications can be updated without downtime\n- **CLI Tool**: Comprehensive command-line interface for all operations\n\n## Architecture\n\n### Core Components\n\n- **Entity Store**: Central state management using etcd\n- **Sandbox Controller**: Manages isolated execution environments\n- **App Server**: Handles application lifecycle and deployments\n- **Ingress Controller**: Routes HTTP traffic to applications\n- **Build Server**: Handles application builds and image management\n\n### Entity Types\n\n- **Apps**: Application definitions with configuration\n- **App Versions**: Specific versions of applications with container specs\n- **Sandboxes**: Isolated execution environments running app versions\n- **Routes**: HTTP routing rules for ingress\n- **Projects**: Multi-tenant isolation boundaries\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.25+ (required for building)\n- iso (optional, for containerized development environment)\n\n### Development Setup\n\n```bash\n# Clone the repository\ngit clone https://github.com/mirendev/runtime.git\ncd runtime\n\n# Start development environment with all dependencies\nmake dev\n\n# Or with tmux for split terminals\nmake dev-tmux\n```\n\nThe development environment automatically sets up:\n- containerd for container runtime\n- etcd for state storage\n\n### Building\n\n```bash\n# Build the miren binary\nmake bin/miren\n\n# Build with debug symbols\nmake bin/miren-debug\n\n# Build release version\nmake release\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nmake test\n\n# Run tests in a specific package\nhack/it \u003cpackage\u003e\n\n# Run a specific test\nhack/run \u003cpackage\u003e \u003ctest-name\u003e\n```\n\n## CLI Usage\n\n### Application Management\n\n```bash\n# Initialize a new application\nmiren init\n\n# Deploy an application\nmiren deploy\n\n# List all applications\nmiren apps\n\n# Get application details\nmiren app \u003capp-name\u003e\n\n# View application logs\nmiren logs \u003capp-name\u003e\n```\n\n### Sandbox Management\n\n```bash\n# List all sandboxes\nmiren sandbox list\n\n# Filter sandboxes by status\nmiren sandbox list --status running\n\n# Execute command in sandbox\nmiren sandbox exec \u003csandbox-id\u003e -- \u003ccommand\u003e\n\n# Get sandbox metrics\nmiren sandbox metrics \u003csandbox-id\u003e\n```\n\n### Configuration Management\n\nCluster configurations are stored in `~/.config/miren/clientconfig.yaml`.\n\n```bash\n# Show current configuration\nmiren config info\n\n# Switch active cluster\nmiren config set-active \u003ccluster-name\u003e\n\n# Load additional configuration\nmiren config load \u003cconfig-file\u003e\n```\n\n## Application Configuration\n\nApplications are configured using YAML files:\n\n```yaml\nname: myapp\ncontainer:\n  - name: web\n    image: myapp:latest\n    command: [\"/app/server\"]\n    env:\n      PORT: \"8080\"\n    resource:\n      memory: \"256Mi\"\n      cpu: \"100m\"\nroute:\n  - hostname: \"myapp.example.com\"\n    path: \"/\"\n    port: 8080\n```\n\n## Development\n\n### Building from Source\n\n```bash\n# Build the miren binary\nmake bin/miren\n```\n\n### Code Style\n\n```bash\n# Run linters on changed files\nmake lint-changed\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirendev%2Fruntime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmirendev%2Fruntime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmirendev%2Fruntime/lists"}