Setting up Appwrite on DigitalOcean

[This article was first published on Posts | Joshua Cook, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here) Want to share your content on R-bloggers? click here if you have a blog, or here if you don’t.

Here, I lay out step-by-step instructions for getting a Appwrite backend up and running on DigitalOcean. First, however, I briefly describe what Appwrite and DigitalOcean are and why one would want to use either of these services. For those who are just looking for a quick how-to, you can jump straight to the listed instructions.

If you notice any mistakes or updates that are needed, please add a comment at the bottom of this post.

Background Appwrite

Appwrite is a powerful, yet free, “Backend as a Service” (BaaS). It provides a simple way to quickly setup a backend server for an app or project with built-in capabilities for common backend services including database management and queries, creating user accounts, and file upload and access. Further, it has an intuitive GUI console paired with a CLI tool and SDKs for many common programming languages (including Python). Overall, Appwrite is a great option for instantly creating a flexible backend server for projects ranging from the simple hobby-apps to complex apps used by hundreds to thousands of users.

DigitalOcean

DigitalOcean is a cloud service provider. They offer tons of features that can suit large corporations, but also simple services for the everyday hobbyist. DigitalOcean is a great way to get a project up-and-running in the cloud.

Setting up Appwrite on DigitalOcean TL;DR

Here are the steps for those who don’t need much help and just want to get started:

  1. Login to DigitalOcean and create a basic Droplet, selecting Appwrite from the Marketplace.
  2. Login to the virtual machine and update security settings ( “#30DaysOfAppwrite: Appwrite for Production”).
  3. Sign into the Appwrite console and get to work!

Walkthrough 1. Create a DigitalOcean Droplet with Appwrite pre-installed.

The first step of this process is to create a Droplet on DigitalOcean. The Droplet is a virtual machine in the cloud and can be as simple as a single shared CPU with 1 GB RAM and 25 GB storage for $5 a month. One of the main selling points of Appwrite is its ability to thrive on this size of infrastructure for small projects.

Once logged in to DigitalOcean, click on the “Create” button in the top-right and select “Droplet” from the dropdown.

DigitalOcean create button

Instead of a specific OS distribution, it is easiest to just select the Appwrite option under the “Marketplace” tab. Select “Marketplace” and enter “Appwrite” into the search box.

DigitalOcean Marketplace-Appwrite

You can click on “Details” to see more information about this Appwrite option.

Appwrite option details

Next, we need to select the capabilities we want for the Droplet. For a starter project, it is enough to go with the “Basic” option of a shared CPU and at least 1 GB of RAM. At the time of writing, the cheapest option is an Intel CPU with SSD for $5 per month.

DigitalOcean machine options

Now, create login credentials for the virtual machine. You can either add SSH keys or create a root password, but DigitalOcean recommends creating SSH keys. It is simple enough and DigitalOcean has provided a quick guide on how to do it.

Finally, just add a hostname which will be the domain for the virtual machine. For this tutorial, I set the hostname as “appwrite.my-app.com”.

DigitalOcean login credentials

To access the server through a domain you already own (e.g. “my-app.com” in this case), you will need to add this Droplet as a record of the domain. This will vary depending on which DNS registrar you use and who manages the DNS records, but DigitalOcean has a helpful guide on handling this: How To Point to DigitalOcean Nameservers From Common Domain Registrars.

2. Update Appwrite security settings on the Droplet.

After a few minutes, DigitalOcean will have your virtual machine running. While you can go right to the Appwrite console (as in step 3, below), I think it is worth first checking the security settings of the production server.

The Appwrite option available through the DitigialOcean Marketplace comes with several key production-level security settings already in place. More details can be found in the 30 Days of Appwrite post “Appwrite for Production”. It is worth looking through the options to make sure everything is set as you would like. For instance, I think it is, especially for small single-person projects, worth setting _APP_CONSOLE_WHITELIST_EMAILS to one of your emails. Otherwise, the default settings seem pretty reasonable and are probably good for most people.

To access these settings, we must SSH into the virtual machine.

ssh root@137.184.23.186

Note that if you used a non-default name for the SSH key, you will need to indicate which key to use like so:

ssh -i ~/.ssh/id_rsa_digital-ocean root@137.184.23.186

ssh message

You can see that everything is already setup by looking at the running containers.

docker ps

docker ps output

Take a look at the Appwrite settings by changing your directory to appwrite and using vim or nano to view the .env file. Do not change the docker-compose.yml file, make the changes in the .env file.

If you make any changes, make sure the run the following command to have the changes take effect.

docker-compose up -d

3. Sign in to the Appwrite console.

Finally, we can go to the IP address or URL for our new server and login to the Appwrite console. Once signed in, you can instantly begin using your new backend.

Appwrite sign-up

Appwrite logged in

To leave a comment for the author, please follow the link and comment on their blog: Posts | Joshua Cook.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you’re looking to post or find an R/data-science job. Want to share your content on R-bloggers? click here if you have a blog, or here if you don’t.

Continue reading: Setting up Appwrite on DigitalOcean Source

11 thoughts on “Setting up Appwrite on DigitalOcean”

  1. Hey there, You’ve done a great job. I will definitely digg it and personally suggest to my friends.
    I’m confident they’ll be benefited from this website.

  2. Hello, Neat post. There is an issue along with your web site in internet
    explorer, could check this? IE still is the marketplace leader and a good portion of people will miss your
    great writing because of this problem.

  3. Hello There. I found your blog using msn. This
    is a very well written article. I will be sure to bookmark it and
    come back to read more of your useful information. Thanks for the post.

    I will definitely return.

  4. Yesterday, while I was at work, my sister
    stole my iphone and tested to see if it can survive a 25
    foot drop, just so she can be a youtube sensation.
    My apple ipad is now broken and she has 83 views. I know this is completely off topic but I had to share it with someone!

  5. Hey there! This is my first comment here so I just wanted to give a
    quick shout out and say I genuinely enjoy reading your posts.
    Can you suggest any other blogs/websites/forums
    that cover the same topics? Thanks a ton!

  6. Hey very nice website!! Man .. Excellent .. Superb .. I’ll bookmark your
    site and take the feeds additionally? I am happy to search out so many useful info right here within the publish, we want develop extra strategies in this regard,
    thanks for sharing. . . . . .

  7. Hey there this is kind of of off topic but I was wondering
    if blogs use WYSIWYG editors or if you have to manually code with HTML.
    I’m starting a blog soon but have no coding experience so I wanted
    to get advice from someone with experience. Any help would be enormously appreciated!

  8. I got this web page from my buddy who told me regarding this web
    site and at the moment this time I am browsing this website and reading very informative posts here.

Leave a Reply

Your email address will not be published. Required fields are marked *