mytunes
Configuration
Go to https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/do-more-with-tunnels/local-management/create-local-tunnel/ and follow instructions to create a locally-managed tunnel.
# cloudflared/config/config.yml
tunnel: 00000000-0000-0000-0000-000000000000
credentials-file: /.cloudflared/00000000-0000-0000-0000-000000000000.json
ingress:
- hostname: mytunes.example.com
Go to https://dash.cloudflare.com/
Select your domain
Go to DNS > Records
Add a new CNAME record for your newly created tunnel:
| Type |
Name |
Target |
Proxy status |
| CNAME |
* |
00000000-0000-0000-0000-000000000000.cfargotunnel.com |
Proxied |
# crowdsec/.env
BOUNCER_KEY_TRAEFIK = 'changeme' # openssl rand -hex 16
# mytunes-portal/.env
MYTUNES_PORTAL_KEY = 'changeme' # openssl rand -hex 16
BOUNCER_KEY_TRAEFIK = 'changeme' # openssl rand -hex 16
# mytunes-portal/docker-compose.yaml
- traefik.http.routers.mytunes-portal-https.rule=(Host(`mytunes.example.com`)&&Path(`/`))||(Host(`mytunes.example.com`)&&Path(`/_vlc`))
# traefik/config/traefik.yaml
email: "[email protected]"
# traefik/.env
CF_DNS_API_TOKEN = 'changeme' # API token with DNS:Edit permission
PROVIDERS_OIDC_CLIENT_ID = 'changeme' # https://console.developers.google.com/auth/clients
PROVIDERS_OIDC_CLIENT_SECRET = 'changeme'
SECRET = 'changeme' # openssl rand -hex 16
WHITELIST = '[email protected]'
# traefik/docker-compose.yaml
- --rule.mytunes.rule=Host(`mytunes.example.com`)&&Path(`/_vlc`)
# .env
BOUNCER_KEY_TRAEFIK = 'changeme' # openssl rand -hex 16
# docker-compose.yaml
- traefik.http.routers.mytunes-https.rule=Host(`mytunes.example.com`)
Go to https://console.developers.google.com/auth/clients (or any other OIDC provider of your choice)
Create a new OAuth 2.0 Client for mytunes
Select Application type "Web application"
Add https://mytunes.example.com/_oauth to Authorised redirect URIs
ARM-specific adaptions
# traefik/docker-compose.yaml
- image: thomseddon/traefik-forward-auth:v2.2.0
+ image: thomseddon/traefik-forward-auth:2.2.0-arm
Usage
docker network create proxy
docker compose up -d
Open in browser: https://mytunes.example.com/
Development
# traefik/config/traefik.yaml
-# api:
-# dashboard: true
-# insecure: true
+api:
+ dashboard: true
+ insecure: true
# traefik/docker-compose.yaml
# The Web UI (enabled by --api.insecure=true)
- # - "8080:8080"
+ - "8080:8080"
docker compose -f docker-compose.dev.yaml up -d
go test ./...
go run .
Open in VLC: http://localhost:8080/index.m3u