-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsetup.yaml
More file actions
200 lines (176 loc) · 5.48 KB
/
Copy pathsetup.yaml
File metadata and controls
200 lines (176 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
version: 1
variables:
- name: PodmanNamespace
flag: podman-namespace
prompt: Podman Namespace
description: Podman namespace used for container, network, and volume names
default: yourcompanyname
- name: PodmanService
flag: podman-service
prompt: Podman Service
description: Podman service name used for container, network, and volume names
default: typo3
- name: PodmanStage
flag: podman-stage
prompt: Podman Stage
description: Podman stage used for container, network, and volume names
default: prod
- name: DataDir
flag: data-dir
prompt: Data directory
description: Directory where generated runtime files and container data are stored
type: path
default: "{{ .ProjectDir }}/../{{ .PodmanNamespace }}_{{ .PodmanService }}_{{ .PodmanStage }}"
- name: DatabaseSQL
flag: database-sql
prompt: Database SQL service (postgresql/mariadb)
description: "SQL database service to use: postgresql or mariadb"
required: true
invalid_message: Please choose postgresql or mariadb.
choices:
- mariadb
- postgresql
default: postgresql
- name: UserUID
flag: uid
prompt: User ID
description: Host user ID for container processes
type: int
default: "{{ .CurrentUserUID }}"
- name: GroupGID
flag: gid
prompt: Group ID
description: Host group ID for container processes
type: int
default: "{{ .CurrentGroupGID }}"
- name: UseReverseProxy
flag: reverse-proxy
prompt: Use an external reverse proxy network
description: "Whether an external reverse-proxy network is used: true or false"
type: bool
default: "{{ if .FlagValues.ReverseProxyNetworkName }}true{{ else }}false{{ end }}"
- name: ReverseProxyNetworkName
flag: reverse-proxy-network-name
prompt: External reverse-proxy network name
description: Already-created external reverse-proxy network name
required_when: "{{ .UseReverseProxy }}"
forbidden_when: "{{ not .UseReverseProxy }}"
forbidden_message: --reverse-proxy-network-name requires --reverse-proxy true
- name: DomainName
flag: domain
prompt: Domain name
description: Domain name served by nginx
required: true
- name: SSLDir
flag: ssl-dir
prompt: SSL certificate directory
description: SSL certificate directory when no reverse proxy is used
type: path
default: "{{ .DataDir }}/ssl"
when: "{{ not .UseReverseProxy }}"
computed:
- name: DatabaseSQLService
value: "{{ .DatabaseSQL }}"
- name: UseMariaDB
type: bool
value: '{{ eq .DatabaseSQL "mariadb" }}'
- name: UsePostgreSQL
type: bool
value: '{{ eq .DatabaseSQL "postgresql" }}'
passwords:
- name: DatabaseSQLPassword
length: 24
- name: MariaDBRootPassword
length: 24
when: "{{ .UseMariaDB }}"
- name: TYPO3SetupAdminPassword
length: 24
directories:
- path: "{{ .DataDir }}"
- path: "{{ .DataDir }}/configs"
- path: "{{ .DataDir }}/configs/nginx/conf"
- path: "{{ .DataDir }}/typo3"
- path: "{{ .DataDir }}/mariadb"
when: "{{ .UseMariaDB }}"
- path: "{{ .DataDir }}/postgres"
when: "{{ .UsePostgreSQL }}"
- path: "{{ .SSLDir }}"
when: "{{ not .UseReverseProxy }}"
assets:
- source: configs
target: "{{ .DataDir }}/configs"
exclude:
names:
- .gitignore
suffixes:
- .tmpl
env:
source: ".env.tmpl"
output: "{{ .DataDir }}/.env"
default_output: "{{ .DataDir }}/.env_default"
backup_name_template: ".env_{{ .Timestamp }}"
mode: "0600"
protected:
suffixes:
- _CONTAINER
- _IMAGE
- _PASSWORD
keys:
- NGINX_INTERNAL_URL
- PODMAN_NAMESPACE
- PODMAN_NGINX_SSL_DIR_CONTAINER
- PODMAN_SERVICE
- PODMAN_STAGE
templates:
- source: compose.yaml.tmpl
target: "{{ .DataDir }}/compose.yaml"
mode: "0644"
- source: configs/nginx/conf/typo3_default.conf.tmpl
target: "{{ .DataDir }}/configs/nginx/conf/typo3_default.conf"
mode: "0644"
state:
output: "{{ .DataDir }}/setup.json"
mode: "0644"
entries:
- key: database_sql
variable: DatabaseSQL
- key: data_dir
variable: DataDir
- key: domain_name
variable: DomainName
- key: group_gid
variable: GroupGID
- key: podman_namespace
variable: PodmanNamespace
- key: podman_service
variable: PodmanService
- key: podman_stage
variable: PodmanStage
- key: project_dir
variable: ProjectDir
- key: reverse_proxy_network_name
variable: ReverseProxyNetworkName
omit_empty: true
- key: ssl_dir
variable: SSLDir
omit_empty: true
- key: use_reverse_proxy
variable: UseReverseProxy
type: bool
- key: user_uid
variable: UserUID
messages:
- |
Generated runtime files in "{{ .DataDir }}".
Run from inside "{{ .DataDir }}", but `-f` can be omitted:
cd "{{ .DataDir }}"
podman compose -f "compose.yaml" --env-file ".env" up -d --build
...or run the commands separately:
podman compose -f "compose.yaml" --env-file ".env" build
podman compose -f "compose.yaml" --env-file ".env" up -d
Run from anywhere:
podman compose -f "{{ .DataDir }}/compose.yaml" --env-file "{{ .DataDir }}/.env" up -d --build
...or run the commands separately:
podman compose -f "{{ .DataDir }}/compose.yaml" --env-file "{{ .DataDir }}/.env" build
podman compose -f "{{ .DataDir }}/compose.yaml" --env-file "{{ .DataDir }}/.env" up -d
For Docker use the same commands with `docker compose ...`.