78 lines
2.0 KiB
Nix
78 lines
2.0 KiB
Nix
{ pkgs, lib, modulesPath, ... }:
|
|
let
|
|
stateVersion = "24.05";
|
|
unstable = import <nixos-unstable> {};
|
|
adHome = "/srv/appdaemon";
|
|
adNixPath = "${adHome}/ad-nix";
|
|
adPath = "/usr/src/app";
|
|
adBranch = "hass";
|
|
in
|
|
{
|
|
imports = [
|
|
(modulesPath + "/virtualisation/proxmox-lxc.nix")
|
|
(import "${builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz}/nixos")
|
|
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
|
|
];
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
(pkgs.writeShellScriptBin "nrbs" ''
|
|
sudo nixos-rebuild switch
|
|
'')
|
|
(pkgs.writeShellScriptBin "nrbsu" ''
|
|
sudo nix-channel --update && sudo nixos-rebuild switch
|
|
'')
|
|
(pkgs.writeShellScriptBin "ad-clone" ''
|
|
if [ ! -d ${adNixPath} ]; then
|
|
sudo git clone https://gitea.john-stream.com/john/ad-nix ${adNixPath}
|
|
sudo chown -R appdaemon:users ${adNixPath}
|
|
else
|
|
echo "${adNixPath} already exists"
|
|
fi
|
|
|
|
if [ ! -d ${adPath} ]; then
|
|
sudo git clone -b ${adBranch} https://github.com/jsl12/appdaemon ${adPath}
|
|
sudo chown -R appdaemon:users ${adPath}
|
|
else
|
|
echo "${adPath} already exists"
|
|
fi
|
|
'')
|
|
bash
|
|
git
|
|
eza
|
|
# appdaemon
|
|
];
|
|
|
|
virtualisation.docker.enable = true;
|
|
services.vscode-server.enable = true;
|
|
services.openssh.enable = true;
|
|
|
|
security.sudo-rs = {
|
|
enable = true;
|
|
execWheelOnly = false;
|
|
wheelNeedsPassword = false;
|
|
};
|
|
|
|
users.users.appdaemon = {
|
|
isNormalUser = true;
|
|
home = "${adHome}";
|
|
extraGroups = [ "wheel" "docker"];
|
|
openssh.authorizedKeys.keyFiles = [ "/root/.ssh/authorized_keys" ];
|
|
};
|
|
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
users.appdaemon = { pkgs, ... }: {
|
|
home.stateVersion = stateVersion;
|
|
imports = [ ./git.nix ];
|
|
programs = {
|
|
ssh.enable = true;
|
|
bash = {
|
|
enable = true;
|
|
profileExtra = "cd ${adPath}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
system.stateVersion = stateVersion;
|
|
}
|