summaryrefslogtreecommitdiff
path: root/hosts/cloud
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/cloud')
-rw-r--r--hosts/cloud/hetzner/configuration.nix1
-rw-r--r--hosts/cloud/hetzner/mail.nix82
-rw-r--r--hosts/cloud/sortug/gitea.nix59
-rw-r--r--hosts/cloud/sortug/mail.nix1
-rw-r--r--hosts/cloud/sortug/nginx.nix7
5 files changed, 124 insertions, 26 deletions
diff --git a/hosts/cloud/hetzner/configuration.nix b/hosts/cloud/hetzner/configuration.nix
index 73ca07e..a432391 100644
--- a/hosts/cloud/hetzner/configuration.nix
+++ b/hosts/cloud/hetzner/configuration.nix
@@ -14,6 +14,7 @@
../users.nix
../packages.nix
../../server.nix
+ ./mail.nix
];
boot = {
loader.grub = {
diff --git a/hosts/cloud/hetzner/mail.nix b/hosts/cloud/hetzner/mail.nix
new file mode 100644
index 0000000..deab818
--- /dev/null
+++ b/hosts/cloud/hetzner/mail.nix
@@ -0,0 +1,82 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ environment.etc = {
+ "stalwart/mail-pw1".text = "poguo";
+ "stalwart/mail-pw2".text = "shahezai";
+ "stalwart/admin-pw".text = "chengchun";
+ "stalwart/acme-secret".text = "caomushen";
+ };
+
+ services.stalwart-mail = {
+ enable = true;
+ package = pkgs.stalwart-mail;
+ openFirewall = true;
+ settings = {
+ server = {
+ hostname = "mail.urbit.cloud";
+ tls = {
+ enable = true;
+ implicit = true;
+ };
+ listener = {
+ smtp = {
+ protocol = "smtp";
+ bind = "[::]:25";
+ };
+ submissions = {
+ bind = "[::]:465";
+ protocol = "smtp";
+ };
+ imaps = {
+ bind = "[::]:993";
+ protocol = "imap";
+ };
+ jmap = {
+ bind = "[::]:88888";
+ url = "https://mail.urbit.cloud";
+ protocol = "jmap";
+ };
+ management = {
+ bind = ["127.0.0.1:8888"];
+ protocol = "http";
+ };
+ };
+ };
+ lookup.default = {
+ hostname = "mail.urbit.cloud";
+ domain = "urbit.cloud";
+ };
+ session.auth = {
+ mechanisms = "[plain]";
+ directory = "'in-memory'";
+ };
+ storage.directory = "in-memory";
+ session.rcpt.directory = "'in-memory'";
+ queue.outbound.next-hop = "'local'";
+ directory."in-memory" = {
+ type = "memory";
+ principals = [
+ {
+ class = "individual";
+ name = "User 1";
+ secret = "%{file:/etc/stalwart/mail-pw1}%";
+ email = ["polwex@urbit.cloud"];
+ }
+ {
+ class = "individual";
+ name = "postmaster";
+ secret = "%{file:/etc/stalwart/mail-pw1}%";
+ email = ["postmaster@urbit.cloud"];
+ }
+ ];
+ };
+ authentication.fallback-admin = {
+ user = "admin";
+ secret = "%{file:/etc/stalwart/admin-pw}%";
+ };
+ };
+ };
+}
diff --git a/hosts/cloud/sortug/gitea.nix b/hosts/cloud/sortug/gitea.nix
index a25773a..05f304c 100644
--- a/hosts/cloud/sortug/gitea.nix
+++ b/hosts/cloud/sortug/gitea.nix
@@ -1,27 +1,42 @@
-{ config, ...}:
-{
- services.gitea = {
+{...}: {
+ # services.gitea = {
+ # enable = true;
+ # user = "git";
+ # appName = "Sortug Git";
+ # settings.server = {
+ # domain = "git.sortug.com";
+ # ROOT_URL = "https://git.sortug.com/";
+ # SSH_PORT = 5522;
+ # };
+ # lfs.enable = true;
+ # };
+
+ # users.users = {
+ # git = {
+ # description = "Gitea Service";
+ # home = "/var/lib/gitea";
+ # useDefaultShell = true;
+ # group = "gitea";
+ # isSystemUser = true;
+ # };
+ # };
+
+ services.gitolite = {
enable = true;
- user = "git";
- appName = "Sortug Git";
- settings.server = {
- domain = "git.sortug.com";
- ROOT_URL = "https://git.sortug.com/";
- SSH_PORT = 5522;
- };
- lfs.enable = true;
+ adminPubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICbdwmBis6Ss6xuDFvIsBE4foQfYECgl0pR60sIzLNtV";
};
-
- users.users = {
- git = {
- description = "Gitea Service";
- home = "/var/lib/gitea";
- useDefaultShell = true;
- group = "gitea";
- isSystemUser = true;
+ services.cgit.y = {
+ enable = true;
+ user = "gitolite";
+ group = "gitolite";
+ # extraConfig = ''
+ # robots=noindex, nofollow
+ # logo=/var/lib/sortug-logo.png
+ # '';
+ scanPath = "/var/lib/gitolite/repositories";
+ nginx = {
+ virtualHost = "git.sortug.com";
+ location = "/";
};
};
-
-
-
}
diff --git a/hosts/cloud/sortug/mail.nix b/hosts/cloud/sortug/mail.nix
index ef10866..68a960a 100644
--- a/hosts/cloud/sortug/mail.nix
+++ b/hosts/cloud/sortug/mail.nix
@@ -6,6 +6,7 @@
# services.dovecot2.sieve.extensions = ["fileinto"];
mailserver = {
enable = true;
+ stateVersion = 1;
fqdn = "mail.sortug.com";
domains = ["sortug.com" "yago.onl"];
# workaround
diff --git a/hosts/cloud/sortug/nginx.nix b/hosts/cloud/sortug/nginx.nix
index 5c129fb..86bc03e 100644
--- a/hosts/cloud/sortug/nginx.nix
+++ b/hosts/cloud/sortug/nginx.nix
@@ -16,12 +16,11 @@
# root = "/home/y/www";
};
virtualHosts."git.sortug.com" = {
+ # basicAuth = {yuanshikai = "seegit";};
+ proxyPass = "http://127.0.0.1:3000";
+ proxyWebsockets = true; # needed if you need to use WebSocket
enableACME = true;
forceSSL = true;
- locations."/" = {
- proxyPass = "http://127.0.0.1:3000";
- proxyWebsockets = true; # needed if you need to use WebSocket
- };
};
virtualHosts."ai.sortug.com" = {
enableACME = true;