{"id":34470408,"url":"https://github.com/stratosphereips/stratocyberlab","last_synced_at":"2026-01-22T04:37:30.291Z","repository":{"id":239017096,"uuid":"791860691","full_name":"stratosphereips/stratocyberlab","owner":"stratosphereips","description":"A Cyber Range to learn hacking (both attacking \u0026 defending) techniques locally in your computer","archived":false,"fork":false,"pushed_at":"2025-12-11T09:46:07.000Z","size":13845,"stargazers_count":105,"open_issues_count":4,"forks_count":36,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-12-12T09:34:17.431Z","etag":null,"topics":["attack","cvut","cyber-range","cyber-security","cyberrange","cybersecurity","defense","education","hacking","infosec","introduction-to-security","master-class","playground"],"latest_commit_sha":null,"homepage":"https://cybersecurity.bsy.fel.cvut.cz/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stratosphereips.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-25T14:10:30.000Z","updated_at":"2025-12-11T09:45:55.000Z","dependencies_parsed_at":"2024-05-29T11:03:55.460Z","dependency_job_id":"bd6596ea-84fd-4f7e-8166-d602e0ca2560","html_url":"https://github.com/stratosphereips/stratocyberlab","commit_stats":null,"previous_names":["stratosphereips/stratocyberlab"],"tags_count":236,"template":false,"template_full_name":"stratosphereips/awesome-code-template","purl":"pkg:github/stratosphereips/stratocyberlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Fstratocyberlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Fstratocyberlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Fstratocyberlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Fstratocyberlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stratosphereips","download_url":"https://codeload.github.com/stratosphereips/stratocyberlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stratosphereips%2Fstratocyberlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28654886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["attack","cvut","cyber-range","cyber-security","cyberrange","cybersecurity","defense","education","hacking","infosec","introduction-to-security","master-class","playground"],"created_at":"2025-12-23T07:00:24.001Z","updated_at":"2026-01-22T04:37:30.282Z","avatar_url":"https://github.com/stratosphereips.png","language":"Python","funding_links":[],"categories":["cybersecurity"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eStratoCyberLab\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/stratosphereips/BSY-playground/assets/26445918/1898de8c-840f-46a5-ad73-fca0b9b84c14\" alt=\"Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n\nStratoCyberLab (SCL) is a local cyber range to test and practice your offensive and defensive cybersecurity skills. It was developed by the [Stratosphere Laboratory](https://www.stratosphereips.org/) with two primary goals:\n\n* To allow anyone to run local capture-the-flag challenges (_think HackTheBox, but local on your computer!_).\n* To set up local security environments for students of the [Introduction to Security class](https://cybersecurity.bsy.fel.cvut.cz/) to follow weekly classes and practice hacking.\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/d0164304-c7b2-4f3a-8ac9-2bfcbc52e573\" alt=\"Screenshot\" width=\"800\"/\u003e\n\u003c/p\u003e\n\n## Features\n* 🔒 Local-only. No cloud. No tracking. No login. No data collection.\n* ⚙️ Easy-To-Use. Only Docker required and a single command to start the lab.  \n* 🧩 Many cybersecurity exercises in the form of CTF challenges.\n* 🎓 Predefined network and service environments for students of the [Introduction to Security class](https://cybersecurity.bsy.fel.cvut.cz/).\n* 🐳 The lab runs using Docker containers on shared virtual network(s).\n* 🛠️ A container is created for you as your attacking machine. Install any tools you want without modifying your host computer.\n* 🌐 A web interface to manage challenges and play.\n* 💻 Solve all challenges from the web interface using the built-in WebSSH terminal.\n* 🤖 AI-assisted: the web interface includes a local LLM chat (using _Ollama_) to assist your hacking. You can choose any Ollama model.\n\n## Requirements\n\n### Hardware\nResource consumption depends heavily on user actions. We do not recommend starting all challenges at once, as this may require significant compute by generating a lot of network traffic and starting many services.\n\nWe estimate the minimum requirements to be **3 GB of disk** space and **2 GB of spare RAM**. (Note: downloading an LLM model will require additional disk space depending on the model.)   \n\n### Software\nThe only requirement to run SCL is to have `docker (v\u003e20.10)` installed.\n\n## How to start\n\n1. To start the lab, run:\n```bash\ngit clone https://github.com/stratosphereips/stratocyberlab.git\ncd stratocyberlab\ndocker compose up\n```\n\nThis uses the already prepared [docker-compose.yml](./docker-compose.yml) file to start three services:\n* `hackerlab` — a container with SSH and core utilities for hacking\n* `dashboard` — a web interface to start/stop challenges, submit flags, control Ollama, etc.\n* `ollama` — a container that optionally handles the local LLM models\n\n2. After the lab bootstraps, navigate in your browser to [http://127.0.0.1/](http://127.0.0.1/) to access the lab dashboard. \n\n3. Read the welcome message and solve a Hello World challenge to verify your setup is working correctly.\n\n4. Hack the world!\n\n### Troubleshooting\n\n**Q: I pulled new updates but the lab is running the old version.**  \n**A:** Depending on the changes, sometimes it’s required to force Docker to rebuild and/or restart the containers. Re-run the lab using: `docker compose up --build --force-recreate`.  \n\n**Q: I see a _REMOTE HOST IDENTIFICATION_ warning when trying to SSH into the `hackerlab` container.**  \n**A:** The ID of the `hackerlab` container is regenerated when the container is recreated. Add `-o UserKnownHostsFile=/dev/null` to your SSH command to fix the issue.\n\n**Q: I have a Windows OS and the challenges are not working correctly for me.**  \n**A:** Git for Windows uses _CRLF_ line endings by default, which may break some designed functionality. Either replace all _CRLF_ line endings with _LF_ or set this behavior globally in Git using these commands (note that you have to re-clone the repository after making this change to take effect):\n```bash\ngit config --global core.autocrlf false\ngit config --global core.eol lf\n```\n\n## Development\n\nWe appreciate all **PRs** with **new challenges** or bug fixes.\n\nPlease refer to a separate Development documentation at [./docs/development.md](./docs/development.md).\n\n## Architecture Diagram\n\n![StratoCyberLab (SCL) - Architecture](https://github.com/user-attachments/assets/182aebd9-0488-45bb-80db-32e97decc7a7)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratosphereips%2Fstratocyberlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstratosphereips%2Fstratocyberlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstratosphereips%2Fstratocyberlab/lists"}