Skip to content

Sistem Modul & Opsi Custom

Sistem modul Nix memungkinkan Anda membuat opsi konfigurasi custom yang dapat digunakan kembali.

Membuat Modul Custom

Modul custom memungkinkan Anda mendefinisikan opsi konfigurasi Anda sendiri:

nix
{ config, lib, pkgs, ... }:

with lib;

{
  options.services.myservice = {
    enable = mkEnableOption "my custom service";
    
    port = mkOption {
      type = types.int;
      default = 8080;
      description = "Port untuk my service";
    };
  };

  config = mkIf config.services.myservice.enable {
    # Konfigurasi untuk service Anda
  };
}

Menggunakan Modul Custom

Impor modul custom Anda di flake.nix:

nix
{
  nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
    modules = [
      ./configuration.nix
      ./modules/myservice.nix
    ];
  };
}

Kemudian gunakan di konfigurasi Anda:

nix
{
  services.myservice = {
    enable = true;
    port = 9090;
  };
}

Referensi