add podman-autostart service to docker
This commit is contained in:
parent
3fe2f6dcf9
commit
fd8c8efcf0
|
@ -162,6 +162,18 @@ in {
|
||||||
|
|
||||||
networking.firewall.interfaces."podman+".allowedUDPPorts = [53];
|
networking.firewall.interfaces."podman+".allowedUDPPorts = [53];
|
||||||
|
|
||||||
|
systemd.services.podman-autostart = {
|
||||||
|
enable = true;
|
||||||
|
after = ["podman.service"];
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
description = "Automatically start containers with --restart=always tag";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "idle";
|
||||||
|
ExecStartPre = ''${pkgs.coreutils}/bin/sleep 1'';
|
||||||
|
ExecStart = ''/run/current-system/sw/bin/podman start --all --filter restart-policy=always'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.PasswordAuthentication = false;
|
settings.PasswordAuthentication = false;
|
||||||
|
|
|
@ -1,178 +1,3 @@
|
||||||
# {
|
|
||||||
# lib,
|
|
||||||
# pkgs,
|
|
||||||
# inputs,
|
|
||||||
# configVars,
|
|
||||||
# ...
|
|
||||||
# }: let
|
|
||||||
# pubKeys = lib.filesystem.listFilesRecursive ../../users/keys;
|
|
||||||
# containerName = "sm-worker";
|
|
||||||
# sops-nix = inputs.sops-nix;
|
|
||||||
# semitamapsData = configVars.locations.semitamapsData;
|
|
||||||
# in {
|
|
||||||
# environment.persistence."/persist" = {
|
|
||||||
# hideMounts = true;
|
|
||||||
# directories = [
|
|
||||||
# "/var/lib/nixos-containers/${containerName}"
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# networking.nat.enable = true;
|
|
||||||
# networking.nat.internalInterfaces = ["ve-+"];
|
|
||||||
# networking.nat.externalInterface = "br0";
|
|
||||||
#
|
|
||||||
# containers.${containerName} = {
|
|
||||||
# enableTun = true;
|
|
||||||
#
|
|
||||||
# # configuration to run docker/podman in systemd-nspawn container
|
|
||||||
# # https://discourse.nixos.org/t/podman-docker-in-nixos-container-ideally-in-unprivileged-one/22909/12
|
|
||||||
# additionalCapabilities = [
|
|
||||||
# ''all" --system-call-filter="add_key keyctl bpf" --capability="all''
|
|
||||||
# ];
|
|
||||||
# extraFlags = ["--private-users-ownership=chown"];
|
|
||||||
# allowedDevices = [
|
|
||||||
# {
|
|
||||||
# node = "/dev/fuse";
|
|
||||||
# modifier = "rwm";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# node = "/dev/mapper/control";
|
|
||||||
# modifier = "rw";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# node = "/dev/console";
|
|
||||||
# modifier = "rwm";
|
|
||||||
# }
|
|
||||||
# {
|
|
||||||
# node = "/dev/net/tun";
|
|
||||||
# modifier = "rw";
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# ######
|
|
||||||
#
|
|
||||||
# autoStart = true;
|
|
||||||
# privateNetwork = true;
|
|
||||||
# hostBridge = "br0";
|
|
||||||
# nixpkgs = pkgs.path;
|
|
||||||
# bindMounts = {
|
|
||||||
# "/etc/ssh/ssh_host_ed25519_key" = {
|
|
||||||
# hostPath = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
# isReadOnly = true;
|
|
||||||
# };
|
|
||||||
# "/data/semitamaps-data" = {
|
|
||||||
# hostPath = semitamapsData;
|
|
||||||
# isReadOnly = false;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# config = {
|
|
||||||
# pkgs,
|
|
||||||
# lib,
|
|
||||||
# ...
|
|
||||||
# }: let
|
|
||||||
# configVars = import ../../../../vars {inherit inputs lib;};
|
|
||||||
# secretsDirectory = builtins.toString inputs.nix-secrets;
|
|
||||||
# secretsFile = "${secretsDirectory}/secrets.yaml";
|
|
||||||
#
|
|
||||||
# # define ip addresses
|
|
||||||
# containerIp = configVars.networking.addresses.sm-worker.ip;
|
|
||||||
# gatewayIp = configVars.networking.addresses.gateway.ip;
|
|
||||||
# in {
|
|
||||||
# networking = {
|
|
||||||
# defaultGateway = "${gatewayIp}";
|
|
||||||
# interfaces.eth0.ipv4.addresses = [
|
|
||||||
# {
|
|
||||||
# "address" = "${containerIp}";
|
|
||||||
# "prefixLength" = 24;
|
|
||||||
# }
|
|
||||||
# ];
|
|
||||||
# firewall = {
|
|
||||||
# enable = true;
|
|
||||||
# allowedTCPPorts = [
|
|
||||||
# 2322
|
|
||||||
# 8080
|
|
||||||
# 8081
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
# useHostResolvConf = lib.mkForce false;
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# sops = {
|
|
||||||
# defaultSopsFile = "${secretsFile}";
|
|
||||||
# validateSopsFiles = false;
|
|
||||||
#
|
|
||||||
# age = {
|
|
||||||
# sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# sops.secrets = {
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# imports = [
|
|
||||||
# sops-nix.nixosModules.sops
|
|
||||||
# ];
|
|
||||||
#
|
|
||||||
# services.resolved.enable = true;
|
|
||||||
#
|
|
||||||
# environment.systemPackages = [
|
|
||||||
# pkgs.vim
|
|
||||||
# pkgs.git
|
|
||||||
# pkgs.python311
|
|
||||||
# pkgs.poetry
|
|
||||||
# pkgs.htop
|
|
||||||
# pkgs.podman-compose
|
|
||||||
# pkgs.jdk
|
|
||||||
# ];
|
|
||||||
#
|
|
||||||
# virtualisation = {
|
|
||||||
# podman = {
|
|
||||||
# enable = true;
|
|
||||||
# dockerSocket.enable = true;
|
|
||||||
# defaultNetwork.settings.dns_enabled = true;
|
|
||||||
# dockerCompat = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# systemd.services.photon = {
|
|
||||||
# wantedBy = ["multi-user.target"];
|
|
||||||
# after = ["network.target"];
|
|
||||||
# description = "Photon Service";
|
|
||||||
# path = ["/run/current-system/sw"];
|
|
||||||
# serviceConfig = {
|
|
||||||
# WorkingDirectory = "/data/semitamaps-data/photon";
|
|
||||||
# ExecStart = pkgs.writeShellScript "photon" ''
|
|
||||||
# java -jar photon-*.jar -cors-any
|
|
||||||
# '';
|
|
||||||
# Restart = "on-failure";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# programs.nix-ld.enable = true;
|
|
||||||
# programs.nix-ld.libraries = with pkgs; [
|
|
||||||
# zlib
|
|
||||||
# libgcc
|
|
||||||
# ];
|
|
||||||
#
|
|
||||||
# programs.ssh.knownHosts = {
|
|
||||||
# "git.bitlab21.com" = {
|
|
||||||
# publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIALNd2BGf64heYjWT9yt0fVmngepiHRIMsL7au/MRteg";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# services.openssh = {
|
|
||||||
# enable = true;
|
|
||||||
# settings.PasswordAuthentication = false;
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# users.users.root = {
|
|
||||||
# openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key);
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# system.stateVersion = "24.05";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
|
|
Loading…
Reference in New Issue