Open-source IDP for developers and non-specialists to manage multi-instance deployments, microservices and configurations in Kubernetes & Docker.
dyrector.io is an open-source deployment platform that helps software teams manage releases & deployments easily and efficiently. While non-specialists are enabled to manage these processes in a simplified, self-service manner, specialists can deploy and manage containerized apps faster through the platform.
Our product is a platform for:
- DevOps & System Engineers can build and manage robust cloud infrastructure
- Engineers can focus more on developing the product because self-service deployments are faster
- Stakeholders can deliver new functions and products with a higher velocity
- CTOs & Technical Managers can reduce time-to-market, manage cloud costs more efficiently and maintain team productivity.
Warning dyrector.io platform is under development, please treat as such. Expect bugs here and there. Early adopters welcome.
- Kubernetes and Docker support
- Multi-instance deployment
- Instant test environments from any branches
- Environment management
- Secret and configuration management
- Auto-generated changelogs and release notes (WIP)
- Workflow support
- Scheduled releases (WIP)
- Audit log
- Container Registry integrations
- Fine-grained RBAC (WIP)
- ChatOps & notification solutions
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.
Trigger deployments of the same application to multiple environments from one place using the same or various configurations.
Both Docker and Kubernetes require specialized staff to manage. Via dyrector.io, your team’s non-specialist staff can contribute to the process, as well.
Seamless testing whenever your team wants to test the application, without waiting for a SysAdmin to set up an environment.
dyrector.io CLI, is a command-line interface that lets you run and manage the whole dyrector.io project locally.
This means you get a full-featured dyrector.io platform running locally on your machine.
- Docker installed on your system (Podman works, too).
- Go Compiler to run the CLI from its source code. (Precompiled binaries are planned)
Note The CLI is only available from the codebase at the moment.
- Clone the repository to your local workdir with
git clone
- Execute
go run ./cli up
in the project root - Open the
localhost:8000
and use the platform
dyrector.io's command-line interface (CLI) lets you run a complete dyrector.io development environment locally with the following services: UI Service (crux-ui), Backend Service (crux), PostgreSQL databases, Authentication, Migrations, and SMTP mail server.
- Execute
go run ./cli up
in the project root - After you navigated to
localhost:8000
(this is the default traefik port) you will see a Login screen - Register an account with whatever e-mail address you see fit (doesn't have to be valid one)
- Navigate to
localhost:4436
where you will find your mail as all outgoing e-mails will land here - Open your e-mail message and using the link inside you can activate your account
- Enjoy!
- Read the CLI documentation first(see the end of this section)
- Decide which part of the project you want to work on, in this case it is crux, crux-ui or both
- Modify the CLI's settings file if you need it.
- Execute the correct CLI command using the appropriate flags to turn off crux or crux-ui services
- Start crux or crux-ui with the appropriate
npm
command, usuallynpm run start
- After you navigated to
localhost:8000
(this is the default traefik port) you will see a Login screen - Register an account with whatever e-mail address you see fit (doesn't have to be valid one)
- Navigate to
localhost:4436
where you will find your mail as all outgoing e-mails will land here - Open your e-mail message and using the link inside you can activate your account
- Enjoy!
Read more about the CLI in the documentation.
The easiest way to get started with the dyrector.io platform is by our premade docker-compose file.
- First you have to create
.env
from.env.example
files in your local environment, in the following folders:/web
,/web/crux
,/web/crux-ui
On Windows and Mac use host.docker.internal
in the .env
files for URLs.
- Build the dyrector.io platform dependencies, this step is only required once:
docker-compose -f web/docker-compose.dev.yaml build
- To run the dyrector.io platform dependencies:
docker-compose -f web/docker-compose.dev.yaml up
If you are having problems starting crux-kratos-migrate
change the line endings of web/kratos/entrypoint.sh
from CRLF to LF. These problems include ERROR: Encountered errors while bringing up the project.
while running docker-compose up
or ': No such file or directory
in the container log.
- Now as all the infrastructure is ready, you need to install all the node.js dependencies in the specific projects' folder. To install all (
web/crux/
,web/crux-ui/
) dependencies runnpm install
.
on Apple Silicon run npm install --target_arch=x64
- In
crux/
folder you have to migrate the database and generate the Prisma client
npx prisma generate
npx prisma migrate deploy
-
To start services run
npm start
in the followind folders/web/crux
and/web/crux-ui
-
Open the platform in
host.docker.internal:8000
and register -
In local our auth service is using a mock, so you can confirm your email in
http://localhost:4436/
-
Now you can log in and use the platform
We are planning to support a hosted version in the near future.
-
How do I get in touch with the Support Team?
You can contact dyrector.io support directly using our contact forms for users and developers or by reaching out to us via email at help@dyrector.io. Developers can get in touch via our Community Discord server.
-
Can we use dyrector.io without containerization?
Unfortunately, we're unable to support applications that don't run in a containerization environment.
Also, follow dyrector.io 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 the 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 developers guide for more details about how to contribute. We're looking forward to your contribution!
The project can only accept contributions which are licensed under the Apache License 2.0. For further information please see our Contribution Guidelines.
Install the generator
go get -u github.com/git-chglog/git-chglog/cmd/git-chglog
Usage
git-chglog --next-tag vx.y.z -o CHANGELOG.md
git tag -a vx.y.z
git push --tags
In order to draft a new release:
- create a new release tag on develop
- generate changelogs
See CHANGELOG.md
We’d love to hear your thoughts on this project. Feel free to drop us a note!
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.