diff options
-rw-r--r-- | _sources/generated.json | 18 | ||||
-rw-r--r-- | _sources/generated.nix | 12 | ||||
-rw-r--r-- | hosts/surtr/postgresql.nix | 37 | ||||
-rw-r--r-- | nvfetcher.toml | 6 |
4 files changed, 70 insertions, 3 deletions
diff --git a/_sources/generated.json b/_sources/generated.json index 0f9eb31f..30b7b120 100644 --- a/_sources/generated.json +++ b/_sources/generated.json | |||
@@ -131,6 +131,24 @@ | |||
131 | }, | 131 | }, |
132 | "version": "c1219b6ac3ee3de887e6a36ae41a8e478835ae92" | 132 | "version": "c1219b6ac3ee3de887e6a36ae41a8e478835ae92" |
133 | }, | 133 | }, |
134 | "psql-versioning": { | ||
135 | "cargoLocks": null, | ||
136 | "extract": null, | ||
137 | "name": "psql-versioning", | ||
138 | "passthru": null, | ||
139 | "pinned": false, | ||
140 | "src": { | ||
141 | "deepClone": false, | ||
142 | "fetchSubmodules": false, | ||
143 | "leaveDotGit": false, | ||
144 | "name": null, | ||
145 | "rev": "3e578ff5e5aa6c7e5459dbfa842a64a1b2674b2e", | ||
146 | "sha256": "sha256-j+njRssJHTdNV3FbcA3MdUmzCaJxuYBrC0qwtK3HoyY=", | ||
147 | "type": "git", | ||
148 | "url": "https://gitlab.com/depesz/Versioning" | ||
149 | }, | ||
150 | "version": "3e578ff5e5aa6c7e5459dbfa842a64a1b2674b2e" | ||
151 | }, | ||
134 | "uhk-agent": { | 152 | "uhk-agent": { |
135 | "cargoLocks": null, | 153 | "cargoLocks": null, |
136 | "extract": null, | 154 | "extract": null, |
diff --git a/_sources/generated.nix b/_sources/generated.nix index 58a1ff0a..30b4aed6 100644 --- a/_sources/generated.nix +++ b/_sources/generated.nix | |||
@@ -81,6 +81,18 @@ | |||
81 | sha256 = "sha256-+DoKPIulQA3VSeXo8DjoxnPwDfcuCO5YHpXmB+M7EWk="; | 81 | sha256 = "sha256-+DoKPIulQA3VSeXo8DjoxnPwDfcuCO5YHpXmB+M7EWk="; |
82 | }); | 82 | }); |
83 | }; | 83 | }; |
84 | psql-versioning = { | ||
85 | pname = "psql-versioning"; | ||
86 | version = "3e578ff5e5aa6c7e5459dbfa842a64a1b2674b2e"; | ||
87 | src = fetchgit { | ||
88 | url = "https://gitlab.com/depesz/Versioning"; | ||
89 | rev = "3e578ff5e5aa6c7e5459dbfa842a64a1b2674b2e"; | ||
90 | fetchSubmodules = false; | ||
91 | deepClone = false; | ||
92 | leaveDotGit = false; | ||
93 | sha256 = "sha256-j+njRssJHTdNV3FbcA3MdUmzCaJxuYBrC0qwtK3HoyY="; | ||
94 | }; | ||
95 | }; | ||
84 | uhk-agent = { | 96 | uhk-agent = { |
85 | pname = "uhk-agent"; | 97 | pname = "uhk-agent"; |
86 | version = "1.5.17"; | 98 | version = "1.5.17"; |
diff --git a/hosts/surtr/postgresql.nix b/hosts/surtr/postgresql.nix index a34bc675..b5035cb2 100644 --- a/hosts/surtr/postgresql.nix +++ b/hosts/surtr/postgresql.nix | |||
@@ -1,5 +1,7 @@ | |||
1 | { pkgs, ... }: | 1 | { pkgs, sources, ... }: |
2 | { | 2 | let |
3 | versioning = sources.pqsl-versioning; | ||
4 | in { | ||
3 | config = { | 5 | config = { |
4 | services.postgresql = { | 6 | services.postgresql = { |
5 | enable = true; | 7 | enable = true; |
@@ -9,6 +11,37 @@ | |||
9 | CREATE USER "matrix-synapse"; | 11 | CREATE USER "matrix-synapse"; |
10 | GRANT ALL PRIVILEGES ON DATABASE "matrix-synapse" TO "matrix-synapse"; | 12 | GRANT ALL PRIVILEGES ON DATABASE "matrix-synapse" TO "matrix-synapse"; |
11 | GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "matrix-synapse"; | 13 | GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "matrix-synapse"; |
14 | |||
15 | CREATE DATABASE "email" WITH TEMPLATE "template0" ENCODING "UTF8" LOCALE "C"; | ||
16 | CREATE USER "postfix"; | ||
17 | GRANT CONNECT ON DATABASE "email" TO "postfix"; | ||
18 | GRANT SELECT ON ALL TABLES IN SCHEMA public TO "postfix"; | ||
19 | CREATE USER "dovecot2"; | ||
20 | GRANT CONNECT ON DATABASE "email" TO "dovecot2"; | ||
21 | GRANT SELECT ON ALL TABLES IN SCHEMA public TO "dovecot2"; | ||
22 | ''; | ||
23 | }; | ||
24 | |||
25 | systemd.services.postgresql = { | ||
26 | postStart = '' | ||
27 | psql email postgres -eXf ${pkgs.writeText "email.sql" '' | ||
28 | \i ${versioning + "/install.versioning.sql"} | ||
29 | |||
30 | BEGIN; | ||
31 | select _v.register_patch('000-base', null, null); | ||
32 | |||
33 | create table virtual_mailbox ( | ||
34 | id uuid PRIMARY KEY NOT NULL DEFAULT gen_random_uuid(), | ||
35 | local text, | ||
36 | CHECK (local IS DISTINCT FROM ''''), | ||
37 | domain text NOT NULL, | ||
38 | CHECK (domain <> ''''), | ||
39 | mailbox text NOT NULL, | ||
40 | CHECK (mailbox <> ''''), | ||
41 | UNIQUE(COALESCE(local, ''''), domain) | ||
42 | ); | ||
43 | COMMIT; | ||
44 | ''} | ||
12 | ''; | 45 | ''; |
13 | }; | 46 | }; |
14 | }; | 47 | }; |
diff --git a/nvfetcher.toml b/nvfetcher.toml index e82051cd..99db67d0 100644 --- a/nvfetcher.toml +++ b/nvfetcher.toml | |||
@@ -40,4 +40,8 @@ fetch.github = "gesquive/fast-cli" | |||
40 | 40 | ||
41 | [xcompose] | 41 | [xcompose] |
42 | src.git = "https://github.com/kragen/xcompose" | 42 | src.git = "https://github.com/kragen/xcompose" |
43 | fetch.github = "kragen/xcompose" \ No newline at end of file | 43 | fetch.github = "kragen/xcompose" |
44 | |||
45 | [psql-versioning] | ||
46 | src.git = "https://gitlab.com/depesz/Versioning" | ||
47 | fetch.git = "https://gitlab.com/depesz/Versioning" \ No newline at end of file | ||