WEDC

appwrite-podman-rootful.sh

Jul 13th, 2021 (edited)
744
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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/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/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.  
Add Comment
Please, Sign In to add comment