From 4e5cef130ccdedcead4927d6359324772ccf0b63 Mon Sep 17 00:00:00 2001 From: Rachel Lambda Samuelsson Date: Thu, 20 Jun 2024 14:56:34 +0200 Subject: [PATCH] gitea :) --- host.nix | 3 +- .../public/assets/img/favicon.png | Bin 0 -> 33105 bytes .../public/assets/img/favicon.svg | 6659 +++++++++++++++++ .../gitea-custom/public/assets/img/logo.png | Bin 0 -> 33105 bytes .../gitea-custom/public/assets/img/logo.svg | 6659 +++++++++++++++++ .../gitea-custom/templates/custom/footer.tmpl | 10 + resources/gitea-custom/templates/home.tmpl | 17 + secrets/giteaForward | Bin 421 -> 0 bytes secrets/giteaForward.pub | Bin 116 -> 0 bytes secrets/gitea_mariadb_pass | Bin 0 -> 55 bytes secrets/gitea_postgres_pass | Bin 27 -> 0 bytes secrets/secrets.nix | Bin 26 -> 0 bytes services/gitea.nix | 52 +- services/mariadb.nix | 58 + services/postgres.nix | 48 - services/{nfs.nix => smb.nix} | 13 +- update-blog.sh | 2 + 17 files changed, 13449 insertions(+), 72 deletions(-) create mode 100644 resources/gitea-custom/public/assets/img/favicon.png create mode 100644 resources/gitea-custom/public/assets/img/favicon.svg create mode 100644 resources/gitea-custom/public/assets/img/logo.png create mode 100644 resources/gitea-custom/public/assets/img/logo.svg create mode 100644 resources/gitea-custom/templates/custom/footer.tmpl create mode 100644 resources/gitea-custom/templates/home.tmpl delete mode 100644 secrets/giteaForward delete mode 100644 secrets/giteaForward.pub create mode 100644 secrets/gitea_mariadb_pass delete mode 100644 secrets/gitea_postgres_pass delete mode 100644 secrets/secrets.nix create mode 100644 services/mariadb.nix delete mode 100644 services/postgres.nix rename services/{nfs.nix => smb.nix} (62%) create mode 100644 update-blog.sh diff --git a/host.nix b/host.nix index 88c306e..75a40e6 100644 --- a/host.nix +++ b/host.nix @@ -11,8 +11,6 @@ let hostVolumeDir = "/var/lib/container-storage/"; (attrNames (readDir ./services))); in genList (i: elemAt services_no_ip i // { ip = "10.10.0.${toString (i+2)}"; }) (length services_no_ip); - secrets = import ./secrets/secrets.nix; - hostIp = "10.10.0.1"; in @@ -145,6 +143,7 @@ lib.flatMap ({ name, config, ip, ports, volumes, ... }: settings = { experimental-features = [ "nix-command" "flakes" ]; auto-optimise-store = true; + trusted-users = [ "@wheel" ]; }; gc = { automatic = true; diff --git a/resources/gitea-custom/public/assets/img/favicon.png b/resources/gitea-custom/public/assets/img/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfab1f2d3d2f74df0cffcc4a675a9bb2fbaf878 GIT binary patch literal 33105 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/gitea-custom/public/assets/img/logo.png b/resources/gitea-custom/public/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfab1f2d3d2f74df0cffcc4a675a9bb2fbaf878 GIT binary patch literal 33105 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/gitea-custom/templates/custom/footer.tmpl b/resources/gitea-custom/templates/custom/footer.tmpl new file mode 100644 index 0000000..85a8e80 --- /dev/null +++ b/resources/gitea-custom/templates/custom/footer.tmpl @@ -0,0 +1,10 @@ + + + + diff --git a/resources/gitea-custom/templates/home.tmpl b/resources/gitea-custom/templates/home.tmpl new file mode 100644 index 0000000..937bef0 --- /dev/null +++ b/resources/gitea-custom/templates/home.tmpl @@ -0,0 +1,17 @@ +{{template "base/head" .}} +
+
+
+
+ +
+
+

+ {{AppName}} +

+

git with a hug

+
+
+
+
+{{template "base/footer" .}} diff --git a/secrets/giteaForward b/secrets/giteaForward deleted file mode 100644 index c669f87e3b9dd7cbb44c3e56c26b6411c855c40c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmV;W0b2e5M@dveQdv+`0HyCCXs3{dqs+8qel(yH)0%+j0USk@t(b}Et)XCEOv2*v z&ya{yQ|qZTWx0pR(Jc8rRsSq+fS#SihRqrUpEcUws-va|jiGB2^GfbV*-b(f&u{(h zxVvZf;kS<6xJuQx{jVIgS!;m+>+#P(d@%cWa{2lsWK^U@sS5lw%@$0E2<+BRpvL zfeq0E{%I7D+*6Ch#6C}`1Y{Dw3a~;OL%OO6O-90l?ZDlvX%<7uQU50XAlkZ&6I@QF z-oPLS9O><#svv@P-g!+m9QY_ml{93-E?oJvmzK$2ThbZT)X&py=OY@&0|L?Whlo(s Pr`I8w9Y-fqU``Yayc5fn diff --git a/secrets/giteaForward.pub b/secrets/giteaForward.pub deleted file mode 100644 index 1da1a4e4d85d2503c419aa3d6688c2841c39f74b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmV-)0E_@|F1RpcM4GNQxYH9`2GS?d%k8;11!m=IH?dj!X+V diff --git a/secrets/secrets.nix b/secrets/secrets.nix deleted file mode 100644 index 557dbc053a80784432ef23fed707d4f71e5538ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26 hcmZQ@_Y83kiVO&0;CK;p!g#{0c1>jgPQRBWg#c}82=D*^ diff --git a/services/gitea.nix b/services/gitea.nix index 5bc3f06..698f0b0 100644 --- a/services/gitea.nix +++ b/services/gitea.nix @@ -4,24 +4,33 @@ config = { services.gitea = { enable = true; - appName = "My awesome Gitea server"; # Give the site a name + lfs.enable = true; + appName = "githug"; # Give the site a name user = "git"; database = { - type = "postgres"; - host = "postgres.containers"; - port = 5432; + type = "mysql"; + host = "mariadb.containers"; + port = 3306; name = "gitea"; user = "gitea"; createDatabase = false; - passwordFile = ../secrets/gitea_postgres_pass; + passwordFile = ../secrets/gitea_mariadb_pass; }; - settings.server = { - DOMAIN = "localhost"; - ROOT_URL = "http://localhost/"; - HTTP_PORT = 3001; - }; - settings.actions = { - ENABLED = true; + settings = { + server = { + # DOMAIN = "githug.xyz"; + # ROOT_URL = "https://githug.xyz/"; + # COOKIE_SECURE = true; + HTTP_PORT = 3001; + OFFLINE_MODE = true; + }; + repository.ENABLE_PUSH_CREATE_USER = true; + mailer.ENABLED = false; + service = { + REGISTER_EMAIL_CONFIRM = false; + ENABLE_NOTIFY_EMAIL = false; + DISABLE_REGISTRATION = true; + }; }; }; @@ -41,6 +50,7 @@ }; users.groups.git = {}; + }; ports = { tcp = [ 3001 22 ]; @@ -53,4 +63,22 @@ name = "gitea-statedir"; mountPoint = "/var/lib/gitea"; }]; + hostConfig = { + system.activationScripts.gitea-custom-files = + let customs = pkgs.stdenv.mkDerivation { + name = "gitea-custom"; + src = ./..; + phases = [ "installPhase" ]; + installPhase = '' + cp -r $src/resources/gitea-custom $out + ''; + }; + in '' + mkdir -p ${lib.hostVolumeDir}/gitea-statedir/custom + rm -rf ${lib.hostVolumeDir}/gitea-statedir/custom/public + rm -rf ${lib.hostVolumeDir}/gitea-statedir/custom/templates + cp -rf ${customs}/public ${lib.hostVolumeDir}/gitea-statedir/custom + cp -rf ${customs}/templates ${lib.hostVolumeDir}/gitea-statedir/custom + ''; + }; } diff --git a/services/mariadb.nix b/services/mariadb.nix new file mode 100644 index 0000000..96e45f3 --- /dev/null +++ b/services/mariadb.nix @@ -0,0 +1,58 @@ +{ pkgs, lib, ... }: { + name = "mariadb"; + config = { + services.mysql = { + enable = true; + package = pkgs.mariadb; + settings = { + mysqld = { + port = 3306; + }; + mysqldump = { + quick = true; + }; + }; + ensureDatabases = [ "gitea" ]; + initialScript = pkgs.writeScript "init.sql" '' + CREATE USER 'gitea'@'%' IDENTIFIED BY '${pkgs.lib.removeSuffix "\n" + (builtins.readFile ../secrets/gitea_mariadb_pass)}'; + GRANT ALL ON gitea.* to 'gitea'@'%' WITH GRANT OPTION; + ''; + ensureUsers = [ + { + name = "root"; + ensurePermissions = { + "*.*" = "ALL PRIVILEGES"; + }; + } + { + name = "mysqldump"; + ensurePermissions = { + "*.*" = "SELECT, LOCK TABLES"; + }; + } + ]; + }; + services.mysqlBackup = { + enable = true; + singleTransaction = true; + }; + }; + ports = { + tcp = [ 3306 ]; + udp = []; + http = null; + forward = []; + }; + hosts = [ ]; + volumes = [ + { + name = "mariadb-storage"; + mountPoint = "/var/lib/mysql"; + } + { + name = "mariadb-backup"; + mountPoint = "/var/backup/mysql"; + } + ]; +} diff --git a/services/postgres.nix b/services/postgres.nix deleted file mode 100644 index 2dfa49a..0000000 --- a/services/postgres.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ pkgs, lib, ... }: { - name = "postgres"; - config = { - services.postgresql = { - enable = true; - enableTCPIP = true; - port = 5432; - ensureDatabases = [ "gitea" ]; - ensureUsers = [ - { - name = "gitea"; - ensureDBOwnership = true; - } - { - name = "root"; - ensureClauses.superuser = true; - } - ]; - authentication = '' - host all gitea 10.10.0.0/16 trust - local all root trust - ''; - }; - services.postgresqlBackup = { - enable = true; - backupAll = true; - compression = "gzip"; - compressionLevel = 9; - }; - }; - ports = { - tcp = [ 5432 ]; - udp = []; - http = null; - forward = []; - }; - hosts = [ ]; - volumes = [ - { - name = "postgres-storage"; - mountPoint = "/var/lib/postgresql"; - } - { - name = "postgres-backup"; - mountPoint = "/var/backup/postgresql"; - } - ]; -} diff --git a/services/nfs.nix b/services/smb.nix similarity index 62% rename from services/nfs.nix rename to services/smb.nix index 874097c..d660185 100644 --- a/services/nfs.nix +++ b/services/smb.nix @@ -1,14 +1,7 @@ { pkgs, lib, ... }: { - name = "gitea"; + name = "smb"; config = { - services.nfs.server = { - enable = true; - createMountPoints = true; - exports = '' - /srv/nfs/music 192.168.0.0/16(rw,sync,no_subtree_check) *(ro,sync,no_subtree_check) - ''; - }; }; ports = { tcp = [ 111 2049 ]; @@ -23,8 +16,8 @@ }; hosts = []; volumes = [{ - name = "nfs"; - mountPoint = "/srv/nfs/"; + name = "smb"; + mountPoint = "/srv/smb/"; readOnly = false; backup = false; }]; diff --git a/update-blog.sh b/update-blog.sh new file mode 100644 index 0000000..f46d2a7 --- /dev/null +++ b/update-blog.sh @@ -0,0 +1,2 @@ +#!/bin/sh +nix flake lock --update-input rachelcafe