View difference between Paste ID: LeVfEsCr and HptZer17
SHOW: | | - or go back to the newest paste.
1
#!/bin/bash
2
3
# Create folder
4
5
if [[ ! -d appwrite ]]; then
6
mkdir appwrite
7
cd appwrite
8
fi
9
10
# Install AppWrite-Compose
11
12
cat > .env <<EOF
13
_APP_ENV=production
14
_APP_LOCALE=es
15
_APP_OPTIONS_ABUSE=enabled
16
_APP_OPTIONS_FORCE_HTTPS=disabled
17
_APP_OPENSSL_KEY_V1=o5Rxy7TCdkomrLuQOvX7mNULyQp6FctYk/9A9cTXBXzsxtdmT4+5bx5eAsgtWEMn
18
_APP_DOMAIN=localhost
19
_APP_DOMAIN_TARGET=localhost
20
_APP_CONSOLE_WHITELIST_ROOT=enabled
21
_APP_CONSOLE_WHITELIST_EMAILS=
22
_APP_CONSOLE_WHITELIST_IPS=
23
_APP_SYSTEM_EMAIL_NAME=Appwrite
24
_APP_SYSTEM_EMAIL_ADDRESS=appwriter@localhost
25
_APP_SYSTEM_RESPONSE_FORMAT=
26
_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=appwriter@localhost
27
_APP_USAGE_STATS=enabled
28
_APP_REDIS_HOST=redis
29
_APP_REDIS_PORT=6379
30
_APP_REDIS_USER=appwriter
31
_APP_REDIS_PASS=xxRcY4TTXP5Fq+awI6Cy7aGNYBZ8fr4XK0cAaTJdj9J5dgW+odDEHiI3o9BFywj5
32
_APP_DB_HOST=mariadb
33
_APP_DB_PORT=3306
34
_APP_DB_SCHEMA=appwrite
35
_APP_DB_USER=appwriter
36
_APP_DB_PASS=qp6OVgcuncDXVHzpJuSRBMFmz5hBF3vhalrcIrRs0bDItexL25rssZE4tWv/aDY9
37
_APP_DB_ROOT_PASS=kpJfBVc8ILmrefjkDF5ATFH6R0I5KNELtg+dA67z/B8BJj1IdOg0HqhCeUQ9IdsO
38
_APP_INFLUXDB_HOST=influxdb
39
_APP_INFLUXDB_PORT=8086
40
_APP_STATSD_HOST=telegraf
41
_APP_STATSD_PORT=8125
42
_APP_SMTP_HOST=
43
_APP_SMTP_PORT=
44
_APP_SMTP_SECURE=
45
_APP_SMTP_USERNAME=
46
_APP_SMTP_PASSWORD=
47
_APP_STORAGE_LIMIT=10000000
48
_APP_STORAGE_ANTIVIRUS=disabled
49
_APP_STORAGE_ANTIVIRUS_HOST=clamav
50
_APP_STORAGE_ANTIVIRUS_PORT=3310
51
_APP_FUNCTIONS_TIMEOUT=900
52
_APP_FUNCTIONS_CONTAINERS=10
53
_APP_FUNCTIONS_CPUS=
54
_APP_FUNCTIONS_MEMORY=256
55
_APP_FUNCTIONS_MEMORY_SWAP=256
56
_APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0,java-16.0
57
_APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0,java-16.0
58
EOF
59
60
cat >docker-compose.yml <<EOF
61
version: '3'
62
63
services:
64
  traefik:
65
    image: traefik:2.3
66
    container_name: appwrite-traefik
67
    command:
68
      - --providers.file.directory=/storage/config
69
      - --providers.file.watch=true
70
      - --providers.docker=true
71
      - --providers.docker.exposedByDefault=false
