www.{$MAIN_DOMAIN} {
	reverse_proxy homepage:3000
}

{$MAIN_DOMAIN} {
	redir https://www.{host}{uri} permanent
}

homepage.{$MAIN_DOMAIN} {
	redir https://www.{$MAIN_DOMAIN}{uri} permanent
}

public.{$MAIN_DOMAIN} {
	root * /public_data
	file_server browse
}

wordpress.{$MAIN_DOMAIN} {
	root * /var/www/html
	php_fastcgi wordpress:9000

	file_server
	encode zstd gzip

	@disallowed {
		path /xmlrpc.php
		path *.sql
		path /wp-content/uploads/*.php
	}

	rewrite @disallowed '/index.php'

	respond /uploads/*.php 404

	header {
		# disable FLoC tracking
		Permissions-Policy interest-cohort=()

		# enable HSTS
		Strict-Transport-Security max-age=31536000;

		# disable clients from sniffing the media type
		X-Content-Type-Options nosniff

		# clickjacking protection
		# X-Frame-Options DENY

		# Disable powerful features we don't need
		Permissions-Policy "geolocation=(), camera=(), microphone=() interest-cohort=()"
	}
}

it-tools.{$MAIN_DOMAIN} {
	# Load balance between 2 instances
	reverse_proxy {
		to it-tools0:80 it-tools1:80
		lb_policy round_robin
		lb_retries 3
		lb_try_interval 1s
	}
}

omni-tools.{$MAIN_DOMAIN} {
	# Load balance between 2 instances
	reverse_proxy {
		to omni-tools0:80 omni-tools1:80
		lb_policy round_robin
		lb_retries 3
		lb_try_interval 1s
	}
}

uptimekuma.{$MAIN_DOMAIN} {
	reverse_proxy uptime-kuma:3001
}

torrent.{$MAIN_DOMAIN} {
	reverse_proxy qbittorrent:8080
}

qbittorrent.{$MAIN_DOMAIN} {
	redir https://torrent.{$MAIN_DOMAIN} permanent
}

transmission.{$MAIN_DOMAIN} {
	reverse_proxy transmission:9091
}

gitea.{$MAIN_DOMAIN} {
	redir https://git.{$MAIN_DOMAIN} permanent
}

git.{$MAIN_DOMAIN} {
	reverse_proxy gitea:3000
}

forgejo.{$MAIN_DOMAIN} {
	reverse_proxy forgejo:3000
}

jellyfin.{$MAIN_DOMAIN} {
	reverse_proxy jellyfin:8096
}

transfer.{$MAIN_DOMAIN} {
	reverse_proxy psitransfer:3000
}

psitransfer.{$MAIN_DOMAIN} {
	redir https://transfer.{$MAIN_DOMAIN}{uri} permanent
}

picoshare.{$MAIN_DOMAIN} {
	reverse_proxy picoshare:4001
}

syncthing.{$MAIN_DOMAIN} {
	reverse_proxy syncthing:8384 {
		header_up Host {upstream_hostport}
	}
}

privatebin.{$MAIN_DOMAIN} {
	reverse_proxy privatebin:8080
}

pastebin.{$MAIN_DOMAIN} {
	redir https://privatebin.{$MAIN_DOMAIN} permanent
}

yacht.{$MAIN_DOMAIN} {
	reverse_proxy yacht:8000
}

projectsend.{$MAIN_DOMAIN} {
	reverse_proxy projectsend:80
}

dufs.{$MAIN_DOMAIN} {
	reverse_proxy dufs:5000
}

stirlingpdf.{$MAIN_DOMAIN} {
	reverse_proxy stirlingpdf:8080
}

memos.{$MAIN_DOMAIN} {
	reverse_proxy memos:5230
}

open-webui.{$MAIN_DOMAIN} {
	reverse_proxy open-webui:8080
}

link.{$MAIN_DOMAIN} {
	# TODO: Use service with database
	# Friendly links
	redir /gnous https://gnous.eu permanent
	redir /proxy https://imagisphe.re permanent
	redir /patch https://spaceint.fr permanent
	redir /greep https://greep.fr permanent

	# Youtube links
	redir /rickroll https://www.youtube.com/watch?v=dQw4w9WgXcQ permanent
	redir /babyshark https://www.youtube.com/watch?v=XqZsoesa55w permanent
	redir /cowcowcow https://www.youtube.com/watch?v=FavUpD_IjVY permanent
	redir /badapple https://www.youtube.com/watch?v=FtutLA63Cp8 permanent
	redir /macdo https://www.youtube.com/watch?v=Q16KpquGsIc permanent
	redir /superiser https://www.youtube.com/watch?v=srnyVw-OR0g permanent
	redir /daicon https://youtu.be/-840keiiFDE?si=zIPIokytxcnGw5fJ&t=162 permanent
	redir /scp https://www.youtube.com/watch?v=FGCDndN20G8 permanent
	redir /scpfb https://youtu.be/9zrKk-1E8zM?si=8R_ZBVG3GzMUYOe8&t=36 permanent
	redir /mother https://youtu.be/w3NyycHR3fE?si=rNNSW9zYv0bcO2Eu permanent
	redir /cpu https://www.youtube.com/watch?v=y39D4529FM4 permanent
	redir /lechanteur https://youtu.be/HXdP15Ubu6M?si=N0qvhqo--3pmSGmb permanent
	redir /nohero https://youtu.be/4DuUejBkMqE?si=bkB8G6PHwCp56jxb permanent
	redir /indochine https://youtu.be/M7X6oYg6iro?si=ZRarm3qamTJ8vIJ0 permanent
	redir /bna https://youtu.be/3T3ofoKfEoY?si=_7HkGQXMC7rBng8O permanent
	redir /jojo https://youtu.be/U0TXIXTzJEY?si=2acWJWX06ju2w4uj permanent
	redir /patapon https://youtu.be/H6CbNHLHkmk?si=ZvU8SzrOK-oCUXT5 permanent
	redir /darkwater https://youtu.be/Tr8ZgF4Dc0E?si=CEOmm2J6Jp5rdbbt permanent
	redir /train https://youtu.be/l8mScKWj3kQ?si=BV07uJ9eP3kzV9Kl permanent
	redir /jdg https://www.youtube.com/@joueurdugrenier permanent
}
