46 lines
1.6 KiB
Nix
46 lines
1.6 KiB
Nix
{ config, pkgs, modulesPath, lib, ... }:
|
||
|
||
{
|
||
# Pull in all the shared settings from configuration.nix
|
||
imports = [ ../configuration.nix ];
|
||
|
||
config = lib.recursiveUpdate config ({
|
||
# (Here, add anything live‐VM‐specific—e.g. NFS mounts, Docker, Compose service,
|
||
# static IP, or “import users/plasmagoat.nix” if you prefer.)
|
||
|
||
networking.interfaces.enp0s25 = {
|
||
useDHCP = false;
|
||
ipv4.addresses = [ { address = "192.168.1.50"; prefixLength = 24; } ];
|
||
ipv4.gateway = "192.168.1.1";
|
||
};
|
||
|
||
# Docker + Compose bits, for example:
|
||
fileSystems."/mnt/nas" = {
|
||
device = "192.168.1.100:/export/docker-volumes";
|
||
fsType = "nfs";
|
||
options = [ "defaults" "nofail" "x-systemd.requires=network-online.target" ];
|
||
};
|
||
|
||
environment.systemPackages = with pkgs; [
|
||
pkgs.docker
|
||
pkgs.docker-compose
|
||
# …plus anything else you want only on live VM…
|
||
];
|
||
|
||
services.docker.enable = true;
|
||
|
||
systemd.services.dockerComposeApp = {
|
||
description = "Auto-start Docker‐Compose stack";
|
||
after = [ "network-online.target" "docker.service" ];
|
||
wants = [ "network-online.target" "docker.service" ];
|
||
serviceConfig = {
|
||
WorkingDirectory = "/etc/docker-compose-app";
|
||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker-compose-app/docker-compose.yml up";
|
||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker-compose-app/docker-compose.yml down";
|
||
Restart = "always";
|
||
RestartSec = 10;
|
||
};
|
||
wantedBy = [ "multi-user.target" ];
|
||
};
|
||
});
|
||
}
|