2023-10-14 07:53:25 +00:00
|
|
|
{ pkgs, config, inputs, ... }:
|
2023-09-19 00:17:43 +00:00
|
|
|
|
|
|
|
{
|
2023-10-14 09:40:12 +00:00
|
|
|
### System proxy settings
|
2023-10-10 09:05:33 +00:00
|
|
|
networking.proxy.default = "http://127.0.0.1:7890/";
|
2023-09-19 00:17:43 +00:00
|
|
|
|
2023-10-14 09:40:12 +00:00
|
|
|
### User running proxy service
|
|
|
|
users.groups."clash-meta" = {};
|
|
|
|
users.users."clash-meta" = {
|
|
|
|
isSystemUser = true;
|
|
|
|
group = config.users.groups."clash-meta".name;
|
|
|
|
};
|
|
|
|
|
|
|
|
### Proxy service
|
2023-09-19 00:17:43 +00:00
|
|
|
systemd.services."clash-meta" = {
|
|
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
after = [ "network-online.target" ];
|
|
|
|
description = "Clash.Meta Daemon";
|
|
|
|
serviceConfig = {
|
|
|
|
Type = "simple";
|
|
|
|
WorkingDirectory = "/etc/clash-meta";
|
2023-09-20 21:23:10 +00:00
|
|
|
User = [ config.users.users."clash-meta".name ];
|
2023-09-19 00:17:43 +00:00
|
|
|
ExecStart = "${pkgs.clash-meta}/bin/clash-meta -d /etc/clash-meta";
|
|
|
|
Restart = "on-failure";
|
2023-09-20 21:23:10 +00:00
|
|
|
CapabilityBoundingSet = [
|
|
|
|
"CAP_NET_RAW"
|
|
|
|
"CAP_NET_ADMIN"
|
|
|
|
"CAP_NET_BIND_SERVICE"
|
|
|
|
];
|
|
|
|
AmbientCapabilities = [
|
|
|
|
"CAP_NET_RAW"
|
|
|
|
"CAP_NET_ADMIN"
|
|
|
|
"CAP_NET_BIND_SERVICE"
|
|
|
|
];
|
2023-09-19 00:17:43 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-10-14 07:53:25 +00:00
|
|
|
### Local Clash WebUI
|
|
|
|
# You can also use the following website, just in case:
|
|
|
|
# - metacubexd:
|
|
|
|
# - GH Pages Custom Domain: http://d.metacubex.one
|
|
|
|
# - GH Pages: https://metacubex.github.io/metacubexd
|
|
|
|
# - Cloudflare Pages: https://metacubexd.pages.dev
|
|
|
|
# - yacd (Yet Another Clash Dashboard):
|
|
|
|
# - https://yacd.haishan.me
|
|
|
|
# - clash-dashboard (buggy):
|
|
|
|
# - https://clash.razord.top
|
|
|
|
environment.etc."clash-meta/metacubexd".source = inputs.metacubexd;
|
2023-09-19 00:17:43 +00:00
|
|
|
}
|