# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # NixOS-WSL specific options are documented on the NixOS-WSL repository: # https://github.com/nix-community/NixOS-WSL { config, lib, pkgs, ... }: let cfg = config.services.forgejo; srv = cfg.settings.server; in { system.stateVersion = "24.11"; nix = { settings = { experimental-features = [ "nix-command" "flakes" ]; }; }; environment.systemPackages = with pkgs; [ git forgejo-runner ]; users.users = { # connection only via hashed password; dev = { isNormalUser = true; home = "/home/dev"; description = "User used to manually connect to this system (e.g. for maintenance)"; extraGroups = [ "docker" "wheel" ]; hashesPassword = "TODO"; } }; virtualisation.docker = { enable = true; }; services = { endlessh = { enable = true; port = 22; }; openssh = { enable = true; ports = [ 23 ]; }; # TODO: forgejo runner gitea-actions-runner = { package = pkgs.forgejo-actions-runner; instances.default = { enable = true; name = "default-runner"; url = "TODO"; tokenFile = config.age.secrets.forgejo-runner-token.path; labels = [ "ubuntu-latest:docker://node:16-bullseye" "ubuntu-22.04:docker://node:16-bullseye" "ubuntu-20.04:docker://node:16-bullseye" ]; } } }; }