From 95e27e1debeeb4d61763908733c555de4c0d87c9 Mon Sep 17 00:00:00 2001 From: venus Date: Tue, 31 Mar 2026 22:00:49 -0500 Subject: [PATCH] adding wg-easy and integrating network stack --- .gitignore | 1 + blog | 2 +- compose.yml | 45 ++++++++++++++++++++++++++++-- letsencrypt/acme.json | 8 ++++++ traefik.yml | 2 ++ wg-easy/compose.yml | 40 +++++++++++++++++++++++++++ wg-easy/docker-compose.yml | 56 -------------------------------------- whoami.yml | 8 +++--- 8 files changed, 99 insertions(+), 63 deletions(-) create mode 100644 wg-easy/compose.yml delete mode 100644 wg-easy/docker-compose.yml diff --git a/.gitignore b/.gitignore index caf0710..d9dcaa0 100755 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ gitea/data/* letsencrypt/acme.json +etc_wireguard/* diff --git a/blog b/blog index 8efe0b7..fe0adef 160000 --- a/blog +++ b/blog @@ -1 +1 @@ -Subproject commit 8efe0b7836eb3d3958ee6aa94eb1a8f6de07bcda +Subproject commit fe0adef332978e1bf14708d3b9a8c9a070449336 diff --git a/compose.yml b/compose.yml index 094279c..310562f 100644 --- a/compose.yml +++ b/compose.yml @@ -2,7 +2,7 @@ # Primary compose file, used to manage the traefik and other network related modules # Other compose files to be run named and used my service services: - traefik: + traefik: # This is the proxy for all other services. Using labels it dynamically secures reverse proxies to other containters image: traefik:v3.6 container_name: traefik restart: unless-stopped @@ -12,9 +12,50 @@ services: volumes: - "/var/run/docker.sock:/var/run/docker.sock" - "./letsencrypt:/letsencrypt" - - "./traefik.yml:/etc/traefik/traefik.yml:ro" + - "./traefik.yml:/etc/traefik/traefik.yml:ro" # sets the traefik.yml file as the options file for configuring proxy settings networks: - traefik + wg-easy: + image: ghcr.io/wg-easy/wg-easy + container_name: wg-easy + restart: unless-stopped + volumes: + - ./etc_wireguard:/etc/wireguard + environment: + # Required settings + - WG_HOST=wg.riverrooks.dev + + # Optional settings + - WG_PORT=51820 # WireGuard UDP port + - WG_DEFAULT_DNS=1.1.1.1 + - WG_ALLOWED_IPS=10.8.0.0/24 + + cap_add: + - NET_ADMIN + - SYS_MODULE + sysctls: + - net.ipv4.conf.all.src_valid_mark=1 + - net.ipv4.ip_forward=1 + + # Ports: We map the VPN port (UDP) directly to the host. + # The Web UI (51821) is handled by Traefik labels instead. + ports: + - "51820:51820/udp" + + networks: + - traefik + + labels: + # since by default containers are disabled, we need to enable them + - "traefik.enable=true" + # Set a rule for which hostnames will connect + - "traefik.http.routers.wg-easy.rule=Host(`wg.riverrooks.dev`)" + # declare an antrypoint. Websecure is defined in the traefik.yml file + - "traefik.http.routers.wg-easy.entrypoints=websecure" + # declare the certificate resolver. Also defined in traefik.yml file + - "traefik.http.routers.wg-easy.tls.certresolver=basic-letsencrypt" + # set the port which will be proxied to the address + - "traefik.http.services.wg-easy.loadbalancer.server.port=51821" networks: traefik: diff --git a/letsencrypt/acme.json b/letsencrypt/acme.json index d8fc279..69ba4d7 100644 --- a/letsencrypt/acme.json +++ b/letsencrypt/acme.json @@ -52,6 +52,14 @@ "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUYvakNDQk9hZ0F3SUJBZ0lTQlZYbTgyeVlZY01WZUp3UXRNc3VhK2dMTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURNeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rd3dDZ1lEVlFRRApFd05TTVRJd0hoY05Nall3TXpNeE1EVXhORE0zV2hjTk1qWXdOakk1TURVeE5ETTJXakFkTVJzd0dRWURWUVFECkV4Sm5hWFF1Y21sMlpYSnliMjlyY3k1a1pYWXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUsKQW9JQ0FRRExKa0NIdy9aZTBDdmgzREZmZmhHNnpGdW1LcktTQUJXKzJsaDA2TnBiTnBqSHZPQVlOZXM1aUk4UgpFbFp1dit0ZjBEQktqeGhtbkNYajFvQUxiUm53UTZqbkRkaUJjbVVHQVB5K2FWaXJOMU9OUjN2UG9KaEExckgwCjFrRmlLWUc1UlRiVXlzS2dsNVdMMGpLWFhLMnpGVzcyUHErNi96ZVhaMzFxSDFTR2xtSEJ4bDN2OEFHSExjQzgKRCs2djJGT2s4WGZsSkprOUlSOGhlNHVEYi9xZ3lRaUUyQk5xTWRoelU2Q25IZGFUZVBuNTc2N2Q3STBmWXpnaApEWGNkdnlHYWp6Qmo0SkMxOXo2djJvZFcyNFNZNXd0V0VpSjJocGcyelJnUjF6aE5udHBGYksrbzlKV0UyeWRrCk9OZWtTQVlRTWhsc3NDaGpBWmVIZmE1RHRES00zbGlKWERQeWlPQ1QrVjI5S24ya2JMc2RIdDhBYks1TFJuQnAKSC9KaE1FY3RMZVVqQ3VsZFhacEtYS1VBNVZoSUtPT0VWNEhCQ3gwcG9MOWM2aTFpSXI2aGw5b1BaUGkwY0dDRApycWllNlM5eUlMT0VEY1BheUZRbGlYVU5wV2tjWkpTbVNnb2U5dlJRTDJHQXRQZHBXMHR3dDhTQ1JvS1hVa0E1ClNNNzVqb0o0T0dMamNpcWJ1RDRCb0txc1NFNEQ5c1hrMWJvamsrdE5SN2V5TStjcGpiUGE0dFlaemI5YWpZb08KcHBUa1EyQWlaUG5uN0cwdERmanE1ZXFrZFpjYTNDV280UnFBc2VTbzdBU2RwVzlMOXVrLzU4WmpIY05DZWdGbgp5UGJFbWpBcmx3ZWZ6NmgzeXUvUlFXUnpuajRlU3Z4SXJvLzUydFVHWVY4dWtVdzFuUUlEQVFBQm80SUNJRENDCkFod3dEZ1lEVlIwUEFRSC9CQVFEQWdXZ01CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRkJ3TUJNQXdHQTFVZEV3RUIKL3dRQ01BQXdIUVlEVlIwT0JCWUVGUE5mRU1HeCtBVGM2YWxjRUpRYzlvM00wMlR5TUI4R0ExVWRJd1FZTUJhQQpGQUMxS2ZJdGptOHg2SnRNclhnKyt0enBETkhTTURNR0NDc0dBUVVGQndFQkJDY3dKVEFqQmdnckJnRUZCUWN3CkFvWVhhSFIwY0RvdkwzSXhNaTVwTG14bGJtTnlMbTl5Wnk4d0hRWURWUjBSQkJZd0ZJSVNaMmwwTG5KcGRtVnkKY205dmEzTXVaR1YyTUJNR0ExVWRJQVFNTUFvd0NBWUdaNEVNQVFJQk1DNEdBMVVkSHdRbk1DVXdJNkFob0IrRwpIV2gwZEhBNkx5OXlNVEl1WXk1c1pXNWpjaTV2Y21jdk1USXVZM0pzTUlJQkRBWUtLd1lCQkFIV2VRSUVBZ1NCCi9RU0IrZ0Q0QUhZQUZvTXRxL0NwSlE4UDhEcWxSZi9JdjhnajBJZEw5Z1FwSi9qbkh6TVQ5Zm9BQUFHZFFvWkEKamdBQUJBTUFSekJGQWlBQlg5bGlzcTBYaVhIaGNtazZzU0FnNCtQS0Qwa3EvNVRDR1lJaG5qZUZiQUloQU0vNQpWMCtQSUxxKytLbDlkcFJ1WkZqT3QyRmUvcEgvM1VqUU53T2RWenNQQUg0QXFDYkw0d3JHTlJKR1V6L2daZkZQCkdkbHVHUWdUeEIzWmJYa0FzeEk4VlNjQUFBR2RRb1pERWdBSUFBQUZBQVRxUEJ3RUF3QkhNRVVDSURCc2Zhd20KN1RXNUNiMVMra0xSZkhJUnE3aFpqS0l2NTBWOFhRQTBMc1B1QWlFQXdoYkJxTy9DOVhaVEpmOUNDVkk5VEtuRQpqb0ZBV0ZBNU5BQ2lkbURuc2Fjd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFLdU1TZkFzT3JrbTFyRVNEQjYyCjY4MjFZRDdPYkhHaG5nSzdOOG9pZEhkcDR1QXFWREFxSENxSGtBZjN5RnVsbFB0RlVHanhGdFkvMUFZY2NTaHcKTU9sOFN0Q0VoUUE4REVCMmcwQVIyMG9UWVNPTm5BVkV6bnVKc3NjNTRBRkZncTZPTU10UFRSTEpNWndzclZ6cwpTTnZ4Q1R4eFY1VHpQQ1J4SHRHQjJJK1BiZDAybDZGOGhtUWsweU5XNkF6YlYrNCtRWlF2QmNOTHVqbFJabFlmCml0ck9DVkozUDhWKzkwaFpsMnJGWVlJTkdSaVBXMWJyZDFUMVYwTmFxekxNS0RFOEFpd25BU0RCZW9TNlpNN2YKdUlFL1ZPVUw4L003U0NIbjFjczE4M0V0Tmowdi82eUsrWWZqOG9odDFBRkhrZVZjRnRYd3QvK0lTM2xkN2FqWgp6TGM9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlGQmpDQ0F1NmdBd0lCQWdJUkFNSVNNa3R3cWJTUmNkeEE5K0tGSmp3d0RRWUpLb1pJaHZjTkFRRUxCUUF3ClR6RUxNQWtHQTFVRUJoTUNWVk14S1RBbkJnTlZCQW9USUVsdWRHVnlibVYwSUZObFkzVnlhWFI1SUZKbGMyVmgKY21Ob0lFZHliM1Z3TVJVd0V3WURWUVFERXd4SlUxSkhJRkp2YjNRZ1dERXdIaGNOTWpRd016RXpNREF3TURBdwpXaGNOTWpjd016RXlNak0xT1RVNVdqQXpNUXN3Q1FZRFZRUUdFd0pWVXpFV01CUUdBMVVFQ2hNTlRHVjBKM01nClJXNWpjbmx3ZERFTU1Bb0dBMVVFQXhNRFVqRXlNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUIKQ2dLQ0FRRUEycGdvZEsyK2xQNDc0QjdpNVV0MXF5d1NmKzJuQXpKK05wZnM2REdQcFJPTkM1a3VIczBCVVQxTQo1U2h1Q1ZVeHFxVWlYWEwwTFFmQ1RVQTgzd0VqdVhnMzlScGxNalRtaG5HZEJPK0VDRnU5QWhxWjY2WUJBSnB6CmtHMlBvZ2VnMEpmVDJrVmhnVFU5RlBuRXdGOXEzQXVXR3JDZjR5cnF2U3JXbU1lYmNhczdkQTg4MjdKZ3ZscEwKVGhqcDJ5cHpYSWxoWlo3KzdUeW15MDV2NUo3NUFFYXoveGxOS21PemptYkdHSVZ3eDFCbGJ6dDA1VWlERHdoWQpYUzBqblY2ai91amJBS0hTOU9NWlRmTHVldllubnVYTm5DMmk4bitjRjYzdkV6YzUwYlRJTEVIV2hzRHA3Q0g0CldSdC91VHA4bjF3Qm5XSUV3aWk5Q3EwOHloRHNHd0lEQVFBQm80SDRNSUgxTUE0R0ExVWREd0VCL3dRRUF3SUIKaGpBZEJnTlZIU1VFRmpBVUJnZ3JCZ0VGQlFjREFnWUlLd1lCQlFVSEF3RXdFZ1lEVlIwVEFRSC9CQWd3QmdFQgovd0lCQURBZEJnTlZIUTRFRmdRVUFMVXA4aTJPYnpIb20weXRlRDc2M09rTTBkSXdId1lEVlIwakJCZ3dGb0FVCmViUlo1bnUyNWVRQmM0QUlpTWdhV1BicG0yNHdNZ1lJS3dZQkJRVUhBUUVFSmpBa01DSUdDQ3NHQVFVRkJ6QUMKaGhab2RIUndPaTh2ZURFdWFTNXNaVzVqY2k1dmNtY3ZNQk1HQTFVZElBUU1NQW93Q0FZR1o0RU1BUUlCTUNjRwpBMVVkSHdRZ01CNHdIS0Fhb0JpR0ZtaDBkSEE2THk5NE1TNWpMbXhsYm1OeUxtOXlaeTh3RFFZSktvWklodmNOCkFRRUxCUUFEZ2dJQkFJOTEwQW5QYW5aSVpUS1MzclZFeUlWMjlCV0VqQUsvZHV1ejhlTDVib1NvVnBIaGtrdjMKNGVvQWVFaVBkWkxqNUVaN0cyQXJJSytnemhUbFJRMXE0RktHcFBQYUZCU3BxVi94YlViNVVsQVhRT25rSG4zbQpGVmorcVl2ODcvV2VZK0JtNHNOM094OEJoeWFVN1VBUTNMZVo3TjFYMDF4eFFlNHdJQUFFM0pWTFVDaUhtWkwrCnFvQ1V0Z1lJRlBnY2czNTBRTVVJV2d4UFhOR0VuY1Q5MjFuZTdubHVJMDJWOHBMVW1DbHFYT3NDd1VMdytQVk8KWkNCN3FPTXh4TUJvQ1VlTDJMbDRvTXBPU3I1cEpDcExOM3RSQTJzNlAxS0xzOVRTclZoT2srN0xYMjhOTVVsSQp1c1EvbnhMSklEMFJoQWVGdFBqeU9DT3NjUUJBNTMrTlJqU0NhazdQNEE1alg3cHBta2NKRUNMK1MwaTNrWFZVCnk1TWU1QmJyVTg5NzNqWk52L2F4NitaSzZUTThqV21pbUw2b2Y2T3JYN1pVNkUyV3FhenpzRnJMRzNvMmt5U2IKemxoU2dKODFDbDR0djNTYllpWVhuSkV4S1F2emY4M0RZb3RveDNmMGZ3djd4bG4xQTJaTHBsQ2IwTytsL0FLMApZRTBEUzJGUHhTQUhpMGl3TWZXMm5OSEpyWGNZM0xMSEQ3N2dSZ2plNEV2ZXViaTJ4eGErTm1rL2htaExkSUVUCmlWREZhbm9Dck1WSXBRNTlYV0hremRGbW9IWEhCVjdvaWJWakdTTzdVTFNRN01KMU56NTFwaHVESlNnQUlVN0EKMHpyTG5PckFqL2RmcmxFV1JoQ3ZBZ2J1d0xaWDFBMnNqTmpYb1BPSGJzUGl5K2xPMUtGOC9YWTcKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBeXlaQWg4UDJYdEFyNGR3eFgzNFJ1c3hicGlxeWtnQVZ2dHBZZE9qYVd6YVl4N3pnCkdEWHJPWWlQRVJKV2JyL3JYOUF3U284WVpwd2w0OWFBQzIwWjhFT281dzNZZ1hKbEJnRDh2bWxZcXpkVGpVZDcKejZDWVFOYXg5TlpCWWltQnVVVTIxTXJDb0plVmk5SXlsMXl0c3hWdTlqNnZ1djgzbDJkOWFoOVVocFpod2NaZAo3L0FCaHkzQXZBL3VyOWhUcFBGMzVTU1pQU0VmSVh1TGcyLzZvTWtJaE5nVGFqSFljMU9ncHgzV2szajUrZSt1CjNleU5IMk00SVExM0hiOGhtbzh3WStDUXRmYytyOXFIVnR1RW1PY0xWaElpZG9hWU5zMFlFZGM0VFo3YVJXeXYKcVBTVmhOc25aRGpYcEVnR0VESVpiTEFvWXdHWGgzMnVRN1F5ak41WWlWd3o4b2pnay9sZHZTcDlwR3k3SFI3ZgpBR3l1UzBad2FSL3lZVEJITFMzbEl3cnBYVjJhU2x5bEFPVllTQ2pqaEZlQndRc2RLYUMvWE9vdFlpSytvWmZhCkQyVDR0SEJnZzY2b251a3ZjaUN6aEEzRDJzaFVKWWwxRGFWcEhHU1Vwa29LSHZiMFVDOWhnTFQzYVZ0TGNMZkUKZ2thQ2wxSkFPVWpPK1k2Q2VEaGk0M0lxbTdnK0FhQ3FyRWhPQS9iRjVOVzZJNVByVFVlM3NqUG5LWTJ6MnVMVwpHYzIvV28yS0RxYVU1RU5nSW1UNTUreHRMUTM0NnVYcXBIV1hHdHdscU9FYWdMSGtxT3dFbmFWdlMvYnBQK2ZHCll4M0RRbm9CWjhqMnhKb3dLNWNIbjgrb2Q4cnYwVUZrYzU0K0hrcjhTSzZQK2RyVkJtRmZMcEZNTlowQ0F3RUEKQVFLQ0FnQXBCaHdBN3JOSmVVdHJURzZTQktEcThvck5keERoaCsvY1B6YWV3VWtiSTE3ZDh3ZmtDN3RwUG1qNQp2eFRDUDdKMkFsSkdORGh1dkRpd2xtZjhKcmVXdStzWFljWG5laVRwZmZpTU1UVHRPbnArYk1HVmI2NWZaWnZCClFDVXJBQXZJMEsvZWIrVzJ6WFd2S3k3NVB3ZDZ3eWpKeEdYellzZWtwUXNBQzd5amd5blJtay9zL0xBcVRyUjkKcGRBREpiSGFmTUxEL015UE9pbVJ0dU81RXJ0dmpibFJMbHRaVmlDS1JZaUxSdXpHa2ljVThIQ0ZNMWhhVHN5TwpiQ3d5VHg4bm1hUGhmMzlwcDdpNmhXeFFQM3M2NzJsc0k3UmU4Qlk3OXRYV0FIckh2ZjBCQ1E0K0Zjbzk3bzI1CllQczNHeTVTUmZPNWJhZHlPdWVSUG5HYkRZQXBjejhyWWNJK01peDNHeTNOM2VTdFFFR2xEUjZUeTQ1NVdpMXcKZnRQMHpPalVWY3ozSEZhZVhOOUtTa21IOWk5UXBseTlyZmNyc055WUx6ZnJsWjJlOFE2RGIrQzdobGFsRDA3VAoyY0ZzUTU4YWk3NWdueDYzNGZJa3liNzFPWFZtUkN5UjhQMHRJci84UTNHekZYSlJuR1ZnSmgvTnV3T3U1Y2RMCjFrSGkzRWRyNU55NlROS1hnR2s0UjJucnFCWXdrWitwa2FzcWVhcU96bk5IMjJRWEV1cGJLQ3NNM2xyR2k1SWcKeFNGOEc5WjNDTmlKK3Yrb1ZvRE5xcG9FRjg0ZlRzUmkyaTJrZ05yRTNRcVJhdnN1OC9QbUtGbVZsYWFwbFZndgp5bTd4d24rNzJKR1ZtbHR4MTR6S2hHdlN2L2lxVmNuc2R6TWt2dVV4ekwzcFd5QUZRUUtDQVFFQTVqZEFmTklWCkdUbG5FZkRTVy9XUXlxTXNjcUpjT1d3cDFUU21DVVNkQm9qM1ZTQ2JybW9CbmpNeVpJRDUrTGF5RmwxZTRLODkKWW9GVEtxbXNqUXB4N0xPeENSMkEzUVczbkphTHBVeDEwUlFqQUtSbUJnZXMvM2lYUGNMQkpIa281SGF3NVFZeApDeUR1dmJZUjBhM3hkR3N5N2txY2trYlVVWm0zSUcvODE4MVJXdTZNbmtrV20xQkRHdmdsUlFQMk52UmhNcXZ2CkVwYmtCUDR1SjRRVXNWOWtUOERwTkZaYnFhQlVSRE9tcStvaEhDOUE3NkVMakJ6dUtocFVQRC9yYS9aYVdLWFoKRmtzUExPbVgyajNFalN1bjVVd0hxK25kaG5sckVBRWVTQ3NvekRVKzN0VC9oVkdaR1hJOWt0VHlVdTFJc3Z5aQpaU01yUVVJdEk1aEZQUUtDQVFFQTRlYnp3MW52WVBWbmdJSyt6bkdUMmlJZ3piOHVqNVErdkNVTXNkVStYaEx5Cjczc04vRUo5bEZUcTJXL0M0VHVMSEdRb3dobVpJNHBEYlJrQ2w0TEdKVDV1ai8yWFVqMHVYZHJCZ1lhRnE3VjcKZHBWZlpyYlVrZHF1VFN2bXpyUjV3SFRPNFhwaXhxZXhmM3RHK3NnS2FnWTdHNk5hVzVxT1FQNFFZM2h1WE5BLwpvUGNnVmh6RE1nNmEzcXhPb0hLVE9PVFRLUzJPMVJZQUVqZ3VGVVJFcGZ4dUY0MUt6VHpwL2lPbnA2YzY0SmpMCjYydHdGeG9LSGpXTE9BWVRGVUJXcmF4MHhnNEdYd0JvREI5Z0xMc0RhVUtIYisvK3lRM1c0amtyZ3dhU1NDQWsKbTd0TzhWM2pIL2ttdTdRaWgvUndMTFRPZGhXeW45WGhGWjJNMWVoMzRRS0NBUUFYa2hTaU13aEIrdVNZcTZWKwpFTmh3UnVDb0pBTjVSWi9LMm9jZGI4NzcrazRJZ3p3dFVXRTFCMXpqZVdrZWsrWUw4Q2RrcmN5RkoyU1NlNmpWCkQvcTJGM2ZLelNDQ2dMRlo4UGYvUnFMUmMxUmFIbnJycHlHSlRwbDlrMUVmSU9DVTg2b002T05nbGxDYlQrYm4KSnY0UHcySUZqOUlVRC9oeEdtSHJpa3ZDOUp5ZHlNclE4ZjdFakNVeXY3RmhMWlNwNzc5NzVxcWxwcGxXQVloTQpOM08rN1Z0aDV3aDVlVllOT2dNbXNIc2lJdWljOENHZjUwYzlZMERuUXFiWlBGb29SYUxlYkt5YlliZitDelNtCi9hZ0FKRFllZmZoVEc3QzRzZm5LTzdNVUJJYzYwVURNbzlZOW1pc290YytrRnZWd2xDYmJYSTVyK0h2WFJLVkcKZmJLcEFvSUJBUURlSkR4Rk4rVTcxVmJJZXNtalBQRUZxbFhUdlZMT0FodUc3SEFGV0FzU2UxUEZ4NTVER0NkaAplL2ZOaGlkL1VReEZDUUZEamVTWG5Ga2RxV0J4R1RvOFdaNWpuaDMxMHhBTFh4aTJoRkJpUC81KzUvaCtpditSCnhoZHM3K1R5RTJzK3BCN2tmM011b3F6YkRhRUk3em0rZFE0ZTZZM3JVcHJjc25udk52aGY4TEVCV3NMRHExa1AKbW1rVTJ5QWVpMHpXdjc0ZVdoeUEwamVUc3djdUJvbnpKNzRqRHVBbDN1YkM4TkRtL24zWmFxZnNneVFnczR5TApsRitvNGVCV0g0U2RHRjlrZTFvc2hidkxYL2MxUlZuZlluckl5cG9qbjZaVm81NTBKRHdwRE9LeStZaHh0YitwCksxcTVialFldVhLdG84YjdPKzhCV2xNUzdIRVgwSmhCQW9JQkFIUkhQamovaStvSzhEMGJxSGM0Qy85aEowdHEKM05ZOWQzc29zbEpwbUFIdUt2Vk1pYVIxdnNybWlsbi82YkluZlJ3eVRiWG1BVE10NHAwWUp3ODlWOUY1b2VCVQpqNlYyblBKaUpvaklBekFyM2ZNL2hqU0VzVi9iM2VKZFpwVzBFa1hVMGMwZW1qMUtJTDNJNUkzVm55MThYbnFJCis5QmRiVythS2pTclNRZE51dXhZc2hUWHFvRFgvcDYyMVBFbnlIZHNEYWt0Z3haaTFKM0o1Y3FHQnFVWkFOeUMKOVlaRnpqclJxQnV4Z1ZxWFZ5ZWFBN29YLytJYVVOU1ZLZlNUWGJBdVpWZkh4YVU1RW41c01uQWZkYitzdGNBLwpwRjB4cnptNmxFOThWd29XMUx6WHI5VWU2SC9DWlZxV1BRYWNKc3JPY0VIaHhuYVI4aElXa0M1NEJvbz0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", "Store": "default" + }, + { + "domain": { + "main": "wg.riverrooks.dev" + }, + "certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUYrakNDQk9LZ0F3SUJBZ0lTQlYwQitpbnQ1WVlXYi9hZXBScWhpOU9LTUEwR0NTcUdTSWIzRFFFQkN3VUEKTURNeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkZibU55ZVhCME1Rd3dDZ1lEVlFRRApFd05TTVRNd0hoY05Nall3TXpNeE1EY3dNVEEyV2hjTk1qWXdOakk1TURjd01UQTFXakFjTVJvd0dBWURWUVFECkV4RjNaeTV5YVhabGNuSnZiMnR6TG1SbGRqQ0NBaUl3RFFZSktvWklodmNOQVFFQkJRQURnZ0lQQURDQ0Fnb0MKZ2dJQkFNeXZQTEVVWkdiaUZieUN6dGE2KzhaUXF5eDg5cmJteUVsUUswbEJ5TU05V2VIMDZkWGNWUUlwS3JoRQpNNjFkWVg4aUw4emJXaHo5YTRtejJ3cnZPL01kdExyR1FVSHhTbFU1UG96MnlOV3pTNWliNW55NlhxZ1NLcmxVCnR1NDlob3pIeU1NUVNQVEtUOW5vdHZVK3hFbUpiejR1a1BtWDBTTSt4bkMrV3AxeW5ZRVRIWnpJaFJEQVRPaWYKOWdMbHQ2cXBwdENYVmtjK0RRTjNTdkJCNWpNa2MvVmVmTkN0d1pYdlIreFlKWTZSa1VVWW1NWDRVNlNxTlVaVQpKYjZKU1dxQ2k1SCtxSWxKaWN5TXdpUkpEU2NoNERCNUt4Y29LUUZUWDAvdGJqVGxqQUp4NUVKMU1OcjVwRWw0CmU0VjN3cTdaeWN2V2JqbWFJcXJaVnBnUk5ZZWx1V0taZThid2l3UzNoc0FxQjdSK1dHWEtkcWhDRlpzQ1NjYjEKQ0RpcXc0NWpad2x5SndNMGs0N2hiOWlUaHlweXUrWDh6SGF3NzJhSFZPY1lqZ0hSc0RRTU1EcWgyWUZSekJFTgpZOG1iWENpWnpQS2RDRXVaUS9Cbk1UcURvUUl0WmxPTlMweWtNSG1WKzNQajJRS2xuM3NmdjlHM1Q2ck02RmJkCm0xbFBxd0NOMlNTTlVFNzN1OVlQRWs0bllvYkNoNlFtdmZQT3ZXbHBDbzRHYWNtT1FxcVh1V3pWZGZPb3oxb2gKWFRuM1IwTzhLM2loYndVSXJNVkxHNlRZaThObkdDSklBellyRmtveG9wRzRJbVBQWjcvb1pkd0Fqa05CNVRTSApCbUlMdE5CUDlYNFpmMjlUMytCa1AwUi82WFZvNnUxQ0xaTS8rY080YzRGVTVweU5BZ01CQUFHamdnSWRNSUlDCkdUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3RXdEQVlEVlIwVEFRSC8KQkFJd0FEQWRCZ05WSFE0RUZnUVUveGIxRzllYnF2SHpEc3h6Z2FtdkV4MUFTV2t3SHdZRFZSMGpCQmd3Rm9BVQo1NnVmRHl3em9GUFRYazk0eUxLRURqdldrak13TXdZSUt3WUJCUVVIQVFFRUp6QWxNQ01HQ0NzR0FRVUZCekFDCmhoZG9kSFJ3T2k4dmNqRXpMbWt1YkdWdVkzSXViM0puTHpBY0JnTlZIUkVFRlRBVGdoRjNaeTV5YVhabGNuSnYKYjJ0ekxtUmxkakFUQmdOVkhTQUVEREFLTUFnR0JtZUJEQUVDQVRBdUJnTlZIUjhFSnpBbE1DT2dJYUFmaGgxbwpkSFJ3T2k4dmNqRXpMbU11YkdWdVkzSXViM0puTHpFeExtTnliRENDQVFvR0Npc0dBUVFCMW5rQ0JBSUVnZnNFCmdmZ0E5Z0IxQUdRUnhHeWtFdXluaVJ5aUFpNEF2S3RQS0FmVUhqVW5xK3IrMVFQSmZjM3dBQUFCblVMbnZ0RUEKQUFRREFFWXdSQUlnUmFQdEV3c3UwQk1iaTNLUnVhRUlRKy9DS0NNZ0RCUHZuZVpHck1TeGZOVUNJR1I3OHhYSAp2STdiNkdNMkluUlhKTHl5Q25rTUlyWjFIQzQ3YUt6dE9MTWtBSDBBYlA1UUdVT29YcWtXdkZMUk0rVGN5Ujd4ClFSeDlKWVFnMFhPQW5oZ1k2em9BQUFHZFF1ZkNwZ0FJQUFBRkFBVVNXNVlFQXdCR01FUUNJQXVCU1lBb0NaWWoKaEROdW1QcCtOSEF5S1c2aHM3WmxJRG55bnhWZ1grTnhBaUEvZytFVWh2dkhwWUdJNTcrcFB6WXZiZ2Vqb2FBYwpaZk1ITWwzMHRZbHp2VEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBWGxZeEpTTUNNazk2QkNsYnE2amIraG9LCnp5VkNvZndpQU5uY3lIRVQvMFJKcG5Vc1lMNElDOU9sVjZFNGVCOTZNQVNicTFFYi9VYnhNMDRpcVYyMHNwdDQKQUxIcnlUd3JXK2ZRZWp2UHBIb2IySXUreFo3cUQvQzk5Y3dWMkJyWThFYlEzWHJvT244Z3RNdGdYeEpHRDR4Twp3UFhpVnZBTmZGeTl3Z1NpK0VLMzltS29hSjcwenhza1lSTER5QTNJdnZoRE0yNDVYNWxyL0tiVzhrQzdyVTVDCjFVOGtmSWlFb3p2N0hzQVh1aGJ3cFJvMXFtNmxzRm5TRnhTMjNpempEcno0ZVdtV2x2OEpVZnRWb2JmTHhSRGUKN0UzbnRMQXBLVmlCOStaSGY0SS9UQ3EwdytMRWNyRm1aTTk2L0UzbnB5dDR5b09Wa2tyeGMwbWFNVnNaY1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCgotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRkJUQ0NBdTJnQXdJQkFnSVFXZ0R5RXRqVXRJRHpra0ZYNmltREJUQU5CZ2txaGtpRzl3MEJBUXNGQURCUApNUXN3Q1FZRFZRUUdFd0pWVXpFcE1DY0dBMVVFQ2hNZ1NXNTBaWEp1WlhRZ1UyVmpkWEpwZEhrZ1VtVnpaV0Z5ClkyZ2dSM0p2ZFhBeEZUQVRCZ05WQkFNVERFbFRVa2NnVW05dmRDQllNVEFlRncweU5EQXpNVE13TURBd01EQmEKRncweU56QXpNVEl5TXpVNU5UbGFNRE14Q3pBSkJnTlZCQVlUQWxWVE1SWXdGQVlEVlFRS0V3MU1aWFFuY3lCRgpibU55ZVhCME1Rd3dDZ1lEVlFRREV3TlNNVE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUUNsWjNDTjBGYUJaQlVYWWMyNUJ0U3RHWkNNSmxBM21CWmprbFRiMmN5RUJaUHMwK3dJRzZCZ1VVTkkKZlN2SFNKYWV0QzNhbmNnbk8xZWhuNnZ3MWc3VURqREtiNXV4MGRha25USStXRTQxYjBWWWFIRVgvRDdZWFlLZwpMN0pSYkxBYVhiaFp6alZseUl1aHJ4QTMvK09jWGNKSkZ6VC9qQ3VMamZDOGNTeVREQjBGeExySHphckpYbnpSCnlRSDNuQVAyL0FwZDlOcDc1dHQyUW5EcjlFMGkyZ0IzYjliSlh4ZjkyblV1cFZjTTl1cGN0dUJ6cFdqUG9YVGkKZFlKK0VKL0I5YUxyQWVrNHNRcEV6TlBDaWZWSk5ZSUtOTE1jNllqQ1IwNkNEZ28yOEVkUGl2RXBCSFhhemVHYQpYUDllblppVnVwcEQwRXFpRndVQkJERFRNck9QQWdNQkFBR2pnZmd3Z2ZVd0RnWURWUjBQQVFIL0JBUURBZ0dHCk1CMEdBMVVkSlFRV01CUUdDQ3NHQVFVRkJ3TUNCZ2dyQmdFRkJRY0RBVEFTQmdOVkhSTUJBZjhFQ0RBR0FRSC8KQWdFQU1CMEdBMVVkRGdRV0JCVG5xNThQTERPZ1U5TmVUM2pJc29RT085YVNNekFmQmdOVkhTTUVHREFXZ0JSNQp0Rm5tZTdibDVBRnpnQWlJeUJwWTl1bWJiakF5QmdnckJnRUZCUWNCQVFRbU1DUXdJZ1lJS3dZQkJRVUhNQUtHCkZtaDBkSEE2THk5NE1TNXBMbXhsYm1OeUxtOXlaeTh3RXdZRFZSMGdCQXd3Q2pBSUJnWm5nUXdCQWdFd0p3WUQKVlIwZkJDQXdIakFjb0JxZ0dJWVdhSFIwY0RvdkwzZ3hMbU11YkdWdVkzSXViM0puTHpBTkJna3Foa2lHOXcwQgpBUXNGQUFPQ0FnRUFVVGRZVXFFaW16VzdUYnJPeXBMcUNmTDdWT3dZZi9RNzlPSDVjSExDWmVnZ2ZRaERjb25sCms3S2doOGIwdmkrL1h1V3U3Q044bi9VUGVnMXZvM0crdGFYaXJyeXR0aFFpbkFIR3djL1VkYk95Z0phOXp1QmMKVnlxb0gzQ1hUWERJblQrOGErYzNhRVZNSjJTdCtwU240ZWQrV2tEcDhpanNpanZFeUZ3RTQ3aHVsVzBMdHpqZwo5Zk9WNVBtcmcvenhXYlJ1TCtrMERCREhFSmVubkNzQWVuN2MzNVBteDdqcG1KL0h0Z1JoY256MHlqU0J2eUl3CjZMMVFJdXBrQ3YyU0JPRFQveEREM2dmUVF5S3Y2cm9WNEcyRWhmRXlBc1dwbW9qeGpDVUNHaXlnOTdGdkR0bS8KTksyTFNjOWx5Ykt4QjczSTIrUDJHM0NhV3B2dnBBaUhDVnUzMGpXOEdDeEtkZmhzWHRuSXkyaW1za1FxVloybQowUG14b2JiMjhUdWNyN3hCSzdDdHd2UHJiNzlvczd1MlhQM081ZjliL0g2NkdOeVJyZ2xSWGxyWWpJMW9HWUwvCmY0STFuL1NndXNkYTZXdkE2QzE5MGt4alUxNVkxMm1IVTQrQnh5UjljeDJoaEdTOWZBak1aS0pzczI4cXh2ejYKQXh1NENhRG1STlpwSy9wUXJYRjE3eVhDWGttRVdndlNPRVp5Nlo5cGNiTElWRUdja1YvaVZlcTBBT28ycGtnOQpwNFFSSXkwdEsyZGlSRU5MU0YyS3lzRndiWTZCMjZCRmVGczN2MXNZVlJoRlc5bkxrT3JRVnBvckNTMEt5Wm1mCndWRDg5cVNUbG5jdExjWm5JYXZqS3NLVXUxbkExaVUweVlNZFllcEtSN2xXYm53aGR4M2V3b2s9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K", + "key": "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlKS0FJQkFBS0NBZ0VBeks4OHNSUmtadUlWdklMTzFycjd4bENyTEh6MnR1YklTVkFyU1VISXd6MVo0ZlRwCjFkeFZBaWtxdUVRenJWMWhmeUl2ek50YUhQMXJpYlBiQ3U4Nzh4MjB1c1pCUWZGS1ZUaytqUGJJMWJOTG1Kdm0KZkxwZXFCSXF1VlMyN2oyR2pNZkl3eEJJOU1wUDJlaTI5VDdFU1lsdlBpNlErWmZSSXo3R2NMNWFuWEtkZ1JNZApuTWlGRU1CTTZKLzJBdVczcXFtbTBKZFdSejROQTNkSzhFSG1NeVJ6OVY1ODBLM0JsZTlIN0ZnbGpwR1JSUmlZCnhmaFRwS28xUmxRbHZvbEphb0tMa2Y2b2lVbUp6SXpDSkVrTkp5SGdNSGtyRnlncEFWTmZUKzF1Tk9XTUFuSGsKUW5VdzJ2bWtTWGg3aFhmQ3J0bkp5OVp1T1pvaXF0bFdtQkUxaDZXNVlwbDd4dkNMQkxlR3dDb0h0SDVZWmNwMgpxRUlWbXdKSnh2VUlPS3JEam1ObkNYSW5BelNUanVGdjJKT0hLbks3NWZ6TWRyRHZab2RVNXhpT0FkR3dOQXd3Ck9xSFpnVkhNRVExanladGNLSm5NOHAwSVM1bEQ4R2N4T29PaEFpMW1VNDFMVEtRd2VaWDdjK1BaQXFXZmV4Ky8KMGJkUHFzem9WdDJiV1UrckFJM1pKSTFRVHZlNzFnOFNUaWRpaHNLSHBDYTk4ODY5YVdrS2pnWnB5WTVDcXBlNQpiTlYxODZqUFdpRmRPZmRIUTd3cmVLRnZCUWlzeFVzYnBOaUx3MmNZSWtnRE5pc1dTakdpa2JnaVk4OW52K2hsCjNBQ09RMEhsTkljR1lndTAwRS8xZmhsL2IxUGY0R1EvUkgvcGRXanE3VUl0a3ovNXc3aHpnVlRtbkkwQ0F3RUEKQVFLQ0FnQU85emhSQVhSK3FoR1YvZlRlQzZaT1FzQVhyTlhLd2ljRXpVRXpYOUlzUDRSUjUxU1Qva0pnSUVVNwo5UThMQ0pmZHZ0REN0U1MzWkxkUXhtV09vMUNLT0xMUVpHeUpkeXhtWXphQ202WkwrQ1BmM2FmZk1tSVEvcTVBCm4vZENoaDJDbGdOZWNXejZrUCtBZEZBWGZUTXRUSHZMOVI5RTZqU1hCdTNMMzFXUk1lOHJiS1ZoMXE2dk8zYWsKSEd4dkFqTFYzamxFQXJ5MkJHYlpMMjJJUk14dVJnME5RWThvdWhVOGNxTUJhM3JvVHhackVldUlGaEN2a09mNwo0MjB1UlJKQ2h6Q2M0ZW1hdm9pK0x3TzZIOXh5N3dkWjhNVkl5NUM0eExFeEtMQU93YWtZYnhGaTQxNUpUaFY3ClBDUEF1ckdMTFU2VHRYTCs4R1gyZ1M3VGV5bldlYjRPNTQ2VFpRK3Z4V1hRVS9QWGlVYVl5RStQUlRBZDdScjkKSEJvb3UwTVpZSkdGWU4wRDR2RUVOQkNXWjhJc3lLcjFmc2gvWUtrazlzeWJ5VEVYUHBWaWM2cDduS0hWNTJDVgo4Vk43M25Mb3hOa3JFZjRFeFgzMkxFN2dXVDJHdnNJTlpYQzBwREx3Vmg5cWp1NWNFNWU3MU1sNHMyZ0RlREhaCjBBZGVpM1kyd0VwWHdPcklzTmo0TzQwODN0SGVoT2Iva3B4M2VyTzJqWFBxeTIwN253MkdCTnlpSDdSMFR0RzQKNUUzUSt0VGdNcTd0WTFvMnFKVU1wbzJqMGl3c0w0bVpLSE5oUThUSTFlWjR2RXRnb3JqVXF1WUMzUVo5eHNPcwpSR2ZVTUxEWTk4SHVONW0wUGNoTk9XTTNQVXFlY0haNkUzMGdOdzRTdGhWajFycTZkUUtDQVFFQXpkNFpmNjRLCnY4MmkwdzJ5R2JFeFRtanRabkszOE5qUjUxbTIwZ1d2Y0JRTEptUkU2OStXTGtoeDJLVVUrMnZKejBENUpGTEEKNnliY25wQm54WWh1cUNXTi9IdHFvaStRTzE2clNjTWZlSGU4R2Y1eTljSE8vWTk3R0EwdUNwZUVsYitZaDFqQQpPaVBobTAzc0FLY28vcEUydDJ1MmF4cHVYVlM3RXRHTTF1QVhJYnhKcUdNRFloKzBWQUJ0YUxmRDZidkRQNUF6CndjQUI3ZnRtWEdwaWFzeGM1Zk5PbTE0NDczQWxBN2FaVVB3M0d3Y3c0WG5aak1DcjArbVRyM3ZoTkV5aGdya2kKL1JBbHJmZXJMQVo2eTF6M0ordFRrUktBMkdrV0lGSjNKcEVOc2haZFdPcWtJdWZWVUdtYzdJVEl0UHFBU1JragpMRzNXYy83eFNhNklyd0tDQVFFQS9vZGlrcVZUeS9kSVFUMTYwOUgyRmlxL1FnMFdCdmVkc1BLb25jd2RyelA0CnRHalg4MWNmN0swWTJpbmQ1SVFQakdkZnJmWGtiTmlqdWg1aE5CaDBBd0tkK0Z6OUxkZHVUYklWbncwNy9USngKdEg5UktscHFnMExxczF6YmYyRkIzcTlOWkJqM2xCTDBZOG0ybXRISUhFZUpnQjVOcVlqYzVzcmhtbWh0cnl1ZQp6YytENTdWV2dMSSt5WWlRbUJrQzZrZ0Z5WERDM00vY3Q2dklXNGx0bVN1UEF4ck91VWJHUDh3YUxZQmtkWGlGCjFLaGZ4cVY0YitWZHdMYXpTRExBTHJRV1ZlY0NSSzhmMmVaY09ONFIwNjI2MHBCaXVmaHVWRlkwL0NNUDlHVlAKSDRSa21ESkpobkROeTNFdXp4NXN5c0dGcXV0bTg5UTd4Wlo5enhqRmd3S0NBUUVBZ21MOCsyVWI0Y2M0TFR3cgpaU0pZL0RSd3g4WTR3ZzVSUTVvS3RKSnRQeXN5dEtvbERNK2Jxc3l2Ym11QUVvMStVQW55d2hLM3BUZ0QyMW5TCm44VjljSG40cDhUekVLM1hTQUw1c2NvbmtJRWxYY0ZPeG1CdDNTS1c3L0RKREdSUzBSVjhZWnpRZ3dKZXphSlkKcTBFME1hZC9aRVNRVU4xNHNSd05NQ29RYmJlWWJ3RjJGWFJBbkZGQVFVUFVCOUw3L25teGUveTFDeTIxQ3ltQwo5MTFaNEJKM2RCeloySVdnd2VYaFM2ekhCZ2Y0VHVJTEQ0UEJTZWh0NjlXd2VDQ1p6aW9LMFdTNHlGY0Z4bDFxCnlJT0NHbk5UQnJHQlNBelVGanpZaXJnd1J2andGNjhhaUVwMGtyY0szOWRFVUhqNU5jYkNvWW1PUVlGL3BnLysKZXBCVWVRS0NBUUJEZGVxZ1o0VlFPQmhFZ21EOXAxYU1CWVJ2b3p4RldIZkpJR2VrZXljYStyRmVUN044NFlpcQptQzVRRkd5bFZvTXdlVzJZaytXWkc4bzVXRGYzTU12K3lFREtSUXN0alQzRkJnQkpDWjd1dXVIOEx3cDZLVUMxCnpaU2JPVzlMMGFFOXZrVEsxUHM1bWRTQVprUXB3SlJET29xdEZGc05KaU0yWUd0dkcyS0czUTdZQ2JveVBaUFIKeEd4enllaFpCN2dJRkZMRVUwaXljYjFVU1FsdmlYc3M3NmlWOEJMK2RFMnpOd3R4SitoNFlodEdnK0h1cW9qRApUNDJMdUdESUwvdFQ1Wk5ON1U1aW1lL2ROdnNXYjNWV0gyTzJ6Mkg3WEdjUm4wK256RHM4VVdXcE90UFdxdTFsCjNwd000ZERBUUpZaEh5Mm9ZWUFGL0NoamRFR2dGRGExQW9JQkFDdSs3SzlUZFYvMUp1Q3UrS0xXc20zcU43UFEKazNpRjJqYWVPVS9XQVRhUjhUdGhQa2N5T2liRmRWNUlqd0k0V1dEZy9MTnljUWNwdkcySDdtOWcxQysrSzRBbwp3WUNYMWNsRVk1RjhpUlY0bmVFY3gza3VHZWY4QmR5bTdJdzBwK1hyVzhLWjdyYXJQUWlINVRkK0dkdWVkYWhTCmtZd3k4Y1c3aXJKN1pxTkN1cUdpdHlJeS9zM3liYjA1dW9idCtTYXRVU2dzMUJZa01ZbnJGejNtNXpOeGw0TWEKRE1YRTlNQWtFMUlZMFU1U2ZCcUc5emJ3TUhNZTVFdWp4RTczdkJ3ZHBMRFRUc2dBNmNtNUhsWUc4emlwUlQrUApkT0N5dWVHYTFOZWxER0tUOXJRSVlVOEdQQ0hvUEFTYmpoWTZxMjR5bHBwWE1jQjEvMGU2dTZZbURuOD0KLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0K", + "Store": "default" } ] } diff --git a/traefik.yml b/traefik.yml index bd801c0..98f7ff3 100644 --- a/traefik.yml +++ b/traefik.yml @@ -7,6 +7,8 @@ api: providers: docker: + watch: true + network: traefik # Do not expose every container automatically exposedByDefault: false diff --git a/wg-easy/compose.yml b/wg-easy/compose.yml new file mode 100644 index 0000000..c959372 --- /dev/null +++ b/wg-easy/compose.yml @@ -0,0 +1,40 @@ +services: + wg-easy: + image: ghcr.io/wg-easy/wg-easy + container_name: wg-easy + restart: unless-stopped + volumes: + - ./etc_wireguard:/etc/wireguard + environment: + # Required settings + - WG_HOST=wg.riverrooks.dev + + # Optional settings + - WG_PORT=51820 # WireGuard UDP port + - WG_DEFAULT_DNS=1.1.1.1 + - WG_ALLOWED_IPS=10.8.0.0/24 + + cap_add: + - NET_ADMIN + - SYS_MODULE + sysctls: + - net.ipv4.conf.all.src_valid_mark=1 + - net.ipv4.ip_forward=1 + + # Ports: We map the VPN port (UDP) directly to the host. + # The Web UI (51821) is handled by Traefik labels instead. + ports: + - "51820:51820/udp" + + networks: + - traefik + + labels: + - "traefik.enable=true" + - "traefik.http.routers.wg-easy.rule=Host(`wg.riverrooks.dev`)" + - "traefik.http.routers.wg-easy.entrypoints=websecure" + - "traefik.http.routers.wg-easy.tls.certresolver=myresolver" + - "traefik.http.services.wg-easy.loadbalancer.server.port=51821" +networks: + traefik: + external: true diff --git a/wg-easy/docker-compose.yml b/wg-easy/docker-compose.yml deleted file mode 100644 index dbaf255..0000000 --- a/wg-easy/docker-compose.yml +++ /dev/null @@ -1,56 +0,0 @@ -volumes: - etc_wireguard: - -services: - wg-easy: - #environment: - # Optional: - # - PORT=51821 - # - HOST=0.0.0.0 - # - INSECURE=false - - image: ghcr.io/wg-easy/wg-easy:15 - container_name: wg-easy - networks: - wg: - ipv4_address: 10.42.42.42 - ipv6_address: fdcc:ad94:bacf:61a3::2a - volumes: - - etc_wireguard:/etc/wireguard - - /lib/modules:/lib/modules:ro - ports: - - "51820:51820/udp" - - "51821:51821/tcp" - restart: unless-stopped - cap_add: - - NET_ADMIN - - SYS_MODULE - # - NET_RAW # ⚠️ Uncomment if using Podman - sysctls: - - net.ipv4.ip_forward=1 - - net.ipv4.conf.all.src_valid_mark=1 - - net.ipv6.conf.all.disable_ipv6=0 - - net.ipv6.conf.all.forwarding=1 - - net.ipv6.conf.default.forwarding=1 - labels: - - "traefik.enable=true" - - "traefik.http.routers.wg-easy.rule=Host(`wg.riverrooks.dev`)" - - "traefik.http.routers.wg-easy.entrypoints=websecure" - - "traefik.http.routers.wg-easy.service=wg-easy" - - "traefik.http.services.wg-easy.loadbalancer.server.port=51821" - - "traefik.docker.network=traefik" - networks: - traefik: {} - -networks: - wg: - driver: bridge - enable_ipv6: true - ipam: - driver: default - config: - - subnet: 10.42.42.0/24 - - subnet: fdcc:ad94:bacf:61a3::/64 - - traefik: - external: true diff --git a/whoami.yml b/whoami.yml index 9b93526..9cbd088 100644 --- a/whoami.yml +++ b/whoami.yml @@ -5,13 +5,13 @@ services: restart: unless-stopped labels: - "traefik.enable=true" - - "traefik.http.routers.whoami.rule=Host(`whoami.riverrooks.dev`) || Host(`whoami.riverrooks.art`)" + - "traefik.http.routers.whoami.rule=Host(`whoami.riverrooks.dev`) || Host(`whoami.riverrooks.art`) || Host(`10.8.0.1`)" - "traefik.http.routers.whoami.entrypoints=websecure" - - "traefik.http.routers.whoami.tls.certresolver=myresolver" + - "traefik.http.routers.whoami.tls.certresolver=basic-letsencrypt" networks: - - proxy + - traefik networks: - proxy: + traefik: external: true