MCPcopy
hub / github.com/dyrector-io/dyrectorio

github.com/dyrector-io/dyrectorio @0.15.4 sqlite

repository ↗ · DeepWiki ↗ · release 0.15.4 ↗
5,738 symbols 14,608 edges 881 files 272 documented · 5%
README

  <img alt="dyrector.io official logo" src="https://github.com/dyrector-io/dyrectorio/raw/0.15.4/docs/dyrectorio-dark.png" width="400">

dyrector.io is a self-hosted continuous delivery & deployment platform with version management.

GitHub tag (latest by date) License Discord Budget codecov GitHub contributors GitHub issues Twitter Follow

dyrector.io helps engineers & DevOps teams and individual developers to shift their focus from maintaining and setting up their containerized applications to developing their software. The platform achieves this by offering continuous delivery and version management capabilities to your OCI containers.

Join our Discord and connect with other members to share and learn together. If you like the project, give us a Star.

dyrector.io is also available as a fully managed SaaS dyrector.io Platform ⛅ including a free tier.

Getting StartedDocsUse CasesCommunityContributingFeedback

Getting Started

For detailed setup instructions, please refer to the Getting Started documentation.

Use Cases

🚢 Manage environments without SSH or kubectl

Replace multiple tools with a single platform that allows you to manage your entire infrastructure and the containerized applications that run on it. You're also able to initiate deployments to multiple environments simultaneously instead of repeated, manual processes.

⛴️ Instant test environments for QA

QA no longer needs help to test your services. Enable them to autonomously configure and deploy various versions of microservices to test environments. They have the flexibility to run arbitrary workloads on any accessible nodes, potentially transforming their local machines or any remote infrastructures into testing platforms.

⛵️ Container management across environments

Whether you're a developer or an indie hacker, bring your own infrastructure and manage all your containers and applications from one place while our software is running either as a SaaS or on your infrastructure.

🛳️ CD & Version Management

Bring transparency to your SDLC by configuring versions and deployments of your containerized stack from any registry using our platform. Automate your deployments by generating a CD token you can use with GitHub Actions and turn deployments painless and effortless while you can focus more on the development of your software.

🛠️ Manage container settings without access

Editing container settings no longer requires direct access or expertise in JSON formatting. Our platform provides a user-friendly JSON editor, enabling you to modify settings without accessing the containers. In case of deployment issues, you can easily make necessary adjustments using the platform's config editor screen. Additionally, you can create bundle configurations to avoid manual configuration for each container.

Intro video

https://user-images.githubusercontent.com/9247788/219671903-41da385e-4f8f-4fba-a7e4-c6ec4f727b7f.mp4

Key Features

  • Kubernetes, Docker, and Podman support
  • Multi-instance deployment
  • Instant test environments from any branches
  • Environment management
  • Secret and configuration management
  • Auto-generated changelogs and release notes
  • Workflow support
  • Scheduled releases
  • Audit log
  • Container Registry integrations
  • Fine-grained RBAC
  • ChatOps & notification solutions

Deployment Options

Besides the self-hosted instance, you can check out the platform's alpha at app.dyrectorio.com. The platform is still in the works, we might reset the database, so it's not recommended for production yet.

How it Works

dyrector.io consists of an agent (GoLang) and a platform (UI developed in React.js, Next.js. Backend developed in Node.js, Nest.js). There are two types of agents communicating with the platform: one for Docker and another for Kubernetes. Communication takes place in gRPC with TLS encryption. The data is managed in a PostgreSQL database which we use with Prisma ORM.

  <img alt="dyrector.io official logo" src="https://github.com/dyrector-io/dyrectorio/raw/0.15.4/docs/how-it-works-dark.png" width="600">

FAQ

If you have any questions, check out FAQ or reach out to us on Discord.

Community

Also, follow us on GitHub Discussions, our Blog, and on Twitter. You can chat with the team and other members on Discord.

dyrector.io is Open Source - This repository, and most of our other open-source projects, are licensed under Apache 2.0.

Join our Discord and connect with other members to share and learn together. Send a pull request to any of our open-source repositories on Github. Check our contribution guide and our developer's guide for more details about how to contribute. We're looking forward to your contribution!

dyrectorio Discord server Banner

Contributing

The project can only accept contributions that are licensed under the Apache License 2.0. For further information please see our Contribution Guidelines.

