forked from emily/nixfiles
akkoma: add initial config
This commit is contained in:
parent
9f9f6d7b76
commit
e6de0b8257
9 changed files with 899 additions and 26 deletions
12
.sops.yaml
12
.sops.yaml
|
@ -46,3 +46,15 @@ creation_rules:
|
||||||
- *emily
|
- *emily
|
||||||
age:
|
age:
|
||||||
- *girldick
|
- *girldick
|
||||||
|
- path_regex: secrets/hosts/seras.yaml
|
||||||
|
key_groups:
|
||||||
|
- pgp:
|
||||||
|
- *emily
|
||||||
|
age:
|
||||||
|
- *seras
|
||||||
|
- path_regex: secrets/services/akkoma.yaml
|
||||||
|
key_groups:
|
||||||
|
- pgp:
|
||||||
|
- *emily
|
||||||
|
age:
|
||||||
|
- *seras
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
../../profiles/headless.nix
|
../../profiles/headless.nix
|
||||||
../../profiles/kartoffel.nix
|
../../profiles/kartoffel.nix
|
||||||
../../profiles/lxc.nix
|
../../profiles/lxc.nix
|
||||||
|
../../services/akkoma
|
||||||
../../services/nginx.nix
|
../../services/nginx.nix
|
||||||
../../services/hydra
|
../../services/hydra
|
||||||
../../services/update-nixfiles.nix
|
../../services/update-nixfiles.nix
|
||||||
|
|
280
config/services/akkoma/default.nix
Normal file
280
config/services/akkoma/default.nix
Normal file
|
@ -0,0 +1,280 @@
|
||||||
|
{ config, pkgs, ... }: {
|
||||||
|
sops.secrets."services/akkoma/mailerPassword" = {
|
||||||
|
sopsFile = ../../../secrets/services/akkoma.yaml;
|
||||||
|
};
|
||||||
|
sops.secrets."services/akkoma/deepl" = {
|
||||||
|
sopsFile = ../../../secrets/services/akkoma.yaml;
|
||||||
|
};
|
||||||
|
services.akkoma = {
|
||||||
|
enable = true;
|
||||||
|
extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg;
|
||||||
|
|
||||||
|
extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON {
|
||||||
|
pleroma-dark = "/static/themes/pleroma-dark.json";
|
||||||
|
pleroma-light = "/static/themes/pleroma-light.json";
|
||||||
|
pleroma-amoled = [ "Pleroma Dark AMOLED" "#000000" "#111111" "#b0b0b1" "#d8a070" "#aa0000" "#0fa00f" "#0095ff" "#d59500"];
|
||||||
|
classic-dark = [ "Classic Dark" "#161c20" "#282e32" "#b9b9b9" "#baaa9c" "#d31014" "#0fa00f" "#0095ff" "#ffa500" ];
|
||||||
|
bird = [ "Bird" "#f8fafd" "#e6ecf0" "#14171a" "#0084b8" "#e0245e" "#17bf63" "#1b95e0" "#fab81e"];
|
||||||
|
ir-black = [ "Ir Black" "#000000" "#242422" "#b5b3aa" "#ff6c60" "#FF6C60" "#A8FF60" "#96CBFE" "#FFFFB6" ];
|
||||||
|
monokai = [ "Monokai" "#272822" "#383830" "#f8f8f2" "#f92672" "#F92672" "#a6e22e" "#66d9ef" "#f4bf75" ];
|
||||||
|
|
||||||
|
redmond-xx = "/static/themes/redmond-xx.json";
|
||||||
|
redmond-xx-se = "/static/themes/redmond-xx-se.json";
|
||||||
|
redmond-xxi = "/static/themes/redmond-xxi.json";
|
||||||
|
breezy-dark = "/static/themes/breezy-dark.json";
|
||||||
|
breezy-light = "/static/themes/breezy-light.json";
|
||||||
|
paper = "/static/themes/paper.json";
|
||||||
|
thekanata = "/static/themes/thekanata.json";
|
||||||
|
ihatebeingalive = "/static/themes/ihatebeingalive.json";
|
||||||
|
elly-mod = "/static/themes/elly-mod.json";
|
||||||
|
});
|
||||||
|
|
||||||
|
extraStatic."static/themes/elly-mod.json" = pkgs.writeText "elly-mod.json" (builtins.readFile ./elly-mod.json);
|
||||||
|
|
||||||
|
extraStatic."static/terms-of-service.html" = pkgs.writeText "terms-of-service.html" ''
|
||||||
|
<h3>Likes are now florps. The timeline goes sideways.</h3>
|
||||||
|
'';
|
||||||
|
|
||||||
|
extraStatic."images/akkoma-wp.png" = pkgs.fetchurl {
|
||||||
|
url = "https://kyouma.net/akkoma-wp.avif";
|
||||||
|
hash = "sha256-p0slibhwLExsGUzCSZHIl6tNm28r4fB3iJsI6peRFRs=";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraStatic."favicon.png" = let
|
||||||
|
rev = "697a8211b0f427a921e7935a35d14bb3e32d0a2c";
|
||||||
|
in pkgs.stdenvNoCC.mkDerivation {
|
||||||
|
name = "favicon.png";
|
||||||
|
|
||||||
|
src = pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/TilCreator/NixOwO/${rev}/NixOwO_plain.svg";
|
||||||
|
hash = "sha256-tWhHMfJ3Od58N9H5yOKPMfM56hYWSOnr/TGCBi8bo9E=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = with pkgs; [ librsvg ];
|
||||||
|
|
||||||
|
dontUnpack = true;
|
||||||
|
installPhase = ''
|
||||||
|
rsvg-convert -o $out -w 96 -h 96 $src
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
frontends = {
|
||||||
|
primary = {
|
||||||
|
package = pkgs.akkoma-fe-domi;
|
||||||
|
name = "akkoma-fe";
|
||||||
|
ref = "5f0339ce00";
|
||||||
|
};
|
||||||
|
admin = {
|
||||||
|
package = pkgs.akkoma-frontends.admin-fe;
|
||||||
|
name = "admin-fe";
|
||||||
|
ref = "stable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.akkoma.config = let
|
||||||
|
inherit ((pkgs.formats.elixirConf { }).lib) mkRaw mkAtom mkMap;
|
||||||
|
in {
|
||||||
|
":pleroma" = {
|
||||||
|
":instance" = {
|
||||||
|
name = "florp.social";
|
||||||
|
email = "contact@florp.social";
|
||||||
|
notify_email = "akkoma@florp.social";
|
||||||
|
description = "Likes are now florps. The timeline goes sideways.";
|
||||||
|
instance_thumbnail = "/instance/thumbnail.avif";
|
||||||
|
limit = 69420;
|
||||||
|
description_limit = 69420;
|
||||||
|
remote_limit = 131072;
|
||||||
|
upload_limit = 160 * 1024 * 1024;
|
||||||
|
avatar_upload_limit = 16 * 1024 * 1024;
|
||||||
|
background_upload_limit = 32 * 1024 * 1024;
|
||||||
|
banner_upload_limit = 32 * 1024 * 1024;
|
||||||
|
registrations_open = true;
|
||||||
|
registration_reason_length = 2048;
|
||||||
|
account_approval_required = true;
|
||||||
|
account_activation_required = true;
|
||||||
|
federation = false;
|
||||||
|
federation_incoming_replies_max_depth = 1024;
|
||||||
|
max_pinned_statuses = 10;
|
||||||
|
safe_dm_mentions = true;
|
||||||
|
remote_post_retention_days = 365;
|
||||||
|
user_bio_length = 8192;
|
||||||
|
user_name_length = 64;
|
||||||
|
max_account_fields = 8;
|
||||||
|
cleanup_attachments = true;
|
||||||
|
local_bubble = [
|
||||||
|
"solitary.social"
|
||||||
|
"donotsta.re"
|
||||||
|
"chaos.social"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"Pleroma.Captcha".method = mkRaw "Pleroma.Captcha.Kocaptcha";
|
||||||
|
|
||||||
|
"Pleroma.Web.Endpoint".url.host = "florp.social";
|
||||||
|
|
||||||
|
"Pleroma.Emails.Mailer" = {
|
||||||
|
enabled = true;
|
||||||
|
adapter = mkRaw "Swoosh.Adapters.SMTP";
|
||||||
|
relay = "mail.kyouma.net";
|
||||||
|
username = "akkoma@florp.social";
|
||||||
|
password._secret = config.sops.secrets."services/akkoma/mailerPassword".path;
|
||||||
|
port = 465;
|
||||||
|
ssl = true;
|
||||||
|
auth = mkRaw ":always";
|
||||||
|
};
|
||||||
|
|
||||||
|
":database".rum_enabled = true;
|
||||||
|
|
||||||
|
":media_proxy" = {
|
||||||
|
enabled = true;
|
||||||
|
base_url = "https://cache.florp.social";
|
||||||
|
proxy_opts.redirect_on_failure = true;
|
||||||
|
proxy_opts.max_body_length = 64 * 1024 * 1024;
|
||||||
|
};
|
||||||
|
|
||||||
|
":media_preview_proxy" = {
|
||||||
|
enabled = false;
|
||||||
|
thumbnail_max_width = 1920;
|
||||||
|
thumbnail_max_height = 1080;
|
||||||
|
min_content_length = 128 * 1024;
|
||||||
|
};
|
||||||
|
|
||||||
|
"Pleroma.Upload".base_url = "https://media.florp.social";
|
||||||
|
|
||||||
|
"Pleroma.Upload".filters = map mkRaw [
|
||||||
|
"Pleroma.Upload.Filter.Exiftool.ReadDescription"
|
||||||
|
"Pleroma.Upload.Filter.Exiftool.StripMetadata"
|
||||||
|
"Pleroma.Upload.Filter.Dedupe"
|
||||||
|
"Pleroma.Upload.Filter.AnonymizeFilename"
|
||||||
|
];
|
||||||
|
|
||||||
|
":mrf".policies = map mkRaw [
|
||||||
|
"Pleroma.Web.ActivityPub.MRF.SimplePolicy"
|
||||||
|
"Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy"
|
||||||
|
];
|
||||||
|
|
||||||
|
":mrf_simple" = {
|
||||||
|
reject = mkMap {
|
||||||
|
"bae.st" = "harassment";
|
||||||
|
"brighteon.social" = "incompatible";
|
||||||
|
"detroitriotcity.com" = "incompatible";
|
||||||
|
"freeatlantis.com" = "incompatible";
|
||||||
|
"freespeechextremist.com" = "incompatible";
|
||||||
|
"gab.com" = "incompatible";
|
||||||
|
"gleasonator.com" = "incompatible";
|
||||||
|
"kitsunemimi.club" = "incompatible";
|
||||||
|
"poa.st" = "incompatible";
|
||||||
|
"seal.cafe" = "harassment";
|
||||||
|
"social.quodverum.com" = "incompatible";
|
||||||
|
"spinster.xyz" = "incompatible";
|
||||||
|
"truthsocial.co.in" = "incompatible";
|
||||||
|
"varishangout.net" = "incompatible";
|
||||||
|
|
||||||
|
"activitypub-troll.cf" = "security";
|
||||||
|
"misskey-forkbomb.cf" = "security";
|
||||||
|
"repl.co" = "security";
|
||||||
|
};
|
||||||
|
|
||||||
|
followers_only = mkMap {
|
||||||
|
"bitcoinhackers.org" = "annoying";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
":mrf_object_age".threshold = 90 * 24 * 3600;
|
||||||
|
|
||||||
|
":frontend_configurations" = {
|
||||||
|
pleroma_fe = mkMap {
|
||||||
|
background = "/images/akkoma-wp.png";
|
||||||
|
collapseMessageWithSubject = true;
|
||||||
|
hideSiteFavicon = true;
|
||||||
|
streaming = true;
|
||||||
|
webPushNotifications = true;
|
||||||
|
useStreamingApi = true;
|
||||||
|
scopeCopy = true;
|
||||||
|
showFeaturesPanel = false;
|
||||||
|
subjectLineBehavior = "masto";
|
||||||
|
alwaysShowSubjectInput = true;
|
||||||
|
postContentType = "text/markdown";
|
||||||
|
modalOnRepeat = true;
|
||||||
|
minimalScopesMode = true;
|
||||||
|
redirectRootNoLogin = "/about";
|
||||||
|
translationLanguage = "EN";
|
||||||
|
theme = "elly-mod";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
":restrict_unauthenticated" = {
|
||||||
|
timelines = mkMap {
|
||||||
|
local = false;
|
||||||
|
federated = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
":translator" = {
|
||||||
|
enabled = true;
|
||||||
|
module = mkRaw "Pleroma.Akkoma.Translators.DeepL";
|
||||||
|
};
|
||||||
|
|
||||||
|
":deepl" = {
|
||||||
|
tier = mkAtom ":free";
|
||||||
|
api_key._secret = config.sops.secrets."services/akkoma/deepl".path;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
":web_push_encryption".":vapid_details" = {
|
||||||
|
subject = "mailto:contact@florp.social";
|
||||||
|
};
|
||||||
|
|
||||||
|
":joken".":default_signer"._secret = "/var/lib/secrets/akkoma/jwt-signer";
|
||||||
|
};
|
||||||
|
services.postgresql.extraPlugins = [
|
||||||
|
pkgs.postgresql15Packages.rum
|
||||||
|
];
|
||||||
|
services.nginx = {
|
||||||
|
package = pkgs.tengine;
|
||||||
|
clientMaxBodySize = "256m";
|
||||||
|
commonHttpConfig = ''
|
||||||
|
proxy_cache_path /var/cache/nginx/cache/akkoma-media-cache
|
||||||
|
levels= keys_zone=akkoma_media_cache:32m max_size=32g
|
||||||
|
inactive=1y use_temp_path=off;
|
||||||
|
|
||||||
|
access_log off;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
kyouma.nginx.virtualHosts = {
|
||||||
|
"florp.social".locations."/".proxyPass = "http://unix:/run/akkoma/socket";
|
||||||
|
|
||||||
|
"media.florp.social" = {
|
||||||
|
useACMEHost = "florp.social";
|
||||||
|
locations."/".proxyPass = "http://unix:/run/akkoma/socket";
|
||||||
|
};
|
||||||
|
|
||||||
|
"cache.florp.social" = {
|
||||||
|
useACMEHost = "florp.social";
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://unix:/run/akkoma/socket";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_cache akkoma_media_cache;
|
||||||
|
|
||||||
|
# Cache objects in slices of 1 MiB
|
||||||
|
slice 1m;
|
||||||
|
proxy_cache_key $host$uri$is_args$args$slice_range;
|
||||||
|
proxy_set_header Range $slice_range;
|
||||||
|
|
||||||
|
# Decouple proxy and upstream responses
|
||||||
|
proxy_buffering on;
|
||||||
|
proxy_cache_lock on;
|
||||||
|
proxy_ignore_client_abort on;
|
||||||
|
|
||||||
|
# Default cache times for various responses
|
||||||
|
proxy_cache_valid 200 1y;
|
||||||
|
proxy_cache_valid 206 301 304 1h;
|
||||||
|
|
||||||
|
# Allow serving of stale items
|
||||||
|
proxy_cache_use_stale error timeout invalid_header updating;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
security.acme.certs."florp.social".extraDomainNames = [ "cache.florp.social" "media.florp.social" ];
|
||||||
|
}
|
529
config/services/akkoma/elly-mod.json
Normal file
529
config/services/akkoma/elly-mod.json
Normal file
|
@ -0,0 +1,529 @@
|
||||||
|
{
|
||||||
|
"_pleroma_theme_version": 2,
|
||||||
|
"name": "elly's theme (mod)",
|
||||||
|
"theme": {
|
||||||
|
"themeEngineVersion": 3,
|
||||||
|
"shadows": {
|
||||||
|
"panel": [
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"x": "1",
|
||||||
|
"y": "2",
|
||||||
|
"blur": "6",
|
||||||
|
"spread": 0,
|
||||||
|
"alpha": 0.6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"topBar": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"blur": 4,
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": 0.6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"popup": [
|
||||||
|
{
|
||||||
|
"x": 2,
|
||||||
|
"y": 2,
|
||||||
|
"blur": 3,
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": 0.5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"avatar": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 1,
|
||||||
|
"blur": 8,
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": 0.7
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"avatarStatus": [],
|
||||||
|
"panelHeader": [
|
||||||
|
{
|
||||||
|
"color": "#ffffff",
|
||||||
|
"x": 0,
|
||||||
|
"y": "40",
|
||||||
|
"blur": "40",
|
||||||
|
"spread": "-40",
|
||||||
|
"inset": true,
|
||||||
|
"alpha": "0.1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"button": [
|
||||||
|
{
|
||||||
|
"color": "#ffffff",
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": "0",
|
||||||
|
"spread": "1",
|
||||||
|
"alpha": "0.15",
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": "1",
|
||||||
|
"spread": 0,
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buttonHover": [
|
||||||
|
{
|
||||||
|
"color": "#318cbc",
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"alpha": 1,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": "1",
|
||||||
|
"spread": 0,
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buttonPressed": [
|
||||||
|
{
|
||||||
|
"color": "#bebebe",
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"blur": "0",
|
||||||
|
"spread": "50",
|
||||||
|
"alpha": 0.5,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#ffffff",
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"alpha": 0.2,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"color": "#000000",
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": 0,
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"input": [
|
||||||
|
{
|
||||||
|
"color": "#FFFFFF",
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"alpha": "0.2",
|
||||||
|
"inset": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"underlay": "#000000",
|
||||||
|
"bg": "#070e1b",
|
||||||
|
"fg": "#31363b",
|
||||||
|
"cRed": "#c42d38",
|
||||||
|
"cGreen": "#22b325",
|
||||||
|
"cOrange": "#d7d720",
|
||||||
|
"cBlue": "#ffffff",
|
||||||
|
"accent": "#3daee9",
|
||||||
|
"link": "#318cbc",
|
||||||
|
"text": "#bebebe",
|
||||||
|
"badgeNotification": "#024297",
|
||||||
|
"badgeNotificationText": "#ffffff",
|
||||||
|
"alertNeutral": "#bebebe",
|
||||||
|
"alertNeutralText": "#ffffff",
|
||||||
|
"alertPopupNeutral": "#bebebe",
|
||||||
|
"alertPopupNeutralText": "#000000",
|
||||||
|
"alertSuccess": "#22b325",
|
||||||
|
"alertSuccessText": "#ffffff",
|
||||||
|
"alertPopupSuccess": "#22b325",
|
||||||
|
"alertPopupSuccessText": "#000000",
|
||||||
|
"alertWarning": "#d7d720",
|
||||||
|
"alertWarningText": "#ffffff",
|
||||||
|
"alertPopupWarning": "#d7d720",
|
||||||
|
"alertPopupWarningText": "#000000",
|
||||||
|
"alertError": "#ff090f",
|
||||||
|
"alertErrorText": "#bebebe",
|
||||||
|
"alertPopupError": "#ff090f",
|
||||||
|
"alertPopupErrorText": "#ffffff",
|
||||||
|
"panel": "#0d1a31",
|
||||||
|
"panelText": "#bebebe",
|
||||||
|
"alertNeutralPanelText": "#ffffff",
|
||||||
|
"alertSuccessPanelText": "#ffffff",
|
||||||
|
"alertWarningPanelText": "#ffffff",
|
||||||
|
"alertErrorPanelText": "#bebebe",
|
||||||
|
"fgText": "#bebebe",
|
||||||
|
"topBar": "#0d1a31",
|
||||||
|
"topBarText": "#bebebe",
|
||||||
|
"input": "#18223d",
|
||||||
|
"inputTopbarText": "#bebebe",
|
||||||
|
"inputPanelText": "#bebebe",
|
||||||
|
"inputText": "#bebebe",
|
||||||
|
"btn": "#18223d",
|
||||||
|
"btnText": "#bebebe",
|
||||||
|
"btnTopBarText": "#bebebe",
|
||||||
|
"btnDisabled": "#0c121c",
|
||||||
|
"btnDisabledTopBarText": "#393d45",
|
||||||
|
"btnPanelText": "#bebebe",
|
||||||
|
"btnDisabledPanelText": "#393d45",
|
||||||
|
"btnDisabledText": "#393d45",
|
||||||
|
"btnToggled": "#1b1d1f",
|
||||||
|
"btnToggledTopBarText": "#bebebe",
|
||||||
|
"btnToggledPanelText": "#bebebe",
|
||||||
|
"btnToggledText": "#bebebe",
|
||||||
|
"btnPressed": "#1b1d1f",
|
||||||
|
"btnPressedTopBarText": "#bebebe",
|
||||||
|
"btnPressedTopBar": "#1b1d1f",
|
||||||
|
"btnPressedPanelText": "#bebebe",
|
||||||
|
"btnPressedPanel": "#1b1d1f",
|
||||||
|
"btnPressedText": "#bebebe",
|
||||||
|
"tabActiveText": "#bebebe",
|
||||||
|
"tabText": "#bebebe",
|
||||||
|
"tab": "#1b1d1f",
|
||||||
|
"fgLink": "#543fe7",
|
||||||
|
"topBarLink": "#bebebe",
|
||||||
|
"panelLink": "#38a5ed",
|
||||||
|
"panelFaint": "#bebebe",
|
||||||
|
"icon": "#63666d",
|
||||||
|
"poll": "#1d4f6e",
|
||||||
|
"pollText": "#bebebe",
|
||||||
|
"border": "#363c41",
|
||||||
|
"postCyantext": "#ffffff",
|
||||||
|
"postGreentext": "#22b325",
|
||||||
|
"postLink": "#3daee9",
|
||||||
|
"lightText": "#f2f2f2",
|
||||||
|
"popover": "#070e1b",
|
||||||
|
"selectedMenuPopover": "#0d1930",
|
||||||
|
"highlight": "#0d1930",
|
||||||
|
"highlightText": "#bebebe",
|
||||||
|
"selectedMenu": "#0d1930",
|
||||||
|
"selectedMenuText": "#bebebe",
|
||||||
|
"selectedMenuPopoverIcon": "#666c77",
|
||||||
|
"highlightLink": "#3daee9",
|
||||||
|
"selectedMenuLink": "#3daee9",
|
||||||
|
"selectedMenuPopoverLink": "#3daee9",
|
||||||
|
"selectedMenuPopoverText": "#bebebe",
|
||||||
|
"faintLink": "#3daee9",
|
||||||
|
"highlightFaintLink": "#3daee9",
|
||||||
|
"selectedMenuFaintLink": "#3daee9",
|
||||||
|
"selectedMenuPopoverFaintLink": "#3daee9",
|
||||||
|
"faint": "#bebebe",
|
||||||
|
"highlightFaintText": "#bebebe",
|
||||||
|
"selectedMenuFaintText": "#bebebe",
|
||||||
|
"selectedMenuPopoverFaintText": "#bebebe",
|
||||||
|
"highlightLightText": "#f2f2f2",
|
||||||
|
"selectedMenuLightText": "#f2f2f2",
|
||||||
|
"selectedMenuPopoverLightText": "#f2f2f2",
|
||||||
|
"selectedMenuIcon": "#666c77",
|
||||||
|
"selectedPost": "#0d1930",
|
||||||
|
"selectedPostText": "#bebebe",
|
||||||
|
"selectedPostIcon": "#666c77",
|
||||||
|
"selectedPostLink": "#3daee9",
|
||||||
|
"selectedPostFaintLink": "#3daee9",
|
||||||
|
"highlightPostLink": "#3daee9",
|
||||||
|
"selectedPostPostLink": "#3daee9",
|
||||||
|
"selectedPostLightText": "#f2f2f2",
|
||||||
|
"selectedPostFaintText": "#bebebe",
|
||||||
|
"popoverText": "#bebebe",
|
||||||
|
"popoverIcon": "#63666d",
|
||||||
|
"popoverLink": "#3daee9",
|
||||||
|
"postFaintLink": "#3daee9",
|
||||||
|
"popoverPostFaintLink": "#3daee9",
|
||||||
|
"popoverFaintLink": "#3daee9",
|
||||||
|
"popoverFaintText": "#bebebe",
|
||||||
|
"popoverPostLink": "#3daee9",
|
||||||
|
"popoverLightText": "#f2f2f2",
|
||||||
|
"highlightIcon": "#666c77",
|
||||||
|
"highlightPostFaintLink": "#3daee9",
|
||||||
|
"profileTint": "#070e1b",
|
||||||
|
"profileBg": "#03070f",
|
||||||
|
"wallpaper": "#050a13"
|
||||||
|
},
|
||||||
|
"opacity": {
|
||||||
|
"underlay": 0.15,
|
||||||
|
"bg": 0.85,
|
||||||
|
"alert": 0.5,
|
||||||
|
"alertPopup": 0.95,
|
||||||
|
"panel": 0.75,
|
||||||
|
"input": 0.9,
|
||||||
|
"btn": 0.9,
|
||||||
|
"faint": 0.5,
|
||||||
|
"border": 0.55,
|
||||||
|
"popover": 1,
|
||||||
|
"profileTint": 0.5
|
||||||
|
},
|
||||||
|
"radii": {
|
||||||
|
"btn": "3",
|
||||||
|
"input": "4",
|
||||||
|
"checkbox": "1",
|
||||||
|
"panel": "3",
|
||||||
|
"avatar": "4",
|
||||||
|
"avatarAlt": "4",
|
||||||
|
"tooltip": 2,
|
||||||
|
"attachment": "3"
|
||||||
|
},
|
||||||
|
"fonts": {
|
||||||
|
"interface": {
|
||||||
|
"family": "sans-serif"
|
||||||
|
},
|
||||||
|
"input": {
|
||||||
|
"family": "inherit"
|
||||||
|
},
|
||||||
|
"post": {
|
||||||
|
"family": "inherit"
|
||||||
|
},
|
||||||
|
"postCode": {
|
||||||
|
"family": "monospace"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"themeEngineVersion": 3,
|
||||||
|
"fonts": {},
|
||||||
|
"shadows": {
|
||||||
|
"panel": [
|
||||||
|
{
|
||||||
|
"x": "1",
|
||||||
|
"y": "2",
|
||||||
|
"blur": "6",
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": 0.6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"button": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": "0",
|
||||||
|
"spread": "1",
|
||||||
|
"color": "#ffffff",
|
||||||
|
"alpha": "0.15",
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": "1",
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"panelHeader": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": "40",
|
||||||
|
"blur": "40",
|
||||||
|
"spread": "-40",
|
||||||
|
"inset": true,
|
||||||
|
"color": "#ffffff",
|
||||||
|
"alpha": "0.1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buttonHover": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"color": "--link",
|
||||||
|
"alpha": 1,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": "1",
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"buttonPressed": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"blur": "0",
|
||||||
|
"spread": "50",
|
||||||
|
"color": "--faint",
|
||||||
|
"alpha": 0.5,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"color": "#ffffff",
|
||||||
|
"alpha": 0.2,
|
||||||
|
"inset": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": "1",
|
||||||
|
"y": "1",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": 0,
|
||||||
|
"color": "#000000",
|
||||||
|
"alpha": "0.3",
|
||||||
|
"inset": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"input": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": "0",
|
||||||
|
"blur": 0,
|
||||||
|
"spread": "1",
|
||||||
|
"color": "#FFFFFF",
|
||||||
|
"alpha": "0.2",
|
||||||
|
"inset": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"opacity": {
|
||||||
|
"bg": "0.85",
|
||||||
|
"border": "0.55",
|
||||||
|
"panel": "0.75",
|
||||||
|
"btn": "0.9",
|
||||||
|
"input": "0.9"
|
||||||
|
},
|
||||||
|
"colors": {
|
||||||
|
"bg": "#070e1b",
|
||||||
|
"fg": "#31363b",
|
||||||
|
"text": "#bebebe",
|
||||||
|
"underlay": "#000000",
|
||||||
|
"link": "#318cbc",
|
||||||
|
"accent": "#3daee9",
|
||||||
|
"faint": "#bebebe",
|
||||||
|
"faintLink": "#3daee9",
|
||||||
|
"postFaintLink": "#3daee9",
|
||||||
|
"cBlue": "#ffffff",
|
||||||
|
"cRed": "#c42d38",
|
||||||
|
"cGreen": "#22b325",
|
||||||
|
"cOrange": "#d7d720",
|
||||||
|
"highlight": "#0d1930",
|
||||||
|
"highlightLightText": "#f2f2f2",
|
||||||
|
"highlightPostLink": "#3daee9",
|
||||||
|
"highlightFaintText": "#bebebe",
|
||||||
|
"highlightFaintLink": "#3daee9",
|
||||||
|
"highlightPostFaintLink": "#3daee9",
|
||||||
|
"highlightText": "#bebebe",
|
||||||
|
"highlightLink": "#3daee9",
|
||||||
|
"highlightIcon": "#666c77",
|
||||||
|
"popover": "#070e1b",
|
||||||
|
"popoverLightText": "#f2f2f2",
|
||||||
|
"popoverPostLink": "#3daee9",
|
||||||
|
"popoverFaintText": "#bebebe",
|
||||||
|
"popoverFaintLink": "#3daee9",
|
||||||
|
"popoverPostFaintLink": "#3daee9",
|
||||||
|
"popoverText": "#bebebe",
|
||||||
|
"popoverLink": "#3daee9",
|
||||||
|
"popoverIcon": "#63666d",
|
||||||
|
"selectedPost": "#0d1930",
|
||||||
|
"selectedPostFaintText": "#bebebe",
|
||||||
|
"selectedPostLightText": "#f2f2f2",
|
||||||
|
"selectedPostPostLink": "#3daee9",
|
||||||
|
"selectedPostFaintLink": "#3daee9",
|
||||||
|
"selectedPostText": "#bebebe",
|
||||||
|
"selectedPostLink": "#3daee9",
|
||||||
|
"selectedPostIcon": "#666c77",
|
||||||
|
"selectedMenu": "#0d1930",
|
||||||
|
"selectedMenuLightText": "#f2f2f2",
|
||||||
|
"selectedMenuFaintText": "#bebebe",
|
||||||
|
"selectedMenuFaintLink": "#3daee9",
|
||||||
|
"selectedMenuText": "#bebebe",
|
||||||
|
"selectedMenuLink": "#3daee9",
|
||||||
|
"selectedMenuIcon": "#666c77",
|
||||||
|
"selectedMenuPopover": "#0d1930",
|
||||||
|
"selectedMenuPopoverLightText": "#f2f2f2",
|
||||||
|
"selectedMenuPopoverFaintText": "#bebebe",
|
||||||
|
"selectedMenuPopoverFaintLink": "#3daee9",
|
||||||
|
"selectedMenuPopoverText": "#bebebe",
|
||||||
|
"selectedMenuPopoverLink": "#3daee9",
|
||||||
|
"selectedMenuPopoverIcon": "#666c77",
|
||||||
|
"lightText": "#f2f2f2",
|
||||||
|
"postLink": "#3daee9",
|
||||||
|
"border": "#363c41",
|
||||||
|
"poll": "#1d4f6e",
|
||||||
|
"pollText": "#bebebe",
|
||||||
|
"icon": "#63666d",
|
||||||
|
"fgText": "#bebebe",
|
||||||
|
"fgLink": "#543fe7",
|
||||||
|
"panel": "#0d1a31",
|
||||||
|
"panelText": "#bebebe",
|
||||||
|
"panelFaint": "#bebebe",
|
||||||
|
"panelLink": "#38a5ed",
|
||||||
|
"topBar": "#0d1a31",
|
||||||
|
"topBarText": "#bebebe",
|
||||||
|
"topBarLink": "#bebebe",
|
||||||
|
"tab": "#1b1d1f",
|
||||||
|
"tabText": "#bebebe",
|
||||||
|
"tabActiveText": "#bebebe",
|
||||||
|
"btn": "#18223d",
|
||||||
|
"btnText": "#bebebe",
|
||||||
|
"btnPanelText": "#bebebe",
|
||||||
|
"btnTopBarText": "#bebebe",
|
||||||
|
"btnPressed": "#1b1d1f",
|
||||||
|
"btnPressedText": "#bebebe",
|
||||||
|
"btnPressedPanel": "#1b1d1f",
|
||||||
|
"btnPressedPanelText": "#bebebe",
|
||||||
|
"btnPressedTopBar": "#1b1d1f",
|
||||||
|
"btnPressedTopBarText": "#bebebe",
|
||||||
|
"btnToggled": "#1b1d1f",
|
||||||
|
"btnToggledText": "#bebebe",
|
||||||
|
"btnToggledPanelText": "#bebebe",
|
||||||
|
"btnToggledTopBarText": "#bebebe",
|
||||||
|
"btnDisabled": "#0c121c",
|
||||||
|
"btnDisabledText": "#393d45",
|
||||||
|
"btnDisabledPanelText": "#393d45",
|
||||||
|
"btnDisabledTopBarText": "#393d45",
|
||||||
|
"input": "#18223d",
|
||||||
|
"inputText": "#bebebe",
|
||||||
|
"inputPanelText": "#bebebe",
|
||||||
|
"inputTopbarText": "#bebebe",
|
||||||
|
"alertError": "#ff090f",
|
||||||
|
"alertErrorText": "#bebebe",
|
||||||
|
"alertErrorPanelText": "#bebebe",
|
||||||
|
"alertWarning": "#d7d720",
|
||||||
|
"alertWarningText": "#ffffff",
|
||||||
|
"alertWarningPanelText": "#ffffff",
|
||||||
|
"alertNeutral": "#bebebe",
|
||||||
|
"alertNeutralText": "#ffffff",
|
||||||
|
"alertNeutralPanelText": "#ffffff",
|
||||||
|
"badgeNotification": "#024297",
|
||||||
|
"badgeNotificationText": "#ffffff"
|
||||||
|
},
|
||||||
|
"radii": {
|
||||||
|
"btn": "3",
|
||||||
|
"input": "4",
|
||||||
|
"checkbox": "1",
|
||||||
|
"panel": "3",
|
||||||
|
"avatar": "4",
|
||||||
|
"avatarAlt": "4",
|
||||||
|
"attachment": "3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
21
flake.lock
21
flake.lock
|
@ -559,26 +559,6 @@
|
||||||
"url": "https://git.lix.systems/lix-project/hydra"
|
"url": "https://git.lix.systems/lix-project/hydra"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"iceshrimp": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1718289195,
|
|
||||||
"narHash": "sha256-xmkExjsTztXW4/AYb3d3Er6Wwg4r7AVwq7rv9E93+Ec=",
|
|
||||||
"ref": "refs/heads/dev",
|
|
||||||
"rev": "746c6319d3425ccfacc906535c67951e161996d9",
|
|
||||||
"revCount": 47,
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://iceshrimp.dev/iceshrimp/packaging"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://iceshrimp.dev/iceshrimp/packaging"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ixx": {
|
"ixx": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
@ -1018,7 +998,6 @@
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hydra": "hydra",
|
"hydra": "hydra",
|
||||||
"iceshrimp": "iceshrimp",
|
|
||||||
"kyouma-www": "kyouma-www",
|
"kyouma-www": "kyouma-www",
|
||||||
"lix": "lix",
|
"lix": "lix",
|
||||||
"lix-module": "lix-module",
|
"lix-module": "lix-module",
|
||||||
|
|
|
@ -29,10 +29,6 @@
|
||||||
url = "git+https://git.lix.systems/lix-project/hydra?ref=main&rev=799441dcf6d595efb0def686ca0815aef398627b";
|
url = "git+https://git.lix.systems/lix-project/hydra?ref=main&rev=799441dcf6d595efb0def686ca0815aef398627b";
|
||||||
inputs.lix.follows = "lix";
|
inputs.lix.follows = "lix";
|
||||||
};
|
};
|
||||||
iceshrimp = {
|
|
||||||
url = "git+https://iceshrimp.dev/iceshrimp/packaging";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
kyouma-www = {
|
kyouma-www = {
|
||||||
url = "git+https://woof.rip/emily/kyouma-net.git";
|
url = "git+https://woof.rip/emily/kyouma-net.git";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
40
pkgs/akkoma-fe-domi/default.nix
Normal file
40
pkgs/akkoma-fe-domi/default.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
akkoma-frontends,
|
||||||
|
fetchFromGitea,
|
||||||
|
fetchYarnDeps
|
||||||
|
}:
|
||||||
|
akkoma-frontends.akkoma-fe.overrideAttrs (let
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "git.sakamoto.pl";
|
||||||
|
owner = "domi";
|
||||||
|
repo = "akkoma-fe";
|
||||||
|
rev = "5f0339ce005ccb12365128089edb5fd77f60841b";
|
||||||
|
hash = "sha256-AHmJyOFmQZXmNMMsp8ONm9Itns1H/idEKl8+sxn2RSA=";
|
||||||
|
};
|
||||||
|
offlineCache = fetchYarnDeps {
|
||||||
|
yarnLock = "${src}/yarn.lock";
|
||||||
|
hash = "sha256-7WB6nmxNckMdftKds2OgD2kClvCCT/I5vmthV0jrkSs=";
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
version = "unstable-2024-07-20";
|
||||||
|
pname = "akkoma-fe-domi";
|
||||||
|
inherit src offlineCache;
|
||||||
|
postPatch = ''
|
||||||
|
# Build scripts assume to be used within a Git repository checkout
|
||||||
|
sed -E -i '/^let commitHash =/,/;$/clet commitHash = "${builtins.substring 0 7 src.rev}";' \
|
||||||
|
build/webpack.prod.conf.js
|
||||||
|
'';
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
runHook preConfigure
|
||||||
|
|
||||||
|
export HOME="$(mktemp -d)"
|
||||||
|
|
||||||
|
yarn config --offline set yarn-offline-mirror ${offlineCache}
|
||||||
|
fixup-yarn-lock yarn.lock
|
||||||
|
|
||||||
|
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||||
|
|
||||||
|
runHook postConfigure
|
||||||
|
'';
|
||||||
|
})
|
|
@ -5,4 +5,5 @@ final: prev: {
|
||||||
build-worker-oci = final.callPackage ./build-worker-oci/default.nix {};
|
build-worker-oci = final.callPackage ./build-worker-oci/default.nix {};
|
||||||
librespeed-rust = final.callPackage ./librespeed-rust/default.nix {};
|
librespeed-rust = final.callPackage ./librespeed-rust/default.nix {};
|
||||||
librespeed-go = final.callPackage ./librespeed-go/default.nix {};
|
librespeed-go = final.callPackage ./librespeed-go/default.nix {};
|
||||||
|
akkoma-fe-domi = final.callPackage ./akkoma-fe-domi/default.nix {};
|
||||||
}
|
}
|
||||||
|
|
35
secrets/services/akkoma.yaml
Normal file
35
secrets/services/akkoma.yaml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
services:
|
||||||
|
akkoma:
|
||||||
|
mailerPassword: ENC[AES256_GCM,data:kNep5V0HVr17bEIY2/AbwRUPqkfHKf9xnOnYi5sMJ+STWjVrQf+AzdueJTAf9Nym,iv:Usmu0uM5ev60Ui8h9zLUcDDJIHNSxAFtMq5LyLwmAsA=,tag:fNIhB8LGJwWO3zzQWgm68A==,type:str]
|
||||||
|
deepl: ENC[AES256_GCM,data:JVJkCm6UFUlownU/oRTmZ5o85mPv935Hj56JcXCt3PwNmx1kQbyj,iv:UzvGgVter1/9U8g/HQ2FfWNviD0KgWRLnW9fzgfGDag=,tag:q65bd26xFQ6Av71hy8u2fA==,type:str]
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1ht2wetcyl9rzu45e02pqqwgmyfsfe6y6ygxyuxpfhnkdm62d3pqsg3uqvd
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZTi9Ha0tQRGE2L3BzclpW
|
||||||
|
NnduRVVRUnhkV1pEOXllZTA0bnN0NENESlM4Ck9jSTcxcjJIdThvUk9IM1FCOGNv
|
||||||
|
V1FNV2ZHbHlTaWNBL0VvSGxhSzlWSDgKLS0tIEFoWEozY0VSWVA0cVp5dkI4NHNH
|
||||||
|
RVQ3aDd0c1RDNWd2eGxiNURGRXVXS2sKTT4LpWSIb9hjrcdUWOhieUeUHop0pwoA
|
||||||
|
OfOv3y3dp7tYc5HRREN5jkVx29jb2lrml0ycu9ek58S8+bolfzN8yQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2024-10-31T16:57:58Z"
|
||||||
|
mac: ENC[AES256_GCM,data:VJpsLBdnle6bP6ALxLS2eTOEbiHJbNc5D+pvsoJulI9VODtBk0p1VvJv9ilToxh4oiwctMmCKSO4R9NyuZUqoqwwlYtW6tFDITBA2eg/iu/uQjcuuKLC+fFGdtnTpZcShUyMds3qi8Z8Iegk2sSMLk5QXCE2QhMUQ50VN4TXF2c=,iv:rOF34iqckOJMAVm+3RDSdlrJh4hgnyiTut3SM1e0w0E=,tag:cMjMkKkN8UFWGQqQfWBUnA==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2024-10-31T16:40:38Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
hF4D1GtNSlou/HkSAQdAmS/QDuU40+HtiMoCa9byz80b6lGMd6cvqxYShifFxUgw
|
||||||
|
Bn34D6HB6z3nQxWanlOCkA2ud8GBUhEFlLjsQf29apfWuWxKpNv37Olou1/vGvNm
|
||||||
|
0l4BIzFesU+aoIUi+Fp0GbJ1+ObzRvGZq1IULChsDgbbvDnHah7yvN5wKYwj6x7f
|
||||||
|
ZhPpm40+FLea1najiN6igUD6oUy8TSYnCgPODef4FeI0ZwFqF5MaucY8CNuWsugS
|
||||||
|
=1vZk
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: B04F01A7A98A13020C39B4A68AB7B773A214ACE5
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.9.1
|
Loading…
Reference in a new issue