# 🚀 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
## 📥 Installation
### Requirements
- Python 3.13 or higher
### Installing the client
```bash
pip install sdci
```
## 📖 Usage
### Starting the server
Run the server component:
```bash
python -m src.server
```
By default, the server runs on `0.0.0.0:8842`.
### Using the client
The client tool can be used to trigger tasks on the server:
```bash
sdci-cli run --token YOUR_TOKEN SERVER_URL TASK_NAME [PARAMETERS...]
```
Example:
```bash
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
## 🖥️ Server
The SDCI server component is currently in development. The goal is to create a Docker image that will be used as a sidecard in production environments, making it easily deployable alongside your main applications.
### Docker Deployment
A Docker image will be provided that allows you to run the SDCI server with minimal configuration. This image is designed to work as a sidecard container in your production environment.
## 📁 Project Structure
- `src/server.py`: FastAPI server implementation
- `src/sdci/client.py`: Client implementation for communicating with the server
- `src/sdci/command.py`: CLI interface using Click
- `src/tasks/`: Directory containing task definitions as basic shell scripts.
The diagram above shows the structure of the SDCI project:
1. **Server Component** (`server.py`): The FastAPI server that handles task execution requests
2. **Client Components** (`client.py`, `command.py`): Handle communication with the server and provide CLI interface
3. **Runner Component** (`runner.py`): Manages the execution of shell script tasks
4. **Tasks** (`test_job_1.sh`): Shell scripts that define the actual tasks to be executed
## 👤 Author
- Jonhnatha Trigueiro <joepreludian@gmail.com>
Raw data
{
"_id": null,
"home_page": null,
"name": "sdci",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.13",
"maintainer_email": null,
"keywords": "continuous-deployment, cd, deployment, server, cli, automation",
"author": "Jonhnatha Trigueiro",
"author_email": "Jonhnatha Trigueiro <joepreludian@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4a/9d/9971f5d97720b7b2e4a53a25c55d66a8037f846fc688349ea1c2f96b6f09/sdci-0.2.2.tar.gz",
"platform": null,
"description": "# \ud83d\ude80 SDCI - Sistema de Deploy Continuo Integrado\n\nSDCI (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.\n\n**\u26a0\ufe0f NOTE: This project is currently in ALPHA. A better documentation will be provided soon.**\n\n## \u2728 Features\n\n- Server component built with FastAPI\n- Command-line client tool for easy task execution\n- Token-based authentication\n- Real-time task output streaming\n- Task status monitoring\n\n\n## \ud83d\udce5 Installation\n\n### Requirements\n\n- Python 3.13 or higher\n\n### Installing the client\n\n```bash\npip install sdci\n```\n\n## \ud83d\udcd6 Usage\n\n### Starting the server\n\nRun the server component:\n\n```bash\npython -m src.server\n```\n\nBy default, the server runs on `0.0.0.0:8842`.\n\n### Using the client\n\nThe client tool can be used to trigger tasks on the server:\n\n```bash\nsdci-cli run --token YOUR_TOKEN SERVER_URL TASK_NAME [PARAMETERS...]\n```\n\nExample:\n\n```bash\nsdci-cli run --token HAPPY123 http://localhost:8842 job_1 param1 param2 param3\n```\n\n### Parameters\n\n- `--token`: Authentication token (required)\n- `SERVER_URL`: URL of the SDCI server (required)\n- `TASK_NAME`: Name of the task to run (required)\n- `PARAMETERS`: Optional parameters to pass to the task\n\n## \ud83d\udda5\ufe0f Server\n\nThe SDCI server component is currently in development. The goal is to create a Docker image that will be used as a sidecard in production environments, making it easily deployable alongside your main applications.\n\n### Docker Deployment\n\nA Docker image will be provided that allows you to run the SDCI server with minimal configuration. This image is designed to work as a sidecard container in your production environment.\n\n## \ud83d\udcc1 Project Structure\n\n- `src/server.py`: FastAPI server implementation\n- `src/sdci/client.py`: Client implementation for communicating with the server\n- `src/sdci/command.py`: CLI interface using Click\n- `src/tasks/`: Directory containing task definitions as basic shell scripts.\n\nThe diagram above shows the structure of the SDCI project:\n\n1. **Server Component** (`server.py`): The FastAPI server that handles task execution requests\n2. **Client Components** (`client.py`, `command.py`): Handle communication with the server and provide CLI interface\n3. **Runner Component** (`runner.py`): Manages the execution of shell script tasks\n4. **Tasks** (`test_job_1.sh`): Shell scripts that define the actual tasks to be executed\n\n## \ud83d\udc64 Author\n\n- Jonhnatha Trigueiro <joepreludian@gmail.com>\n",
"bugtrack_url": null,
"license": null,
"summary": "SDCI - Sistema de Deploy Continuo Integrado - Integrated Continuous Deployment System - Sidecar Micro CD",
"version": "0.2.2",
"project_urls": {
"Documentation": "https://github.com/joepreludian/sdci#readme",
"Repository": "https://github.com/joepreludian/sdci"
},
"split_keywords": [
"continuous-deployment",
" cd",
" deployment",
" server",
" cli",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "ae681f57152cae868089f8f0646a565bbbcb1eeaad875d087844afb2fbd40f42",
"md5": "a2ea9c6513018da9e7c35e34cb9f0bb3",
"sha256": "c1c84f0b5e71dc59143498611bd326def49fc6d52fb9bddbb813ad7f209c2f68"
},
"downloads": -1,
"filename": "sdci-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a2ea9c6513018da9e7c35e34cb9f0bb3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.13",
"size": 6610,
"upload_time": "2025-08-08T04:18:38",
"upload_time_iso_8601": "2025-08-08T04:18:38.428420Z",
"url": "https://files.pythonhosted.org/packages/ae/68/1f57152cae868089f8f0646a565bbbcb1eeaad875d087844afb2fbd40f42/sdci-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4a9d9971f5d97720b7b2e4a53a25c55d66a8037f846fc688349ea1c2f96b6f09",
"md5": "0f1131a44e5411147b823c9cac784e34",
"sha256": "0304ce1668ca352a2ec32b9cf820b9bf3b2232d2a5f7e8c2e78c5a274a94bc27"
},
"downloads": -1,
"filename": "sdci-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "0f1131a44e5411147b823c9cac784e34",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.13",
"size": 4526,
"upload_time": "2025-08-08T04:18:39",
"upload_time_iso_8601": "2025-08-08T04:18:39.508861Z",
"url": "https://files.pythonhosted.org/packages/4a/9d/9971f5d97720b7b2e4a53a25c55d66a8037f846fc688349ea1c2f96b6f09/sdci-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-08 04:18:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "joepreludian",
"github_project": "sdci#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "sdci"
}