Skip to main content

SDCI - Sistema de Deploy Continuo Integrado - Integrated Continuous Deployment System - Sidecar Micro CD

Project description

🚀 SDCI - Sistema de Deploy Continuo Integrado

SDCI (Sistema de Deploy Continuo Integrado - Integrated Continuous Deployment System) is a lightweight continuous deployment system consisting of a server and client tool. It allows you to run predefined tasks remotely through a simple command-line interface.

⚠️ NOTE: This project is currently in ALPHA. A better documentation will be provided soon.

✨ Features

  • Server component built with FastAPI
  • Command-line client tool for easy task execution
  • Token-based authentication
  • Real-time task output streaming
  • Task status monitoring
  • CLI interface to manage tasks

🔩 Architecture Diagram

The ideal way to work with this tool is using the following structure: workflow_structure drawio

For safety purposes, the ideal way to handle such workflow is to protect SDCI connection under a Tailscale or any other VPN connection; Also you can add sdci on the internet, but a reverse proxy is strongly recommended (e.g. Traefik or Nginx)

📥 Installation

Requirements

  • Python 3.13 or higher

Installing the client

The recommended approach is by using pipx;

pipx install sdci

📖 Usage

Starting the server

Run the server component:

python -m src.server

By default, the server runs on 0.0.0.0:8842.

Creating tasks

The server will look up for tasks in the tasks/ directory where you ran this server. It will look for shell scripts on this folder. The job name is the script name without the .sh extension.

Using the client

The client tool can be used to trigger tasks on the server:

sdci-cli run --token YOUR_TOKEN SERVER_URL TASK_NAME [PARAMETERS...]

Example:

sdci-cli run --token HAPPY123 http://localhost:8842 job_1 param1 param2 param3

Parameters

  • --token: Authentication token (required)
  • SERVER_URL: URL of the SDCI server (required)
  • TASK_NAME: Name of the task to run (required)
  • PARAMETERS: Optional parameters to pass to the task

👤 Author

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

sdci-0.6.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

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

sdci-0.6.2-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file sdci-0.6.2.tar.gz.

File metadata

  • Download URL: sdci-0.6.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sdci-0.6.2.tar.gz
Algorithm Hash digest
SHA256 7d8d08ca30689cff8c7561be36f16a7b4068779fdc9686f3a00897f2164dc0e0
MD5 7ce1a821e7e30e6b218f1ef9d51a7cda
BLAKE2b-256 6289a795dba24c89e8b49a4cae99ba92e8359e00bd19eb8786f0250f91b8b61c

See more details on using hashes here.

File details

Details for the file sdci-0.6.2-py3-none-any.whl.

File metadata

  • Download URL: sdci-0.6.2-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for sdci-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f416f794b5829d582ded2df52f6bd80fd4488d4b60013b2306d76f5af34ab383
MD5 ca360f04c66da2f388236d518fe4e0ab
BLAKE2b-256 dad8d8f9a65b067b0c84ede900c7dccb7455004ea486532348df2b32f5d26cea

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