docker-compose.yml
· 1.9 KiB · YAML
Raw
services:
vpn:
container_name: plex-vpn
image: jordanpotter/wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
net.ipv4.conf.all.src_valid_mark: 1
net.ipv6.conf.all.disable_ipv6: 0
volumes:
## Your WireGuard configuration file. Can be from any provider that allows you to generate WireGuard configurations for connections (e.g. Mullvad, AirVPN)
## The VPN service does not need to support port forwarding.
- ./my-vpn-provider.conf/etc/wireguard/vpn.conf
ports:
## Expose the Plex port locally, so the host can reverse proxy it. In my case I have NGINX installed directly on the host, and I basically just: `proxy_pass http://127.0.0.1:32400;`
## If you run NGINX Proxy Manager or similar, you will likely have to figure out slightly different solution
- "127.0.0.1:32400:32400"
restart: unless-stopped
plex:
image: plexinc/pms-docker:latest
container_name: plex
depends_on:
- vpn
## The important line, makes all network traffic for the Plex container go through the VPN container.
network_mode: "service:vpn"
environment:
## I don't actually remember if these are necessary lmao
- PUID=1000
- PLEX_UID=1000
- PGID=1000
- PLEX_GID=1000
- VERSION=docker
## Claim token, if needed
# - PLEX_CLAIM=claim-rr-blah-blah-blah
volumes:
## Plex configuration/logs/etc.
- ./config:/config
## Change this to where you have your media stored.
- /data/media:/media
restart: unless-stopped
## Expose the [i]GPU to the container. For hardware transcoding
devices:
- /dev/dri:/dev/dri
| 1 | services: |
| 2 | vpn: |
| 3 | container_name: plex-vpn |
| 4 | image: jordanpotter/wireguard |
| 5 | cap_add: |
| 6 | - NET_ADMIN |
| 7 | - SYS_MODULE |
| 8 | sysctls: |
| 9 | net.ipv4.conf.all.src_valid_mark: 1 |
| 10 | net.ipv6.conf.all.disable_ipv6: 0 |
| 11 | volumes: |
| 12 | ## Your WireGuard configuration file. Can be from any provider that allows you to generate WireGuard configurations for connections (e.g. Mullvad, AirVPN) |
| 13 | ## The VPN service does not need to support port forwarding. |
| 14 | - ./my-vpn-provider.conf/etc/wireguard/vpn.conf |
| 15 | ports: |
| 16 | ## Expose the Plex port locally, so the host can reverse proxy it. In my case I have NGINX installed directly on the host, and I basically just: `proxy_pass http://127.0.0.1:32400;` |
| 17 | ## If you run NGINX Proxy Manager or similar, you will likely have to figure out slightly different solution |
| 18 | - "127.0.0.1:32400:32400" |
| 19 | restart: unless-stopped |
| 20 | |
| 21 | plex: |
| 22 | image: plexinc/pms-docker:latest |
| 23 | container_name: plex |
| 24 | depends_on: |
| 25 | - vpn |
| 26 | ## The important line, makes all network traffic for the Plex container go through the VPN container. |
| 27 | network_mode: "service:vpn" |
| 28 | environment: |
| 29 | ## I don't actually remember if these are necessary lmao |
| 30 | - PUID=1000 |
| 31 | - PLEX_UID=1000 |
| 32 | - PGID=1000 |
| 33 | - PLEX_GID=1000 |
| 34 | - VERSION=docker |
| 35 | ## Claim token, if needed |
| 36 | # - PLEX_CLAIM=claim-rr-blah-blah-blah |
| 37 | volumes: |
| 38 | ## Plex configuration/logs/etc. |
| 39 | - ./config:/config |
| 40 | |
| 41 | ## Change this to where you have your media stored. |
| 42 | - /data/media:/media |
| 43 | restart: unless-stopped |
| 44 | ## Expose the [i]GPU to the container. For hardware transcoding |
| 45 | devices: |
| 46 | - /dev/dri:/dev/dri |