From b99dd1514b76367dab39e6f85e9d4c9c587b217c Mon Sep 17 00:00:00 2001 From: ahuston-0 Date: Thu, 15 Aug 2024 23:35:11 -0400 Subject: [PATCH] add nextcloud and postgres to docker Signed-off-by: ahuston-0 --- systems/palatine-hill/docker/default.nix | 31 +++++- .../palatine-hill/docker/nextcloud-image.nix | 84 ++++++++++++++++ systems/palatine-hill/docker/nextcloud.nix | 38 ++++++++ systems/palatine-hill/docker/postgres.nix | 65 +++++++++++++ systems/palatine-hill/secrets.yaml | 97 ++++++++++--------- 5 files changed, 267 insertions(+), 48 deletions(-) create mode 100644 systems/palatine-hill/docker/nextcloud-image.nix create mode 100644 systems/palatine-hill/docker/nextcloud.nix create mode 100644 systems/palatine-hill/docker/postgres.nix diff --git a/systems/palatine-hill/docker/default.nix b/systems/palatine-hill/docker/default.nix index 55e3f0a..1bc23b7 100644 --- a/systems/palatine-hill/docker/default.nix +++ b/systems/palatine-hill/docker/default.nix @@ -6,7 +6,36 @@ }: { - imports = [ ./archiveteam.nix ]; + imports = [ + ./archiveteam.nix + ./docker.nix + ./nextcloud.nix + ]; virtualisation.oci-containers.backend = "docker"; + + # "nextcloud-go-vod-1 radialapps/go-vod" + # "nextcloud-nextcloud-1 nextcloud-nextcloud" + # "nextcloud-redis-1 redis" + + # "rlcraft-mc-1 itzg/minecraft-server:java8" + # "mc-router-mc-router-1 itzg/mc-router" + + # "unifi-controller lscr.io/linuxserver/unifi-network-application:latest" + # "unifi-20-mongodb-1 mongo:7.0" + + # "restic-grafana-1 grafana/grafana:latest" + # "restic-prometheus-1 prom/prometheus:latest" + # "restic-restserver-1 restic/rest-server:latest" + + # "firefly-iii-fidi-1 fireflyiii/data-importer:latest" + # "firefly-iii-app-1 fireflyiii/core:latest" + + # "haproxy-haproxy-1 haproxy:latest" + # "calibre-web lscr.io/linuxserver/calibre-web:latest" + # "glances-glances-1 nicolargo/glances:latest-full" + # "foundry felddy/foundryvtt:11" + + # "Qbit ghcr.io/linuxserver/qbittorrent:latest" + # "Qbitvpn binhex/arch-qbittorrentvpn:latest" } diff --git a/systems/palatine-hill/docker/nextcloud-image.nix b/systems/palatine-hill/docker/nextcloud-image.nix new file mode 100644 index 0000000..d6c8a92 --- /dev/null +++ b/systems/palatine-hill/docker/nextcloud-image.nix @@ -0,0 +1,84 @@ +{ pkgs, ... }: +let + nextcloud-apache = pkgs.dockerTools.pullImage { + imageName = "nextcloud"; + digest = "sha256:2ab0c5de2afd33c55721e69e87bd1667cad6c4550ba0fd0303cfeb7abb260750"; + sha256sum = "11fh4jaz1asiihf2092sh7ma9xm35hmnkafpbjr3igkv8jicsky1"; + finalImageName = "nextcloud"; + finalImageTag = "apache"; + }; +in + +pkgs.dockerTools.buildLayeredImage { + name = "nextcloud-custom"; + tag = "latest"; + fromImage = nextcloud-apache; + runAsRoot = '' + RUN set -ex; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + ffmpeg \ + ghostscript \ + libmagickcore-6.q16-6-extra \ + procps \ + smbclient \ + supervisor \ + # libreoffice \ + ; \ + rm -rf /var/lib/apt/lists/* + + RUN set -ex; \ + \ + savedAptMark="$(apt-mark showmanual)"; \ + \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + libbz2-dev \ + libc-client-dev \ + libkrb5-dev \ + libsmbclient-dev \ + ; \ + \ + docker-php-ext-configure imap --with-kerberos --with-imap-ssl; \ + docker-php-ext-install \ + bz2 \ + imap \ + ; \ + pecl install smbclient; \ + docker-php-ext-enable smbclient; \ + \ + # reset apt-mark's "manual" list so that "purge --auto-remove" will remove all build dependencies + apt-mark auto '.*' > /dev/null; \ + apt-mark manual $savedAptMark; \ + ldd "$(php -r 'echo ini_get("extension_dir");')"/*.so \ + | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' \ + | sort -u \ + | xargs -r dpkg-query --search \ + | cut -d: -f1 \ + | sort -u \ + | xargs -rt apt-mark manual; \ + \ + apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ + rm -rf /var/lib/apt/lists/* + + RUN mkdir -p \ + /var/log/supervisord \ + /var/run/supervisord \ + ; + ''; + copyToRoot = ./supervisord.conf; + config = { + ENV = { + NEXTCLOUD_UPDATE = 1; + }; + CMD = [ + "/usr/bin/supervisord" + "-c" + "/supervisord.conf" + ]; + + }; + +} +# build: nextcloud-dockerfiles/full/apache/ diff --git a/systems/palatine-hill/docker/nextcloud.nix b/systems/palatine-hill/docker/nextcloud.nix new file mode 100644 index 0000000..a301923 --- /dev/null +++ b/systems/palatine-hill/docker/nextcloud.nix @@ -0,0 +1,38 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + nextcloud-image = import ./nextcloud-image.nix; +in +{ + virtualisation.oci-containers.containers = { + nextcloud = { + image = "nextcloud-custom:latest"; + imageFile = nextcloud-image; + hostname = "nextcloud"; + ports = [ + "9999:80" + + ]; + restart = "unless-stopped"; + volumes = [ + "/ZFS/ZFS-primary/nextcloud/nc_data:/var/www/html:z" + "/ZFS/ZFS-primary/nextcloud/nc_php:/usr/local/etc/php" + "/ZFS/ZFS-primary/nextcloud/nc_prehooks:/docker-entrypoint-hooks.d/before-starting" + ]; + extraOption = [ + "--network=haproxy-net" + "--network=postgres-net" + "--network=nextcloud_default" + ]; + dependsOn = [ + + "redis" + ]; + }; + }; +} diff --git a/systems/palatine-hill/docker/postgres.nix b/systems/palatine-hill/docker/postgres.nix new file mode 100644 index 0000000..d10b021 --- /dev/null +++ b/systems/palatine-hill/docker/postgres.nix @@ -0,0 +1,65 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + virtualisation.oci-containers.containers = { + postgres = { + image = "postgres:16"; + user = "600:600"; + volumes = [ + "/ZFS/ZFS-primary/db/postgresql/primary_new:/var/lib/postgresql/data" + "/ZFS/ZFS-primary/db/postgresql/pg_archives:/opt/pg_archives" + ]; + log-driver = "local"; + extraOptions = [ + "--network=postgres-net" + "--health-cmd='pg_isready -U firefly'" + "--health-interval=1s" + "--health-timeout=5s" + "--health-retries=15" + "--shm-size=1gb" + ]; + environmentFiles = [ config.sops.secrets."docker/pg".path ]; + restart = "always"; + }; + + postgres-secondary = { + image = "postgres:16"; + user = "600:600"; + volumes = [ + "/ZFS/ZFS-primary/db/postgresql/primary_new:/var/lib/postgresql/data" + "/ZFS/ZFS-primary/db/postgresql/pg_archives:/opt/pg_archives" + ]; + log-driver = "local"; + extraOptions = [ + "--network=postgres-net" + "--health-cmd='pg_isready -U firefly'" + "--health-interval=1s" + "--health-timeout=5s" + "--health-retries=15" + "--shm-size=1gb" + ]; + environmentFiles = [ config.sops.secrets."docker/pg".path ]; + restart = "always"; + }; + + postgres-adminer = { + image = "adminer/latest"; + user = "600:600"; + restart = "always"; + ports = [ "4191:8080" ]; + dependsOn = [ "postgres" ]; + extraOptions = [ "--network=postgres-net" ]; + }; + }; + sops = { + defaultSopsFile = ../secrets.yaml; + secrets = { + "docker/pg".owner = "docker-service"; + }; + }; + +} diff --git a/systems/palatine-hill/secrets.yaml b/systems/palatine-hill/secrets.yaml index 178b81b..58d5fa3 100644 --- a/systems/palatine-hill/secrets.yaml +++ b/systems/palatine-hill/secrets.yaml @@ -1,19 +1,22 @@ hydra: - environment: ENC[AES256_GCM,data:XUS68hCXWGMCoxxfecspEpFF8sxVJJVAm74ZZJM5/TiMAyzG0VTw17XQOgv+pP5aYABnQ3Rt9KFaxacaljrjFJ44O8qdGCQOi+g5+EpztHAI+yyeWkEqcVrcDKeb0jM0qygBUtyez5aLJyFwT7znqfNi3CHMP+cJTNVUAQkfL3RrU/lNzAZpIJ5tVG5PzDqMLDWMQXiDRICNdp9fUXyGee64bQ1NxGJALmYS9o1YT75e0nCBsIBD50+ChQvOTUfTGfxpG5SbnDGmL0JIUGB3MqM=,iv:TRsVfNxLnMuq5Wvu0ZX4JVHoIXQaj3Li3KsBXmoFiK8=,tag:gGTQo66uzdUBqCuUYHSE4A==,type:str] + environment: ENC[AES256_GCM,data:mved2DvoYDH5eiKym9qVjFYwpdzXns5IlYClWGsMtF4z1MQfJnzjopbZ+S6QqPJlLnukDieDldEep/EAgtwAeBFl1Rc0sMEzZmNcCcS/yZvKiWrq7oPX2khA3X9vb7oLnhO43OOI9E+9JO0f80oU6AN0JiQ2lSdK8NOPZPdcf1+l1qqY01O/0OEr7MCTeqIF1jtb0DCxf6HcJH0y/z35Erp500czj271+az5egBmHOzUCQI0OjsAJj4PjAB+nUt0rbzYySB/tCBHlxK0COyATgo=,iv:jtq7dtwXU5tss0mJ6qXPgTfYPHnH3Mq6tRAmdCudvLo=,tag:RNAsI2gKEjes+Qixd0Jt3w==,type:str] nix-serve: - secret-key: ENC[AES256_GCM,data:dXpfTamvU17kkMwp0DZIktkh/iI96wgcQerEC9G0tdm7tL7NQSlS4giocf9uckXK1JNkK9q7urZznx82ZBV3kaZE8oZKgYtkR5xpHgGsbYgQbLx6gowKfBkPusikFl/BqUvUBLznYsYSkJddXJ4=,iv:yeHyAMY2NxQUyzirU9+ggF1O6kRsrM0lEJCY9U0qJN8=,tag:cSm1Obe6WnpHloF/JleVEA==,type:str] + secret-key: ENC[AES256_GCM,data:wjx3XaApoYfcGu3CceF1mCp4TjLFAcv3REXhRI0ofM5mWHTh4WMDmrnzquGV37t2jzShXXh9nBuwjrA++jjlklSfq4P2NLMo+/sb27dFT00QxZ+bms1idVFDsq2D7A2hKJFvcmp0DjTlUDTsXA4=,iv:woLC5wA6C8f/bWooPyxT62wjAySwtWhyM26eq+5qZxY=,tag:1b8fA2AAnNbzT5KtKsbXMw==,type:str] attic: - secret-key: ENC[AES256_GCM,data:0pVok0M5Ob08BdFBV57Ijr4MW6msdGuvgq7v5lunJocv/sM0u0Cy7ye67+me21YBy4xGqidAfQo0j4OQkn71Z7ouKJGQ6izqOuTvRerBLmY/V3GMnSrBgtb+gjKhwswf/T/WV/I2lc0GTrdiJi6JJC0VL14kJYWRQIdcadeGEoF+cZyzyHWV32TxyJrNlDGFu1aFhjKiHP50aDFxibIPwz1h9+lN6jEGEwsOa29K3gnL9zOmzaoS/F4wXEZlCXNETj6lvCd6Ywt3erkGmCvA4FTzfs/CdW/QcS2GneGUzoCy4NRcxx9dKQ==,iv:4QiN6tupBkIZbVkKt7MyLMiy5z/y0ExAT9xWVBL+pko=,tag:CT4F8y/rObKlIMCwtJk7AA==,type:str] - database-url: ENC[AES256_GCM,data:CrtsSB9KaA+KT9F34eM+z5trjb72wRKKy2LKOWDxBgvVtrNy5jj9c9KPnPCRWue1eABC1FdThKH1,iv:n3n16Qs/s77CxDNHws4lLTJaXx++DpqUrrVDp+Rpj2E=,tag:gkQhzX4gHPRmAQjZKBZF4Q==,type:str] - adm: ENC[AES256_GCM,data:fTXg7sVtyjzm2zPLBSYX0wsAjhPZz/fwOWjk6bYEFNDAz9Esw2VFqG84E53cSj62KxClx8jlakA6RyXH5betcrxoRybrEuvdej76TS4kAP3cgK1OUEbcw0gWsgJPleH2BVAn6/5AhtISmglx0RykyKDtjBoxO1ewwwKesd5brIBD2DhLyaYJLFB42to1HmLe7FgYDaR2Q/W5B6W7RMueFwjA4/Y2ELoFQpwqF2HvcyFO58x8BFhIla6T+MB5l5I2qoYNlN5AayUur5xlALRUGH2PCJEiTrt8hXhYPkSlkiiwORBwwK7w89kO+tsHoDW8u3F/aKBbBnikIkaXnSa694mg0twmTOYL,iv:OBk9nrRA2t/9DvEI/OJTwp8nX4iP+foohueZON9Tlgs=,tag:Y1hVX2wva9QridJ5els9Fg==,type:str] + secret-key: ENC[AES256_GCM,data:h31tTLFhSKgMu3NqnF+cWwf/VOSQoZrQrvD4xqU5KlGVGaUe6dUzUUBN0/CS85E8rhdAdyLCfF7WFjcguJ3F5F5m0MLxoCndD8wsWZbIbM+8cmjzcSd3e0YjUa6Nk2/hKX/+8e2hozcP27pcO3pvVxXJEUa5ivToKcBvwbLoMpLhBZ7MuXJpV+GjQlPLTBlnzgeEhkd3oa0KIKs61twTVtmx4Uex3TZgtNZ0eKQDi5bbAV2sueMA0PqEq9FrE1oUS2AP9feuhE7r+cknVXJVPB0GUT33RBL1DjYlz3LSq9dGr1DyDFnFuA==,iv:Oi1pQad2owWnx1dRJwfxt0drqdcupqr6Zw4kY9PQ+24=,tag:v9h7ikopmdWqYrl2RgopLg==,type:str] + database-url: ENC[AES256_GCM,data:swr7OiuDI2g8Mk3kxfEuoKTz6vcDCqKMfqHNwxurGbaOA38tIJCXFg0V4YZRHh5D6aBjiZxG5291,iv:Fm9wkwdSmrFekbu5G0sM1Q/mMIJ/+6VSOhT2vsRxHL0=,tag:36V3bONXFqy+pArIzMnzEA==,type:str] + adm: ENC[AES256_GCM,data:EgPWaeWNSoD2HOhs4TfBlO0ziCI+3UElJkElZmOuq8/S2dz82N1G9AWD2ZiaruT2+GCHXbIirerJkEHdZ5okT1hTVS9yrAZitmmTS7ythEgdVdXcz0Fg4El/arEWXlhCeG3BStoFUxSToR7z6T6RRjAQtnLdq/OrBEIFLTYMr9fiBKPFY9mlvjtM7VZMdgaFzIb1BTNizraXPMHoua9i6RFIj65gc5bIOW3BQ80KpvG1YvUxym0Di29Kdxc57NDgAQE+T9v90CtEU01SmvcHJ8DU+NFzrsYIiyaH3THTzqt644jr+EVIMAuQV4ZqKHnH9j+QH5zkZBpKgJlhj5xSh2yDEhPDVzkd,iv:8VhvaU3iPOX3HT9R0akpEirtHGMXL48anqmltLZS6FM=,tag:cGuopf4vo5xLY8iAwVBWbw==,type:str] postgres: - init: ENC[AES256_GCM,data:Pq24kdMXLAbePqIHPiJx3xXYEm2UbY598iNDf+z2k1HDhStHAd10CCyJYEgppCw2lkDNY54A3PQ=,iv:RE9DQ9Xw4tDFBD67dk3ggyqYqoGVhZf5kO53WoF3fJ4=,tag:dZwZfgI2H9JTClkyUI1MqQ==,type:str] + init: ENC[AES256_GCM,data:O5teIASH2Bn4EMRs/EOuU5A4AjAARYz/Zk2DIUCb3dffSgZHv3L2fO9++/dAEbSFWIzsEi5XZJ8=,iv:xxUjg9Ll0IpjxQFKUPPSd1hV30tD6P1eldiJXBPGA+I=,tag:HUI6eZbUyrNTITS/OO1inA==,type:str] upsmon: - password: ENC[AES256_GCM,data:0tZKzQOYaij9jdnDTv61ma8i,iv:GEqlCOOUHTjUzfz+X5lCnqcX9SjAG6bVc8Luv97wnSg=,tag:XLvsucW6sIMHKG2AHmxZEw==,type:str] + password: ENC[AES256_GCM,data:Bd764iIyuLsl0iXtnSxfCluG,iv:+QUm406E7e7zeTq508sujDyUDVR4By+WtPpJ8caMUc0=,tag:418u50BLhIJLEnqmFg6+IQ==,type:str] minio: - credentials: ENC[AES256_GCM,data:78ANAQ2756IISlkUFPxy9lQYRml8C9PvkkiXME4nMjtWwPgybvSM2nrO3yVhTgyOyUZjYYWzJlpwstfIAbuWEgGFhbMixSSNSgsWozojm0hWfPBWZ5x4iX++0ARFdfxIAjiGlM/HGa0YO/2tSA6oW6FqM4RbC1vPnqJc,iv:8Y+SilqKsUH/J6M+l4Wpm2J3nPXeoUhA1+GvhzlqMHE=,tag:5dYBlYPIUjd+U+r/dqJWIA==,type:str] + credentials: ENC[AES256_GCM,data:5naAV9uMp29xbLeRXd28Lc9PYL8NITkhalaO9gCnyZBevpg4MRbRJcF0Ya3QAPyQqlUwK0l8dHPpCoQs2d3ZlbZxrw0cqwl9FAR2c2JCn59Z7lR6B2DHwJCiAnjR6nSavw/29x81mmrZzpYsR/3QRuE/EzT/EWS8OykU,iv:k8Lipzlc+LgRkDe448+3yi3G9m4/KZdIOXVdEEwKEi8=,tag:tWZvCN0Xqki3/PZxK6FDzA==,type:str] server-validation: - webhook: ENC[AES256_GCM,data:d8drMmXcbWCGwOanYr6jUCz5+d1bgTrPKMl4yxFi49oapqFUFSQo2pA3bP9DA2n0b63ZJp1IDyJGBRGjFUsSC8EkKQsYMIm962o++D4h7/l9GZU2TBcn5VgvSldETgwloMg92i3zEApNCeZTtwFwJuJTwmUsZmg528Kj7SBcDw4H18dW8MMfgzBTkZUh,iv:F/UtYjWNoG1la1xaNevRXP/4lNT2TgYfmukbncHILDA=,tag:fJpdG5di6j8Wm54KLHZEsg==,type:str] + webhook: ENC[AES256_GCM,data:hjnvHG0XgK76Zue92y2ob8rTPsn0CDV9Gr34Us47zsfJZHj00Mtx68g+J3KkwhVEsy0aGx1FQ7SLj/mi9ow/KQJLaBpIfU0kyOdyaQ/blSDWFtoyyyRh1sdnIA8WjfXoqyd7pjy3fn+835VC8dd5HyvQ6jzGHC/i+0yDL9msG+eJWQMaR4YhBBelrU5h,iv:H+4rHizgiVtyde2cWtUUF+PRP9q83m/v1bg2NznUCRc=,tag:yZdnSUGxPFrJIRLUQqDQEg==,type:str] +docker: + pg: ENC[AES256_GCM,data:rm9X+DxD7oGyY+pTInSXdAd+sYs4FHw8S+YWoVxLcTdVyCL+CRkh1PDYU5JqF8Bufx5k/un7/P264bGlH7C/WcAxNttcrOrE36LrxHp0SQ==,iv:nth4/fDlRT3c7x6eCyavGtjfPNr4FuzU0u0tJLVDd0k=,tag:G41JxpNwjXTzNV8rAXyZfg==,type:str] + nextcloud: ENC[AES256_GCM,data:X6TH9TX5+CMLavstFR7Cm8SwjUmoEjpKmeQRNCoxXVFf0hbXpO53Ga63VTz0rP3QwgaZHB6VSTPtQdFR1pNfde/wFjR17rPDQnw0i/f8BQGgT5HVIH3QHZr6n7yLMW6uNMND+mO8xqhSbVQA1/CZhDQvnfKApZhw7IimSzbHcaaj/JCqqcmjqpFJt1bewnCQntZSo20noK3cOVi/P149AQAN23mJQC7fiqaRogEcwLzXtdZt/5bqrA/FLpLzkZWOrBxaQAIPWyJL+sBj0UlddFH5biMsnnzVE97QVQuxd5cka+HIdfst7IGjR5j0xbc4Iu5OkuFPPt67cLjDThZPjeDw3Q2meVc3Kb8fU51kROaUCN4gi7M/YZkFp8qjo/4X/oqPrnuyjLZh920Wb/BsIqY4lVqVpHTnH7d55nMsKpUNEzS96YGI79tqZ/dEZBG8kg1Dg0VHCfeQNJTESCIif8rtaxJeMF55aY/mEYRhhjwUsFPyXc2gk8XQ,iv:2oywmLxLAuLlwCta7qF3s3q53S0t3h7NB6O8BBZaLuQ=,tag:+91/fJ4xur1d6zJxbYCrzg==,type:str] sops: kms: [] gcp_kms: [] @@ -23,54 +26,54 @@ sops: - recipient: age1z8q02wdp0a2ep5uuffgfeqlfam4ztl95frhw5qhnn6knn0rrmcnqk5evej enc: | -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWmM1Q0NMQytCaW5vZWhT - M0JQajhHc1Z0RXBoSnBBMlZGZ3dhajNkcEY0CjBMeDNIS0RhUUxxUDY0ZXNyb0Rj - NHhUNFVPSjVScC96Tnl2R1FmWGNQa1EKLS0tIE5iRUpPUEtWMW9nUllzT1ZEZDE1 - bTdhU1VVMWdWVzBkTDB4MkxFcWtQSTQKsASNOoF5NjJLIedaBUWCMx1uJziEZZSx - AlaF0gp4bNP4G58rndIe8XtsM10BseGvM512kMGWd3XbQPz3firk5w== + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0QW9ESEZQNktZRDJiTy84 + R2x5ci9nOFd2TXJzcVF6Q2xYaEhPS2J2N25rClhscmxEMi9SUXp4VjJFelFyMlNL + ZmhJaDduODM1YzloRzFpbzV3N0k4VXcKLS0tIGVxblBLZEJmZFhnTmxxdDdtYldl + TUFCdlBxNW8zMW9XaWFRdzZUTTJwNncK9PlrbY0SPJhktA6e21hDQM0eA1ACrHFu + cT7AOu/Isku0BJ7cS8AhQK9UlSgPpoeMmWGST69baTDuGb9QRboDxQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2024-07-07T23:09:33Z" - mac: ENC[AES256_GCM,data:nr1JAEr2FGrYtiUhrQFsBPbiR+toxzYRZVPqq7zYBMeNy70a5jMgw6qm37M8Hmt7omO/KePE+Ol27FI9Aqn8OP3CQZoSWZbul+TTItV5UWC84G3MebaesnIiFQwbpM9hz08VoQ1zxUiUFnUY4bBr6okNSyJeqq/QmkkyqhK4Wlo=,iv:0MR7AiQEX2Cl7FUtRlxaY+R2oqSbanIhwaXAN/UnHH0=,tag:RpQCtsuelu3VQVB9HzJE+g==,type:str] + lastmodified: "2024-08-16T03:34:25Z" + mac: ENC[AES256_GCM,data:y9FKQpsFjSnuCkBk11WuAWPcHu50ICJEQaljKhZQtkwWH6Rrcbl7V4iStzkKrR6SdJWagSRK//1S/k6l5SVBl15mmjY6zlKiBckzJqn3q07K9gxEG1qNCVYnne9bGYhLWNNR9z08rhPhsBvSVLsfox+KvPmgNxioaGMQ4CWINnk=,iv:IYPPQ79v/C4CdMZo5kpxDcBx44+ZxVOhjVJxzFUSLg4=,tag:yo+5DF1L+3WLAE8NFS9hUA==,type:str] pgp: - - created_at: "2024-06-19T16:27:11Z" + - created_at: "2024-08-16T03:34:25Z" enc: |- -----BEGIN PGP MESSAGE----- - hQILA84hNUGIgI/nAQ/3dupmdOAwhgOEF7K5s8+KxlXlmz7POXkO3zDXbFQrZrKR - JNncfi22Nri57Jlud5ku2W/0jJ5B812/1oIpClHFkdWqg4b3ZIrOpg1239IJX7Gg - rvacIsgejrAMA/aT4F7a8QAwWdBy33aB8AgquGRYo6STn9fLssQ78Q1P3ps1oT7R - 639EF7Sb+I47yO9rq6YDA1391rHrkS5PvW3ztW485f3nKJ5o7gD1fK4ghZPuoyy9 - VppgkzpaaMXUBSJNglsBy6uReq/aupgRnhcmZu+vFdgxY2R4Ff6M/AhpJLOz9B6G - 4QGb9uj3nBKT/D9PFqbSCn/oreSJzxd6DTOdM7NOMu+CgPsdJ5FoivH1Um990vfB - V7y3eWvJ4HMHHIr0QdWYUpr7Wd48m+fhWFI6SQB1kRWCY9rgb1SOmsvDKDmzGd78 - H2tdweS9Bjdvwedn24IpPJh90do50HOnFVa5zlGj8AA43IOOhXwxvEhelgY+xoNK - kTLmARqLAHYqq9MwjBZhiIGwuLemyXP7TU2U9jXUIsXPMejdaInrCt2gHkjkI9Wy - FollcgzeBG3WqNAGZ+rnfmNN1rAela7P7MCUqroVsXIDi+4C1nbnMlRnQTu6e5nn - VLP9VEJqYobLwm+kZVHG6SJM+yOmyAU14YKOYGWsZkjnNPeNb6tUCs/Ml4Ob6NJe - ARVQKVwy0wP/sCkeYjWTRrWcITpEOzwn/SVbiDMlnh05/jLtKXzm0FVXtutiYQZ/ - SjBYpYARV6pZhbjA4DjnPba6uwFca0UnWk4coM+i2doFsJKQJe0iHwzgyyy+/Q== - =XzRR + hQIMA84hNUGIgI/nAQ/5ATkdxw0k1Y2l3HKAc4rtH4DLPiqH2/MwtEYnds0/4mOK + UPnKkE+1U8ysfI6Y7DK8RKva0Bh5S5M2Xi2FxCWmc32pKLzjZnib0dpuKJQBafO1 + IHB1Zvnah1HIyR296R8s+OcqicF4+WI59dSNf3fN7lRoxbODW3o2x2QMhzwh/Mdn + d88IqjDDwLXvjBwSTtqyt4mg8RThV9IkejgSU9qqtIT3xHHamuTfRQ0lkaUUFbsa + 6naCQa0YxhPekCUssd85hL3Fk8AYZYikvXg990034dkqAg30g7yQsQ/KlBdlECUr + drIM4up9xKVy+tbNi3VCJpmmgZG7eyWDUn4k6mYbJKL6AV+Owoq6zOmhXMQWqanm + Q1MOKfJIkahO3T/m93hqrggRvs6bxX3w5w/uBp43KQvYms/D49XLY84lxl7r4tza + GqezmrZF9VJ1WQ3k33Zyiq+t+5BwAQWv/BFMvkIG2lgu1snp9ByW6XjdK7ueA4YW + egMLQ/TCq7AzomlBZ1yux3aWEDL/X0iR9Da8C2NLmvW0U80th2LAiZ/Ce4ZeutTO + +4N+PzJAwvzuTVlVjAyBYjAXmBCkYaYthTsgwzgQ9gwHbhXGy2cal0ft70GhwILw + +pQVkysD22mdBpRQbGiij2GkWESs66gS/QBAdIzh7RrhWKiZ/CB8h6m3JE1O8pfS + XgFbJpWL+dPGaAPcDPctzz+6pDpjlZJEx/xLV0LdpqeIlE5J9hh2nNUy86xgNK7r + ahBOM0gMBCBnonNGqNN1zaAQPcA2YPw5yY9PVG42HvelllyJ3MBMhzZIS5jpFMw= + =Zr2C -----END PGP MESSAGE----- fp: F63832C3080D6E1AC77EECF80B4245FFE305BC82 - - created_at: "2024-06-19T16:27:11Z" + - created_at: "2024-08-16T03:34:25Z" enc: |- -----BEGIN PGP MESSAGE----- - hQIMA29thaGx06tOAQ//Thyg4cyx5/r+wrU0TVspF3zVRLNHcwHmuaaXGebOUMxd - UuL3usmi5lC1/otK9XshTg9ODRsTtZ8qjoj2oHOYgZHhRZRsWMNMnZGY2P9iVC6p - ZwzIcDaBwDqaw6nEjXqR6eSB+P7XzHGMVqa/EhmwBrEwa4qtv8R4huUl9G2CY2RM - eWuTSgD5MEb3mPveemkvVvE+gquBseZ8wfkMA5eBZZYvEBhb2nKlSoqWRKv0Sp/a - V5MQSWZrkFfbA92g9S8AJZcwMuNJHf//N5Z9UofK4yfC+dC5PnL52iU0/M58HeXu - w7X+cvcYfEHlQF4b1v/W4C3YnMhaEoKDuSAE+PdM5TeZfZYnGglVDxNogYAAfdIP - l5gkSWhl5Dzu+lNg+k+kIVngHr0XDZ4IrTgXqrl/wtWtBf+xrjnlnhPMoRfTvUD5 - 2TRRyr9gwu6t+bIW1kSjcpouYhnSXtiCGb/5DN8W8Nw7sdOXQyeMfTI3oGhUKKrU - Qa4ogWFIS9GN1wYo18CfdXiBtfVnRIH485iu7d0bdvbkCXyweAoNTmIbBLNfzg2R - m4eN5Z8sXWjSpFOGiWf82IlF86xvulDxeuUy+synoHsD+WQg5rB5MZfhCwXoB0Cn - c+yCr6Ocv/KjoNDn3TdI6hkW5Inv0eYqx5sVRKbita3eAY60VRz5BqAC6MeKGHrS - XgH3doi5V8HoZOMfHtxhYk9/wUQO6ABB0Z3N05DlugtaRER6DdNLw9zrIqWQhFA8 - YyR50KJPlC7+3PFxfWVg3iWCZ1gvyXMyC/HoTmC5uYY3avUZ43QqsnepXJgBBz4= - =+84s + hQIMA29thaGx06tOARAAlXGYnSZCq+Zo44FkYqJrH5E0wJVVHz0b1TXosSCBW7UF + 1xZMhqzS/HOidYtLHiMNnHpMrJcfYUsxOuZd+fGA7l7wxWFqsoMKs9/wry1Ca9Aa + e8U10Bs7HcV9CuvXnoCFhzQ9rShQn/ou6y+z6WHD8Sl98EHgBajpUopBtYnyxKgZ + mX1ZVrXkRlKeopFX3HIPoYh9ooC+avqB3RhiVAUxB9pq+EOlAQQREEB5PO4msN8Z + y88wml7eSOmR/WmcWp5DN+SZ/sGJ/J05Pv1C9A8BjKswMFgqX2ig64jZ8aiJrXxX + J0TwlK+9XKdD3ob+IYAajpPFD8OPnWC/EiVXgMA0+32Y+93QH7whBqHZJWgB7qO6 + wyuXOpFZFkZhSMgBAMJxpuEbjy+ziL/QstV8n1nB7YlremSSM6Yr0eXtnPBdB9c2 + 3+EJ1CVwhYx06vpHaKQxgLHbjJzmuJ4bk3sVN4XiN7FKax795dq15bZW6NzoXLeF + XTmrXfjdwIiQvdPLzoXjMS+kiXGN1+tFxQZU/mLvXtl3Qh+FVGM327k1aNNwSjT/ + 3EdhDBpXYZSYw4qbXliaOn86+bIKB/6FwAq20Bda5Iw4WGrx0IIyvPdZdInyHIdK + UFQgqg1v2r5a92X5gnA6obALj8jcbY6KYyMvbfHnAEcJh+WXpx1ojcTKdFaYEFjS + XgE5apAPRmFjToNTUZg6o7Sl61TsmiS2ihDC2aFsygwxigWkYsjglINZOXFjvmRA + o3qw6I5QxCm23Kr8VV2IaxM6Bt2+/cwIJecPAMD/Vvze0Y/lZ7xng0FF/NV3ImA= + =Yt/R -----END PGP MESSAGE----- fp: 29F5017C95D9E60B1B1E8407072B0E0B8312DFE3 unencrypted_suffix: _unencrypted - version: 3.8.1 + version: 3.9.0