Skip to content

Создание демона для NixOS - предложение #254

@ByeW0r1d

Description

@ByeW0r1d

Добрый день!
Предлагаю добавить в описание как можно заставить работать Zapret на NixOS:

В директории /etc/nixos/ создается или копируется папка с вашим запретом которую ранее запускали в ручную. После чего создается отдельный модуль к примеру zapret.nix в директории /etc/nixos

Zapret.nix

{ config, pkgs, ... }:

{

  systemd.services.zapret = {
    enable = true;
    after = [ "network.target" ];
    wantedBy = [ "multi-user.target" ];
    description = "Custom Script Service";
    path = with pkgs; [ sudo git nftables iproute2 coreutils ];
    serviceConfig = {
        Type = "simple";
        WorkingDirectory="/etc/nixos/zapret/";
        User="root";
        ExecStart=''
          ${pkgs.bash}/bin/bash /etc/nixos/zapret/main_script.sh -nointeractive
        '';
        ExecStop=''
          ${pkgs.bash}/bin/bash /etc/nixos/zapret/stop_and_clean_nft.sh
        '';
        ExecStopPost=''
          ${pkgs.coreutils}/bin/echo  "Сервис завершён"
        '';
        PIDFile=''
          /run/zapret_discord_youtube.pid
        '';
        Restart = "on-failure";
        RestartSec = "5s";
    };
  };

}

Затем в конфигурационный файл configuration.nix добавляем отдельный модуль в формате

imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./zapret.nix
    ];

Так-же в конфигурационном файле включается nftables следующим образом:
networking.nftables.enable = true;

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions