Add piaware podman

This commit is contained in:
iFargle 2023-12-13 22:53:20 +09:00
parent 2741648e9a
commit c78653d7c1
5 changed files with 92 additions and 34 deletions

View file

@ -43,8 +43,8 @@ nix develop -c /etc/nixos/git/docs/setup.sh
* [ ] Security hardening * [ ] Security hardening
* [ ] Edit the hosts file * [ ] Edit the hosts file
* [ ] home-manager/common/software/cli/bash.nix - Break this out for theming -- Currently statically set to 'gruvbox' * [ ] home-manager/common/software/cli/bash.nix - Break this out for theming -- Currently statically set to 'gruvbox'
* [ ] cronjobs * [x] cronjobs
* [ ] Change wallpaper at a certain time of day * [x] Change wallpaper at a certain time of day
* [x] Automatic git pull of this repo * [x] Automatic git pull of this repo
* [ ] emacs * [ ] emacs
* [ ] Add bracket auto-completion * [ ] Add bracket auto-completion

View file

@ -5,7 +5,7 @@
imports = [ imports = [
inputs.nixos-hardware.nixosModules.raspberry-pi-4 inputs.nixos-hardware.nixosModules.raspberry-pi-4
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
./docker.nix ./podman.nix
]; ];
# Enable distributed Builds # Enable distributed Builds
nix.distributedBuilds = true; nix.distributedBuilds = true;

View file

@ -12,37 +12,7 @@
liveRestore = true; liveRestore = true;
}; };
environment.systemPackages = with pkgs; [
docker-compose
ctop
];
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
8080 30003 30005 8080 30003 30005
]; ];
} }
# Docker Compose file for PiAware:
# version: '3'
#
#services:
# piaware:
# image: ghcr.io/sdr-enthusiasts/docker-piaware:latest
# tty: true
# container_name: piaware
# restart: always
# devices:
# - /dev/bus/usb:/dev/bus/usb
# ports:
# - 8080:80
# - 30003:30003
# - 30005:30005
# environment:
# - TZ="Asia/Tokyo"
# - LAT=35.6837777585358
# - LONG=135.02715404216545
# - FEEDER_ID=cdca89ee-6612-4707-b0bb-ffb78d156c47
# - RECEIVER_TYPE=rtlsdr
# tmpfs:
# - /run:exec,size=64M
# - /var/log

View file

@ -0,0 +1,7 @@
{ lib, pkgs, ... }: {
imports = [
./podman/piaware.nix
];
environment.systemPackages = with pkgs; [ ctop ];
}

View file

@ -0,0 +1,81 @@
# Auto-generated using compose2nix v0.1.6.
{ pkgs, lib, ... }:
{
# Runtime
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerCompat = true;
defaultNetwork.settings = {
# Required for container networking to be able to use names.
dns_enabled = true;
};
};
virtualisation.oci-containers.backend = "podman";
# 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"
"30003:30003/tcp"
"30005:30005/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" ];
};
}