feat(terraform): remove websites module and add m3uproxy and nginx modules

- Deleted the websites module from the Terraform configuration.
- Introduced a new m3uproxy module with resources for Kubernetes namespace, secrets, config maps, deployments, services, and cron jobs.
- Added configuration files for m3uproxy, including JSON and playlist resources.
- Created a new nginx module with resources for Kubernetes namespace, services, config maps, deployments, and ingress.
- Added necessary variables for both m3uproxy and nginx modules.
- Updated provider configurations for m3uproxy and nginx modules to specify required versions.
This commit is contained in:
2025-04-27 19:40:16 +02:00
parent 654cf500f9
commit 58fb1ea167
20 changed files with 192 additions and 68 deletions
@@ -1,32 +0,0 @@
{
"port": 8080,
"playlist": "conf/playlist.json",
"epg": "https://m3upt.com/epg",
"default_timeout": 3,
"num_workers": 4,
"scan_time": 43200,
"security": {
"geoip": {
"database": "GeoIP/GeoLite2-Country.mmdb",
"whitelist": [
"PT",
"ST",
"BE"
],
"internal_networks": [
"10.1.0.0/16",
"10.152.183.0/24"
]
},
"allowed_cors_domains": [
"tv.alexpires.me"
]
},
"auth": {
"provider": "file",
"secret_key": "${m3uproxy_secret}",
"settings": {
"file_path": "cache/auth.json"
}
}
}
@@ -1,146 +0,0 @@
{
"providers": {
"m3upt": {
"provider": "file",
"config": {
"source": "https://m3upt.com/iptv"
},
"ignore_tags": {
"media": "true",
"group-title": "Beachcam",
"radio": "true"
}
},
"iptv_be": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/be.m3u"
}
},
"iptv_nl": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/nl.m3u"
}
},
"iptv_pt_samsung": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/pt_samsung.m3u"
}
},
"iptv_nl_samsung": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/nl_samsung.m3u"
}
},
"iptv_uk_rakuten": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/uk_rakuten.m3u"
}
},
"iptv_uk_samsung": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/uk_samsung.m3u"
}
},
"iptv_us_pluto": {
"provider": "file",
"config": {
"source": "https://raw.githubusercontent.com/iptv-org/iptv/master/streams/us_pluto.m3u"
}
}
},
"providers_priority": [
"m3upt",
"iptv_be",
"iptv_nl",
"iptv_nl_samsung",
"iptv_pt_samsung",
"iptv_uk_rakuten",
"iptv_uk_samsung",
"iptv_us_pluto"
],
"overrides": {
"RTP1.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTP2.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"SIC.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"TVI.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTP3.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"SICNoticias.pt": {
"headers": {
"Origin": "https://sicnoticias.pt",
"DNT": "1",
"Connection": "keep-alive"
},
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"CNNPortugal.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTPMemoria.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTPAcores.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTPMadeira.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTPAfrica.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"SICNovelas.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"SICReplay.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"CNNBrasil.br": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"RTPInternacional.pt": {
"http_proxy": "http://proxy-pt.m3uproxy.svc.cluster.local:3128"
},
"Rádio Comercial": {
"disable_remap": true
},
"Rádio Comercial Dance": {
"disable_remap": true
},
"Rádio Comercial By Night": {
"disable_remap": true
},
"Rádio Comercial One Hit Wonders": {
"disable_remap": true
},
"Rádio Comercial Kids": {
"disable_remap": true
},
"Rádio Comercial Portugal": {
"disable_remap": true
},
"Rádio Comercial Brasil": {
"disable_remap": true
},
"Rádio Comercial 90s": {
"disable_remap": true
},
"Rádio Comercial 2000s": {
"disable_remap": true
}
}
}
@@ -1,47 +0,0 @@
acl localnet src 0.0.0.1-0.255.255.255 # RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN)
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access allow localnet
http_access deny all
http_port 3128
dns_v4_first on
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern \/(Packages|Sources)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern \/Release(|\.gpg)$ 0 0% 0 refresh-ims
refresh_pattern \/InRelease$ 0 0% 0 refresh-ims
refresh_pattern \/(Translation-.*)(|\.bz2|\.gz|\.xz)$ 0 0% 0 refresh-ims
refresh_pattern . 0 20% 4320
logfile_rotate 0
via off
forwarded_for delete
follow_x_forwarded_for deny all
pipeline_prefetch on
request_header_access From deny all
request_header_access Server deny all
pid_filename none
access_log stdio:/dev/stdout
cache_log stdio:/dev/stderr
@@ -1,9 +0,0 @@
[Interface]
PrivateKey = ${wireguard_private_key}
Address = ${wireguard_address}
DNS = ${wireguard_dns}
[Peer]
PublicKey = ${wireguard_public_key}
AllowedIPs = ${wireguard_allowed_ips}
Endpoint = ${wireguard_endpoint}