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.
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.
Once in, you'll need to click on "Create" and then "App Platform" which will send you to a new page called "Create App".
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.
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.
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.
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?