Skip to content

[feat] add coolify-node entity and example #37

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

MaksymTrykur
Copy link
Contributor

This pull request introduces a new "Coolify" integration, enabling the deployment and management of self-hosted Coolify instances using Monk. The changes include configuration files, a detailed example, and a custom lifecycle script for managing nodes. Below are the most important changes grouped by theme:

Configuration and Manifest Setup:

  • Added a MANIFEST file to define the repository, load a YAML schema, and reference the lifecycle script (node-sync.js).
  • Introduced example.yaml to define a namespace, root-node and join-node configurations, and a stack setup for deploying Coolify instances. This file also specifies Azure as the provider and includes secrets management.

Documentation:

  • Created a README.md file with a usage example for setting up Coolify instances, including commands for loading the manifest, setting secrets, and running the stack. It also provides instructions for accessing the deployed instance.

Schema Definition:

  • Added node-entity.yaml, which defines the schema for a Coolify node, including required properties (e.g., provider, region, instance) and lifecycle management using the custom sync script.

Lifecycle Management:

  • Implemented node-sync.js, a lifecycle script that handles creating, updating, and deleting nodes. It includes logic for root-node initialization, API token generation, and joining additional nodes to the root instance. The script also manages SSH keys and validates nodes against the Coolify API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant