{"id":17604261,"url":"https://github.com/hardmax71/integr8scode","last_synced_at":"2026-03-04T01:20:51.196Z","repository":{"id":257958861,"uuid":"870877264","full_name":"HardMax71/Integr8sCode","owner":"HardMax71","description":"Integr8sCode lets you run Python scripts online by executing them in isolated K8s pods with resource limits. Just input your code!","archived":false,"fork":false,"pushed_at":"2024-10-23T20:57:10.000Z","size":326,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-24T08:47:15.009Z","etag":null,"topics":["fastapi","grafana","js","k8s","locust","mongodb","prometheus","pydantic-v2","python","svelte","svelte3","tailwind"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HardMax71.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-10-10T20:37:48.000Z","updated_at":"2024-10-23T20:57:14.000Z","dependencies_parsed_at":"2024-10-27T22:39:19.513Z","dependency_job_id":"a92806ee-48f4-48f3-8843-412e604ade3e","html_url":"https://github.com/HardMax71/Integr8sCode","commit_stats":null,"previous_names":["hardmax71/integr8scode"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HardMax71%2FIntegr8sCode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HardMax71%2FIntegr8sCode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HardMax71%2FIntegr8sCode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HardMax71%2FIntegr8sCode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HardMax71","download_url":"https://codeload.github.com/HardMax71/Integr8sCode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246251109,"owners_count":20747458,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["fastapi","grafana","js","k8s","locust","mongodb","prometheus","pydantic-v2","python","svelte","svelte3","tailwind"],"created_at":"2024-10-22T14:07:35.285Z","updated_at":"2026-02-21T00:16:40.119Z","avatar_url":"https://github.com/HardMax71.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cimg src=\"./docs/assets/images/logo.png\" alt=\"Integr8sCode Logo\" width=\"250\" height=\"250\"\u003e\n \u003ch1 align=\"center\"\u003e\u003cb\u003eIntegr8sCode\u003c/b\u003e\u003c/h1\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/ruff.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/ruff.yml?branch=main\u0026label=ruff\u0026logo=python\u0026logoColor=white\" alt=\"Ruff Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/mypy.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/mypy.yml?branch=main\u0026label=mypy\u0026logo=python\u0026logoColor=white\" alt=\"Mypy Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/security.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/security.yml?branch=main\u0026label=security\u0026logo=shieldsdotio\u0026logoColor=white\" alt=\"Security Scan Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/vulture.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/vulture.yml?branch=main\u0026label=dead%20code\u0026logo=python\u0026logoColor=white\" alt=\"Dead Code Check\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/docker.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/docker.yml?branch=main\u0026label=docker\u0026logo=docker\u0026logoColor=white\" alt=\"Docker Scan Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/stack-tests.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/stack-tests.yml?branch=main\u0026label=backend\u0026logo=python\u0026logoColor=white\" alt=\"Backend Tests\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/stack-tests.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/stack-tests.yml?branch=main\u0026label=frontend\u0026logo=svelte\u0026logoColor=white\" alt=\"Frontend Tests\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/HardMax71/Integr8sCode/actions/workflows/frontend-ci.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/actions/workflow/status/HardMax71/Integr8sCode/frontend-ci.yml?branch=main\u0026label=lint\u0026logo=eslint\u0026logoColor=white\" alt=\"Frontend Lint\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://app.codecov.io/gh/HardMax71/Integr8sCode/components?component=backend\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/HardMax71/Integr8sCode/branch/main/graph/badge.svg?component=backend\" alt=\"Backend Coverage\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://app.codecov.io/gh/HardMax71/Integr8sCode/components?component=frontend\"\u003e\n    \u003cimg src=\"https://codecov.io/gh/HardMax71/Integr8sCode/branch/main/graph/badge.svg?component=frontend\" alt=\"Frontend Coverage\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=HardMax71_Integr8sCode\"\u003e\n    \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=HardMax71_Integr8sCode\u0026metric=alert_status\" alt=\"Quality Gate Status\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=HardMax71_Integr8sCode\"\u003e\n    \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=HardMax71_Integr8sCode\u0026metric=vulnerabilities\" alt=\"Vulnerabilities\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://sonarcloud.io/dashboard?id=HardMax71_Integr8sCode\"\u003e\n    \u003cimg src=\"https://sonarcloud.io/api/project_badges/measure?project=HardMax71_Integr8sCode\u0026metric=bugs\" alt=\"Bugs\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nWelcome to **Integr8sCode**! This is a platform where you can run Python scripts online with ease. Just paste your\nscript, and the platform run it in an isolated environment within its own Kubernetes pod, complete with resource limits\nto keep\nthings safe and efficient. You'll get the results back in no time.\n\n\n\u003e [!NOTE]\n\u003e A deployed and working version of Integr8sCode is available at https://app.integr8scode.cc/ .\n\n\u003cdetails\u003e\n\u003csummary\u003eHow to deploy\u003c/summary\u003e\n\n### Prerequisites\n\n- Docker and Docker Compose\n- Kubernetes cluster (k3s, Docker Desktop K8s, or minikube) with `kubectl` configured\n\n### Quick start\n\n```bash\ngit clone https://github.com/HardMax71/Integr8sCode.git\ncd Integr8sCode\ncp backend/secrets.example.toml backend/secrets.toml\n./deploy.sh dev\n```\n\nThe `secrets.toml` file holds credentials and is gitignored. The example template has working development defaults.\n\n### Verify\n\n```bash\ncurl -k https://localhost/api/v1/health/live\n```\n\n### Access\n\n| Service            | URL                                                    |\n|--------------------|--------------------------------------------------------|\n| Frontend           | [https://localhost:5001](https://localhost:5001)       |\n| Backend API        | [https://localhost:443](https://localhost:443)         |\n| Kafdrop (Kafka UI) | [http://localhost:9000](http://localhost:9000)         |\n| Grafana            | [http://localhost:3000](http://localhost:3000)         |\n| Jaeger (Tracing)   | [http://localhost:16686](http://localhost:16686)       |\n\nDefault credentials: `user` / `user123` (regular), `admin` / `admin123` (admin).\n\nSelf-signed TLS certs are generated automatically — accept the browser warning.\n\n### Run tests\n\n```bash\n./deploy.sh test\n```\n\n### Stop\n\n```bash\n./deploy.sh down\n```\n\nSee the [full deployment guide](https://hardmax71.github.io/Integr8sCode/operations/deployment/) for Docker build strategy, troubleshooting, pre-built images, and more.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eSample test\u003c/summary\u003e\n\nYou can check correctness of start by running a sample test script:\n1. Open website at `https://127.0.0.1:5001/`, go to Editor\n2. In code window, paste following code:\n```python\nfrom typing import TypeGuard\n\ndef is_string(value: object) -\u003e TypeGuard[str]:\n    return isinstance(value, str)\n\ndef example_function(data: object):\n    match data:  # Match statement introduced in Python 3.10\n        case int() if data \u003e 10:\n            print(\"An integer greater than 10\")\n        case str() if is_string(data):\n            print(f\"A string: {data}\")\n        case _:\n            print(\"Something else\")\n\nexample_function(15)\nexample_function(\"hello\")\nexample_function([1, 2, 3])\n```\n\nFirst, select `\u003e= Python 3.10` and run script, will output:\n```\nStatus: completed\nExecution ID: \u003csome hex number\u003e\nOutput:\n  An integer greater than 10\n  A string: hello\n  Something else\n```\n\nThen, select `\u003c Python 3.10` and do the same:\n```\nStatus: completed\nExecution ID: \u003csome other hex number\u003e\nOutput:\n  File \"/scripts/script.py\", line 7\n    match data:  # Match statement introduced in Python 3.10\n          ^\nSyntaxError: invalid syntax\n```\nThis shows that pods with specified python versions are creating and working as expected. Btw, the latter throws error\ncause `match-case` was introduced first in `Python 3.10`.\n\n\u003c/details\u003e\n\n\n## Architecture Overview\n\n\u003e [!TIP]\n\u003e Full documentation is available at https://hardmax71.github.io/Integr8sCode/\n\n\u003cimg src=\"./docs/assets/images/system_diagram.svg\" alt=\"system diagram\"\u003e\n\nThe platform is built on three main pillars:\n\n- Frontend: Svelte app that users interact with.\n- Backend: Powered by FastAPI, Python, and MongoDB to handle all the heavy lifting.\n- Kubernetes Cluster: Each script runs in its own pod, ensuring isolation and resource control.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardmax71%2Fintegr8scode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhardmax71%2Fintegr8scode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardmax71%2Fintegr8scode/lists"}