guide

How to deploy Expensio in 15 minutes

There are many ways to self-host an app like Expensio, but one of the easiest is to use Digital Ocean's App Platform.

Requirements

Before we start, you need to have the following:

  • a laptop with an internet connection
  • a GitHub account
  • a debit/credit card with no more than
  • a can-do attitude

All good? Then let's get started.

Make sure you have access to the Expensio GitHub repository and go to Digital Ocean.

Digital Ocean signup with GitHub
Figure 1: Digital Ocean signup with GitHub

It's very important that you sign up / sign in with GitHub. This makes it very easy for Digital Ocean to find the source code for Expensio.

Use App Platform in Digital Ocean
Figure 2: Use App Platform in Digital Ocean

Once in, you'll need to click on "Create" and then "App Platform" which will send you to a new page called "Create App".

Create App page in Digital Ocean
Figure 3: Create App page in Digital Ocean

You need to make sure "GitHub" is selected, DigitalOcean has permissions to see the Expensio repository and then you need to select Expensio repository with the "main" branch.

Configure your resources in Digital Ocean
Figure 4: Configure your resources in Digital Ocean

Delete the resource that doesn't contain "Dockerfile".

You can also click "edit" for the remaining one and change the resource size from the $12/mo server to a server that better fits your needs.

If you're deploying a web app only for yourself and a few other people, you can easily get away with using the $5/mo server that Digital Ocean offers.

Once done, click "Next" until you get to the "3 Info" page.

Info page in Digital Ocean
Figure 5: Info page in Digital Ocean

Changing the name of the app to something like "expensio" is optional and you can leave it as is if you prefer.

What you do need to do is edit the location of the server to somewhere close to you.

The closer the server is to you, the faster the Expensio app will feel.

Once this is done you can click "Next", review your settings and then click on "Create Resources" to deploy the app.

It will take a few minutes for it to happen, so you might want to go grab a coffee or a sandwich.

App is live
Figure 6: App is live in Digital Ocean

Your app is now live and you can click on "Live app" to see it.

You can also click on "Actions" and then on "Manage Domains" to use a custom domain instead of the one given by Digital Ocean, but that's out of scope of this guide.

Once in the app all you need to do is signup using the "fresh" signup code. This code is only useable once and will make you an admin user.

Once in you can start using the app, or go to the admin page to add signup codes for your family and friends.

All done

That's it, you're done. But let me tell you a few other cool things.

Digital Ocean is so awesome that practically every time we (Expensio team) make an update to Expensio, they just automatically deploy it on your server if you left "Autodeploy" in Figure 3 checked.

You really don't need to know anything about the technical details of how it works, nor do anything on a regular basis to maintain your app.

Except maybe setup backups?

Expensio.co - Personal finance for disorganized people. | Product Hunt