diff --git a/hosts/lightsail-tokyo/Caddyfile b/hosts/lightsail-tokyo/Caddyfile index e8a02fc..8334c07 100644 --- a/hosts/lightsail-tokyo/Caddyfile +++ b/hosts/lightsail-tokyo/Caddyfile @@ -107,3 +107,8 @@ git.ny4.dev { import default reverse_proxy unix//run/forgejo/forgejo.sock } + +rss.ny4.dev { + import default + reverse_proxy localhost:9300 +} diff --git a/hosts/lightsail-tokyo/default.nix b/hosts/lightsail-tokyo/default.nix index 8136dc8..02b9a05 100644 --- a/hosts/lightsail-tokyo/default.nix +++ b/hosts/lightsail-tokyo/default.nix @@ -37,6 +37,9 @@ "searx/environment" = { restartUnits = ["searx.service"]; }; + "miniflux/credentials" = { + restartUnits = ["miniflux.service"]; + }; }; }; @@ -195,80 +198,58 @@ services = let getDesc = pkg: pkg.meta.description; - in [ - { - "Services" = [ - { - "SearXNG" = { - description = getDesc pkgs.searxng; - href = "https://searx.ny4.dev"; - }; - } - { - "Wastebin" = { - description = getDesc pkgs.wastebin; - href = "https://pb.ny4.dev"; - }; - } - { - "Ntfy" = { - description = getDesc pkgs.ntfy; - href = "https://ntfy.ny4.dev/"; - }; - } - { - "Mumble" = { - description = "${getDesc pkgs.mumble} (Connect with tyo0.ny4.dev:64738)"; - }; - } - ]; - } - { - "Private stuff" = [ - { - "Mastodon" = rec { - description = getDesc pkgs.mastodon; - href = "https://mastodon.ny4.dev/"; - widget.type = "mastodon"; - widget.url = href; - }; - } - { - "Matrix" = { - description = getDesc pkgs.element-web; - href = "https://element.ny4.dev/"; - }; - } - { - "PixivFE" = { - description = "A privacy respecting frontend for Pixiv."; - href = "https://pixiv.ny4.dev"; - }; - } - { - "Uptime Kuma" = { - description = getDesc pkgs.uptime-kuma; - href = "https://uptime.ny4.dev/"; - }; - } - { - "Forgejo" = { - description = getDesc pkgs.forgejo; - href = "https://git.ny4.dev/"; - }; - } - ]; - } - { - "Links" = [ - {"Blog".href = "https://blog.ny4.dev/";} - {"GitHub".href = "https://github.com/Guanran928";} - {"Mastodon".herf = "https://mastodon.ny4.dev/@nyancat";} - {"Matrix".href = "https://matrix.to/#/@root:ny4.dev";} - {"Forgejo".href = "https://git.ny4.dev/nyancat";} - ]; - } - ]; + mapAttrsToList' = lib.mapAttrsToList (name: value: {"${name}" = value;}); # also sorts the thing alphabetically + in + mapAttrsToList' { + "Services" = mapAttrsToList' { + "SearXNG" = { + description = getDesc pkgs.searxng; + href = "https://searx.ny4.dev/"; + }; + "Wastebin" = { + description = getDesc pkgs.wastebin; + href = "https://pb.ny4.dev/"; + }; + "Ntfy" = { + description = getDesc pkgs.ntfy; + href = "https://ntfy.ny4.dev/"; + }; + "Mumble" = { + description = "${getDesc pkgs.mumble} (Connect with tyo0.ny4.dev:64738)"; + }; + }; + "Private stuff" = mapAttrsToList' { + "Mastodon" = rec { + description = getDesc pkgs.mastodon; + href = "https://mastodon.ny4.dev/"; + widget.type = "mastodon"; + widget.url = href; + }; + "Matrix" = { + description = getDesc pkgs.element-web; + href = "https://element.ny4.dev/"; + }; + "PixivFE" = { + description = "Privacy respecting frontend for Pixiv"; + href = "https://pixiv.ny4.dev"; + }; + "Uptime Kuma" = { + description = getDesc pkgs.uptime-kuma; + href = "https://uptime.ny4.dev/"; + }; + "Forgejo" = { + description = getDesc pkgs.forgejo; + href = "https://git.ny4.dev/"; + }; + }; + "Links" = mapAttrsToList' { + "Blog".href = "https://blog.ny4.dev/"; + "Forgejo".href = "https://git.ny4.dev/nyancat"; + "GitHub".href = "https://github.com/Guanran928"; + "Mastodon".herf = "https://mastodon.ny4.dev/@nyancat"; + "Matrix".href = "https://matrix.to/#/@nyancat:ny4.dev"; + }; + }; }; services.forgejo = { @@ -276,7 +257,6 @@ database.type = "postgres"; settings = { server = { - # TODO: whats the difference between this and fcgi+unix DOMAIN = "git.ny4.dev"; PROTOCOL = "http+unix"; ROOT_URL = "https://git.ny4.dev/"; @@ -288,6 +268,15 @@ }; }; + services.miniflux = { + enable = true; + adminCredentialsFile = config.sops.secrets."miniflux/credentials".path; + config = { + LISTEN_ADDR = "127.0.0.1:9300"; + BASE_URL = "https://rss.ny4.dev"; + }; + }; + ### Prevents me from bankrupt # https://fmk.im/p/shutdown-aws/ services.vnstat.enable = true; diff --git a/hosts/lightsail-tokyo/secrets.yaml b/hosts/lightsail-tokyo/secrets.yaml index a832d48..ccd0bae 100644 --- a/hosts/lightsail-tokyo/secrets.yaml +++ b/hosts/lightsail-tokyo/secrets.yaml @@ -4,6 +4,8 @@ searx: environment: ENC[AES256_GCM,data:Chtb7yhooCMU+Hfnqdgwpd1w5gI2LZm4cz8d3YRgznjveO/4HOZ54XMdQVDoiC6ukojHfEUxl+3qIG1wi/s29rhxJekHLtWgJ++OUQKW,iv:viGQRoWbaSlRoovBV01Vl/d17eRVeM8CQUHYRWrflNQ=,tag:2QMYVCXON129pRpW3oOQXg==,type:str] pixivfe: environment: ENC[AES256_GCM,data:/Q/rShBXlXkWOOP+7OhKtKTSrp2zNizMaAOyKfWbKgJMHTjNfmMtRuGKRez9KXM5MDIMIF9iJSQ=,iv:whIAkaWiZcZT4HfmJw4qA+fbQ9zHFp+kTuHxQDE3XoU=,tag:FroLTMtNwGlvZw3osftj3A==,type:str] +miniflux: + credentials: ENC[AES256_GCM,data:vYd964LCV4NCZxbuIhdXznsl7n6jMPIFjWvo0tTTm4V3la93MN4DYLUPy4U=,iv:gqBCf7uqigTxdLs8oSd/KkNb56luUDrtrAOxxUuJgUE=,tag:LzniGyWeZxHrpQAaEOQP8A==,type:str] sops: kms: [] gcp_kms: [] @@ -28,8 +30,8 @@ sops: R1ZMMG1jWnljNWl5Nk5MU3RCMlFPYjgKL1ScxzF0D1R18H+oe6dlxUGlL9myHEr3 3HBPoapKCSQ/cT7Xma4bsWD1AVJIf1Ak+MeCs9ItGwKAcnd9JYZ9KA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-07-09T11:50:11Z" - mac: ENC[AES256_GCM,data:kzxia2Bygi0YR24/dJfKZR3jF99IhIGGIZFJnIo5kp7/PZfQE2EbgD5yTFrSX9+Ur5u8a169UVEtveJ+uR59bX3DsjZDPRSWRMmWJodLcZifx+oSSGmhYufC61D3pVa+Jv2mwKf8UTKdb2oQtk/8bNrMuonedX8hPz+wZJQyMD0=,iv:VxBeb5QTaF5snKNtc51XFtwAdydnOyX8CGhxBjyBTQ0=,tag:vQEJJubHv3dRazmr1bAcnQ==,type:str] + lastmodified: "2024-07-10T17:25:33Z" + mac: ENC[AES256_GCM,data:R8V7uckbpDjzukq7W0Tjj3yYCTynU4Ih0C8HiKIf1RQjS0XscJ/3dU5fhalJuODdBNi3aAar0qiX4MJsNexanQxltjJGj01pcHNrM1KUnOPoxmYR8oK64fecQDp8sWahXWfqFFurCsVg1ZHTJM1tMNgbjGDIcTSxZcto/1N3Zwc=,iv:eQge+cAxipyd7kFY7elVATHsymg/JFh9CCYItkkPn0I=,tag:LBR9nNW6RqekGqnLxfyB9w==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.9.0