Skip to main content

Coolipy - (Un)oficial Coolify - coolify.io - Python client!

Project description

Coolipy

The first (un)official Python client for the Coolify. Coolipy simplifies programmatically interacting with Coolify by providing wrappers around Coolify API, enabling you to manage projects, deployments, servers, services, and more with python scripts.

Installation

Install Coolipy using pip:

pip install coolipy

Features

  • Manage Coolify projects, servers, applications, deployments and more (everything the Coolify App offers);
  • Infra as code;
  • 1 dependency: requests>=2.32.3;
  • Datamodels for all endpoints;
  • Datamodels specific for creation with only the required fields;
  • All responses come from Datamodels;

TO DO:

  • Async support.

Lib Assets

  • coolipy.models: hold all data models used to hold retrieved data. Create methods use models names following the pattern: <service>ModelCreate;
  • coolipy.services: methods used to interact with the Coolify API.

Quick Start Guide/Examples

  • Import and Initialize
from coolipy import Coolipy

coolify_client = Coolipy(
    coolify_api_key="your_coolify_api_key",
    coolify_endpoint="your_coolify_instance_address",
)

Example Usage

  • Get Project Information
my_project = coolify_client.projects.get(project_uuid="your_project_uuid")
  • Create a Service
from coolipy.models.service import ServiceModelCreate

service_data = ServiceModelCreate(
    type=COOLIFY_SERVICE_TYPES.glance,
    name="Example Service",
    project_uuid="your_project_uuid",
    server_uuid="your_server_uuid",
    destination_uuid="your_destination_uuid",
    instant_deploy=True,
    environment_name="production"
)
new_service = coolify_client.services.create(service_data)
  • List Servers
servers = coolify_client.servers.list()
  • Create a DB:
from coolipy.models.databases import PostgreSQLModelCreate

postgres_db = PostgreSQLModelCreate(
    project_uuid="your_project_uuid",
    server_uuid="your_server_uuid",
    environment_name="production",
    is_public=False,
    limits_cpu_shares=0,
    limits_cpus=0,
    limits_cpuset=0,
    limits_memory=0,
    limits_memory_reservation=0,
    limits_memory_swap=0,
    limits_memory_swappiness=0,
    instant_deploy=True,
    postgres_user="dbuser",
    postgres_password="password",
    postgres_db="mydatabase",
    name="My PostgreSQL DB",
    postgres_conf="LQ==",  # Example config
    postgres_host_auth_method="-",
    postgres_initdb_args="-"
)

my_database = coolify_client.databases.create(database_model_create=postgres_db)
  • Create an App
from coolipy.models.applications import ApplicationPrivateGHModelCreate

app_data = ApplicationPrivateGHModelCreate(
    project_uuid="your_project_uuid",
    server_uuid="your_server_uuid",
    environment_name="production",
    ports_exposes="8080",
    github_app_uuid="your_github_app_uuid",
    git_repository="your_github_repo",
    git_branch="main",
    build_pack=COOLIFY_BUILD_PACKS.dockerfile,
    instant_deploy=True,
    name="MyApp"
)

new_app = coolify_client.applications.create(app_data)

Contributing

  • Before opening a pull request or issue, take some time to understand if the issue should be treated at this client level OR the Coolify REST API;
  • Create a fork of this repo and then submit a pull request;
  • Respect Python PEPs and type inference;
  • Test your code or changes introduced and deliver unit tests on the PR;
  • No breaking changes unless if necessary due Coolipy REST API change (please provide Coolipy PR/commits of the change).

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coolipy-0.0.6.tar.gz (25.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coolipy-0.0.6-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file coolipy-0.0.6.tar.gz.

File metadata

  • Download URL: coolipy-0.0.6.tar.gz
  • Upload date:
  • Size: 25.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for coolipy-0.0.6.tar.gz
Algorithm Hash digest
SHA256 cf27656bc5e036a85f3b3856091c038e70a745b87fbacbdf07d3804d4ff2ced4
MD5 d1a6cb4f73c6602cd996fa4124899d94
BLAKE2b-256 97d9c05cdee5ebbfeef62af5464a47c61e6851c131d1aa81b1d82e2fff2bfe40

See more details on using hashes here.

File details

Details for the file coolipy-0.0.6-py3-none-any.whl.

File metadata

  • Download URL: coolipy-0.0.6-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for coolipy-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 cf0f7f53429d902e48d90228ce960db6654a8acbe1a6bc3b79ca28a9e2a3f31c
MD5 540c591e84e2d97a54e182ec3d2cd03d
BLAKE2b-256 9e06045673d6bab9af7c1689e8cd8dbdf5b90652a86106b0baba2ef0c4fa57fc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page