add nextcloud and postgres to docker

Signed-off-by: ahuston-0 <aliceghuston@gmail.com>
This commit is contained in:
ahuston-0 2024-08-15 23:35:11 -04:00
parent bb3a853bbc
commit b99dd1514b
No known key found for this signature in database
GPG Key ID: 1FACF4075E3212F7
5 changed files with 267 additions and 48 deletions

View File

@ -6,7 +6,36 @@
}: }:
{ {
imports = [ ./archiveteam.nix ]; imports = [
./archiveteam.nix
./docker.nix
./nextcloud.nix
];
virtualisation.oci-containers.backend = "docker"; 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"
} }

View File

@ -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/

View File

@ -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"
];
};
};
}

View File

@ -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";
};
};
}

View File

@ -1,19 +1,22 @@
hydra: 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: 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: 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] 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:CrtsSB9KaA+KT9F34eM+z5trjb72wRKKy2LKOWDxBgvVtrNy5jj9c9KPnPCRWue1eABC1FdThKH1,iv:n3n16Qs/s77CxDNHws4lLTJaXx++DpqUrrVDp+Rpj2E=,tag:gkQhzX4gHPRmAQjZKBZF4Q==,type:str] database-url: ENC[AES256_GCM,data:swr7OiuDI2g8Mk3kxfEuoKTz6vcDCqKMfqHNwxurGbaOA38tIJCXFg0V4YZRHh5D6aBjiZxG5291,iv:Fm9wkwdSmrFekbu5G0sM1Q/mMIJ/+6VSOhT2vsRxHL0=,tag:36V3bONXFqy+pArIzMnzEA==,type:str]
adm: ENC[AES256_GCM,data:fTXg7sVtyjzm2zPLBSYX0wsAjhPZz/fwOWjk6bYEFNDAz9Esw2VFqG84E53cSj62KxClx8jlakA6RyXH5betcrxoRybrEuvdej76TS4kAP3cgK1OUEbcw0gWsgJPleH2BVAn6/5AhtISmglx0RykyKDtjBoxO1ewwwKesd5brIBD2DhLyaYJLFB42to1HmLe7FgYDaR2Q/W5B6W7RMueFwjA4/Y2ELoFQpwqF2HvcyFO58x8BFhIla6T+MB5l5I2qoYNlN5AayUur5xlALRUGH2PCJEiTrt8hXhYPkSlkiiwORBwwK7w89kO+tsHoDW8u3F/aKBbBnikIkaXnSa694mg0twmTOYL,iv:OBk9nrRA2t/9DvEI/OJTwp8nX4iP+foohueZON9Tlgs=,tag:Y1hVX2wva9QridJ5els9Fg==,type:str] adm: ENC[AES256_GCM,data:EgPWaeWNSoD2HOhs4TfBlO0ziCI+3UElJkElZmOuq8/S2dz82N1G9AWD2ZiaruT2+GCHXbIirerJkEHdZ5okT1hTVS9yrAZitmmTS7ythEgdVdXcz0Fg4El/arEWXlhCeG3BStoFUxSToR7z6T6RRjAQtnLdq/OrBEIFLTYMr9fiBKPFY9mlvjtM7VZMdgaFzIb1BTNizraXPMHoua9i6RFIj65gc5bIOW3BQ80KpvG1YvUxym0Di29Kdxc57NDgAQE+T9v90CtEU01SmvcHJ8DU+NFzrsYIiyaH3THTzqt644jr+EVIMAuQV4ZqKHnH9j+QH5zkZBpKgJlhj5xSh2yDEhPDVzkd,iv:8VhvaU3iPOX3HT9R0akpEirtHGMXL48anqmltLZS6FM=,tag:cGuopf4vo5xLY8iAwVBWbw==,type:str]
postgres: 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: 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: 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: 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: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -23,54 +26,54 @@ sops:
- recipient: age1z8q02wdp0a2ep5uuffgfeqlfam4ztl95frhw5qhnn6knn0rrmcnqk5evej - recipient: age1z8q02wdp0a2ep5uuffgfeqlfam4ztl95frhw5qhnn6knn0rrmcnqk5evej
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPWmM1Q0NMQytCaW5vZWhT YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0QW9ESEZQNktZRDJiTy84
M0JQajhHc1Z0RXBoSnBBMlZGZ3dhajNkcEY0CjBMeDNIS0RhUUxxUDY0ZXNyb0Rj R2x5ci9nOFd2TXJzcVF6Q2xYaEhPS2J2N25rClhscmxEMi9SUXp4VjJFelFyMlNL
NHhUNFVPSjVScC96Tnl2R1FmWGNQa1EKLS0tIE5iRUpPUEtWMW9nUllzT1ZEZDE1 ZmhJaDduODM1YzloRzFpbzV3N0k4VXcKLS0tIGVxblBLZEJmZFhnTmxxdDdtYldl
bTdhU1VVMWdWVzBkTDB4MkxFcWtQSTQKsASNOoF5NjJLIedaBUWCMx1uJziEZZSx TUFCdlBxNW8zMW9XaWFRdzZUTTJwNncK9PlrbY0SPJhktA6e21hDQM0eA1ACrHFu
AlaF0gp4bNP4G58rndIe8XtsM10BseGvM512kMGWd3XbQPz3firk5w== cT7AOu/Isku0BJ7cS8AhQK9UlSgPpoeMmWGST69baTDuGb9QRboDxQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2024-07-07T23:09:33Z" lastmodified: "2024-08-16T03:34:25Z"
mac: ENC[AES256_GCM,data:nr1JAEr2FGrYtiUhrQFsBPbiR+toxzYRZVPqq7zYBMeNy70a5jMgw6qm37M8Hmt7omO/KePE+Ol27FI9Aqn8OP3CQZoSWZbul+TTItV5UWC84G3MebaesnIiFQwbpM9hz08VoQ1zxUiUFnUY4bBr6okNSyJeqq/QmkkyqhK4Wlo=,iv:0MR7AiQEX2Cl7FUtRlxaY+R2oqSbanIhwaXAN/UnHH0=,tag:RpQCtsuelu3VQVB9HzJE+g==,type:str] mac: ENC[AES256_GCM,data:y9FKQpsFjSnuCkBk11WuAWPcHu50ICJEQaljKhZQtkwWH6Rrcbl7V4iStzkKrR6SdJWagSRK//1S/k6l5SVBl15mmjY6zlKiBckzJqn3q07K9gxEG1qNCVYnne9bGYhLWNNR9z08rhPhsBvSVLsfox+KvPmgNxioaGMQ4CWINnk=,iv:IYPPQ79v/C4CdMZo5kpxDcBx44+ZxVOhjVJxzFUSLg4=,tag:yo+5DF1L+3WLAE8NFS9hUA==,type:str]
pgp: pgp:
- created_at: "2024-06-19T16:27:11Z" - created_at: "2024-08-16T03:34:25Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQILA84hNUGIgI/nAQ/3dupmdOAwhgOEF7K5s8+KxlXlmz7POXkO3zDXbFQrZrKR hQIMA84hNUGIgI/nAQ/5ATkdxw0k1Y2l3HKAc4rtH4DLPiqH2/MwtEYnds0/4mOK
JNncfi22Nri57Jlud5ku2W/0jJ5B812/1oIpClHFkdWqg4b3ZIrOpg1239IJX7Gg UPnKkE+1U8ysfI6Y7DK8RKva0Bh5S5M2Xi2FxCWmc32pKLzjZnib0dpuKJQBafO1
rvacIsgejrAMA/aT4F7a8QAwWdBy33aB8AgquGRYo6STn9fLssQ78Q1P3ps1oT7R IHB1Zvnah1HIyR296R8s+OcqicF4+WI59dSNf3fN7lRoxbODW3o2x2QMhzwh/Mdn
639EF7Sb+I47yO9rq6YDA1391rHrkS5PvW3ztW485f3nKJ5o7gD1fK4ghZPuoyy9 d88IqjDDwLXvjBwSTtqyt4mg8RThV9IkejgSU9qqtIT3xHHamuTfRQ0lkaUUFbsa
VppgkzpaaMXUBSJNglsBy6uReq/aupgRnhcmZu+vFdgxY2R4Ff6M/AhpJLOz9B6G 6naCQa0YxhPekCUssd85hL3Fk8AYZYikvXg990034dkqAg30g7yQsQ/KlBdlECUr
4QGb9uj3nBKT/D9PFqbSCn/oreSJzxd6DTOdM7NOMu+CgPsdJ5FoivH1Um990vfB drIM4up9xKVy+tbNi3VCJpmmgZG7eyWDUn4k6mYbJKL6AV+Owoq6zOmhXMQWqanm
V7y3eWvJ4HMHHIr0QdWYUpr7Wd48m+fhWFI6SQB1kRWCY9rgb1SOmsvDKDmzGd78 Q1MOKfJIkahO3T/m93hqrggRvs6bxX3w5w/uBp43KQvYms/D49XLY84lxl7r4tza
H2tdweS9Bjdvwedn24IpPJh90do50HOnFVa5zlGj8AA43IOOhXwxvEhelgY+xoNK GqezmrZF9VJ1WQ3k33Zyiq+t+5BwAQWv/BFMvkIG2lgu1snp9ByW6XjdK7ueA4YW
kTLmARqLAHYqq9MwjBZhiIGwuLemyXP7TU2U9jXUIsXPMejdaInrCt2gHkjkI9Wy egMLQ/TCq7AzomlBZ1yux3aWEDL/X0iR9Da8C2NLmvW0U80th2LAiZ/Ce4ZeutTO
FollcgzeBG3WqNAGZ+rnfmNN1rAela7P7MCUqroVsXIDi+4C1nbnMlRnQTu6e5nn +4N+PzJAwvzuTVlVjAyBYjAXmBCkYaYthTsgwzgQ9gwHbhXGy2cal0ft70GhwILw
VLP9VEJqYobLwm+kZVHG6SJM+yOmyAU14YKOYGWsZkjnNPeNb6tUCs/Ml4Ob6NJe +pQVkysD22mdBpRQbGiij2GkWESs66gS/QBAdIzh7RrhWKiZ/CB8h6m3JE1O8pfS
ARVQKVwy0wP/sCkeYjWTRrWcITpEOzwn/SVbiDMlnh05/jLtKXzm0FVXtutiYQZ/ XgFbJpWL+dPGaAPcDPctzz+6pDpjlZJEx/xLV0LdpqeIlE5J9hh2nNUy86xgNK7r
SjBYpYARV6pZhbjA4DjnPba6uwFca0UnWk4coM+i2doFsJKQJe0iHwzgyyy+/Q== ahBOM0gMBCBnonNGqNN1zaAQPcA2YPw5yY9PVG42HvelllyJ3MBMhzZIS5jpFMw=
=XzRR =Zr2C
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: F63832C3080D6E1AC77EECF80B4245FFE305BC82 fp: F63832C3080D6E1AC77EECF80B4245FFE305BC82
- created_at: "2024-06-19T16:27:11Z" - created_at: "2024-08-16T03:34:25Z"
enc: |- enc: |-
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
hQIMA29thaGx06tOAQ//Thyg4cyx5/r+wrU0TVspF3zVRLNHcwHmuaaXGebOUMxd hQIMA29thaGx06tOARAAlXGYnSZCq+Zo44FkYqJrH5E0wJVVHz0b1TXosSCBW7UF
UuL3usmi5lC1/otK9XshTg9ODRsTtZ8qjoj2oHOYgZHhRZRsWMNMnZGY2P9iVC6p 1xZMhqzS/HOidYtLHiMNnHpMrJcfYUsxOuZd+fGA7l7wxWFqsoMKs9/wry1Ca9Aa
ZwzIcDaBwDqaw6nEjXqR6eSB+P7XzHGMVqa/EhmwBrEwa4qtv8R4huUl9G2CY2RM e8U10Bs7HcV9CuvXnoCFhzQ9rShQn/ou6y+z6WHD8Sl98EHgBajpUopBtYnyxKgZ
eWuTSgD5MEb3mPveemkvVvE+gquBseZ8wfkMA5eBZZYvEBhb2nKlSoqWRKv0Sp/a mX1ZVrXkRlKeopFX3HIPoYh9ooC+avqB3RhiVAUxB9pq+EOlAQQREEB5PO4msN8Z
V5MQSWZrkFfbA92g9S8AJZcwMuNJHf//N5Z9UofK4yfC+dC5PnL52iU0/M58HeXu y88wml7eSOmR/WmcWp5DN+SZ/sGJ/J05Pv1C9A8BjKswMFgqX2ig64jZ8aiJrXxX
w7X+cvcYfEHlQF4b1v/W4C3YnMhaEoKDuSAE+PdM5TeZfZYnGglVDxNogYAAfdIP J0TwlK+9XKdD3ob+IYAajpPFD8OPnWC/EiVXgMA0+32Y+93QH7whBqHZJWgB7qO6
l5gkSWhl5Dzu+lNg+k+kIVngHr0XDZ4IrTgXqrl/wtWtBf+xrjnlnhPMoRfTvUD5 wyuXOpFZFkZhSMgBAMJxpuEbjy+ziL/QstV8n1nB7YlremSSM6Yr0eXtnPBdB9c2
2TRRyr9gwu6t+bIW1kSjcpouYhnSXtiCGb/5DN8W8Nw7sdOXQyeMfTI3oGhUKKrU 3+EJ1CVwhYx06vpHaKQxgLHbjJzmuJ4bk3sVN4XiN7FKax795dq15bZW6NzoXLeF
Qa4ogWFIS9GN1wYo18CfdXiBtfVnRIH485iu7d0bdvbkCXyweAoNTmIbBLNfzg2R XTmrXfjdwIiQvdPLzoXjMS+kiXGN1+tFxQZU/mLvXtl3Qh+FVGM327k1aNNwSjT/
m4eN5Z8sXWjSpFOGiWf82IlF86xvulDxeuUy+synoHsD+WQg5rB5MZfhCwXoB0Cn 3EdhDBpXYZSYw4qbXliaOn86+bIKB/6FwAq20Bda5Iw4WGrx0IIyvPdZdInyHIdK
c+yCr6Ocv/KjoNDn3TdI6hkW5Inv0eYqx5sVRKbita3eAY60VRz5BqAC6MeKGHrS UFQgqg1v2r5a92X5gnA6obALj8jcbY6KYyMvbfHnAEcJh+WXpx1ojcTKdFaYEFjS
XgH3doi5V8HoZOMfHtxhYk9/wUQO6ABB0Z3N05DlugtaRER6DdNLw9zrIqWQhFA8 XgE5apAPRmFjToNTUZg6o7Sl61TsmiS2ihDC2aFsygwxigWkYsjglINZOXFjvmRA
YyR50KJPlC7+3PFxfWVg3iWCZ1gvyXMyC/HoTmC5uYY3avUZ43QqsnepXJgBBz4= o3qw6I5QxCm23Kr8VV2IaxM6Bt2+/cwIJecPAMD/Vvze0Y/lZ7xng0FF/NV3ImA=
=+84s =Yt/R
-----END PGP MESSAGE----- -----END PGP MESSAGE-----
fp: 29F5017C95D9E60B1B1E8407072B0E0B8312DFE3 fp: 29F5017C95D9E60B1B1E8407072B0E0B8312DFE3
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.8.1 version: 3.9.0