File tree 2 files changed +52
-10
lines changed
modules/services/web-apps
2 files changed +52
-10
lines changed Original file line number Diff line number Diff line change 50
50
Expects the format of an `EnvironmentFile=`, as described by {manpage}`systemd.exec(5)`.
51
51
'' ;
52
52
} ;
53
+
54
+ database = {
55
+ createLocally = lib . mkOption {
56
+ type = lib . types . bool ;
57
+ default = false ;
58
+ description = ''
59
+ Configure local PostgreSQL database server for Mealie.
60
+ '' ;
61
+ } ;
62
+ } ;
53
63
} ;
54
64
55
65
config = lib . mkIf cfg . enable {
56
66
systemd . services . mealie = {
57
67
description = "Mealie, a self hosted recipe manager and meal planner" ;
58
68
59
- after = [ "network-online.target" ] ;
69
+ after = [ "network-online.target" ] ++ lib . optional cfg . database . createLocally "postgresql.service" ;
70
+ requires = lib . optional cfg . database . createLocally "postgresql.service" ;
60
71
wants = [ "network-online.target" ] ;
61
72
wantedBy = [ "multi-user.target" ] ;
62
73
78
89
StandardOutput = "journal" ;
79
90
} ;
80
91
} ;
92
+
93
+ services . mealie . settings = lib . mkIf cfg . database . createLocally {
94
+ DB_ENGINE = "postgres" ;
95
+ POSTGRES_URL_OVERRIDE = "postgresql://mealie:@/mealie?host=/run/postgresql" ;
96
+ } ;
97
+
98
+ services . postgresql = lib . mkIf cfg . database . createLocally {
99
+ enable = true ;
100
+ ensureDatabases = [ "mealie" ] ;
101
+ ensureUsers = [
102
+ {
103
+ name = "mealie" ;
104
+ ensureDBOwnership = true ;
105
+ }
106
+ ] ;
107
+ } ;
81
108
} ;
82
109
}
Original file line number Diff line number Diff line change @@ -10,20 +10,35 @@ import ./make-test-python.nix (
10
10
] ;
11
11
} ;
12
12
13
- nodes = {
14
- server = {
15
- services . mealie = {
16
- enable = true ;
17
- port = 9001 ;
13
+ nodes =
14
+ let
15
+ sqlite = {
16
+ services . mealie = {
17
+ enable = true ;
18
+ port = 9001 ;
19
+ } ;
18
20
} ;
21
+ postgres = {
22
+ imports = [ sqlite ] ;
23
+ services . mealie . database . createLocally = true ;
24
+ } ;
25
+ in
26
+ {
27
+ inherit sqlite postgres ;
19
28
} ;
20
- } ;
21
29
22
30
testScript = ''
23
31
start_all()
24
- server.wait_for_unit("mealie.service")
25
- server.wait_for_open_port(9001)
26
- server.succeed("curl --fail http://localhost:9001")
32
+
33
+ def test_mealie(node):
34
+ node.wait_for_unit("mealie.service")
35
+ node.wait_for_open_port(9001)
36
+ node.succeed("curl --fail http://localhost:9001")
37
+
38
+ test_mealie(sqlite)
39
+ simple.send_monitor_command("quit")
40
+ simple.wait_for_shutdown()
41
+ test_mealie(postgres)
27
42
'' ;
28
43
}
29
44
)
You can’t perform that action at this time.
0 commit comments