{"id":23111966,"url":"https://github.com/jcthomas4214/docker_network_services","last_synced_at":"2026-05-06T02:35:53.292Z","repository":{"id":90500229,"uuid":"175993734","full_name":"JCThomas4214/docker_network_services","owner":"JCThomas4214","description":"Docker network services. Pihole, WireGuard, and Cloudflared.","archived":false,"fork":false,"pushed_at":"2020-08-23T18:18:06.000Z","size":10,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-23T09:48:19.930Z","etag":null,"topics":["cloudflared","docker","pihole","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Python","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/JCThomas4214.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}},"created_at":"2019-03-16T16:05:33.000Z","updated_at":"2023-08-07T16:00:33.000Z","dependencies_parsed_at":"2023-04-12T20:01:41.788Z","dependency_job_id":null,"html_url":"https://github.com/JCThomas4214/docker_network_services","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JCThomas4214/docker_network_services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCThomas4214%2Fdocker_network_services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCThomas4214%2Fdocker_network_services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCThomas4214%2Fdocker_network_services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCThomas4214%2Fdocker_network_services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JCThomas4214","download_url":"https://codeload.github.com/JCThomas4214/docker_network_services/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JCThomas4214%2Fdocker_network_services/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279019154,"owners_count":26086682,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"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":["cloudflared","docker","pihole","wireguard"],"created_at":"2024-12-17T02:14:02.673Z","updated_at":"2025-10-14T14:42:33.302Z","avatar_url":"https://github.com/JCThomas4214.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Pihole, WireGuard, and Cloudflared network services using docker and docker-compose.\n\n# Ingredients\n\n- Linux (w/ wireguard kernel module)\n- Python 3.7+ (w/ pip3)\n- Docker \n- Docker-Compose\n\n# Quick Start Recipe\n\nMake sure to have the WireGuard kernel module installed. This is preinstalled in kernel 5.6+. Visit [here](https://www.wireguard.com/install/) for more info.\n\n1. Clone repo\n2. Install python requirements \n3. Run initial setup\n4. Add peers to WireGuard (use the \\*-cli-\\*.conf to configure client)\n5. Start containers\n\n```sh\ngit clone https://github.com/JCThomas4214/docker_network_services.git \u0026\u0026 cd docker_network_services \u0026\u0026 \\\npip3 install -r requirements.txt \u0026\u0026 \\\n./setup.py -i \u0026\u0026 \\\n./setup.py -a wg0 John_Doe Mary_Sue \u0026\u0026 \\\ndocker-compose up -d\n```\n\n# Full Course Meal\n\nInital setup and manager for your WireGuard instance\n```sh\n$ ./setup -h\nusage: setup.py [-h] (-i | -u | -a WG_INTERFACE [PEER ...] | -d WG_INTERFACE [PUBLIC_KEY ...] | -l WG_INTERFACE)\n\nScript to setup your containers and manage WireGuard\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -i, --initialize      initialize .env file with pihole and WireGuard settings\n  -u, --update          bring down containers / update containers / bring containers back up\n  -a WG_INTERFACE [PEER ...], --add-peer WG_INTERFACE [PEER ...]\n                        add WireGuard peer to your instance (outputs [WG_INTERFACE]-cli-[PEER].conf) the WireGuard\n                        container will restart automatically\n  -d WG_INTERFACE [PUBLIC_KEY ...], --delete-peer WG_INTERFACE [PUBLIC_KEY ...]\n                        delete WireGuard peers with the interface and PublicKeys listed with --list-peers the\n                        WireGuard container will restart automatically\n  -l WG_INTERFACE, --list-peers WG_INTERFACE\n                        list all WireGuard peers on specified interface\n\nNOTE: start with './setup.py -i' to stage initial settings\n```\n\n- Make sure to enable IPv4 Forwarding and it persists on reboot.\n- Read the WireGuard [documentation](https://www.wireguard.com/)!\n\n## Initialization\n\nInitialization with `./setup -i` will ask you a series of questions to stage your `.env` file for docker-compose.\n\n- PiHole Web Password\n  - Password used to login into PiHoles webapp\n- Your public IP address\n  - Your outward facing IP address (ISP). This is for Wireguard config files.\n- Host interface name\n  - The name of the NIC used on your server to host services. Used for PiHole packet trafficing.\n- WireGuard interface name\n  - The name of the WireGuard virtual tun interface that will be created.\n- Wireguard interface tunnel IPv4 address\n  - The gateway IP for the WireGuard virtual tun interface.\n- Wireguard interface port\n  - Port used to traffic VPN on Public IP and virtual tun interface\n\nOnce all is said and done the `.env` file should be generated and look like the following.\n```sh\nWEBPASSWORD=y0urPa55w0rd\n\nPublicIP=111.111.111.111\nServerIP=192.168.0.2\nIPv6=False\nTZ=America/Chicago\nDNS1=127.0.0.1#5053\nDNS2=127.0.0.1#5054\nDNSMASQ_USER=pihole\nDNSMASQ_LISTENING=local\nINTERFACE=eth0\nWG_PORT=51820\n```\n\n## References\n- https://www.wireguard.com/\n- https://github.com/cmulk/wireguard-docker\n- https://github.com/pi-hole/docker-pi-hole\n- https://github.com/visibilityspots/dockerfile-cloudflared\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcthomas4214%2Fdocker_network_services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcthomas4214%2Fdocker_network_services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcthomas4214%2Fdocker_network_services/lists"}