manatee: Expose komga publicly via komga.ppp.pm
This commit is contained in:
@@ -20,6 +20,19 @@
|
|||||||
"--http-timeout=60"
|
"--http-timeout=60"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"komga.ppp.pm" = {
|
||||||
|
dnsProvider = "hetzner";
|
||||||
|
environmentFile = config.age.secrets.hetzner-dns.path;
|
||||||
|
group = "nginx";
|
||||||
|
|
||||||
|
extraLegoFlags = [
|
||||||
|
"--dns.resolvers=1.1.1.1:53,8.8.8.8:53"
|
||||||
|
"--dns.propagation-wait=60s"
|
||||||
|
"--dns-timeout=60"
|
||||||
|
"--http-timeout=60"
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -160,13 +160,13 @@ in
|
|||||||
|
|
||||||
user = {
|
user = {
|
||||||
timers = {
|
timers = {
|
||||||
"update-hetzner-ha-dns" = {
|
"update-hetzner-dns" = {
|
||||||
unitConfig = {
|
unitConfig = {
|
||||||
Description = "updates Hetzner DNS for home-assistant";
|
Description = "updates Hetzner DNS records";
|
||||||
};
|
};
|
||||||
|
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
Unit = "update-hetzner-ha-dns.service";
|
Unit = "update-hetzner-dns.service";
|
||||||
OnCalendar = "*-*-* *:00/30:00";
|
OnCalendar = "*-*-* *:00/30:00";
|
||||||
Persistent = true;
|
Persistent = true;
|
||||||
};
|
};
|
||||||
@@ -176,9 +176,9 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
"update-hetzner-ha-dns" = {
|
"update-hetzner-dns" = {
|
||||||
unitConfig = {
|
unitConfig = {
|
||||||
Description = "updates Hetzner DNS for home-assistant";
|
Description = "updates Hetzner DNS records";
|
||||||
};
|
};
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
@@ -188,38 +188,41 @@ in
|
|||||||
|
|
||||||
path = [
|
path = [
|
||||||
pkgs.curl
|
pkgs.curl
|
||||||
pkgs.coreutils # For `cat`
|
pkgs.coreutils
|
||||||
pkgs.jq
|
pkgs.jq
|
||||||
];
|
];
|
||||||
|
|
||||||
script = ''
|
script = ''
|
||||||
LAST_IP_FILE="/tmp/hetzner-dns-ha-ip"
|
SUBDOMAINS="ha komga"
|
||||||
INTERFACE="enp3s0"
|
INTERFACE="enp3s0"
|
||||||
|
|
||||||
CURRENT_IP=$(curl -s --fail --interface "$INTERFACE" ifconfig.me)
|
CURRENT_IP=$(curl -s --fail --interface "$INTERFACE" ifconfig.me)
|
||||||
|
|
||||||
LAST_IP=""
|
for SUBDOMAIN in $SUBDOMAINS; do
|
||||||
if [[ -f "$LAST_IP_FILE" ]]; then
|
LAST_IP_FILE="/tmp/hetzner-dns-''${SUBDOMAIN}-ip"
|
||||||
LAST_IP=$(cat "$LAST_IP_FILE")
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$CURRENT_IP" == "$LAST_IP" ]]; then
|
LAST_IP=""
|
||||||
echo "IP unchanged, NOOP update."
|
if [[ -f "$LAST_IP_FILE" ]]; then
|
||||||
exit 0
|
LAST_IP=$(cat "$LAST_IP_FILE")
|
||||||
else
|
fi
|
||||||
echo "Updating IP"
|
|
||||||
|
|
||||||
JSON_BODY=$(jq -n --arg ip "$CURRENT_IP" '{records: [{value: $ip}]}')
|
if [[ "$CURRENT_IP" == "$LAST_IP" ]]; then
|
||||||
|
echo "$SUBDOMAIN: IP unchanged, NOOP update."
|
||||||
|
else
|
||||||
|
echo "$SUBDOMAIN: Updating IP"
|
||||||
|
|
||||||
curl \
|
JSON_BODY=$(jq -n --arg ip "$CURRENT_IP" '{records: [{value: $ip}]}')
|
||||||
--fail \
|
|
||||||
-X POST \
|
curl \
|
||||||
-H "Authorization: Bearer $HETZNER_API_TOKEN" \
|
--fail \
|
||||||
-H "Content-Type: application/json" \
|
-X POST \
|
||||||
-d "$JSON_BODY" \
|
-H "Authorization: Bearer $HETZNER_API_TOKEN" \
|
||||||
"https://api.hetzner.cloud/v1/zones/ppp.pm/rrsets/ha/A/actions/set_records" \
|
-H "Content-Type: application/json" \
|
||||||
&& echo $CURRENT_IP > $LAST_IP_FILE
|
-d "$JSON_BODY" \
|
||||||
fi
|
"https://api.hetzner.cloud/v1/zones/ppp.pm/rrsets/''${SUBDOMAIN}/A/actions/set_records" \
|
||||||
|
&& echo $CURRENT_IP > $LAST_IP_FILE
|
||||||
|
fi
|
||||||
|
done
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -47,6 +47,7 @@ in
|
|||||||
server.port = 8002;
|
server.port = 8002;
|
||||||
komga."cors.allowed-origins" = [
|
komga."cors.allowed-origins" = [
|
||||||
"http://manatee:8888"
|
"http://manatee:8888"
|
||||||
|
"https://komga.ppp.pm"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -68,6 +69,16 @@ in
|
|||||||
tryFiles = "$uri $uri/ /komga-reader.html";
|
tryFiles = "$uri $uri/ /komga-reader.html";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
virtualHosts."komga.ppp.pm" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = "komga.ppp.pm";
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://127.0.0.1:8002";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall.allowedTCPPorts = [ 8888 ];
|
networking.firewall.allowedTCPPorts = [ 8888 ];
|
||||||
|
|||||||
Reference in New Issue
Block a user