Skip to content

byawitz/appwrite-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Scaling Appwrite

⚡ Introduction

In this repo, you'll find all the necessary files needed for deploying Appwrite:

  • Using a single server.
  • Using multiple servers with a decentralized database & storage.
  • Using Docker Swarm with a decentralized database & storage.

Deployment types

Technique Description
Vertical Scale your Appwrite up and down using single server
Horizontal Scale your Appwrite left and right using multiple services servers
Swarm Scale your Appwrite using multiple docker swarm servers.

Addon

Name Description
Decentralized Single decentralized storage and databases server to be used with Horizontal and Swarm

🎩 Using ansible

Any deployments contain fully working Ansible scripts, so you can deploy your Appwrite infrastructure with a single command!

Config files:

Inside each Ansible sub folder, you'll find two files inside the config folder

  • vars.yml - List of variable you can customize prior to the deployment.
  • servers.yml - List of all your servers and groupds.

All you need to do is to update the variables inside the vars.yml file, and set each server IP. Notice that in Horizontal and Swarm the separation of the servers into groups is done for you.

Encrypt variables

To encrypt the database passwords, or any variables inside the vars.yml file, you can use ansible-vault like so:

ansible-vault encrypt_string PASSWORD --ask-vault-pass

Replace PASSWORD with the desired value and set a password for the local vault.

Run

Inside the ansible folder:

# In case you did encrypt some vars
ansible-playbook appwrite.yml --ask-vault-pass

# In case you didn't encrypt any vars
ansible-playbook appwrite.yml

Grab a coffee ☕ and watch your infrastructure come to life.

🧙‍♂️ Looking for more?

Check my official DevOps Book in English or in Hebrew.