Compare commits

..

46 Commits

Author SHA1 Message Date
5d7dee1473 added auth api svc 2025-12-10 16:33:31 +05:30
bdd72afdfe fixes 2025-11-29 23:17:43 +05:30
7c09bdd065 fixes 2025-11-29 23:04:10 +05:30
ae74a83cde fixes 2025-11-29 23:01:47 +05:30
12a5c599ec fixes 2025-11-29 22:57:02 +05:30
4c0ea160ea fixes 2025-11-29 22:53:55 +05:30
244e22cc48 fixes 2025-11-29 22:37:15 +05:30
2318b19100 allow games cors 2025-11-29 22:32:40 +05:30
55a3a6da9a added games routing 2025-11-29 19:08:35 +05:30
8eb818b23d nakama web, rest, ws added 2025-11-29 17:30:08 +05:30
7eff45f082 correct terminologies 2025-11-29 16:01:18 +05:30
6c8a560f8b added postgres and pdadmin 2025-11-29 15:57:02 +05:30
59e5aeef95 coverage api 2025-11-03 20:47:39 +05:30
3bbf7c6a55 added missing middleware for blogs prefix 2025-11-03 02:34:40 +05:30
998638b941 api and blog prefix 2025-11-03 01:59:30 +05:30
86403951c0 mongo express 2025-11-03 00:06:30 +05:30
c4758de6d6 removed mongo tls 2025-11-03 00:04:11 +05:30
1fa5b32068 mongo db 2025-11-02 14:46:53 +05:30
254e8018f4 docs 2025-11-02 01:39:08 +05:30
9c505596a1 devpi (#4)
Reviewed-on: #4
Co-authored-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
Co-committed-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
2025-11-01 12:44:37 +00:00
0b8e4af7a7 Merge branch 'main' of gitea:services/traefik 2025-11-01 16:34:35 +05:30
fa0c314e4f added blog page (#3)
Reviewed-on: #3
Co-authored-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
Co-committed-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
2025-11-01 11:04:28 +00:00
987d497c3e Merge branch 'main' of gitea:services/traefik 2025-10-30 02:11:58 +05:30
ace2033024 bazarr-app-init (#2)
Reviewed-on: #2
Co-authored-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
Co-committed-by: Vishesh 'ironeagle' Bangotra <aetoskia@gmail.com>
2025-10-29 20:41:32 +00:00
c144e4af62 gitea to git (#1)
Reviewed-on: #1
Co-authored-by: Aetos Skia <aetoskia@gmail.com>
Co-committed-by: Aetos Skia <aetoskia@gmail.com>
2025-10-21 18:46:19 +00:00
75189b7ecc homepage on server pi too 2025-10-22 00:02:59 +05:30
ee08b6b8e9 entrypoint error and moving services to server pi 2025-10-21 17:26:18 +05:30
3cf22bbfd8 added netdata with auth 2025-10-12 15:21:27 +05:30
0e042156dd moved the comment header to proper place 2025-10-12 15:20:57 +05:30
053deb9447 removed iframe middleware 2025-10-10 16:28:10 +05:30
0652a9e5a1 allow qbit iframe 2025-10-10 16:13:37 +05:30
c903d95405 enabled ssh on 222 via traefik 2025-10-04 17:17:10 +05:30
581d7b2e75 removed extra cert files 2025-10-04 16:03:12 +05:30
f3ca37e27e mounting log 2025-10-04 15:46:52 +05:30
bf1c970e94 added cert and key file 2025-10-04 15:43:48 +05:30
114389549b full chain 2025-10-01 23:03:16 +05:30
938d38a317 removed svc to gitea instead of noop 2025-10-01 22:17:39 +05:30
2776ede002 added svc to gitea instead of noop 2025-10-01 22:15:25 +05:30
8328598969 reverted internal routing through traefik for SSL 2025-10-01 21:37:41 +05:30
a7be0b617f internal routing through traefik for SSL 2025-10-01 21:30:00 +05:30
0b4d1177c1 cleanup 2025-10-01 16:01:01 +05:30
f5a9a1feea access and info logs 2025-10-01 15:59:33 +05:30
7d8939f496 landing page config 2025-10-01 15:52:48 +05:30
98ad47b963 correct redirect by duplicate http and https services 2025-10-01 15:48:13 +05:30
65771f5602 duplicate middleware error fixes 2025-10-01 15:42:46 +05:30
5eb2743110 redirect http to https 2025-10-01 15:41:30 +05:30
3 changed files with 499 additions and 9 deletions

View File

@@ -13,7 +13,8 @@ services:
- "./traefik.yaml:/etc/traefik/traefik.yaml:ro" - "./traefik.yaml:/etc/traefik/traefik.yaml:ro"
- "./dynamic:/etc/traefik/dynamic:ro" - "./dynamic:/etc/traefik/dynamic:ro"
- "./letsencrypt:/letsencrypt" - "./letsencrypt:/letsencrypt"
- "/home/aetos/registry/auth:/auth:ro" # Basic auth folder - "/home/aetos/registry/auth:/auth:ro"
- "/var/log/traefik:/var/log/traefik"
networks: networks:
- backend - backend
extra_hosts: extra_hosts:

View File

@@ -1,14 +1,45 @@
# ----------------------
# TCP (SSH) Routers
# ----------------------
tcp:
routers:
gitea-ssh:
entryPoints:
- ssh
service: gitea-ssh
rule: "HostSNI(`*`)" # SSH does not use SNI
tls: false
services:
gitea-ssh:
loadBalancer:
servers:
- address: "private-pi:222"
# ----------------------
# HTTP Routers & Middlewares
# ----------------------
http: http:
middlewares: middlewares:
basic-auth: basic-auth:
basicAuth: basicAuth:
usersFile: /auth/htpasswd usersFile: /auth/htpasswd
redirect-to-https:
redirectScheme:
scheme: https
permanent: true
websocket-headers: websocket-headers:
headers: headers:
customRequestHeaders: customRequestHeaders:
Connection: "Upgrade" Connection: "Upgrade"
Upgrade: "websocket" Upgrade: "websocket"
# # Preserve auth headers for WS
# accessControlAllowHeaders:
# - Authorization
# - Sec-Websocket-Protocol
# - Sec-Websocket-Key
dcr-cors: dcr-cors:
headers: headers:
@@ -25,7 +56,267 @@ http:
- Content-Type - Content-Type
accessControlMaxAge: 1728000 accessControlMaxAge: 1728000
nakama-cors:
headers:
accessControlAllowOriginList:
- "https://games.aetoskia.com"
accessControlAllowMethods:
- GET
- POST
- PUT
- DELETE
- OPTIONS
accessControlAllowHeaders:
- Authorization
- Content-Type
accessControlMaxAge: 1728000
blog-api-strip:
stripPrefix:
prefixes:
- "/blogs"
coverage-api-strip:
stripPrefix:
prefixes:
- "/coverage"
routers: routers:
# ----------------------
# HTTP routers for redirect
# ----------------------
www-http:
rule: "Host(`www.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
blog-http:
rule: "Host(`blog.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
games-http:
rule: "Host(`games.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
# Dashboard
traefik-dashboard-http:
rule: "Host(`traefik.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
plex-http:
rule: "Host(`plex.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
sonarr-http:
rule: "Host(`sonarr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
radarr-http:
rule: "Host(`radarr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
bazarr-http:
rule: "Host(`bazarr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
prowlarr-http:
rule: "Host(`prowlarr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
jellyseerr-http:
rule: "Host(`jellyseerr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
ombi-http:
rule: "Host(`ombi.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
qbit-http:
rule: "Host(`qbit.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
gitea-http:
rule: "Host(`git.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
docs-http:
rule: "Host(`docs.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
drone-http:
rule: "Host(`drone.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
dcr-http:
rule: "Host(`dcr.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
registry-http:
rule: "Host(`registry.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
pypiserver-http:
rule: "Host(`pip.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
netdata-http:
rule: "Host(`netdata.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
portainer-http:
rule: "Host(`portainer.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
mongo-express-http:
rule: "Host(`mongo.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
pgadmin-http:
rule: "Host(`postgres.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
api-http:
rule: "Host(`api.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
nakama-http:
rule: "Host(`nakama.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
auth-api-http:
rule: "Host(`auth.aetoskia.com`)"
entryPoints:
- web
middlewares:
- redirect-to-https
service: noop@internal
# ----------------------
# HTTPS routers
# ----------------------
# Landing Page
www-https:
rule: "Host(`www.aetoskia.com`)"
entryPoints:
- websecure
service: www-svc
tls:
certResolver: aetoskia
middlewares:
# - basic-auth
- websocket-headers
blog:
rule: "Host(`blog.aetoskia.com`)"
entryPoints:
- websecure
service: blog-svc
tls:
certResolver: aetoskia
games:
rule: "Host(`games.aetoskia.com`)"
entryPoints:
- websecure
service: games-svc
tls:
certResolver: aetoskia
# Dashboard # Dashboard
traefik-dashboard: traefik-dashboard:
rule: "Host(`traefik.aetoskia.com`)" rule: "Host(`traefik.aetoskia.com`)"
@@ -37,7 +328,7 @@ http:
middlewares: middlewares:
- basic-auth - basic-auth
# Media Services # Media
plex: plex:
rule: "Host(`plex.aetoskia.com`)" rule: "Host(`plex.aetoskia.com`)"
entryPoints: entryPoints:
@@ -62,6 +353,22 @@ http:
tls: tls:
certResolver: aetoskia certResolver: aetoskia
bazarr:
rule: "Host(`bazarr.aetoskia.com`)"
entryPoints:
- websecure
service: bazarr-svc
tls:
certResolver: aetoskia
prowlarr:
rule: "Host(`prowlarr.aetoskia.com`)"
entryPoints:
- websecure
service: prowlarr-svc
tls:
certResolver: aetoskia
jellyseerr: jellyseerr:
rule: "Host(`jellyseerr.aetoskia.com`)" rule: "Host(`jellyseerr.aetoskia.com`)"
entryPoints: entryPoints:
@@ -88,9 +395,9 @@ http:
middlewares: middlewares:
- websocket-headers - websocket-headers
# Codebase Services # Codebase
gitea: gitea:
rule: "Host(`gitea.aetoskia.com`)" rule: "Host(`git.aetoskia.com`)"
entryPoints: entryPoints:
- websecure - websecure
service: gitea-svc service: gitea-svc
@@ -99,6 +406,16 @@ http:
middlewares: middlewares:
- websocket-headers - websocket-headers
docs:
rule: "Host(`docs.aetoskia.com`)"
entryPoints:
- websecure
service: docs-svc
tls:
certResolver: aetoskia
middlewares:
- websocket-headers
drone: drone:
rule: "Host(`drone.aetoskia.com`)" rule: "Host(`drone.aetoskia.com`)"
entryPoints: entryPoints:
@@ -126,10 +443,26 @@ http:
service: registry-svc service: registry-svc
tls: tls:
certResolver: aetoskia certResolver: aetoskia
# middlewares:
# - basic-auth pypiserver:
rule: "Host(`pip.aetoskia.com`)"
entryPoints:
- websecure
service: pypiserver-svc
tls:
certResolver: aetoskia
# Monitoring # Monitoring
netdata:
rule: "Host(`netdata.aetoskia.com`)"
entryPoints:
- websecure
service: netdata-svc
tls:
certResolver: aetoskia
middlewares:
- basic-auth
portainer: portainer:
rule: "Host(`portainer.aetoskia.com`)" rule: "Host(`portainer.aetoskia.com`)"
entryPoints: entryPoints:
@@ -138,7 +471,93 @@ http:
tls: tls:
certResolver: aetoskia certResolver: aetoskia
mongo-express:
rule: "Host(`mongo.aetoskia.com`)"
entryPoints:
- websecure
service: mongo-express-svc
tls:
certResolver: aetoskia
pgadmin:
rule: "Host(`postgres.aetoskia.com`)"
entryPoints:
- websecure
service: pgadmin-svc
tls:
certResolver: aetoskia
blog-api:
rule: "Host(`api.aetoskia.com`) && PathPrefix(`/blogs`)"
entryPoints:
- websecure
service: blog-api-svc
tls:
certResolver: aetoskia
middlewares:
- blog-api-strip
coverage-api:
rule: "Host(`api.aetoskia.com`) && PathPrefix(`/coverage`)"
entryPoints:
- websecure
service: coverage-api-svc
tls:
certResolver: aetoskia
middlewares:
- coverage-api-strip
nakama:
rule: "Host(`nakama.aetoskia.com`)"
# rule: "Host(`nakama.aetoskia.com`) && !PathPrefix(`/ws`)"
entryPoints:
- websecure
service: nakama-svc
tls:
certResolver: aetoskia
middlewares:
- nakama-cors
nakama-ws:
rule: "Host(`nakama.aetoskia.com`) && PathPrefix(`/ws`)"
entryPoints:
- websecure
service: nakama-svc
tls:
certResolver: aetoskia
middlewares:
- websocket-headers
auth-api:
rule: "Host(`auth.aetoskia.com`)"
entryPoints:
- websecure
service: auth-api-svc
tls:
certResolver: aetoskia
services: services:
# ----------------------
# HTTP Services
# ----------------------
# Landing Page
www-svc:
loadBalancer:
servers:
- url: "http://server-pi:3001"
# Blog
blog-svc:
loadBalancer:
servers:
- url: "http://server-pi:3002"
# Games
games-svc:
loadBalancer:
servers:
- url: "http://server-pi:3003"
# Media # Media
plex-svc: plex-svc:
loadBalancer: loadBalancer:
@@ -155,6 +574,16 @@ http:
servers: servers:
- url: "http://server-pi:7878" - url: "http://server-pi:7878"
bazarr-svc:
loadBalancer:
servers:
- url: "http://server-pi:6767"
prowlarr-svc:
loadBalancer:
servers:
- url: "http://server-pi:9696"
jellyseerr-svc: jellyseerr-svc:
loadBalancer: loadBalancer:
servers: servers:
@@ -176,23 +605,71 @@ http:
servers: servers:
- url: "http://private-pi:6002" - url: "http://private-pi:6002"
docs-svc:
loadBalancer:
servers:
- url: "http://server-pi:6007"
drone-svc: drone-svc:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://private-pi:6003" - url: "http://server-pi:6003"
dcr-svc: dcr-svc:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://private-pi:6005" - url: "http://server-pi:6005"
registry-svc: registry-svc:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://private-pi:6001" - url: "http://server-pi:6001"
pypiserver-svc:
loadBalancer:
servers:
- url: "http://server-pi:6006"
# Monitoring # Monitoring
netdata-svc:
loadBalancer:
servers:
- url: "http://private-pi:7001"
portainer-svc: portainer-svc:
loadBalancer: loadBalancer:
servers: servers:
- url: "http://private-pi:7002" - url: "http://private-pi:7002"
mongo-express-svc:
loadBalancer:
servers:
- url: "http://private-pi:8001"
pgadmin-svc:
loadBalancer:
servers:
- url: "http://private-pi:8002"
# ----------------------
# API
# ----------------------
blog-api-svc:
loadBalancer:
servers:
- url: "http://server-pi:9001"
coverage-api-svc:
loadBalancer:
servers:
- url: "http://server-pi:9002"
auth-api-svc:
loadBalancer:
servers:
- url: "http://server-pi:9003"
nakama-svc:
loadBalancer:
servers:
- url: "http://server-pi:7350"

View File

@@ -3,6 +3,12 @@ entryPoints:
address: ":80" address: ":80"
websecure: websecure:
address: ":443" address: ":443"
ssh:
address: ":22"
mongo:
address: ":27017"
postgres:
address: ":5432"
providers: providers:
file: file:
@@ -14,6 +20,12 @@ api:
log: log:
level: INFO level: INFO
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
bufferingSize: 100
format: json
certificatesResolvers: certificatesResolvers:
aetoskia: aetoskia: