Personal Homelab
1[Unit]
2Description=3X UI Quadlet
3
4[Container]
5Image=ghcr.io/mhsanaei/3x-ui:latest
6AutoUpdate=registry
7ContainerName=3x-ui
8
9Label="glance.name=3X"
10Label="glance.url=https://3x.${base_domain}"
11Label="glance.description=Xray Web Panel"
12Label="glance.hide=false"
13
14Label="traefik.enable=true"
15Label="traefik.http.routers.3x-ui.rule=Host(`3x.${base_domain}`)"
16Label="traefik.http.routers.3x-ui.service=3x-ui"
17Label="traefik.http.services.3x-ui.loadbalancer.server.port=2053"
18Label="traefik.http.routers.3x-ui.middlewares=anubis@file"
19Label="traefik.http.routers.3x-ui-sub.rule=Host(`3x.${base_domain}`) && (PathPrefix(`/sub/`) || PathPrefix(`/json/`))"
20Label="traefik.http.routers.3x-ui-sub.service=3x-ui-sub"
21Label="traefik.http.services.3x-ui-sub.loadbalancer.server.port=2096"
22
23Volume=/var/mnt/docker/app_data/3x-ui/db:/etc/x-ui:Z
24Volume=/var/mnt/docker/app_data/3x-ui/cert:/root/cert:Z
25
26Network=reverse-proxy.network
27PublishPort=9443:8443/tcp
28PublishPort=9443:8443/udp
29
30[Service]
31TimeoutStartSec=900
32Restart=always
33
34[Install]
35WantedBy=multi-user.target default.target