Install element on matrix.coded.codes
diff --git a/modules/caddy.nix b/modules/caddy.nix
index a861694..c152989 100644
--- a/modules/caddy.nix
+++ b/modules/caddy.nix
@@ -2,12 +2,11 @@
services.caddy.enable = true;
services.caddy.configFile = lib.pipe ./caddy/caddyfile.nix [
import
+ (f: f { inherit pkgs lib; })
builtins.toJSON
(pkgs.writeText "caddy.json")
];
- services.caddy.package = pkgs.callPackage ../packages/caddy.nix {
- vendorSha256 = "sha256-3KcoOAB+YkOU8qKM75uQo58/dljRBmP25dionr9r2dc=";
- };
+ services.caddy.package = pkgs.callPackage ../packages/caddy.nix { };
services.caddy.user = "root";
systemd.services.caddy.serviceConfig.ProtectHome = lib.mkForce false;
}
diff --git a/modules/caddy/caddyfile.nix b/modules/caddy/caddyfile.nix
index 5d890bd..a7deb60 100644
--- a/modules/caddy/caddyfile.nix
+++ b/modules/caddy/caddyfile.nix
@@ -38,6 +38,26 @@
match = [{ host = hosts; }];
terminal = true;
};
+ HTTPFileServerRoute = hosts: root: {
+ handle = [
+ {
+ handler = "subroute";
+ routes = [
+ {
+ handle = [
+ {
+ handler = "file_server";
+ inherit root;
+ }
+ ];
+ }
+ ];
+ }
+ ];
+ match = [{ host = hosts; }];
+ terminal = true;
+ };
+
TCPReverseProxyRoute = ports: upstreams: {
listen = map (port: "0.0.0.0:${toString port}") ports;
routes = [
@@ -53,7 +73,7 @@
];
};
in
-{
+{ pkgs, lib }: {
apps = {
http = {
servers = {
@@ -250,6 +270,16 @@
match = [{ host = [ "coded.codes" ]; }];
terminal = true;
}
+ (HTTPFileServerRoute [ "matrix.coded.codes" ] (
+ pkgs.element-web.override {
+ conf = {
+ default_server_config = lib.pipe ./coded.codes/.well-known/matrix [
+ builtins.readFile
+ builtins.fromJSON
+ ];
+ };
+ }
+ ))
];
};
srv1 = {
diff --git a/packages/caddy.nix b/packages/caddy.nix
index 150f27d..6856bf2 100644
--- a/packages/caddy.nix
+++ b/packages/caddy.nix
@@ -1,5 +1,5 @@
# https://github.com/NixOS/nixpkgs/issues/14671#issuecomment-1016376290
-{ lib, pkgs, fetchFromGitHub, buildGoModule, plugins ? [ ], vendorSha256 ? "" }:
+{ lib, pkgs, fetchFromGitHub, buildGoModule, plugins ? [ ] }:
with lib;
with pkgs;
@@ -11,12 +11,12 @@
rev = "aa8cf68a3b5197c45a8b4ffd99b74465f0b5a6b1";
hash = "sha256-3KcoOAB+YkOU8qKM75uQo58/dljRBmP25dionQ9K2dc=";
};
- caddySrc = srcOnly (fetchFromGitHub {
+ caddySrc = fetchFromGitHub {
owner = "caddyserver";
repo = "caddy";
rev = "v2.6.4";
hash = "sha256-3a3+nFHmGONvL/TyQRqgJtrSDIn0zdGy9YwhZP17mU0=";
- });
+ };
combinedSrc = stdenv.mkDerivation {
name = "caddy-src";
@@ -37,6 +37,7 @@
go mod init caddy
echo "package main" >> main.go
echo 'import caddycmd "github.com/caddyserver/caddy/v2/cmd"' >> main.go
+ echo 'import _ "github.com/caddyserver/caddy/v2/modules/standard"' >> main.go
echo 'import _ "github.com/mholt/caddy-l4"' >> main.go
echo "func main(){ caddycmd.Main() }" >> main.go
go mod edit -require=github.com/caddyserver/caddy/v2@v2.6.4
@@ -51,7 +52,7 @@
src = combinedSrc;
- vendorHash = "sha256-GmgK2gPCkXXqVcxx+U0h7zJwRGBqFiBA7R0FwHY0SF0=";
+ vendorHash = "sha256-a49J7gKBYi9mQLlg+YFGaOetvbup5yRrWzX7kicvy+o=";
overrideModAttrs = _: {
postPatch = "cd ourcaddy";