Releases

We use semantic versioning, but shifted to the right, we don't bump major versions until we reach the beta phase.

The minor version is raised if:

  • introduction of a breaking API change (proto or HTTP)
  • new feature set is completed
  • milestone is reached
  • agent configuration changes

Patch version is raised if:

  • important fixes in develop
  • any other reason

Feedback

We’d love to hear your thoughts on this project. Feel free to drop us a note!

License

dyrector.io is open source software under the Apache License 2.0. Complete license and copyright information can be found in the source code.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Extension points exported contracts — how you extend this code

RegistryApiClient (Interface)
(no doc) [12 implementers]
web/crux/src/app/registry/registry-clients/registry-api-client.ts
Builder (Interface)
A Builder handles the process of creating and starting containers, it can be configured using 'With...' methods. A Build [1 …
golang/pkg/builder/container/container_builder.go
LogWriter (Interface)
(no doc) [3 implementers]
golang/internal/dogger/types.go
RequiredWhenTypeOptions (Interface)
(no doc)
web/crux-ui/types/yup/index.d.ts
WsSubscription (Interface)
(no doc) [2 implementers]
web/crux/src/websockets/common.ts
ExecBuilder (Interface)
An ExecBuilder handles the process of creating and starting exec, it can be configured using 'With...' methods. An ExecB [1 …
golang/pkg/builder/container/exec_builder.go
ContainerLogReader (Interface)
(no doc) [2 implementers]
golang/internal/grpc/grpc.go
MixedSchema (Interface)
(no doc)
web/crux-ui/types/yup/index.d.ts

Core symbols most depended-on inside this repo

isSet
called by 122
web/crux/src/grpc/protobuf/proto/agent.ts
push
called by 112
web/crux/src/shared/fixed-length-linked-list.ts
error
called by 99
web/crux-ui/src/logger.ts
useTeamRoutes
called by 94
web/crux-ui/src/hooks/use-team-routes.ts
get
called by 92
web/crux/src/services/azure-devops.service.ts
UuidParams
called by 90
web/crux/src/decorators/api-params.decorator.ts
Error
called by 88
golang/internal/grpc/grpc.go
wsPatchSent
called by 80
web/crux-ui/e2e/utils/websocket.ts

Shape

Method 2,177
Function 2,121
Class 946
Interface 239
Struct 201
TypeAlias 24
FuncType 17
Enum 13

Languages

TypeScript70%
Go30%

Modules by API surface

protobuf/go/agent/agent.pb.go364 symbols
protobuf/go/common/common.pb.go281 symbols
web/crux/src/grpc/protobuf/proto/agent.ts118 symbols
web/crux-ui/src/routes.ts118 symbols
protobuf/go/agent/agent_grpc.pb.go109 symbols
web/crux/src/grpc/protobuf/proto/common.ts83 symbols
golang/pkg/builder/container/container_builder.go79 symbols
web/crux/src/app/registry/registry.dto.ts69 symbols
golang/internal/grpc/grpc.go65 symbols
web/crux/src/app/container/container.dto.ts60 symbols
web/crux/src/app/deploy/deploy.dto.ts50 symbols
web/crux-ui/src/utils.ts40 symbols

Dependencies from manifests, versioned

github.com/AlekSi/pointerv1.2.0 · 1×
github.com/Azure/go-ansitermv0.0.0-2021061722524 · 1×
github.com/BurntSushi/tomlv1.2.1 · 1×
github.com/Microsoft/go-winiov0.6.1 · 1×
github.com/ProtonMail/go-cryptov0.0.0-2023041717051 · 1×
github.com/ProtonMail/go-mimev0.0.0-2023032210345 · 1×
github.com/ProtonMail/gopenpgp/v2v2.7.1 · 1×
github.com/buger/gotermv1.0.4 · 1×
github.com/c2h5oh/datasizev0.0.0-2022060613420 · 1×
github.com/cloudflare/circlv1.3.7 · 1×
github.com/containerd/logv0.1.0 · 1×
github.com/containerd/stargz-snapshotter/estargzv0.14.3 · 1×

Datastores touched

(mysql)Database · 1 repos
cruxDatabase · 1 repos
cal-dbDatabase · 1 repos
kratosDatabase · 1 repos

For agents

$ claude mcp add dyrectorio \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact