Compare commits
3 commits
e1765f527d
...
1e758cd558
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1e758cd558 | ||
|
|
c30aa2526e | ||
|
|
5b1dd88d36 |
6 changed files with 105 additions and 23 deletions
1
flake.lock
generated
1
flake.lock
generated
|
|
@ -29,7 +29,6 @@
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777364820,
|
"lastModified": 1777364820,
|
||||||
"narHash": "sha256-XHxV1V62RJlU/Y49WD6fNIyESJCHKMVwuoN+WIa3gLg=",
|
"narHash": "sha256-XHxV1V62RJlU/Y49WD6fNIyESJCHKMVwuoN+WIa3gLg=",
|
||||||
"ref": "refs/heads/main",
|
|
||||||
"rev": "1cc9dbf2a47b7b329507cc4ddc970e10b968121c",
|
"rev": "1cc9dbf2a47b7b329507cc4ddc970e10b968121c",
|
||||||
"revCount": 6618,
|
"revCount": 6618,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,7 @@
|
||||||
./services/forgejo.nix
|
./services/forgejo.nix
|
||||||
./services/forgejo-runner.nix
|
./services/forgejo-runner.nix
|
||||||
./services/borgbackup.nix
|
./services/borgbackup.nix
|
||||||
|
./services/gotosocial.nix
|
||||||
# ./services/akkoma.nix
|
# ./services/akkoma.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
@ -96,6 +97,7 @@
|
||||||
./hosts/vps/disko-config.nix
|
./hosts/vps/disko-config.nix
|
||||||
./services/nginx.nix
|
./services/nginx.nix
|
||||||
./services/blog.nix
|
./services/blog.nix
|
||||||
|
./services/phanpy.nix
|
||||||
./services/coturn.nix
|
./services/coturn.nix
|
||||||
./services/livekit.nix
|
./services/livekit.nix
|
||||||
./services/lk-jwt.nix
|
./services/lk-jwt.nix
|
||||||
|
|
|
||||||
|
|
@ -21,4 +21,12 @@
|
||||||
SSH_LISTEN_PORT = 2222;
|
SSH_LISTEN_PORT = 2222;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Forgejo binds HTTP to 10.10.0.2 (the wg0 inner address). Without this
|
||||||
|
# ordering, forgejo races wireguard at boot, fails to bind, and stays up
|
||||||
|
# only on its all-interfaces SSH listener — leaving the web UI 502'd.
|
||||||
|
systemd.services.forgejo = {
|
||||||
|
after = [ "wireguard-wg0.service" ];
|
||||||
|
requires = [ "wireguard-wg0.service" ];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
47
services/gotosocial.nix
Normal file
47
services/gotosocial.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 8080 ];
|
||||||
|
|
||||||
|
services.gotosocial = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
application-name = "gotosocial";
|
||||||
|
host = "fedi.ellie.town";
|
||||||
|
protocol = "https";
|
||||||
|
|
||||||
|
bind-address = "10.10.0.2";
|
||||||
|
port = 8080;
|
||||||
|
|
||||||
|
trusted-proxies = [ "10.10.0.1/32" ];
|
||||||
|
|
||||||
|
db-type = "sqlite";
|
||||||
|
db-address = "/var/lib/gotosocial/database.sqlite";
|
||||||
|
|
||||||
|
storage-backend = "local";
|
||||||
|
storage-local-base-path = "/var/lib/gotosocial/storage";
|
||||||
|
|
||||||
|
letsencrypt-enabled = false;
|
||||||
|
|
||||||
|
accounts-registration-open = false;
|
||||||
|
accounts-approval-required = true;
|
||||||
|
accounts-reason-required = false;
|
||||||
|
accounts-allow-custom-css = false;
|
||||||
|
|
||||||
|
instance-languages = [ "en" ];
|
||||||
|
instance-expose-public-timeline = true;
|
||||||
|
instance-expose-peers = false;
|
||||||
|
instance-deliver-to-shared-inboxes = true;
|
||||||
|
instance-federation-mode = "blocklist";
|
||||||
|
|
||||||
|
media-image-strip-metadata = true;
|
||||||
|
media-local-max-size = "40MiB";
|
||||||
|
media-remote-max-size = "40MiB";
|
||||||
|
media-cleanup-from = "00:00";
|
||||||
|
media-cleanup-every = "24h";
|
||||||
|
|
||||||
|
smtp-host = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
34
services/phanpy.nix
Normal file
34
services/phanpy.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
phanpy = pkgs.stdenv.mkDerivation rec {
|
||||||
|
pname = "phanpy";
|
||||||
|
version = "2026.02.24.48b2cf7";
|
||||||
|
|
||||||
|
src = pkgs.fetchzip {
|
||||||
|
url = "https://github.com/cheeaun/phanpy/releases/download/${version}/phanpy-dist.zip";
|
||||||
|
hash = "sha256-55DI7tr3wvf/jC9S/J71I2YgIKqyPXODKSkZo5SqJM8=";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p $out
|
||||||
|
cp -r * $out/
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.nginx.virtualHosts."phanpy.ellie.town" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
root = "${phanpy}";
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
tryFiles = "$uri $uri/ /index.html";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -88,28 +88,20 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# virtualHosts."akkoma.ellie.town" = {
|
virtualHosts."fedi.ellie.town" = {
|
||||||
# enableACME = true;
|
enableACME = true;
|
||||||
# forceSSL = true;
|
forceSSL = true;
|
||||||
# locations."/" = {
|
locations."= /".extraConfig = ''
|
||||||
# proxyPass = "http://10.10.0.2:4000";
|
return 302 /@ellie;
|
||||||
# proxyWebsockets = true;
|
'';
|
||||||
# extraConfig = ''
|
locations."/" = {
|
||||||
# client_max_body_size 16m;
|
proxyPass = "http://10.10.0.2:8080";
|
||||||
# '';
|
proxyWebsockets = true;
|
||||||
# };
|
extraConfig = ''
|
||||||
# };
|
client_max_body_size 40m;
|
||||||
|
'';
|
||||||
# virtualHosts."media.ellie.town" = {
|
};
|
||||||
# enableACME = true;
|
};
|
||||||
# forceSSL = true;
|
|
||||||
# locations."/" = {
|
|
||||||
# proxyPass = "http://10.10.0.2:4000";
|
|
||||||
# extraConfig = ''
|
|
||||||
# client_max_body_size 16m;
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
virtualHosts."forgejo.ellie.town" = {
|
virtualHosts."forgejo.ellie.town" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue