From 8b8d35657078deb70d7af66497d9fe9cb49bac8f Mon Sep 17 00:00:00 2001 From: Alexander Derevianko Date: Fri, 1 Aug 2025 13:09:16 +0200 Subject: [PATCH] Add vscode-server, open 8080,8090,4200 for dev --- flake.lock | 69 ++++++++++++++++++- flake.nix | 5 ++ machines/izanagi/default.nix | 18 ++++- modules/default.nix | 1 + modules/development/default.nix | 7 ++ .../development/nix-vscode-server/default.nix | 19 +++++ 6 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 modules/development/default.nix create mode 100644 modules/development/nix-vscode-server/default.nix diff --git a/flake.lock b/flake.lock index db9a63d..aed363c 100644 --- a/flake.lock +++ b/flake.lock @@ -54,6 +54,24 @@ "type": "github" } }, + "flake-utils_2": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1681202837, + "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "cfacdce06f30d2b68473a46042957675eebb3401", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -158,6 +176,20 @@ "type": "github" } }, + "nixpkgs_3": { + "locked": { + "lastModified": 1682134069, + "narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "fd901ef4bf93499374c5af385b2943f5801c0833", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, "root": { "inputs": { "copyparty": "copyparty", @@ -167,7 +199,8 @@ "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_2", "sops-nix": "sops-nix", - "unstable": "unstable" + "unstable": "unstable", + "vscode-server": "vscode-server" } }, "sops-nix": { @@ -190,6 +223,21 @@ "type": "github" } }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "unstable": { "locked": { "lastModified": 1753694789, @@ -205,6 +253,25 @@ "repo": "nixpkgs", "type": "github" } + }, + "vscode-server": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1753541826, + "narHash": "sha256-foGgZu8+bCNIGeuDqQ84jNbmKZpd+JvnrL2WlyU4tuU=", + "owner": "nix-community", + "repo": "nixos-vscode-server", + "rev": "6d5f074e4811d143d44169ba4af09b20ddb6937d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-vscode-server", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 3a6e387..815b69d 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,8 @@ }; copyparty.url = "github:9001/copyparty"; + + vscode-server.url = "github:nix-community/nixos-vscode-server"; }; outputs = { @@ -86,7 +88,10 @@ disko.nixosModules.disko home-manager.nixosModules.home-manager sops-nix.nixosModules.sops + + # Applications inputs.copyparty.nixosModules.default + inputs.vscode-server.nixosModules.default ./machines/izanagi ./modules diff --git a/machines/izanagi/default.nix b/machines/izanagi/default.nix index ed40f84..36ab901 100644 --- a/machines/izanagi/default.nix +++ b/machines/izanagi/default.nix @@ -47,8 +47,16 @@ in { useOSProber = true; }; - networking.hostName = username; - networking.networkmanager.enable = true; + networking = { + hostName = username; + networkmanager.enable = true; + + firewall.allowedTCPPorts = [ + 8080 + 8090 # Mongo express port + 4200 # Angular application port + ]; + }; # Set your time zone. time.timeZone = "Europe/Warsaw"; @@ -76,6 +84,7 @@ in { hashedPassword = "$6$fgXNf1aUOgGn7QWQ$rOcVKUnBC7td/KVdyLzknQy4LjgQDETKPIxivi1yWd4boWbRgITr/.iYlekZOuRuC6m.WydgV9PviqlrioDF91"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ + git ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBcGhVpjmWEw1GEw0y/ysJPa2v3+u/Rt/iES/Se2huH2 alexander0derevianko@gmail.com" @@ -88,6 +97,7 @@ in { vim wget ripgrep + direnv ]; services.openssh = { @@ -135,6 +145,10 @@ in { inherit username; }; }; + + development = { + vscode-server.enable = true; + }; }; # DO NOT CHANGE AT ANY POINT! diff --git a/modules/default.nix b/modules/default.nix index 94440a0..4ddea19 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -9,5 +9,6 @@ ./samba ./searxng ./auth + ./development ]; } diff --git a/modules/development/default.nix b/modules/development/default.nix new file mode 100644 index 0000000..8a5e0b6 --- /dev/null +++ b/modules/development/default.nix @@ -0,0 +1,7 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./nix-vscode-server + ]; +} diff --git a/modules/development/nix-vscode-server/default.nix b/modules/development/nix-vscode-server/default.nix new file mode 100644 index 0000000..e0ec3f1 --- /dev/null +++ b/modules/development/nix-vscode-server/default.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, inputs, ... }: + +with lib; + +let + cfg = config.dov.development.vscode-server; +in { + options.dov.development.vscode-server = { + enable = mkEnableOption "vscode server config"; + }; + + config = mkIf cfg.enable { + services.vscode-server = { + enable = true; + enableFHS = true; + }; + }; + +}