57 lines
1.2 KiB
Nix
57 lines
1.2 KiB
Nix
{inputs, ...}: {
|
|
fileSystems."/var/lib/upfast" = {
|
|
device = "/root/10gb";
|
|
fsType = "ext4";
|
|
options = [
|
|
"loop"
|
|
"rw"
|
|
"usrquota"
|
|
"grpquota"
|
|
];
|
|
};
|
|
|
|
users = {
|
|
users.upfast = {
|
|
isSystemUser = true;
|
|
home = "/var/lib/upfast";
|
|
group = "upfast";
|
|
};
|
|
groups.upfast = {};
|
|
};
|
|
|
|
systemd.services.upfast = {
|
|
enable = true;
|
|
description = "SelfHosted file upload and share service like 0x0.st";
|
|
serviceConfig = {
|
|
Type = "simple";
|
|
User = "upfast";
|
|
Group = "upfast";
|
|
WorkingDirectory = "/var/lib/upfast";
|
|
Restart = "on-failure";
|
|
};
|
|
|
|
script = "${inputs.upfast.packages.aarch64-linux.default}/bin/upfast -p 8383 -d https://upfast.cronyakatsuki.xyz";
|
|
|
|
after = ["var-lib-upfast.mount"];
|
|
bindsTo = ["var-lib-upfast.mount"];
|
|
|
|
wantedBy = ["multi-user.target"];
|
|
};
|
|
|
|
services.traefik.dynamicConfigOptions.http = {
|
|
services.upfast.loadBalancer.servers = [
|
|
{
|
|
url = "http://localhost:8383";
|
|
}
|
|
];
|
|
|
|
routers.upfast = {
|
|
rule = "Host(`upfast.cronyakatsuki.xyz`)";
|
|
tls = {
|
|
certResolver = "porkbun";
|
|
};
|
|
service = "upfast";
|
|
entrypoints = "websecure";
|
|
};
|
|
};
|
|
}
|