# Auto-generated using compose2nix v0.3.1. { pkgs, lib, ... }: { # Containers virtualisation.oci-containers.containers."portainer-portainer" = { image = "portainer/portainer-ce:lts"; volumes = [ "/var/run/docker.sock:/var/run/docker.sock:rw" "portainer_portainer:/data:rw" ]; labels = { "traefik.http.routers.portainerhoferscloud.rule" = "Host(`portainer.hofers.cloud`)"; "traefik.http.services.portainerhoferscloud.loadbalancer.server.port" = "9000"; }; log-driver = "journald"; extraOptions = [ "--network-alias=portainer" "--network=portainer_default" ]; }; systemd.services."docker-portainer-portainer" = { serviceConfig = { Restart = lib.mkOverride 90 "always"; RestartMaxDelaySec = lib.mkOverride 90 "1m"; RestartSec = lib.mkOverride 90 "100ms"; RestartSteps = lib.mkOverride 90 9; }; after = [ "docker-network-portainer_default.service" "docker-volume-portainer_portainer.service" ]; requires = [ "docker-network-portainer_default.service" "docker-volume-portainer_portainer.service" ]; partOf = [ "docker-compose-portainer-root.target" ]; wantedBy = [ "docker-compose-portainer-root.target" ]; }; # Networks systemd.services."docker-network-portainer_default" = { path = [ pkgs.docker ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; ExecStop = "docker network rm -f portainer_default"; }; script = '' docker network inspect portainer_default || docker network create portainer_default ''; partOf = [ "docker-compose-portainer-root.target" ]; wantedBy = [ "docker-compose-portainer-root.target" ]; }; # Volumes systemd.services."docker-volume-portainer_portainer" = { path = [ pkgs.docker ]; serviceConfig = { Type = "oneshot"; RemainAfterExit = true; }; script = '' docker volume inspect portainer_portainer || docker volume create portainer_portainer ''; partOf = [ "docker-compose-portainer-root.target" ]; wantedBy = [ "docker-compose-portainer-root.target" ]; }; # Root service # When started, this will automatically create all resources and start # the containers. When stopped, this will teardown all resources. systemd.targets."docker-compose-portainer-root" = { unitConfig = { Description = "Root target generated by compose2nix."; }; wantedBy = [ "multi-user.target" ]; }; }