{"id":16994261,"url":"https://github.com/xstoudi/ssh-winnie","last_synced_at":"2026-04-12T17:10:19.770Z","repository":{"id":58522026,"uuid":"519040371","full_name":"Xstoudi/ssh-winnie","owner":"Xstoudi","description":"SSH-Winnie is a Node.js SSH honeypot to register data about connections attempts","archived":false,"fork":false,"pushed_at":"2022-10-02T15:46:03.000Z","size":7050,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-18T00:44:59.040Z","etag":null,"topics":["adonis","adonisjs","hacktoberfest","honeypot","nodejs","react","reactjs","ssh","tailwindcss"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Xstoudi.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}},"created_at":"2022-07-29T01:15:52.000Z","updated_at":"2023-03-03T09:23:35.000Z","dependencies_parsed_at":"2022-09-10T23:11:05.359Z","dependency_job_id":null,"html_url":"https://github.com/Xstoudi/ssh-winnie","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xstoudi%2Fssh-winnie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xstoudi%2Fssh-winnie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xstoudi%2Fssh-winnie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xstoudi%2Fssh-winnie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xstoudi","download_url":"https://codeload.github.com/Xstoudi/ssh-winnie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244913006,"owners_count":20530769,"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":["adonis","adonisjs","hacktoberfest","honeypot","nodejs","react","reactjs","ssh","tailwindcss"],"created_at":"2024-10-14T03:45:00.506Z","updated_at":"2026-04-12T17:10:19.743Z","avatar_url":"https://github.com/Xstoudi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eSSH-Winnie\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  a Node.js SSH honeypot to register data about connections attempts\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/Xstoudi/ssh-winnie/actions/workflows/ci.yml\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/workflow/status/Xstoudi/ssh-winnie/ci?style=flat-square\" alt=\"GitHub workflow status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/repository/docker/xstoudi/winnie\"\u003e\n    \u003cimg src=\"https://img.shields.io/docker/image-size/xstoudi/winnie?sort=date\u0026style=flat-square\" alt=\"Docker image size\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Xstoudi/ssh-winnie/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-raw/Xstoudi/ssh-winnie?style=flat-square\" alt=\"GitHub issues\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Xstoudi/ssh-winnie/pulls\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues-pr-raw/Xstoudi/ssh-winnie?style=flat-square\" alt=\"GitHub pull requests\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/Xstoudi/ssh-winnie/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/Xstoudi/ssh-winnie?style=flat-square\" alt=\"License\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/2575182/188282815-f07a335d-13ae-4ec2-a3ea-b8f084de8772.png\"\u003e\n\u003c/p\u003e\n\n## 📜 Features\n\n- Record login attempts on PostgreSQL database\n- Dashboard to display basic informations about collected samples, including username, password, autonomous system name, country\n- Export attempts to CSV\n- Able to centralize datas from multiple honeypot hosts\n- Report remote IP to AbuseIPDB\n\n## 🚧 Requirements\n\n- [Node.js](https://nodejs.org/en/) LTS 16.x or higher\n- [PostgreSQL](https://www.postgresql.org/) 14.x\n\n## 🛫 Getting started\nJust pull [the docker image](https://hub.docker.com/repository/docker/xstoudi/winnie) and run it with appropriate environment variables as described below, either by command line or using `docker compose`.\n\n## ⚙️ Configuration\n\nWinnie must be configured using environment variables:\n\n```env\nSSH_HOST=0.0.0.0\nSSH_PORT=3555\nHOST=0.0.0.0\nPORT=3333\nNODE_ENV=production\nAPP_KEY=\nDRIVE_DISK=local\nDB_CONNECTION=pg\nPG_HOST=\nPG_PORT=\nPG_USER=\nPG_PASSWORD=\nPG_DB_NAME=\nCACHE_VIEWS=false\nWINNIE_NAME=\nENABLE_DASHBOARD=           # don't set if you want to setup ssh honeypot only\nABUSEIP_API_KEY=            # remove if you don't want to report the attempts\n```\n\n## 📷 Screenshots\n![image](https://user-images.githubusercontent.com/2575182/188282950-136a6d86-e38e-4349-b9cf-c8a049676140.png)\n![image](https://user-images.githubusercontent.com/2575182/188282967-5b28eb7e-d1a0-4302-b1d6-c9792622671e.png)\n\n## ✨ Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n\n[![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://stouder.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2575182?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eXavier Stouder\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/Xstoudi/ssh-winnie/commits?author=Xstoudi\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Ad6riel\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/111901461?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAdriel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-Ad6riel\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxstoudi%2Fssh-winnie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxstoudi%2Fssh-winnie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxstoudi%2Fssh-winnie/lists"}