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, ... }:
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports = [ ./services/gitea.nix ./services/nextcloud.nix ];
 | 
					  imports =
 | 
				
			||||||
 | 
					    [ ./services/gitea.nix ./services/nextcloud.nix ./services/webserver.nix ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  nix = {
 | 
					  nix = {
 | 
				
			||||||
    package = pkgs.nixFlakes;
 | 
					    package = pkgs.nixFlakes;
 | 
				
			||||||
| 
						 | 
					@ -53,6 +54,7 @@
 | 
				
			||||||
          locations."/" = { proxyPass = "http://localhost:${toString port}"; };
 | 
					          locations."/" = { proxyPass = "http://localhost:${toString port}"; };
 | 
				
			||||||
        } // extra;
 | 
					        } // extra;
 | 
				
			||||||
    in {
 | 
					    in {
 | 
				
			||||||
 | 
					      "tlater.net" = host 3002 { serverAliases = [ "www.tlater.net" ]; };
 | 
				
			||||||
      "gitea.tlater.net" = host 3000 { };
 | 
					      "gitea.tlater.net" = host 3000 { };
 | 
				
			||||||
      "nextcloud.tlater.net" = host 3001 { };
 | 
					      "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"
 | 
					        "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": {
 | 
					    "nixos-hardware": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1617690895,
 | 
					        "lastModified": 1617690895,
 | 
				
			||||||
| 
						 | 
					@ -47,11 +67,101 @@
 | 
				
			||||||
        "type": "github"
 | 
					        "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": {
 | 
					    "root": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-utils": "flake-utils",
 | 
					        "flake-utils": "flake-utils",
 | 
				
			||||||
        "nixos-hardware": "nixos-hardware",
 | 
					        "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";
 | 
					    nixpkgs.url = "github:nixos/nixpkgs/nixos-20.09";
 | 
				
			||||||
    nixos-hardware.url = "github:nixos/nixos-hardware/master";
 | 
					    nixos-hardware.url = "github:nixos/nixos-hardware/master";
 | 
				
			||||||
    flake-utils.url = "github:numtide/flake-utils";
 | 
					    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 = {
 | 
					      nixosConfigurations = {
 | 
				
			||||||
        tlaternet = nixpkgs.lib.nixosSystem {
 | 
					        tlaternet = nixpkgs.lib.nixosSystem {
 | 
				
			||||||
          system = "x86_64-linux";
 | 
					          system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          modules = [
 | 
					          modules = [
 | 
				
			||||||
 | 
					            ({ ... }: { nixpkgs.overlays = overlays; })
 | 
				
			||||||
            (import ./modules)
 | 
					            (import ./modules)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (import ./configuration)
 | 
					            (import ./configuration)
 | 
				
			||||||
| 
						 | 
					@ -27,6 +53,7 @@
 | 
				
			||||||
          system = "x86_64-linux";
 | 
					          system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          modules = [
 | 
					          modules = [
 | 
				
			||||||
 | 
					            ({ ... }: { nixpkgs.overlays = overlays; })
 | 
				
			||||||
            (import ./modules)
 | 
					            (import ./modules)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            (import ./configuration)
 | 
					            (import ./configuration)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue