{"id":23769986,"url":"https://github.com/wojciechpolak/cbot","last_synced_at":"2026-04-22T16:37:49.546Z","repository":{"id":269757511,"uuid":"867169139","full_name":"wojciechpolak/cbot","owner":"wojciechpolak","description":"A pet project that evolved from crypto trading bots into a Python-based task execution server with CLI and Web UI clients for managing jobs.","archived":false,"fork":false,"pushed_at":"2025-12-21T11:39:18.000Z","size":800,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-22T20:47:20.292Z","etag":null,"topics":["angular","python","typescript"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wojciechpolak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-03T15:11:12.000Z","updated_at":"2025-12-21T11:39:22.000Z","dependencies_parsed_at":"2025-02-21T03:41:24.717Z","dependency_job_id":"b2c8e639-8917-4b29-ba55-72ecff8c2bb7","html_url":"https://github.com/wojciechpolak/cbot","commit_stats":null,"previous_names":["wojciechpolak/cbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wojciechpolak/cbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciechpolak%2Fcbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciechpolak%2Fcbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciechpolak%2Fcbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciechpolak%2Fcbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wojciechpolak","download_url":"https://codeload.github.com/wojciechpolak/cbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wojciechpolak%2Fcbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32145870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T15:33:03.595Z","status":"ssl_error","status_checked_at":"2026-04-22T15:30:42.712Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","python","typescript"],"created_at":"2025-01-01T02:35:19.573Z","updated_at":"2026-04-22T16:37:44.537Z","avatar_url":"https://github.com/wojciechpolak.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CBot\n\nThis project began as a playground for developing crypto trading bots\nand has since evolved into a more general-purpose task execution\nserver, written in Python. It supports creating and managing running\njobs via both a CLI client and a Web UI.\n\n⚠️ Note: This is a personal project and is not intended for general\nuse, nor is it likely to be polished for broader distribution.\n\n## Running\n\n### Running with Docker (out of the box)\n\n```shell\ndocker run -it -p 8080:80 -p 2269:2269 --name cbot ghcr.io/wojciechpolak/cbot\n```\n\n### Running with Docker Compose\n\n```shell\ncurl https://raw.githubusercontent.com/wojciechpolak/cbot/master/docker-compose.yml | docker compose -f - up\n```\n\n### Building Docker image from source\n\n```shell\n./scripts/build-docker.sh\nAPP_IMAGE=wap/cbot docker compose up\n```\n\n### Running from the source code\n\n1. Clone the repository\n\n   ```shell\n   git clone https://github.com/wojciechpolak/cbot.git\n   cd cbot\n   ```\n\n2. Install dependencies\n\n   Install Python dependencies using\n   [Poetry](https://python-poetry.org/) or PIP.\n\n   ```shell\n   $ poetry install\n   # or\n   $ pip install -r requirements.txt\n   ```\n\n   Install Web UI dependencies.\n\n   ```shell\n   (cd cbot/client_web \u0026\u0026 npm ci) \n   ```\n\n3. Prepare the configuration file\n\n    Start by copying the sample configuration file located at\n    `conf/etc/cbot/cbot.conf`.\n\n    Save the copied file in one of the following locations (based on\n    your preference):\n\n    - `/etc/cbot/cbot.conf`\n    - `~/.cbot.conf`\n    - `./cbot.conf`\n\n4. Run the Server\n\n   ```shell\n   ./bin/cbot-server.sh\n   ```\n\n5. Run the CLI client\n\n   ```shell\n   ./bin/cbot-client.sh\n   ```\n\n6. Run the Web UI client\n\n   ```shell\n   ./bin/cbot-web-serve.sh\n   ```\n\n7. Open in Browser\n\nVisit http://localhost:4200 to access the Web UI.\n\n## Client Commands\n\n* clean\n* cmc_latest\n  - num=25\n  - sortby=\n* cron\n  - rm=1\n  - pause=1\n  - modify=1 cron=\"* * * * *\"\n* crypto_stats\n  - exchange=binance\n  - symbol=BTC/USDT\n  - timeframe=1h\n* crypto_ticker\n  - exchange=binance\n  - symbol=pair1,pair2\n* crypto_tsl (Trailing Stop Loss)\n  - aboveInitialPrice\n  - algo=std1/std2\n  - buy\n  - exchange=binance\n  - initialPrice=\n  - interval=60\n  - quantity=100\n  - quoteOrderQty=100\n  - simulate/dry\n  - stopLoss\n  - stopOffsetPrice=500\n  - stopOffsetPricePct=5\n  - symbol=pair\n* get\n  - 1 25\n* ifttt\n  - rm=1\n  - pause=1\n* info\n  - 1\n* kill\n  - 1 all\n* ls\n* memstore\n  - keys\n  - raw\n  - get=key_name\n* modify\n  - 1\n  - key=val\n* pause\n  - 1\n* ping\n  - 25\n  - interval=5\n* ps\n* reload\n  - job_name\n* quit\n* savegame\n* sendmail\n* stats\n* status\n\n## Server Jobs\n\n### crypto-tsl output\n\n`#1; SS;EOS/USDT;QTY 1.84;H 7.5021;CUR 7.5021 (13.8268) (PD:+0.9556/+14.60%);STOP 7.2770 (GAP:0.2251/+1.00%);GR%:0.00/80.0;LIMIT 7.2770`\n\n* S     - Simulation\n* SS    - Simulation / Start\n* QTY   - Quantity\n* H     - The highest price (during this task run)\n* CUR   - Last price\n* PD    - Price difference (currentPrice - initialPrice)\n* STOP  - Stop price\n* GAP   - stopPriceChange (currentPrice - stopPrice)\n* GR%   - offsetPctRaisedBy / reduceStopOffsetPriceByMax\n* LIMIT - Limit price\n\nWith each iteration, but only when currentPrice \u003e lastHigh:\n\n* stopOffsetPrice = stopOffsetPricePct / 100 * price\n* stopPrice = lastHigh - stopOffsetPrice\n* limitPrice = stopPrice - limitOffsetPrice\n\n## License\n\nThis project is licensed under the GNU General Public License v3.0.\nSee the [COPYING](COPYING) file for details.\n\n### Icon Attribution\n\nThe icons used in this project are from the\n[Twitter Twemoji](https://github.com/twitter/twemoji)\nproject and are licensed under the\n[CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojciechpolak%2Fcbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwojciechpolak%2Fcbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwojciechpolak%2Fcbot/lists"}