{"id":13520991,"url":"https://github.com/hackerai-tech/PentestGPT","last_synced_at":"2025-03-31T20:30:26.178Z","repository":{"id":219359840,"uuid":"748839900","full_name":"hackerai-tech/PentestGPT","owner":"hackerai-tech","description":"AI-Powered Automated Penetration Testing Tool","archived":false,"fork":false,"pushed_at":"2024-10-29T21:58:52.000Z","size":6529,"stargazers_count":828,"open_issues_count":20,"forks_count":36,"subscribers_count":11,"default_branch":"main","last_synced_at":"2024-10-29T23:39:52.214Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pentestgpt.ai/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"mckaywrigley/chatbot-ui","license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackerai-tech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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-01-26T21:15:23.000Z","updated_at":"2024-10-29T21:58:55.000Z","dependencies_parsed_at":"2024-11-07T00:32:02.712Z","dependency_job_id":null,"html_url":"https://github.com/hackerai-tech/PentestGPT","commit_stats":null,"previous_names":["thehackergpt/chatbot-ui","hacker-gpt/hackergpt-2.0","hackerai-tech/pentestgpt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerai-tech%2FPentestGPT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerai-tech%2FPentestGPT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerai-tech%2FPentestGPT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackerai-tech%2FPentestGPT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackerai-tech","download_url":"https://codeload.github.com/hackerai-tech/PentestGPT/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246535707,"owners_count":20793308,"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":[],"created_at":"2024-08-01T06:00:25.676Z","updated_at":"2025-03-31T20:30:26.172Z","avatar_url":"https://github.com/hackerai-tech.png","language":"TypeScript","readme":"# PentestGPT\n\nPentestGPT provides advanced AI and integrated tools to help security teams conduct comprehensive penetration tests effortlessly. Scan, exploit, and analyze web applications, networks, and cloud environments with ease and precision, without needing expert skills.\n\n## A Special Note of Thanks\n\nThank you so much, [@fkesheh](https://github.com/fkesheh) and [@Fx64b](https://github.com/Fx64b), for your amazing work and dedication to this project. \n\nThank you for being part of the HackerAI family.\n\n## Important Note About Running PentestGPT Locally\n\nThe primary purpose of this GitHub repo is to show what's behind PentestGPT in order to build trust.\n\nYou can run PentestGPT locally, but the RAG system, plugins, and more will only work with proper and complex configuration.\n\n## Local Quickstart\n\nFollow these steps to get your own PentestGPT instance running locally.\n\nYou can watch the full video tutorial [here](https://www.youtube.com/watch?v=9Qq3-7-HNgw).\n\n### 1. Clone the Repo\n\n```bash\ngit clone https://github.com/hackerai-tech/PentestGPT.git\n```\n\n### 2. Install Dependencies\n\nOpen a terminal in the root directory of your local PentestGPT repository and run:\n\n```bash\nnpm install\n```\n\n### 3. Install Supabase \u0026 Run Locally\n\n#### Why Supabase?\n\nPreviously, we used local browser storage to store data. However, this was not a good solution for a few reasons:\n\n- Security issues\n- Limited storage\n- Limits multi-modal use cases\n\nWe now use Supabase because it's easy to use, it's open-source, it's Postgres, and it has a free tier for hosted instances.\n\nWe will support other providers in the future to give you more options.\n\n#### 1. Install Docker\n\nYou will need to install Docker to run Supabase locally. You can download it [here](https://docs.docker.com/get-docker) for free.\n\n#### 2. Install Supabase CLI\n\n**MacOS/Linux**\n\n```bash\nbrew install supabase/tap/supabase\n```\n\n**Windows**\n\n```bash\nscoop bucket add supabase https://github.com/supabase/scoop-bucket.git\nscoop install supabase\n```\n\n#### 3. Start Supabase\n\nIn your terminal at the root of your local PentestGPT repository, run:\n\n```bash\nsupabase start\n```\n\n### 4. Fill in Secrets\n\n#### 1. Environment Variables\n\nIn your terminal at the root of your local PentestGPT repository, run:\n\n```bash\ncp .env.local.example .env.local\n```\n\nGet the required values by running:\n\n```bash\nsupabase status\n```\n\nNote: Use `API URL` from `supabase status` for `NEXT_PUBLIC_SUPABASE_URL`\n\nNow go to your `.env.local` file and fill in the values.\n\nIf the environment variable is set, it will disable the input in the user settings.\n\n#### 2. SQL Setup\n\nIn the 1st migration file `supabase/migrations/20240108234540_setup.sql` you will need to replace 2 values with the values you got above:\n\n- `project_url` (line 53): `http://supabase_kong_pentestgpt:8000` (default) can remain unchanged if you don't change your `project_id` in the `config.toml` file\n- `service_role_key` (line 54): You got this value from running `supabase status`\n\nThis prevents issues with storage files not being deleted properly.\n\n### 5. Run app locally\n\nIn your terminal at the root of your local PentestGPT repository, run:\n\n```bash\nnpm run chat\n```\n\nYour local instance of PentestGPT should now be running at [http://localhost:3000](http://localhost:3000). Be sure to use a compatible node version (i.e. v18).\n\nYou can view your backend GUI at [http://localhost:54323/project/default/editor](http://localhost:54323/project/default/editor).\n\n### 6. Adding local user\n\n#### 1. Sign Up\n\nGo to the login screen at [http://localhost:3000](http://localhost:3000)\n\nFill in your email and password, then press Sign Up.\n\n#### 2. Confirm email\n\nAccess Inbucket, the email testing service, at [http://localhost:54324](http://localhost:54324).\n\nFind the mailbox for the email you used to sign up. Review the received message and confirm your email.\n\nNow you can use this user and password to login.\n\n## Hosted Quickstart\n\nFollow these steps to get your own PentestGPT instance running in the cloud.\n\nVideo tutorial coming soon.\n\n### 1. Follow Local Quickstart\n\nRepeat steps 1-4 in \"Local Quickstart\" above.\n\nYou will want separate repositories for your local and hosted instances.\n\nCreate a new repository for your hosted instance of PentestGPT on GitHub and push your code to it.\n\n### 2. Setup Backend with Supabase\n\n#### 1. Create a new project\n\nGo to [Supabase](https://supabase.com/) and create a new project.\n\n#### 2. Get Project Values\n\nOnce you are in the project dashboard, click on the \"Project Settings\" icon tab on the far bottom left.\n\nHere you will get the values for the following environment variables:\n\n- `Project Ref`: Found in \"General settings\" as \"Reference ID\"\n\n- `Project ID`: Found in the URL of your project dashboard (Ex: https://supabase.com/dashboard/project/\u003cYOUR_PROJECT_ID\u003e/settings/general)\n\nWhile still in \"Settings\" click on the \"API\" text tab on the left.\n\nHere you will get the values for the following environment variables:\n\n- `Project URL`: Found in \"API Settings\" as \"Project URL\"\n\n- `Anon key`: Found in \"Project API keys\" as \"anon public\"\n\n- `Service role key`: Found in \"Project API keys\" as \"service_role\" (Reminder: Treat this like a password!)\n\n#### 3. Configure Auth\n\nNext, click on the \"Authentication\" icon tab on the far left.\n\nIn the text tabs, click on \"Providers\" and make sure \"Email\" is enabled.\n\nWe recommend turning off \"Confirm email\" for your own personal instance.\n\n#### 4. Connect to Hosted DB\n\nOpen up your repository for your hosted instance of PentestGPT.\n\nIn the 1st migration file `supabase/migrations/20240108234540_setup.sql` you will need to replace 2 values with the values you got above:\n\n- `project_url` (line 53): Use the `Project URL` value from above\n- `service_role_key` (line 54): Use the `Service role key` value from above\n\nNow, open a terminal in the root directory of your local PentestGPT repository. We will execute a few commands here.\n\nLogin to Supabase by running:\n\n```bash\nsupabase login\n```\n\nNext, link your project by running the following command with the \"Project ID\" you got above:\n\n```bash\nsupabase link --project-ref \u003cproject-id\u003e\n```\n\nYour project should now be linked.\n\nFinally, push your database to Supabase by running:\n\n```bash\nsupabase db push\n```\n\nYour hosted database should now be set up!\n\n### 3. Setup Frontend with Vercel\n\nGo to [Vercel](https://vercel.com/) and create a new project.\n\nIn the setup page, import your GitHub repository for your hosted instance of PentestGPT. Within the project Settings, in the \"Build \u0026 Development Settings\" section, switch Framework Preset to \"Next.js\".\n\nIn environment variables, add the following from the values you got above:\n\n- `NEXT_PUBLIC_SUPABASE_URL`\n- `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n- `SUPABASE_SERVICE_ROLE_KEY`\n\nYou can also add API keys as environment variables.\n\n- `MISTRAL_API_KEY`\n- `OPENAI_API_KEY`\n\nFor the full list of environment variables, refer to the '.env.local.example' file. If the environment variables are set for API keys, it will disable the input in the user settings.\n\nClick \"Deploy\" and wait for your frontend to deploy.\n\nOnce deployed, you should be able to use your hosted instance of PentestGPT via the URL Vercel gives you.\n\n## Updating\n\nIn your terminal at the root of your local PentestGPT repository, run:\n\n```bash\nnpm run update\n```\n\nIf you run a hosted instance you'll also need to run:\n\n```bash\nnpm run db-push\n```\n\nto apply the latest migrations to your live database.\n\n## Have a feature request, question, or comment?\n\nYou can get in touch with us through the HackerAI Help Center at [https://help.hackerai.co](https://help.hackerai.co).\n\n## Contributing\n\nInterested in contributing to PentestGPT? Please see [CONTRIBUTING.md](https://github.com/hackerai-tech/PentestGPT/blob/main/CONTRIBUTING.md) for setup instructions and guidelines for new contributors. As an added incentive, top contributors will have the opportunity to become part of the PentestGPT team.\n\n## License\n\nLicensed under the [GNU General Public License v3.0](https://github.com/hackerai-tech/PentestGPT/blob/main/license)\n","funding_links":[],"categories":["Applications","Using AI for Pentesting"],"sub_categories":["AI Platforms","Response"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerai-tech%2FPentestGPT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackerai-tech%2FPentestGPT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackerai-tech%2FPentestGPT/lists"}