72
      - --providers.docker.constraints=Label(\`traefik.constraint-label-stack\`,\`appwrite\`)
73
      - --entrypoints.web.address=:80
74
      - --entrypoints.websecure.address=:443
75
    restart: unless-stopped
76
    ports:
77
      - 127.0.0.1:9580:80
78
        #- 443:443
79
    volumes:
80-
      - /var/run/user/${UID}/podman/podman.sock:/var/run/docker.sock
80+
      - /var/run/docker.sock:/var/run/docker.sock
81
      - appwrite-config:/storage/config:ro
82
      - appwrite-certificates:/storage/certificates:ro
83
    depends_on:
84
      - appwrite
85
    networks:
86
      - gateway
87
      - appwrite
88
  
89
  appwrite:
90
    image: appwrite/appwrite:0.9.1
91
    container_name: appwrite
92
    restart: unless-stopped
93
    networks:
94
      - appwrite
95
    labels:
96
      - traefik.enable=true
97
      - traefik.constraint-label-stack=appwrite
98
      - traefik.http.routers.appwrite.rule=PathPrefix(\`/\`)
99
      - traefik.http.routers.appwrite-secure.rule=PathPrefix(\`/\`)
100
      - traefik.http.routers.appwrite-secure.tls=true
101
    volumes:
102
      - appwrite-uploads:/storage/uploads:rw
103
      - appwrite-cache:/storage/cache:rw
104
      - appwrite-config:/storage/config:rw
105
      - appwrite-certificates:/storage/certificates:rw
106
      - appwrite-functions:/storage/functions:rw
107
    depends_on:
108
      - mariadb
109
      - redis
110
#      - clamav
111
      - influxdb
112
    environment:
113
      - _APP_ENV
114
      - _APP_LOCALE
115
      - _APP_CONSOLE_WHITELIST_ROOT
116
      - _APP_CONSOLE_WHITELIST_EMAILS
117
      - _APP_CONSOLE_WHITELIST_IPS
118
      - _APP_SYSTEM_EMAIL_NAME
119
      - _APP_SYSTEM_EMAIL_ADDRESS
120
      - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
121
      - _APP_SYSTEM_RESPONSE_FORMAT
122
      - _APP_OPTIONS_ABUSE
123
      - _APP_OPTIONS_FORCE_HTTPS
124
      - _APP_OPENSSL_KEY_V1
125
      - _APP_DOMAIN
126
      - _APP_DOMAIN_TARGET
127
      - _APP_REDIS_HOST
128
      - _APP_REDIS_PORT
129
      - _APP_REDIS_USER
130
      - _APP_REDIS_PASS
131
      - _APP_DB_HOST
132
      - _APP_DB_PORT
133
      - _APP_DB_SCHEMA
134
      - _APP_DB_USER
135
      - _APP_DB_PASS
136
      - _APP_SMTP_HOST
137
      - _APP_SMTP_PORT
138
      - _APP_SMTP_SECURE
139
      - _APP_SMTP_USERNAME
140
      - _APP_SMTP_PASSWORD
141
      - _APP_USAGE_STATS
142
      - _APP_INFLUXDB_HOST
143
      - _APP_INFLUXDB_PORT
144
      - _APP_STORAGE_LIMIT
145
      - _APP_STORAGE_ANTIVIRUS
146
      - _APP_STORAGE_ANTIVIRUS_HOST
147
      - _APP_STORAGE_ANTIVIRUS_PORT
148
      - _APP_FUNCTIONS_TIMEOUT
149
      - _APP_FUNCTIONS_CONTAINERS
150
      - _APP_FUNCTIONS_CPUS
151
      - _APP_FUNCTIONS_MEMORY
152
      - _APP_FUNCTIONS_MEMORY_SWAP
153
      - _APP_FUNCTIONS_RUNTIMES
154
155
  appwrite-worker-usage:
156
    image: appwrite/appwrite:0.9.1
157
    entrypoint: worker-usage
158
    container_name: appwrite-worker-usage
159
    restart: unless-stopped
160
    networks:
161
      - appwrite
162
    depends_on:
163
      - redis
164
      - telegraf
165
    environment:
166
      - _APP_ENV
167
      - _APP_REDIS_HOST
168
      - _APP_REDIS_PORT
169
      - _APP_REDIS_USER
170
      - _APP_REDIS_PASS
171
      - _APP_STATSD_HOST
172
      - _APP_STATSD_PORT
173
174
  appwrite-worker-audits:
175
    image: appwrite/appwrite:0.9.1
176
    entrypoint: worker-audits
177
    container_name: appwrite-worker-audits
178
    restart: unless-stopped
179
    networks:
180
      - appwrite
181
    depends_on:
182
      - redis
183
      - mariadb
184
    environment:
185
      - _APP_ENV
186
      - _APP_REDIS_HOST
187
      - _APP_REDIS_PORT
188
      - _APP_REDIS_USER
189
      - _APP_REDIS_PASS
190
      - _APP_DB_HOST
191
      - _APP_DB_PORT
192
      - _APP_DB_SCHEMA
193
      - _APP_DB_USER
194
      - _APP_DB_PASS
195
196
  appwrite-worker-webhooks:
197
    image: appwrite/appwrite:0.9.1
198
    entrypoint: worker-webhooks
199
    container_name: appwrite-worker-webhooks
200
    restart: unless-stopped
201
    networks:
202
      - appwrite
203
    depends_on:
204
      - redis
205
      - mariadb
206
    environment:
207
      - _APP_ENV
208
      - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
209
      - _APP_REDIS_HOST
210
      - _APP_REDIS_PORT
211
      - _APP_REDIS_USER
212
      - _APP_REDIS_PASS
213
214
  appwrite-worker-tasks:
215
    image: appwrite/appwrite:0.9.1
216
    entrypoint: worker-tasks
217
    container_name: appwrite-worker-tasks
218
    restart: unless-stopped
219
    networks:
220
      - appwrite
221
    depends_on:
222
      - redis
223
      - mariadb
224
    environment:
225
      - _APP_ENV
226
      - _APP_OPENSSL_KEY_V1
227
      - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
228
      - _APP_REDIS_HOST
229
      - _APP_REDIS_PORT
230
      - _APP_REDIS_USER
231
      - _APP_REDIS_PASS
232
      - _APP_DB_HOST
233
      - _APP_DB_PORT
234
      - _APP_DB_SCHEMA
235
      - _APP_DB_USER
236
      - _APP_DB_PASS
237
238
  appwrite-worker-deletes:
239
    image: appwrite/appwrite:0.9.1
240
    entrypoint: worker-deletes
241
    container_name: appwrite-worker-deletes
242
    restart: unless-stopped
243
    networks:
244
      - appwrite
245
    depends_on:
246
      - redis
247
      - mariadb
248
    volumes: 
249
      - appwrite-uploads:/storage/uploads:rw
250
      - appwrite-cache:/storage/cache:rw
251
      - appwrite-certificates:/storage/certificates:rw
252
    environment:
253
      - _APP_ENV
254
      - _APP_REDIS_HOST
255
      - _APP_REDIS_PORT
256
      - _APP_REDIS_USER
257
      - _APP_REDIS_PASS
258
      - _APP_DB_HOST
259
      - _APP_DB_PORT
260
      - _APP_DB_SCHEMA
261
      - _APP_DB_USER
262
      - _APP_DB_PASS
263
264
  appwrite-worker-certificates:
265
    image: appwrite/appwrite:0.9.1
266
    entrypoint: worker-certificates
267
    container_name: appwrite-worker-certificates
268
    restart: unless-stopped
269
    networks:
270
      - appwrite
271
    depends_on:
272
      - redis
273
      - mariadb
274
    volumes: 
275
      - appwrite-config:/storage/config:rw
276
      - appwrite-certificates:/storage/certificates:rw
277
    environment:
278
      - _APP_ENV
279
      - _APP_SYSTEM_SECURITY_EMAIL_ADDRESS
280
      - _APP_REDIS_HOST
281
      - _APP_REDIS_PORT
282
      - _APP_REDIS_USER
283
      - _APP_REDIS_PASS
284
      - _APP_DOMAIN_TARGET
285
      - _APP_DB_HOST
286
      - _APP_DB_PORT
287
      - _APP_DB_SCHEMA
288
      - _APP_DB_USER
289
      - _APP_DB_PASS
290
291
  appwrite-worker-functions:
292
    image: appwrite/appwrite:0.9.1
293
    entrypoint: worker-functions
294
    container_name: appwrite-worker-functions
295
    restart: unless-stopped
296
    networks:
297
      - appwrite
298
    depends_on:
299
      - redis
300
      - mariadb
301
    volumes:
302-
      - /var/run/user/${UID}/podman/podman.sock:/var/run/docker.sock
302+
      - /var/run/docker.sock:/var/run/docker.sock
303
      - appwrite-functions:/storage/functions:rw
304
      - /tmp:/tmp:rw
305
    environment:
306
      - _APP_ENV
307
      - _APP_OPENSSL_KEY_V1
308
      - _APP_REDIS_HOST
309
      - _APP_REDIS_PORT
310
      - _APP_REDIS_USER
311
      - _APP_REDIS_PASS
312
      - _APP_DB_HOST
313
      - _APP_DB_PORT
314
      - _APP_DB_SCHEMA
315
      - _APP_DB_USER
316
      - _APP_DB_PASS
317
      - _APP_FUNCTIONS_TIMEOUT
318
      - _APP_FUNCTIONS_CONTAINERS
319
      - _APP_FUNCTIONS_CPUS
320
      - _APP_FUNCTIONS_MEMORY
321
      - _APP_FUNCTIONS_MEMORY_SWAP
322
      - _APP_FUNCTIONS_RUNTIMES
323
      - _APP_USAGE_STATS
324
325
  appwrite-worker-mails:
326
    image: appwrite/appwrite:0.9.1
327
    entrypoint: worker-mails
328
    container_name: appwrite-worker-mails
329
    restart: unless-stopped
330
    networks:
331
      - appwrite
332
    depends_on:
333
      - redis
334
    environment:
335
      - _APP_ENV
336
      - _APP_SYSTEM_EMAIL_NAME
337
      - _APP_SYSTEM_EMAIL_ADDRESS
338
      - _APP_REDIS_HOST
339
      - _APP_REDIS_PORT
340
      - _APP_REDIS_USER
341
      - _APP_REDIS_PASS
342
      - _APP_SMTP_HOST
343
      - _APP_SMTP_PORT
344
      - _APP_SMTP_SECURE
345
      - _APP_SMTP_USERNAME
346
      - _APP_SMTP_PASSWORD
347
      
348
  appwrite-maintenance:
349
    image: appwrite/appwrite:0.9.1
350
    entrypoint: maintenance
351
    container_name: appwrite-maintenance
352
    restart: unless-stopped
353
    networks:
354
      - appwrite
355
    depends_on:
356
      - redis
357
    environment:
358
      - _APP_ENV
359
      - _APP_REDIS_HOST
360
      - _APP_REDIS_PORT
361
      - _APP_REDIS_USER
362
      - _APP_REDIS_PASS
363
      - _APP_MAINTENANCE_INTERVAL
364
      - _APP_MAINTENANCE_RETENTION_EXECUTION
365
      - _APP_MAINTENANCE_RETENTION_ABUSE
366
      - _APP_MAINTENANCE_RETENTION_AUDIT
367
368
369
  appwrite-schedule:
370
    image: appwrite/appwrite:0.9.1
371
    entrypoint: schedule
372
    container_name: appwrite-schedule
373
    restart: unless-stopped
374
    networks:
375
      - appwrite
376
    depends_on:
377
      - redis
378
    environment:
379
      - _APP_ENV
380
      - _APP_REDIS_HOST
381
      - _APP_REDIS_PORT
382
      - _APP_REDIS_USER
383
      - _APP_REDIS_PASS
384
385
  mariadb:
386
    image: appwrite/mariadb:1.2.0 # fix issues when upgrading using: mysql_upgrade -u root -p
387
    container_name: appwrite-mariadb
388
    restart: unless-stopped
389
    networks:
390
      - appwrite
391
    volumes:
392
      - appwrite-mariadb:/var/lib/mysql:rw
393
    environment:
394
      - MYSQL_ROOT_PASSWORD=\${_APP_DB_ROOT_PASS}
395
      - MYSQL_DATABASE=\${_APP_DB_SCHEMA}
396
      - MYSQL_USER=\${_APP_DB_USER}
397
      - MYSQL_PASSWORD=\${_APP_DB_PASS}
398
    command: 'mysqld --innodb-flush-method=fsync'
399
400
  redis:
401
    image: redis:6.0-alpine3.12
402
    container_name: appwrite-redis
403
    restart: unless-stopped
404
    networks:
405
      - appwrite
406
    volumes:
407
      - appwrite-redis:/data:rw
408
409
#  clamav:
410
#    image: appwrite/clamav:1.2.0
411
#    container_name: appwrite-clamav
412
#    restart: unless-stopped
413
#    networks:
414
#      - appwrite
415
#    volumes:
416
#      - appwrite-uploads:/storage/uploads
417
418
  influxdb:
419
    image: appwrite/influxdb:1.0.0
420
    container_name: appwrite-influxdb
421
    restart: unless-stopped
422
    networks:
423
      - appwrite
424
    volumes:
425
      - appwrite-influxdb:/var/lib/influxdb:rw
426
427
  telegraf:
428
    image: appwrite/telegraf:1.2.0
429
    container_name: appwrite-telegraf
430
    restart: unless-stopped
431
    networks:
432
      - appwrite
433
    environment: 
434
      - _APP_INFLUXDB_HOST
435
      - _APP_INFLUXDB_PORT
436
437
networks:
438
  gateway:
439
  appwrite:
440
441
volumes:
442
  appwrite-mariadb:
443
  appwrite-redis:
444
  appwrite-cache:
445
  appwrite-uploads:
446
  appwrite-certificates:
447
  appwrite-functions:
448
  appwrite-influxdb:
449
  appwrite-config:
450
EOF
451