{"id":28901324,"url":"https://github.com/caesarovich/exgen-hacking-ctf","last_synced_at":"2026-04-16T01:33:05.876Z","repository":{"id":298404008,"uuid":"996275807","full_name":"Caesarovich/exgen-hacking-ctf","owner":"Caesarovich","description":"A \"hacking\" challenge meant for my students to learn the basics of Linux commands in a fun way.","archived":false,"fork":false,"pushed_at":"2025-06-10T23:41:23.000Z","size":199,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-21T10:09:25.532Z","etag":null,"topics":["ctf","hacking","learning","linux"],"latest_commit_sha":null,"homepage":"https://exgen-ctf.caesarovich.xyz/play","language":"TypeScript","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/Caesarovich.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,"zenodo":null}},"created_at":"2025-06-04T18:00:24.000Z","updated_at":"2025-06-12T08:19:18.000Z","dependencies_parsed_at":"2025-06-11T00:34:00.703Z","dependency_job_id":null,"html_url":"https://github.com/Caesarovich/exgen-hacking-ctf","commit_stats":null,"previous_names":["caesarovich/exgen-hacking-ctf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Caesarovich/exgen-hacking-ctf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caesarovich%2Fexgen-hacking-ctf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caesarovich%2Fexgen-hacking-ctf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caesarovich%2Fexgen-hacking-ctf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caesarovich%2Fexgen-hacking-ctf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Caesarovich","download_url":"https://codeload.github.com/Caesarovich/exgen-hacking-ctf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caesarovich%2Fexgen-hacking-ctf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31867710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: 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":["ctf","hacking","learning","linux"],"created_at":"2025-06-21T10:09:06.556Z","updated_at":"2026-04-16T01:33:05.836Z","avatar_url":"https://github.com/Caesarovich.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ExGen hacking challenge\n\nThis is a \"hacking\" challenge meant for my students to learn the basics of Linux commands in a fun way.\n\nSo this challenge is not meant to be a real hacking challenge, but rather a way to learn how to use the terminal and some basic Linux commands.\n\nI built an 'entirely' simulated environment with fake users, fake files, and fake commands to make it feel like a real Linux system.\n\n## Where to play\n\nYou can find a live version of the challenge at : https://exgen-ctf.caesarovich.xyz/\n\nDo not look at the source code if you want to play the challenge, as it will spoil the fun!\n\n## Setup locally\n\n\n### Build \u0026 Run locally with Bun\n\n1. Install [BunJS](https://bun.sh/)\n2. Clone the repository\n3. Run `bun install` to install the dependencies\n4. Run `bun run build` to build the project\n5. Run `bun run start.ts` to start the server\n6. Open your browser and go to `http://localhost:3000`\n\n### Build \u0026 Run locally with Docker\n1. Install [Docker](https://www.docker.com/)\n2. Clone the repository\n3. Run `docker build -t exgen-hacking-challenge .` to build the Docker image\n4. Run this command to start the Docker container, replacing the environment variables with your own values:\n```\ndocker run -p 3000:3000 \\\n\t-e SESSION_SECRET=\u003cmin_32_char_long\u003e \\\n\t-e DB_FILE_NAME=/data/\u003cfile.sqlite\u003e \\\n\t-e ADMIN_USERNAME=\u003cusername\u003e \\\n\t-e ADMIN_PASSWORD=\u003cpassword\u003e \\\n\texgen-hacking-challenge\n``` \n5. Open your browser and go to `http://localhost:3000`\n\n## Tech stack\n\n- [Bun](https://bun.sh/) for the JavaScript runtime\n- [SolidJS](https://solidjs.com/) for the frontend framework\n- [Kobalte](https://kobalte.dev/) for the component library\n- [SolidStart](https://start.solidjs.com/) for the full-stack framework\n- [TailwindCSS](https://tailwindcss.com/) for the styling\n- [DaisyUI](https://daisyui.com/) for the TailwindCSS component library\n- [TypeScript](https://www.typescriptlang.org/) for the type system\n- [XTerm](https://xtermjs.org/) for the terminal emulator, connected to a fake backend by WebSocket\n- [Biome](https://biomejs.dev/) for the code formatter and linter\n- [Solid Primitives](https://primitives.solidjs.community/) for some useful SolidJS primitives\n- [Drizzle](https://orm.drizzle.team/) for the database ORM\n- [SQLite](https://www.sqlite.org/index.html) for the database\n\n\n## License\n\nThis project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaesarovich%2Fexgen-hacking-ctf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaesarovich%2Fexgen-hacking-ctf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaesarovich%2Fexgen-hacking-ctf/lists"}