diff --git a/.gitignore b/.gitignore index 0f3a7d6..3b58e8d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,41 @@ dashboard_authfile access.log certs/ +# Created by https://www.toptal.com/developers/gitignore/api/macos, +# Edit at https://www.toptal.com/developers/gitignore?templates=macos, + +#!! ERROR: is undefined. Use list command to see defined gitignore types !!# + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +# End of https://www.toptal.com/developers/gitignore/api/macos, diff --git a/README.md b/README.md index e69de29..3e73b06 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,41 @@ +# Gbanyan's Exposed Self-hosted Service Traefik Configuration + +## Preface + +Principle: + +* Low cost to maintain and interfere +* Privacy info hidden design +* Flexibility and Extensible + +## Introduction + +Traefik is an open-source Edge Router that makes publishing your services a fun experience. It provides powerful features like automatic HTTPS, load balancing, and more. + +In this project, Traefik provides: + +* Automatic SSL/TLS certificates from Let's Encrypt when each new site is added through docker container label or dynamic.yml. (Cloudflare API) +* Docker Container Label Configuration (Docker Provider) +* Reverse Proxy with Dynamic Routing, and flexibility for manully add local service + +## Configuration + +### Overview + +The configuration is split into several files: + +- `docker-compose.yml`: Defines the services, networks, and volumes. +- `traefik.yml`: Main Traefik configuration file. +- `dynamic.yml`: Directory containing dynamic configuration for different services. +- `.env`: For DNS Challenge API, in thie project Cloudflare is adopted +- `dashboare_authfile`: For Traefik dashboard basic auth, use the command `htpasswd -nb user pass` to generate + +Docker Container Label Example, please see other self-hosted docker-compose.yaml + +## Future To-do + +* Already contain the cloudflarewarp traefik plugin to pass the real ip behind the Cloudflare CDN network, But still don't know to correctly apply it. +* Crowdsec or fail2ban integration + + +