1
0
Fork 0
forked from emily/nixfiles

akkoma: add initial config

This commit is contained in:
emily 2024-10-31 19:44:04 +01:00
parent 9f9f6d7b76
commit e6de0b8257
Signed by untrusted user: emily
GPG key ID: F6F4C66207FCF995
9 changed files with 899 additions and 26 deletions

View file

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

View file

@ -1,10 +1,11 @@
{ ... }: { { ... }: {
imports = [ imports = [
../../common ../../common
../../profiles/builder.nix ../../profiles/builder.nix
../../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

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

View 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"
}
}
}

View file

@ -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",

View file

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

View 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
'';
})

View file

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

View 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