diff --git a/nixos/hosts/piaware-rpi4/containers/piaware.nix b/nixos/hosts/piaware-rpi4/containers/piaware.nix new file mode 100644 index 00000000..457fc2c9 --- /dev/null +++ b/nixos/hosts/piaware-rpi4/containers/piaware.nix @@ -0,0 +1,55 @@ +# Auto-generated using compose2nix v0.1.6. +{ pkgs, lib, ... }: { + # Containers + virtualisation.oci-containers.containers."piaware" = { + image = "ghcr.io/sdr-enthusiasts/docker-piaware:latest"; + environment = { + FEEDER_ID = "cdca89ee-6612-4707-b0bb-ffb78d156c47"; + LAT = "35.6837777585358"; + LONG = "135.02715404216545"; + RECEIVER_TYPE = "rtlsdr"; + TZ = "Asia/Tokyo"; + }; + ports = [ "8080:80/tcp" ]; + log-driver = "journald"; + extraOptions = [ + "--device=/dev/bus/usb:/dev/bus/usb" + "--network-alias=piaware" + "--network=piaware-default" + ]; + }; + systemd.services."podman-piaware" = { + serviceConfig = { + Restart = lib.mkOverride 500 "always"; + }; + after = [ "podman-network-piaware-default.service" ]; + requires = [ "podman-network-piaware-default.service" ]; + partOf = [ "podman-compose-piaware-root.target" ]; + wantedBy = [ "podman-compose-piaware-root.target" ]; + }; + + # Networks + systemd.services."podman-network-piaware-default" = { + path = [ pkgs.podman ]; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStop = "${pkgs.podman}/bin/podman network rm -f piaware-default"; + }; + script = '' + podman network inspect piaware-default || podman network create piaware-default --opt isolate=true + ''; + partOf = [ "podman-compose-piaware-root.target" ]; + wantedBy = [ "podman-compose-piaware-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."podman-compose-piaware-root" = { + unitConfig = { + Description = "Root target generated by compose2nix."; + }; + wantedBy = [ "multi-user.target" ]; + }; +}