Skip to main content

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

Reason this release was yanked:

broken build

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.

Quick Start Guide

  • 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.4.tar.gz (8.3 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.4-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: coolipy-0.0.4.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for coolipy-0.0.4.tar.gz
Algorithm Hash digest
SHA256 bfbca610e79294bce4f0d077be694121e7ac2f88233a149f9df5907488cb5528
MD5 bcab687677398d3eb548b6a20207ce1d
BLAKE2b-256 160976049abceba8b7fc838d163fdd9aa91b7ed19af3107a761e4404951e84ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: coolipy-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for coolipy-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6f6be7f119df082c71cf6ce00cec0b08ff4e19a98ed1ed68ba800761396bd6de
MD5 3e3de55aae47f6955bbfc74fa0a682a4
BLAKE2b-256 1a0c22026fcc081d601774e7b8991e58a0f667b0a02b4006091ad33719a8cef7

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