adding plex and dynmic route

This commit is contained in:
Garry
2026-02-23 21:35:45 +01:00
parent 4cf90a23fa
commit 36a01d947a
7 changed files with 58 additions and 9 deletions

View File

@@ -17,7 +17,7 @@ services:
- /etc/localtime:/etc/localtime:ro
labels:
- traefik.enable=true
- traefik.docker.network=traefik
- traefik.docker.network=frontend
- traefik.http.services.gitea_web.loadBalancer.server.port=3000
- traefik.http.routers.gitea_https.service=gitea_web
- traefik.http.routers.gitea_https.rule=Host(`git.sebastiangedigk.com`)

View File

@@ -11,8 +11,6 @@ services:
- frontend
labels:
- "traefik.enable=true"
- "traefik.http.routers.nginx-http.rule=Host(`nginx.home.sebastiangedigk.com`)"
- "traefik.http.routers.nginx-http.entrypoints=web"
- "traefik.http.routers.nginx-https.tls=true"
- "traefik.http.routers.nginx-https.tls.certresolver=cloudflare"
- "traefik.http.routers.nginx-https.entrypoints=websecure"

21
plex/docker-compose.yml Normal file
View File

@@ -0,0 +1,21 @@
---
services:
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
networks:
- frontend
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- VERSION=docker
- PLEX_CLAIM= #optional
volumes:
- /volumes/extremessd/plex/plex/library:/config
- /volumes/extremessd/plex/tvseries:/tv
- /volumes/extremessd/plex/movies:/movies
restart: unless-stopped
networks:
frontend:
external: true

View File

@@ -84,6 +84,14 @@
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR0akNDQXp1Z0F3SUJBZ0lTQldBWGhLeDFjaFh3MW1DVFlWclBWRnhuTUFvR0NDcUdTTTQ5QkFNRE1ESXgKQ3pBSkJnTlZCQVlUQWxWVE1SWXdGQVlEVlFRS0V3MU1aWFFuY3lCRmJtTnllWEIwTVFzd0NRWURWUVFERXdKRgpPREFlRncweU5qQXlNakF4TWpRMU5EZGFGdzB5TmpBMU1qRXhNalExTkRaYU1DY3hKVEFqQmdOVkJBTVRIR2RwCmRDNW9iMjFsTG5ObFltRnpkR2xoYm1kbFpHbG5heTVqYjIwd1dUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUIKQndOQ0FBUkxjajNBdG9oNDgzOEhEa2Jyc250YWY2dHR4dVhuYUowY3FXbTYwdXBrbU0wMTJybjNrSis5ams2bgo5YmZpQ2cyY2xYVUQ2NWRqanFUdEFBZEJpelBDbzRJQ09qQ0NBall3RGdZRFZSMFBBUUgvQkFRREFnZUFNQk1HCkExVWRKUVFNTUFvR0NDc0dBUVVGQndNQk1Bd0dBMVVkRXdFQi93UUNNQUF3SFFZRFZSME9CQllFRkFOWGxQYjEKTkJILzlzQ3BCR2FXQlNJdEFRUkRNQjhHQTFVZEl3UVlNQmFBRkk4TkU2TDJMbjdSVUd3ekdEaGRXWTRqY3BISwpNRElHQ0NzR0FRVUZCd0VCQkNZd0pEQWlCZ2dyQmdFRkJRY3dBb1lXYUhSMGNEb3ZMMlU0TG1rdWJHVnVZM0l1CmIzSm5MekJBQmdOVkhSRUVPVEEzZ2h4bmFYUXVhRzl0WlM1elpXSmhjM1JwWVc1blpXUnBaMnN1WTI5dGdoZG4KYVhRdWMyVmlZWE4wYVdGdVoyVmthV2RyTG1OdmJUQVRCZ05WSFNBRUREQUtNQWdHQm1lQkRBRUNBVEF1QmdOVgpIUjhFSnpBbE1DT2dJYUFmaGgxb2RIUndPaTh2WlRndVl5NXNaVzVqY2k1dmNtY3ZNVEEwTG1OeWJEQ0NBUVFHCkNpc0dBUVFCMW5rQ0JBSUVnZlVFZ2ZJQThBQjNBRW1jbTJuZUhYenMvRGJlellka3ByaGJyd3FIZ0JuUlZWTDcKNmVzcDNmakRBQUFCbkh0TFMwNEFBQVFEQUVnd1JnSWhBT3A2cWlmYTFtRWFmTmxTcUJPUkFqUjQyYzZvclhSdgpYNStPZ2NNWFlwVTZBaUVBb3hJZ3diQ0V1cjRzVmFLV0ViVnBKNU1uZU5KRjhBbWZIM1VBaGxvU1UxVUFkUUFPClY1Uzg4NjZwUGpNYkxKa0hzL2VRMzV2Q1BYRXlKZDBocVNXc1ljVk9JUUFBQVp4N1MwdEVBQUFFQXdCR01FUUMKSUdUOEFnaFM0amhGdTRDZmtTdkxyMXRyejVZdmMzeFByWnREZElucTF5TXBBaUJtMlpCVkNoRC9oVkhML3ZxNQplQ0JmQkVNcHp3eWh3Z2hveWY4N0tKS2E3ekFLQmdncWhrak9QUVFEQXdOcEFEQm1BakVBaVl2NmVtNkVqbVR2Cnc4Q2tFa1ZyZTJPQmtxUCszaUh0aWQybEJqelE3ek5tZjI4bkJ2TUgvNG5kNGtvR09uTGlBakVBM0txZ09XTmsKOWJ6Q2pLQ0ZDTXU0ZHo5YWE2V2hyYmZkbkFiM3EvRmFzY0Faa2g0WFhEWkp0bmRQTEErbjd1SlYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVWakNDQWo2Z0F3SUJBZ0lRWTVXVFk4Sk9jSUp4V1JpL3c5ZnRWakFOQmdrcWhraUc5dzBCQVFzRkFEQlAKTVFzd0NRWURWUVFHRXdKVlV6RXBNQ2NHQTFVRUNoTWdTVzUwWlhKdVpYUWdVMlZqZFhKcGRIa2dVbVZ6WldGeQpZMmdnUjNKdmRYQXhGVEFUQmdOVkJBTVRERWxUVWtjZ1VtOXZkQ0JZTVRBZUZ3MHlOREF6TVRNd01EQXdNREJhCkZ3MHlOekF6TVRJeU16VTVOVGxhTURJeEN6QUpCZ05WQkFZVEFsVlRNUll3RkFZRFZRUUtFdzFNWlhRbmN5QkYKYm1OeWVYQjBNUXN3Q1FZRFZRUURFd0pGT0RCMk1CQUdCeXFHU000OUFnRUdCU3VCQkFBaUEySUFCTkZsOGw3YwpTN1FNQXB6U3N2cnU2V3lyT3E0NG9mVFVPVEl6eFVMVXpETU1OTWNoSUpCd1hPaGlMeHh4czBMWGViNUdEY0hiClI2RVRvTWZmZ1Naak85U05IZlk5Z2pNeTl2UXI1L1dXT3JRVFp4aDdhejZOU05ucTN1MnViVDZIVEtPQitEQ0IKOVRBT0JnTlZIUThCQWY4RUJBTUNBWVl3SFFZRFZSMGxCQll3RkFZSUt3WUJCUVVIQXdJR0NDc0dBUVVGQndNQgpNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3SFFZRFZSME9CQllFRkk4TkU2TDJMbjdSVUd3ekdEaGRXWTRqCmNwSEtNQjhHQTFVZEl3UVlNQmFBRkhtMFdlWjd0dVhrQVhPQUNJaklHbGoyNlp0dU1ESUdDQ3NHQVFVRkJ3RUIKQkNZd0pEQWlCZ2dyQmdFRkJRY3dBb1lXYUhSMGNEb3ZMM2d4TG1rdWJHVnVZM0l1YjNKbkx6QVRCZ05WSFNBRQpEREFLTUFnR0JtZUJEQUVDQVRBbkJnTlZIUjhFSURBZU1CeWdHcUFZaGhab2RIUndPaTh2ZURFdVl5NXNaVzVqCmNpNXZjbWN2TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElDQVFCbkUwaEdJTktzQ1lXaTBYeDF5Z3hENXFpaEVqWjAKUkkzdFRaejF3dUFUSDNad1lQSXA5N2tXRWF5YW5EMWowY0RoSVl6eTRDa0RvMmpCOEQ1dDBhNnpaV3pscjk4ZApBUUZOaDh1S0prSUhkTFNoeStuVXllWnhjNWJOZU1wMUx1MGdTekU0TWNxZm1OTXZJcGVpd1dTWU85dzgyT2I4Cm90dlhjTzJKVVlpM3N2SElXUm0zKzcwN0RVYkw1MVhNY1kyaVpkbENxNFdhOW5idWszV1RVNGdyNkxZOE16VkEKYURRRzIrNFUzZUo2cVVGMTBiQm5SMXV1VnlEWXM5Umhyd3VjUlZuZnVEajI5Q01MVHNwbE01ZjV3U1Y1aFVwbQpVd3AvdlY3TTR3NGFHdW50NzRrb1g3MW40RWRhZ0NzTC9ZazUrbUFRVTArdHVlMEpPZkFWL1I2dDFrK1hrOXMyCkhNUUZlb3hwcGZ6QVZDMDRGZEc5TStBQzJKV3htRlN0NkJDdWgzQ0VleTNmRTUyUXJqOVlNNzVydHZJanNtLzEKSGwrdS8vV3F4bnUxWlE0anBhK1ZwdVppR09sV3JxU1A5ZW9nZE9oQ0dpc255ZXdXSndSUU9xSzE2d2lHeVplUgp4cy9CZWt3NjV2d1NJYVZrQnJ1UGlUZk1PbzBaaDRnVmE4L3FKZ01iSmJ5cnd3Rzk3ei9QUmdtTEtDRGw4ejNkCnRBMFo3cXE3ZnRhMEdsMjR1eXVCMDVkcUk1SjFMdkF6S3VXZElqVDF0UDhxQ294U0UveHBpeDhoWDJkdDNoKy8KanVqVWdGUEZaMEVWWjB4U3lCTlJGM01ib0dabllYRlV4cE5qVFdQS3BhZ0RISlFtcXJBY0RtV0puTXNGWTNqUwp1MWlndjNPZWZuV2pTUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K",
"key": "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSVBhQjAxeHF2WmdDdTA3QmZxSVZhTHdXRVY3RkszWjMzbDFoT2pibkN0dGtvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFUzNJOXdMYUllUE4vQnc1RzY3SjdXbityYmNibDUyaWRIS2xwdXRMcVpKak5OZHE1OTVDZgp2WTVPcC9XMzRnb05uSlYxQSt1WFk0Nms3UUFIUVlzendnPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=",
"Store": "default"
},
{
"domain": {
"main": "plex.home.sebastiangedigk.com"
},
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURwVENDQXlxZ0F3SUJBZ0lTQllNdEd1dXZZVGxNQjFYczg1c1BnbWZGTUFvR0NDcUdTTTQ5QkFNRE1ESXgKQ3pBSkJnTlZCQVlUQWxWVE1SWXdGQVlEVlFRS0V3MU1aWFFuY3lCRmJtTnllWEIwTVFzd0NRWURWUVFERXdKRgpPREFlRncweU5qQXlNak14T1RJeU16VmFGdzB5TmpBMU1qUXhPVEl5TXpSYU1DZ3hKakFrQmdOVkJBTVRIWEJzClpYZ3VhRzl0WlM1elpXSmhjM1JwWVc1blpXUnBaMnN1WTI5dE1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMEQKQVFjRFFnQUVLZXVoMUJZMjN2L1Y2WXBlNDdCa1Y0ell3YnVpR0dhaW5iNDhDM2hsczQwSXZReWdjVDFUQXhubwppdkNQNExPVXdCZWF1VnVyQjN3Q2xCK3RXZ0JGcUtPQ0FpZ3dnZ0lrTUE0R0ExVWREd0VCL3dRRUF3SUhnREFUCkJnTlZIU1VFRERBS0JnZ3JCZ0VGQlFjREFUQU1CZ05WSFJNQkFmOEVBakFBTUIwR0ExVWREZ1FXQkJRYzVzcXgKYkZqRi84SFkva29wQXVxaDN1bEdkekFmQmdOVkhTTUVHREFXZ0JTUERST2k5aTUrMFZCc014ZzRYVm1PSTNLUgp5akF5QmdnckJnRUZCUWNCQVFRbU1DUXdJZ1lJS3dZQkJRVUhNQUtHRm1oMGRIQTZMeTlsT0M1cExteGxibU55CkxtOXlaeTh3S0FZRFZSMFJCQ0V3SDRJZGNHeGxlQzVvYjIxbExuTmxZbUZ6ZEdsaGJtZGxaR2xuYXk1amIyMHcKRXdZRFZSMGdCQXd3Q2pBSUJnWm5nUXdCQWdFd0xRWURWUjBmQkNZd0pEQWlvQ0NnSG9ZY2FIUjBjRG92TDJVNApMbU11YkdWdVkzSXViM0puTHpjd0xtTnliRENDQVFzR0Npc0dBUVFCMW5rQ0JBSUVnZndFZ2ZrQTl3QjFBQTVYCmxMenpycWsrTXhzc21RZXo5NURmbThJOWNUSWwzU0dwSmF4aHhVNGhBQUFCbkl3cHBPMEFBQVFEQUVZd1JBSWcKQ1JsbFlPRVYwdDJSVkVZbGx6OXdjWDZIL1R3YS80emlZTEMzYVJDeWx2VUNJR1lqaHNtUXgzc01ZZTFSOG1zcwpDczFTZzFvOU85QlpST1VMcnhxS0pJR1BBSDRBcGNsNGtsMVhSaGVDaHczWWlXWUxYRlZraTMwQVFQTHNCMmhSCjBZaHBHZmNBQUFHY2pDbW9iUUFJQUFBRkFETTFmM0FFQXdCSE1FVUNJQW1mNU8vRkV6MkR4RG56WkpJQjEydk0KdUtBK1VvMWlaWDlOSXVuZzk3d3FBaUVBbzdxRU1vV0Q5bkdtQXBCUS9DL0s5RUE3WEFXVUh4RXU3Wk81aG1FLwpwa013Q2dZSUtvWkl6ajBFQXdNRGFRQXdaZ0l4QU5Ea2pPWXBsWHVuYzJrYXRCbGI2Y080emJITGt6MVZzZXFCCmFtZTVpSlhRYklEUHpxeFk3KytjbG5NV01pbEpYZ0l4QUpKeDRIMnQ3aDRNYjVTaVBxempCYzc4T1owY0J0RHgKdGlvR3JwcHp6dEdkbWtLamhSNTlpL2k0cDZRTXd4SmtCQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlFVmpDQ0FqNmdBd0lCQWdJUVk1V1RZOEpPY0lKeFdSaS93OWZ0VmpBTkJna3Foa2lHOXcwQkFRc0ZBREJQCk1Rc3dDUVlEVlFRR0V3SlZVekVwTUNjR0ExVUVDaE1nU1c1MFpYSnVaWFFnVTJWamRYSnBkSGtnVW1WelpXRnkKWTJnZ1IzSnZkWEF4RlRBVEJnTlZCQU1UREVsVFVrY2dVbTl2ZENCWU1UQWVGdzB5TkRBek1UTXdNREF3TURCYQpGdzB5TnpBek1USXlNelU1TlRsYU1ESXhDekFKQmdOVkJBWVRBbFZUTVJZd0ZBWURWUVFLRXcxTVpYUW5jeUJGCmJtTnllWEIwTVFzd0NRWURWUVFERXdKRk9EQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQk5GbDhsN2MKUzdRTUFwelNzdnJ1Nld5ck9xNDRvZlRVT1RJenhVTFV6RE1NTk1jaElKQndYT2hpTHh4eHMwTFhlYjVHRGNIYgpSNkVUb01mZmdTWmpPOVNOSGZZOWdqTXk5dlFyNS9XV09yUVRaeGg3YXo2TlNObnEzdTJ1YlQ2SFRLT0IrRENCCjlUQU9CZ05WSFE4QkFmOEVCQU1DQVlZd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSEF3SUdDQ3NHQVFVRkJ3TUIKTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFBd0hRWURWUjBPQkJZRUZJOE5FNkwyTG43UlVHd3pHRGhkV1k0agpjcEhLTUI4R0ExVWRJd1FZTUJhQUZIbTBXZVo3dHVYa0FYT0FDSWpJR2xqMjZadHVNRElHQ0NzR0FRVUZCd0VCCkJDWXdKREFpQmdnckJnRUZCUWN3QW9ZV2FIUjBjRG92TDNneExta3ViR1Z1WTNJdWIzSm5MekFUQmdOVkhTQUUKRERBS01BZ0dCbWVCREFFQ0FUQW5CZ05WSFI4RUlEQWVNQnlnR3FBWWhoWm9kSFJ3T2k4dmVERXVZeTVzWlc1agpjaTV2Y21jdk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQ0FRQm5FMGhHSU5Lc0NZV2kwWHgxeWd4RDVxaWhFalowClJJM3RUWnoxd3VBVEgzWndZUElwOTdrV0VheWFuRDFqMGNEaElZenk0Q2tEbzJqQjhENXQwYTZ6Wld6bHI5OGQKQVFGTmg4dUtKa0lIZExTaHkrblV5ZVp4YzViTmVNcDFMdTBnU3pFNE1jcWZtTk12SXBlaXdXU1lPOXc4Mk9iOApvdHZYY08ySlVZaTNzdkhJV1JtMys3MDdEVWJMNTFYTWNZMmlaZGxDcTRXYTluYnVrM1dUVTRncjZMWThNelZBCmFEUUcyKzRVM2VKNnFVRjEwYkJuUjF1dVZ5RFlzOVJocnd1Y1JWbmZ1RGoyOUNNTFRzcGxNNWY1d1NWNWhVcG0KVXdwL3ZWN000dzRhR3VudDc0a29YNzFuNEVkYWdDc0wvWWs1K21BUVUwK3R1ZTBKT2ZBVi9SNnQxaytYazlzMgpITVFGZW94cHBmekFWQzA0RmRHOU0rQUMySld4bUZTdDZCQ3VoM0NFZXkzZkU1MlFyajlZTTc1cnR2SWpzbS8xCkhsK3UvL1dxeG51MVpRNGpwYStWcHVaaUdPbFdycVNQOWVvZ2RPaENHaXNueWV3V0p3UlFPcUsxNndpR3laZVIKeHMvQmVrdzY1dndTSWFWa0JydVBpVGZNT28wWmg0Z1ZhOC9xSmdNYkpieXJ3d0c5N3ovUFJnbUxLQ0RsOHozZAp0QTBaN3FxN2Z0YTBHbDI0dXl1QjA1ZHFJNUoxTHZBekt1V2RJalQxdFA4cUNveFNFL3hwaXg4aFgyZHQzaCsvCmp1alVnRlBGWjBFVloweFN5Qk5SRjNNYm9HWm5ZWEZVeHBOalRXUEtwYWdESEpRbXFyQWNEbVdKbk1zRlkzalMKdTFpZ3YzT2VmbldqU1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"key": "LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUhZZzIxTzN5R1RtK05XZ0ZSU1R1QTRvTGRnMHgwZUNTM24rY1JsVVJnaEpvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFS2V1aDFCWTIzdi9WNllwZTQ3QmtWNHpZd2J1aUdHYWluYjQ4QzNobHM0MEl2UXlnY1QxVApBeG5vaXZDUDRMT1V3QmVhdVZ1ckIzd0NsQit0V2dCRnFBPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=",
"Store": "default"
}
]
}

View File

@@ -9,17 +9,25 @@ entryPoints:
permanent: true
websecure:
address: :443
transport:
respondingTimeouts:
readTimeout: 600s
idleTimeout: 600s
ssh:
address: ":22"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
file:
directory: /etc/traefik/dynamic
watch: true
api:
insecure: false
insecure: true
dashboard: true
log:
level: DEBUG
level: INFO
accesslog:
filepath: /var/log/traefik.log
metrics:

View File

@@ -28,7 +28,7 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
- ./config/traefik.yaml:/etc/traefik/traefik.yaml:ro
- .data/certs/:/var/traefik/certs/:rw
# - ./dynamic:/dynamic:ro
- ./dynamic:/etc/traefik/dynamic:ro
# Traefik Dynamic configuration via Docker labels
labels:
@@ -36,7 +36,7 @@ services:
- "traefik.enable=true"
# Dashboard router
- "traefik.http.routers.dashboard.rule=Host(`traefik.home.sebastiangedigk.com`) || Host(`traefik.sebastiangedigk.com`)"
- "traefik.http.routers.dashboard.rule=Host(`traefik.home.sebastiangedigk.com`)"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.tls=true"
@@ -45,5 +45,5 @@ services:
# Basicauth middleware
- "traefik.http.middlewares.dashboard-auth.basicauth.users=garry1704:$$apr1$$UcPofYFu$$4mN3Py/9BbX3GnUiti5yu."
- "traefik.http.routers.dashboard.middlewares=dashboard-auth@docker"
#- "traefik.http.middlewares.dashboard-auth.basicauth.users=garry1704:$$apr1$$UcPofYFu$$4mN3Py/9BbX3GnUiti5yu."
#- "traefik.http.routers.dashboard.middlewares=dashboard-auth@docker"

View File

@@ -0,0 +1,14 @@
http:
routers:
plex:
rule: "Host(`plex.home.sebastiangedigk.com`)"
service: plex
entryPoints:
- websecure
tls:
certResolver: cloudflare
services:
plex:
loadBalancer:
servers:
- url: http://host.docker.internal:32400