我正在使用 Nixos,如何以声明方式使用 Cloudflare 隧道?
创建一个 nix 文件为
/etc/nixos/cloudflared.nix
sudo vim /etc/nixos/cloudflared.nix
粘贴以下代码
按
:wq
保存并退出
文件 /etc/nixos/cloudflared.nix
{ config, lib, pkgs, ... }:
{
environment.systemPackages = [ pkgs.cloudflared ];
users.users.cloudflared = {
group = "cloudflared";
isSystemUser = true;
};
users.groups.cloudflared = { };
systemd.services.my_tunnel = {
wantedBy = [ "multi-user.target" ];
# after = [ "network.target" ];
after = [ "network-online.target" "systemd-resolved.service" ];
serviceConfig = {
ExecStart = "${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate run --token=<myToken>";
# ExecStart = "${pkgs.cloudflared}/bin/cloudflared tunnel --no-autoupdate run --credentials-file=/home/prateek/cloudflare.token";
Restart = "always";
User = "cloudflared";
Group = "cloudflared";
};
};
}
使用
验证文件内容cat /etc/nixos/cloudflared.nix
和
导入
/etc/nixos/configuration.nix
{ pkgs, lib, config, ... }:
#let
# sources = import ./npins;
# proxmox-nixos = import sources.proxmox-nixos;
#in
{
imports = [
./hardware-configuration.nix
./cloudflare.nix
];
#...
# rest of config
#...