aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/garage/default.nix28
-rw-r--r--modules/git/default.nix130
-rw-r--r--modules/users/default.nix2
3 files changed, 126 insertions, 34 deletions
diff --git a/modules/garage/default.nix b/modules/garage/default.nix
index 595b004..56a38c2 100644
--- a/modules/garage/default.nix
+++ b/modules/garage/default.nix
@@ -1,4 +1,10 @@
-{ self, config, lib, pkgs, ... }:
+{
+ self,
+ config,
+ lib,
+ pkgs,
+ ...
+}:
with self.lib.nginx;
{
@@ -56,8 +62,24 @@ with self.lib.nginx;
"s3.vapor.systems" = (proxyDomain "vapor.systems" "http://127.0.0.1:3900/");
"web.vapor.systems" = (proxyDomain "vapor.systems" "http://127.0.0.1:3902/");
"gnulag.net" = (proxyDomain "gnulag.net" "http://127.0.0.1:3902/");
- # "linuxmasterrace.org" = (proxyDomain "linuxmasterrace.org" "http://127.0.0.1:3902/");
- # "dash.linuxmasterrace.org" = (proxyDomain "linuxmasterrace.org" "http://127.0.0.1:3902/");
+
+ "cdn.vapor.systems" = {
+ forceSSL = true;
+ useACMEHost = "vapor.systems";
+ locations."/" = {
+ proxyPass = "http://127.0.0.1:3902/";
+ extraConfig = ''
+ proxy_pass_header Authorization;
+
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header Host $host;
+ proxy_set_header Upgrade $http_upgrade;
+
+ add_header 'access-control-allow-origin' '*';
+ '';
+ };
+ };
};
};
}
diff --git a/modules/git/default.nix b/modules/git/default.nix
index d5cae6a..a0b2573 100644
--- a/modules/git/default.nix
+++ b/modules/git/default.nix
@@ -1,50 +1,118 @@
-{ self, config, lib, pkgs, ... }:
+{
+ self,
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
environment.systemPackages = [ pkgs.gitea ];
- services.gitea = {
- enable = true;
- stateDir = "/var/lib/gitea";
-
- appName = "Vapor Git: producing vaporware since 1999";
- database = {
- type = "postgres";
- name = "gitea";
- user = "gitea";
- createDatabase = true;
- };
+ services.cgit =
+ let
+ settings = {
+ css = "https://cdn.vapor.systems/cgit/cgit.css";
+
+ head-include = "${pkgs.writeText "cgit-head.html" ''
+ <script>
+ /*to prevent Firefox FOUC, this must be here*/
+ let FF_FOUC_FIX;
+ </script>
+ ''}";
+
+ cache-root = "/var/cache/cgit";
+ cache-size = 50;
+
+ enable-follow-links = true;
+ enable-commit-graph = true;
+ enable-git-config = true;
+ enable-http-clone = true;
+ enable-index-links = true;
+ enable-index-owner = true;
+ enable-log-linecount = true;
+ enable-subject-links = true;
+
+ max-repodesc-length = 120;
- settings = {
- server = {
- DOMAIN = "git.vapor.systems";
- ROOT_URL = "https://git.vapor.systems";
- PROTOCOL = "http+unix";
- HTTP_ADDR = "/run/gitea/http.sock";
+ clone-url = "https://$HTTP_HOST/$CGIT_REPO_URL";
+
+ source-filter = "${pkgs.cgit}/lib/cgit/filters/syntax-highlighting.py";
+ # about-filter = "${pkgs.asciidoctor}"
};
+ in
+ {
+ audron = {
+ inherit settings;
+ enable = true;
+ repos = {
+ "dotfiles.git" = {
+ desc = "Fully Managed NixOS System Dotfiles";
+ path = "/home/audron/dotfiles.git";
+ };
+ };
- oauth2_client = {
- REGISTER_EMAIL_CONFIRM = false;
- OPENID_CONNECT_SCOPES = "email profile";
- ENABLE_AUTO_REGISTRATION = true;
- ACCOUNT_LINKING = "auto";
+ nginx.virtualHost = "git.audron.dev";
};
- service = {
- DISABLE_REGISTRATION = true;
+ "vapor-systems" = {
+ inherit settings;
+ enable = true;
+ scanPath = "/var/lib/git";
+
+ nginx.virtualHost = "git.vapor.systems";
};
};
+
+ services.nginx.virtualHosts = {
+ "git.audron.dev" = {
+ forceSSL = true;
+ useACMEHost = "audron.dev";
+ };
+
+ "git.vapor.systems" = {
+ forceSSL = true;
+ useACMEHost = "vapor.systems";
+ };
};
- security.acme.certs = {
- "vapor.systems" = {
- extraDomainNames = [ "*.vapor.systems" ];
+ users.users = {
+ cgit.extraGroups = [ "users" ];
+
+ git = {
+ isSystemUser = true;
+ group = "git";
+ home = "/var/lib/git";
+ createHome = true;
+ shell = "${pkgs.git}/bin/git-shell";
+ openssh.authorizedKeys.keys = lib.flatten (
+ lib.map (user: user.openssh.authorizedKeys.keys or [ ]) (
+ lib.filter (user: user.isNormalUser) (lib.attrValues config.users.users)
+ )
+ );
};
};
- services.nginx = {
+ users.groups.git = { };
+
+ services.openssh = {
enable = true;
- virtualHosts."git.vapor.systems" =
- self.lib.nginx.proxyDomain "vapor.systems" "http://unix:/run/gitea/http.sock";
+ extraConfig = ''
+ Match user git
+ AllowTcpForwarding no
+ AllowAgentForwarding no
+ PasswordAuthentication no
+ PermitTTY no
+ X11Forwarding no
+ '';
+ };
+
+ security.acme.certs = {
+ "vapor.systems" = {
+ extraDomainNames = [ "*.vapor.systems" ];
+ };
+ "audron.dev" = {
+ extraDomainNames = [ "*.audron.dev" ];
+ };
};
}
diff --git a/modules/users/default.nix b/modules/users/default.nix
index 69afd95..6d189c1 100644
--- a/modules/users/default.nix
+++ b/modules/users/default.nix
@@ -4,6 +4,7 @@
users.users = {
audron = {
isNormalUser = true;
+ homeMode = "750";
extraGroups = [ "wheel" "docker" ];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO2eIUtbt7RM75ThjKfUjm24QkzkzCSj7hs+GLaaxMeH cardno:15 505 339"
@@ -11,6 +12,7 @@
};
magin = {
isNormalUser = true;
+ homeMode = "750";
extraGroups = [ "wheel" "docker" ];
openssh.authorizedKeys.keys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDa+AtVF5PuUOi30it7EuI79mfYvAWyqkoJQ/RS3LpXBGLqXt2VrpTmYnfonDhn2/nBlwnV5p/65l8g0lIZJ8TQOdMCxOMSsIPlC24q4xY2ov1ljboznmtmdxlPWRMoWqMKCp6kjCkVfEQ5pznnbOH+unvX5nLc4eG3QVfpKeaiz3JV6EZen1+jr/iLQP3KpdUylbnEO2ziHayUgZTdP6u5i6OvrcWS7lRA7yWIQyor92Rl6P/eby2jKVl9KMG0R5wCkUOAtgGRAT2XINmw0OZTj39hxxRToCXpilwjXkRUjPeD2SLmLOjhufJg1upbiGekqe5aOltg+3VoLtsIet6Im0RzjHuPHF4QAfBOv6ZfxREVbm5ODFkKP+2HdlIbYZhD5Rp16dgJTDGVPNiSRo7de2j/8RKG3gHAw1sPWhhTGONrL0t+7a0L3ijAn6NxjyyxA15JocVImPu/WtwcIfRsqxdtOYiaUXC8j+R6HK/q9PPDJyKGHYk6mU7V2KQ53ZR20Kl5YH9uLVHX0sSRXVWU0fZGDIGFpmy8uxccOS2zZYkSpQWmpWZdR0mg1zwOd6/rpTZ5mEJI/PYwi9Xuhfev3S3PD2StbFLzyFTVqzUdZ59nAmgh+jco8ylfzZTcMaTkYpznm9v59EnNmCBqTCde7MWTU4swhWal41EHMODJJQ== cardno:14 237 808"