Community Tutorials NixOS كيفية تكوين NixOS بشكل تصريحي باستخدام configuration.nix
كيفية تكوين NixOS بشكل تصريحي باستخدام configuration.nix
NIXOS

كيفية تكوين NixOS بشكل تصريحي باستخدام configuration.nix

SKYLINE Knowledge Base
Photo by Florian Olivo on Unsplash

دليل عملي خطوة بخطوة لـ كيفية تكوين NixOS بشكل تصريحي باستخدام configuration.nix. أوامر مختبرة في الإنتاج، متطلبات مسبقة، تحقق نهائي وروابط لمواضيع ذات صلة.

الفكرة الأساسية من NixOS هي configuration.nix — ملف واحد يلتقط حالة النظام بالكامل. غيّره، شغّل nixos-rebuild switch، والنظام الحي يتوافق.

المتطلبات المسبقة

الخطوة 1: أفعال rebuild

  • nixos-rebuild switch — بناء وتفعيل وتعيين كافتراضي للإقلاع.
  • nixos-rebuild test — بناء وتفعيل، يتراجع عند إعادة التشغيل.
  • nixos-rebuild boot — بناء وافتراضي، بدون تفعيل الآن.
  • nixos-rebuild dry-activate — ماذا سيتغير؟
sudoedit /etc/nixos/configuration.nix
sudo nixos-rebuild switch

الخطوة 2: وحدات شائعة

Nginx:

services.nginx = {
  enable = true;
  recommendedTlsSettings = true;
  virtualHosts."example.sa" = {
    enableACME = true;
    forceSSL = true;
    locations."/" = { proxyPass = "http://127.0.0.1:3000"; };
  };
};

security.acme = {
  acceptTerms = true;
  defaults.email = "ops@example.sa";
};

Postgres:

services.postgresql = {
  enable = true;
  package = pkgs.postgresql_16;
  ensureDatabases = [ "skyline" ];
  ensureUsers = [{ name = "skyline"; ensureDBOwnership = true; }];
};

Docker:

virtualisation.docker.enable = true;
users.users.ops.extraGroups = [ "docker" ];

جدار الحماية:

networking.firewall.allowedTCPPorts = [ 22 80 443 ];

الخطوة 3: الأجيال والتراجع

nixos-rebuild list-generations
sudo nixos-rebuild switch --rollback
sudo nix-env --switch-generation 42
sudo nix-collect-garbage --delete-older-than 30d

الخطوة 4: القنوات

sudo nix-channel --list
sudo nix-channel --add https://nixos.org/channels/nixos-24.05 nixos
sudo nix-channel --update
sudo nixos-rebuild switch --upgrade

الخطوة 5: البحث

nix search nixpkgs ripgrep
man configuration.nix

الخطوة 6: تقسيم الإعداد

imports = [
  ./hardware-configuration.nix
  ./users.nix
  ./web.nix
];

التحقق

sudo nixos-rebuild dry-activate
nixos-rebuild list-generations
systemctl --failed

الخاتمة

NixOS أسرع للتشغيل من التوزيعات الإلزامية — كل تغيير = code diff، وكل تراجع = أمر واحد.

الخطوات التالية

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship NixOS for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.