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 |