Skip to content

Instantly share code, notes, and snippets.

@tuananhlai
Created December 26, 2025 14:09
Show Gist options
  • Select an option

  • Save tuananhlai/d601c07d62690dc07af8e4d342db64b2 to your computer and use it in GitHub Desktop.

Select an option

Save tuananhlai/d601c07d62690dc07af8e4d342db64b2 to your computer and use it in GitHub Desktop.
Allow Plex Clients to Discover IPv6-only Media Servers

Allow Plex Clients to Discover IPv6-only Media Servers

As of December 2025, Android and iOS Plex clients aren't able to discover Plex Media Server via IPv6 endpoint (i.e https://[5c76:b38e:5e32:ee45:905a:57c7:81d2:6508]:32400). For this to happen, we need to set up a domain and generate a valid SSL certificate for our server.

This guide is for MacOS users, but it can be adapted to Linux users as well.

Prerequisites

  • A registered domain with DNS management access. This guide assumes that your domain is yourdomain.com.
  • A Plex Media Server publicly accessible via IPv6.
  • DNS Setup: Create an AAAA record for yourdomain.com pointing to your server's IPv6 address.

Method 1: Reverse Proxy with Caddy (Recommended)

This method sets up a Caddy server, which forwards traffic to the local media server and automates the provision and renewal of SSL certificates for your domain.

While this method is simple, if your machine is configured to wake up on network access instead of running 24/7, you may have an issue with accessing the server during sleep. In that case, I would recommend Method 2.

1. Configuration

Install docker on your machine, then create a directory for your configuration and add the following two files:

compose.yml

services:
  caddy:
    image: caddy:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    extra_hosts:
      - "host.docker.internal:host-gateway"

volumes:
  caddy_data:
  caddy_config:

Caddyfile

yourdomain.com {
    reverse_proxy host.docker.internal:32400
}

2. Deployment

  1. Run docker compose up -d.
  2. In the Plex Web UI, navigate to Settings > Network.
  3. Add https://yourdomain.com to the Custom server access URLs field.

Method 2: Custom SSL Certificates

This method configures your Plex Media Server with a custom SSL certificate. With this method, you don't have to deal with an additional reverse proxy, but you are responsible for managing and renewing your domain's SSL certificate.

1. Install dependencies

brew install openssl certbot;

2. Obtain Certificates

Generate your SSL certificates:

sudo certbot certonly --standalone -d yourdomain.com

3. Convert to PKCS12

Replace YOUR_PASSWORD_HERE with a secure password:

sudo openssl pkcs12 -export -out ~/plex_certificate.pfx \
    -certpbe AES-256-CBC -keypbe AES-256-CBC -macalg SHA256 \
    -inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem \
    -in /etc/letsencrypt/live/yourdomain.com/cert.pem \
    -certfile /etc/letsencrypt/live/yourdomain.com/chain.pem \
    -password pass:YOUR_PASSWORD_HERE

sudo chmod 755 ~/plex_certificate.pfx

4. Plex Configuration

Navigate to Settings > Network in Plex and update these fields:

  • Custom certificate location: /Users/[your_username]/plex_certificate.pfx (replace [your_username] with the current username).
  • Custom certificate encryption password: The password used in step 2.
  • Custom certificate domain: yourdomain.com.
  • Custom server access URLs: https://yourdomain.com:32400.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment