Add frps systemd unit for running frps all the time
This commit is contained in:
parent
311890c861
commit
62b4eb1933
1 changed files with 38 additions and 1 deletions
|
|
@ -1,6 +1,9 @@
|
|||
{ config, configFiles, inputs, lib, pkgs, ... }:
|
||||
with lib;
|
||||
{
|
||||
let
|
||||
group = "frps";
|
||||
user = "frps";
|
||||
in {
|
||||
options.myModules.frps.enable = mkEnableOption "custom frps configuration";
|
||||
config = mkIf config.myModules.frps.enable {
|
||||
environment = {
|
||||
|
|
@ -8,6 +11,40 @@ with lib;
|
|||
systemPackages = [
|
||||
pkgs.frp
|
||||
];
|
||||
|
||||
};
|
||||
sops.secrets.frps-env = {
|
||||
format = "dotenv";
|
||||
group = "${group}";
|
||||
mode = "0440";
|
||||
owner = "${user}";
|
||||
restartUnits = [];
|
||||
sopsFile = ../../secrets/frps.env;
|
||||
};
|
||||
systemd.services.frps = {
|
||||
after=["network.target" "network-online.target"];
|
||||
description="FRP server process";
|
||||
requires=["network-online.target"];
|
||||
restartIfChanged = true;
|
||||
stopIfChanged = true;
|
||||
serviceConfig = {
|
||||
EnvironmentFile="/var/run/secrets/frps-env";
|
||||
Type = "simple";
|
||||
User = "${user}";
|
||||
Group = "${group}";
|
||||
ExecStart = "${pkgs.frp}/bin/frps -c /etc/frps.toml";
|
||||
TimeoutStopSec = "5s";
|
||||
PrivateTmp = true;
|
||||
WorkingDirectory = "/tmp";
|
||||
};
|
||||
startAt = "*:0/15";
|
||||
wantedBy = ["multi-user.target"];
|
||||
};
|
||||
users.groups.${group} = {};
|
||||
users.users.${user} = {
|
||||
group = "${group}";
|
||||
isNormalUser = false;
|
||||
isSystemUser = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue