Switch over to nix flakes and introduce podman pods #26
					 4 changed files with 170 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,8 @@
 | 
			
		|||
{ config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [ ./services/gitea.nix ./services/nextcloud.nix ];
 | 
			
		||||
  imports =
 | 
			
		||||
    [ ./services/gitea.nix ./services/nextcloud.nix ./services/webserver.nix ];
 | 
			
		||||
 | 
			
		||||
  nix = {
 | 
			
		||||
    package = pkgs.nixFlakes;
 | 
			
		||||
| 
						 | 
				
			
			@ -53,6 +54,7 @@
 | 
			
		|||
          locations."/" = { proxyPass = "http://localhost:${toString port}"; };
 | 
			
		||||
        } // extra;
 | 
			
		||||
    in {
 | 
			
		||||
      "tlater.net" = host 3002 { serverAliases = [ "www.tlater.net" ]; };
 | 
			
		||||
      "gitea.tlater.net" = host 3000 { };
 | 
			
		||||
      "nextcloud.tlater.net" = host 3001 { };
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										27
									
								
								configuration/services/webserver.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								configuration/services/webserver.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,27 @@
 | 
			
		|||
{ config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  virtualisation.oci-containers.containers.webserver = {
 | 
			
		||||
    image = "tlaternet/webserver";
 | 
			
		||||
 | 
			
		||||
    imageFile = pkgs.dockerTools.buildImage {
 | 
			
		||||
      name = "tlaternet/webserver";
 | 
			
		||||
      tag = "latest";
 | 
			
		||||
      contents = pkgs.tlaternet-webserver.webserver;
 | 
			
		||||
 | 
			
		||||
      config = {
 | 
			
		||||
        Cmd = [ "tlaternet-webserver" ];
 | 
			
		||||
        Volumes = { "/srv/mail" = { }; };
 | 
			
		||||
        Env = [
 | 
			
		||||
          "ROCKET_PORT=80"
 | 
			
		||||
          "ROCKET_TEMPLATE_DIR=${pkgs.tlaternet-templates.templates}/browser/"
 | 
			
		||||
        ];
 | 
			
		||||
        ExposedPorts = { "80" = { }; };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    ports = [ "3002:80" ];
 | 
			
		||||
    volumes = [ "tlaternet-mail:/srv/mail" ];
 | 
			
		||||
    extraOptions = [ "--hostname=tlater.net" ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										112
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										112
									
								
								flake.lock
									
										
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -15,6 +15,26 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "naersk": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1614785451,
 | 
			
		||||
        "narHash": "sha256-TPw8kQvr2UNCuvndtY+EjyXp6Q5GEW2l9UafXXh1XmI=",
 | 
			
		||||
        "owner": "nmattia",
 | 
			
		||||
        "repo": "naersk",
 | 
			
		||||
        "rev": "e0fe990b478a66178a58c69cf53daec0478ca6f9",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nmattia",
 | 
			
		||||
        "repo": "naersk",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixos-hardware": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1617690895,
 | 
			
		||||
| 
						 | 
				
			
			@ -47,11 +67,101 @@
 | 
			
		|||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1617899217,
 | 
			
		||||
        "narHash": "sha256-gd5JHH7IkeoIQ/oiGZSqDpGdGt7DMRJTQ8JiD8+hdOQ=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "nixos-hardware": "nixos-hardware",
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "tlaternet-templates": "tlaternet-templates",
 | 
			
		||||
        "tlaternet-webserver": "tlaternet-webserver"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "rust-overlay": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1617071065,
 | 
			
		||||
        "narHash": "sha256-9JXhxwlc/ZJaO4aZ3cUwQwlK7ZRamjV+BvOTvdXrggs=",
 | 
			
		||||
        "owner": "oxalica",
 | 
			
		||||
        "repo": "rust-overlay",
 | 
			
		||||
        "rev": "38766381042021f547a168ebb3f10305dc6fde08",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "oxalica",
 | 
			
		||||
        "repo": "rust-overlay",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tlaternet-templates": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs-unstable": "nixpkgs-unstable"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1618117315,
 | 
			
		||||
        "narHash": "sha256-RSqbWv20zNDhCx1VARxEjrYH1pNv+H2pY8dQ29tdNjA=",
 | 
			
		||||
        "ref": "master",
 | 
			
		||||
        "rev": "6da1d644ac02143172d20e0d3e9fcd7a0c8720ef",
 | 
			
		||||
        "revCount": 60,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://gitea.tlater.net/tlaternet/tlaternet-templates.git"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://gitea.tlater.net/tlaternet/tlaternet-templates.git"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "tlaternet-webserver": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "naersk": "naersk",
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ],
 | 
			
		||||
        "rust-overlay": "rust-overlay"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1617992257,
 | 
			
		||||
        "narHash": "sha256-TfcLtS/1Niv21NN5e9VGUbK0fpoOvgmx1caO4LBcTas=",
 | 
			
		||||
        "ref": "master",
 | 
			
		||||
        "rev": "ff25f151d3c170c7290b83be5cbdb1fd84261997",
 | 
			
		||||
        "revCount": 14,
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://gitea.tlater.net/tlaternet/tlaternet.git"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "git",
 | 
			
		||||
        "url": "https://gitea.tlater.net/tlaternet/tlaternet.git"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										31
									
								
								flake.nix
									
										
									
									
									
								
							
							
						
						
									
										31
									
								
								flake.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -5,15 +5,41 @@
 | 
			
		|||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-20.09";
 | 
			
		||||
    nixos-hardware.url = "github:nixos/nixos-hardware/master";
 | 
			
		||||
    flake-utils.url = "github:numtide/flake-utils";
 | 
			
		||||
    tlaternet-webserver = {
 | 
			
		||||
      url = "git+https://gitea.tlater.net/tlaternet/tlaternet.git";
 | 
			
		||||
      inputs = {
 | 
			
		||||
        flake-utils.follows = "flake-utils";
 | 
			
		||||
        nixpkgs.follows = "nixpkgs";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    tlaternet-templates = {
 | 
			
		||||
      url = "git+https://gitea.tlater.net/tlaternet/tlaternet-templates.git";
 | 
			
		||||
      inputs = {
 | 
			
		||||
        flake-utils.follows = "flake-utils";
 | 
			
		||||
        nixpkgs.follows = "nixpkgs";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { nixpkgs, nixos-hardware, flake-utils, ... }@inputs:
 | 
			
		||||
    {
 | 
			
		||||
  outputs = { nixpkgs, nixos-hardware, flake-utils, tlaternet-webserver
 | 
			
		||||
    , tlaternet-templates, ... }@inputs:
 | 
			
		||||
    let
 | 
			
		||||
      overlays = [
 | 
			
		||||
        (final: prev: {
 | 
			
		||||
          tlaternet-webserver =
 | 
			
		||||
            tlaternet-webserver.legacyPackages.${prev.system}.packages;
 | 
			
		||||
          tlaternet-templates =
 | 
			
		||||
            tlaternet-templates.legacyPackages.${prev.system}.packages;
 | 
			
		||||
        })
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
    in {
 | 
			
		||||
      nixosConfigurations = {
 | 
			
		||||
        tlaternet = nixpkgs.lib.nixosSystem {
 | 
			
		||||
          system = "x86_64-linux";
 | 
			
		||||
 | 
			
		||||
          modules = [
 | 
			
		||||
            ({ ... }: { nixpkgs.overlays = overlays; })
 | 
			
		||||
            (import ./modules)
 | 
			
		||||
 | 
			
		||||
            (import ./configuration)
 | 
			
		||||
| 
						 | 
				
			
			@ -27,6 +53,7 @@
 | 
			
		|||
          system = "x86_64-linux";
 | 
			
		||||
 | 
			
		||||
          modules = [
 | 
			
		||||
            ({ ... }: { nixpkgs.overlays = overlays; })
 | 
			
		||||
            (import ./modules)
 | 
			
		||||
 | 
			
		||||
            (import ./configuration)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue