{"id":18878083,"url":"https://github.com/l4rm4nd/phishdock","last_synced_at":"2026-03-10T11:33:29.184Z","repository":{"id":64802371,"uuid":"578155538","full_name":"l4rm4nd/PhishDock","owner":"l4rm4nd","description":"Automated Docker infrastructure with Gophish, Nginx Proxy Manager, Nginx and PHP","archived":false,"fork":false,"pushed_at":"2022-12-15T15:51:13.000Z","size":279,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T18:57:40.012Z","etag":null,"topics":["docker","gophish","nginx","nginx-fpm","nginx-proxy-manager","phishing","php","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/l4rm4nd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-14T11:44:15.000Z","updated_at":"2024-12-11T00:59:24.000Z","dependencies_parsed_at":"2023-01-29T03:31:07.823Z","dependency_job_id":null,"html_url":"https://github.com/l4rm4nd/PhishDock","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/l4rm4nd/PhishDock","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l4rm4nd%2FPhishDock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l4rm4nd%2FPhishDock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l4rm4nd%2FPhishDock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l4rm4nd%2FPhishDock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/l4rm4nd","download_url":"https://codeload.github.com/l4rm4nd/PhishDock/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/l4rm4nd%2FPhishDock/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30332332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"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":["docker","gophish","nginx","nginx-fpm","nginx-proxy-manager","phishing","php","reverse-proxy"],"created_at":"2024-11-08T06:24:06.685Z","updated_at":"2026-03-10T11:33:24.174Z","avatar_url":"https://github.com/l4rm4nd.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.png\"/\u003e\n\u003c/p\u003e\n\nAutomated Docker infrastructure with Gophish, Nginx Proxy Manager, Nginx and PHP\n\n## Usage\n\nJust spawn up the PhishDock infrastructure via:\n\n````\ngit clone https://github.com/l4rm4nd/PhishDock\ncd PhishDock\ndocker compose up\n````\n\nThis will spawn up the following containers:\n\n- Nginx Proxy Manager\n  -  Used as SSL reverse proxy. Supports a management UI, Let's Encrypt, automated SSL certificate renewals and various APIs of popular DNS providers.\n- Gophish\n  - Used as phishing framework. Supports a management UI to create phishing campaigns, landing pages, site cloning etc.\n- Nginx\n  - Optional web server to provide awareness sites, redirect sites or custom web pages.\n- PHP\n  - PHP support for the optional nginx web server\n\n**Note**: Nginx Proxy Manager is pre-configured and already defines three proxy hosts:\n- `gophish.phishdock.com` is a proxy host for the Gophish admin backend UI. It uses an access list and is only accessible from local LAN IP ranges.\n- `landing.phishdock.com` is a proxy host for Gophish landing pages provided by the Gophish docker container on TCP/80. \n- `awareness.phishdock.com` is a proxy host for the nginx docker container. It serves the purpose of being able to create custom awareness pages to redirect on. For example after a victim submitted data on a Gophish landing page. The victim may then be redirected to this nginx docker container via NPM reverse proxy.\n\nSSL/TLS was not configured on purpose within the NPM container. All configured proxy host domains are imaginary and an example, please adjust. Gophish was not configured at all. Please adjust to your needs and setup. Do not forget to configure SSL/TLS as well as DNS (A-records, MX-records, PTR-record, SPF, DKIM, DMARC). Test your setup with an exemplary Gophish domain!\n\n## Default credentials\n\n### Nginx Proxy Manager\n\nThe Nginx Proxy Manager instance will be available at http://127.0.0.1:81.\n\nThe default login credentials are:\n\n````\nexample@phishdock.com:PhishDock!\n````\n\n**Note**: You may change this default password at first login.\n\n### Gophish\n\nThe Gophish instance will be available at http://127.0.0.1:3333.\n\nThe default login credentials are:\n\n````\nadmin:PhishDock!\n````\n\n**Note**: You must change this default password at first login.\n\n## Goreport\n\nAfter finishing a phishing campaign, one can use Goreport to extract statistics via the Gophish API. I've forked the Goreport GitHub repository and added support for Docker. The image is built by GitHub Actions and available on Dockerhub at `l4rm4nd/goreport`.\n\nYou can export a report via the following Docker run command:\n\n````\ndocker run -it --network=phishdock_default --rm -v $(pwd):/opt l4rm4nd/goreport --id \u003cCAMPAIGN-ID\u003e --format excel --combine --config /opt/goreport.config\n````\n\n**Note**: Please adjust the `goreport.config` file to your needs. Place your API keys and validate the Gophish `gp_host` URL (HTTP vs. HTTPS).\n\n## Considerations\n\n### SSL Proxying\n\nIf you will use NPM to also proxy to the gophish admin backend on TCP/3333 with SSL, you must change the environment variables for gophish. In detail, when using a reverse proxy with SSL, the gophish admin backend on TCP/3333 must also run with SSL and you have to define your subdomain at `ADMIN_TRUSTED_ORIGINS` env variable. Otherwise, the login will brick and you won't be able to authenticate. Currently, plaintext HTTP is configured as default, which works only when no SSL certificates are in use. \n\nIf you want to proxy with SSL, modify the docker-compose.yml and adjust the following env variables for the gophish container:\n\n````\n- ADMIN_USE_TLS=true # set to true if you will use a reverse proxy with SSL; otherwise login will break\n- ADMIN_TRUSTED_ORIGINS=gophish.phishdock.com # set to your subdomain name if you will use a reverse proxy with SSL; otherwise login will break\n````\n\n### Visitor Real IP Address\n\nIt is usually recommended to put the gophish landing page behind Cloudflare CDN to obscure the phishing actor's server location. \n\nIf Cloudflare is used, you must uncomment the following configuration line at the proxy host's advanced section:\n\n````\n# if behind cloudflare, enable this\nreal_ip_header CF-Connecting-IP;\n````\n\nOtherwise, gophish and the NPM logs in general will not obtain the correct IP address of your phishing victims. This will affect the phishing campaign's evaluation and IP analysis stats since the logged IP address will be one of Cloudflare's IPv4 or IPv6 range and not the real site visitor's IP address.\n\nIf you do not use Cloudflare, you may have to define an other HTTP client header like `X-Forwarded-For` to obtain the visitor's real IP. This requires further testings.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl4rm4nd%2Fphishdock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fl4rm4nd%2Fphishdock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl4rm4nd%2Fphishdock/lists"}