128 lines
3.7 KiB
Nix
128 lines
3.7 KiB
Nix
{ config, pkgs, ... }:
|
|
let
|
|
frontendConfig = {
|
|
alwaysShowSubjectInput = true;
|
|
background = "/static/bg.png";
|
|
collapseMessageWithSubject = false;
|
|
greentext = false;
|
|
hideFilteredStatuses = false;
|
|
hideMutedPosts = false;
|
|
hidePostStats = false;
|
|
hideSitename = false;
|
|
hideUserStats = false;
|
|
loginMethod = "password";
|
|
logo = "/static/logo.png";
|
|
logoMargin = ".1em";
|
|
logoMask = true;
|
|
logoLeft = false;
|
|
nsfwCensorImage = "";
|
|
postContentType = "text/plain";
|
|
redirectRootLogin = "/main/friends";
|
|
redirectRootNoLogin = "/main/all";
|
|
showFeaturesPanel = true;
|
|
showInstanceSpecificPanel = true;
|
|
sidebarRight = false;
|
|
subjectLineBehavior = "email";
|
|
theme = "kemonomimi-theme";
|
|
webPushNotifications = true;
|
|
};
|
|
in
|
|
{
|
|
# probably move them out? atm they stay since they only serve kemonomimi
|
|
services.cloudflared.enable = true;
|
|
services.cloudflared.tunnels."65c093ce-a3ac-4369-b240-2169514be106" = {
|
|
credentialsFile = "/etc/secrets/65c093ce-a3ac-4369-b240-2169514be106.json";
|
|
ingress = {
|
|
"kemonomimi.pet" = "http://localhost:8679";
|
|
"fedi.kemonomimi.pet" = "http://localhost:8678";
|
|
"media.kemonomimi.pet" = "http://localhost:8678";
|
|
};
|
|
default = "http_status:404";
|
|
};
|
|
|
|
services.akkoma.enable = true;
|
|
# ill have to enable this
|
|
# services.akkoma.config.":pleroma".":media_proxy" = {
|
|
# enabled = true;
|
|
# proxy_opts.redirect_on_failure = true;
|
|
# };
|
|
services.akkoma.config = {
|
|
":pleroma" = {
|
|
"Pleroma.Captcha".enabled = false;
|
|
|
|
":instance" = {
|
|
name = "Kemonomimi.pet";
|
|
description = "Akkoma instance for kemonomimi.pet";
|
|
email = "admin@kemonomimi.pet";
|
|
registrations_open = false;
|
|
healthcheck = true;
|
|
allow_relay = true;
|
|
public = true;
|
|
};
|
|
|
|
"Pleroma.Web.Endpoint" = {
|
|
url.host = "fedi.kemonomimi.pet";
|
|
url.port = 443;
|
|
url.scheme = "https";
|
|
http.ip = "127.0.0.1";
|
|
http.port = 8678;
|
|
};
|
|
":configurable_from_database" = false;
|
|
"Pleroma.Upload".base_url = "https://media.kemonomimi.pet:443/media";
|
|
|
|
":frontend_configurations" = {
|
|
pleroma_fe = frontendConfig;
|
|
};
|
|
};
|
|
};
|
|
services.akkoma.frontends.admin.name = "admin-fe";
|
|
services.akkoma.frontends.admin.ref = "stable";
|
|
services.akkoma.frontends.admin.package = pkgs.akkoma-admin-fe;
|
|
|
|
services.akkoma.frontends.primary.name = "akkoma-fe";
|
|
services.akkoma.frontends.primary.ref = "stable";
|
|
services.akkoma.frontends.primary.package =
|
|
pkgs.runCommand "akkoma-fe"
|
|
{
|
|
config = builtins.toJSON frontendConfig;
|
|
nativeBuildInputs = with pkgs; [
|
|
jq
|
|
lndir
|
|
];
|
|
passAsFile = [ "config" ];
|
|
}
|
|
''
|
|
mkdir $out
|
|
lndir ${pkgs.akkoma-fe} $out
|
|
|
|
rm $out/static/config.json
|
|
jq -s add ${pkgs.akkoma-fe}/static/config.json $configPath \
|
|
> $out/static/config.json
|
|
'';
|
|
|
|
services.akkoma.extraStatic =
|
|
let
|
|
mkPackage = src: pkgs.runCommand "akkoma-asset" {} ''
|
|
cp -r ${src} $out
|
|
'';
|
|
in {
|
|
"favicon.png" = mkPackage ../akkoma-static/favicon.png;
|
|
"static" = mkPackage ../akkoma-static/static;
|
|
"instance" = mkPackage ../akkoma-static/instance;
|
|
};
|
|
|
|
systemd.services.local-static-http = {
|
|
description = "Temporary server for under construction";
|
|
wants = [ "network.target" ];
|
|
after = [ "network.target" ];
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.python3}/bin/python3 -m http.server 8679 --bind 127.0.0.1";
|
|
WorkingDirectory = "/var/www/kemonomimi.pet";
|
|
Restart = "on-failure";
|
|
User = "daniel";
|
|
};
|
|
wantedBy = [ "multi-user.target" ];
|
|
};
|
|
|
|
}
|
|
|