Installing on DigitalOcean (recommended)¶
Warning
ODK Aggregate is no longer being updated. Please use ODK Central instead.
Warning
To use this setup, you must able to link a domain name to the machine's IP address. If you don’t own a domain, services such as FreeDNS offer free sub-domains under a range of domains.
Tip
If you have not already created a DigitalOcean account, use our referral link to do so: https://m.do.co/c/39937689124c.
DigitalOcean will give you $100 of credit to spend during the first 60 days so that you can try things out. Once you have spent $25 with them, we’ll get $25 to put towards our hosting costs.
Create your Droplet¶
Log into DigitalOcean and create a new Droplet.
Select the distribution for your new Droplet: Select the option 18.04.x x64 from the Ubuntu box.
Select a size fit for your intended usage. The $5 Standard Droplet should be enough for light Aggregate use. If you find yourself needing more, DigitalOcean makes it easy to resize to a bigger Droplet.
If you would like automatic weekly backups, enable them.
You will not need block storage.
Select a datacenter region physically close to where data collection is going to happen.
Under Select additional options, check the User data checkbox. Copy and paste the contents of this Cloud-Config script.
In the Choose a hostname section, enter the domain name (e.g., your.domain). This hostname will be used by the Cloud-Config script to configure your server’s HTTPS support.
You will not need to add public SSH keys (unless you know what that is and you want to).
Click on the Create button. The Droplet takes a few seconds, the actual Aggregate installation will take up to 10 minutes to complete.
Set up your domain¶
Tip
DigitalOcean Droplets use IP addresses which can change if you destroy the machine. To ensure your Aggregate install will always be reachable using the same IP address, use a Floating IP by following these instructions.
Once the Droplet is running, take note of its public IP address (e.g., 12.34.56.78) and set a DNS A record pointing to it.
If you own a domain, check your domain registrar's instructions. If you don't own a domain, we recommend using FreeDNS to get a free sub-domain.
Your domain's TTL setting will affect to how much time you will have to wait until you can proceed to the next step. If your provider gives you the option of setting a TTL, use the lowest value you can.
Open a web browser, and periodically check the domain until you see the Aggregate website. You won't be able to continue the install until you see the website load.
Enable HTTPS¶
From the DigitalOcean Control Panel, click the name of your droplet, then select Access from the left navigation. Click the Launch Console button to open a web-based console session.
When the console opens, click the console screen, and at the login prompt, enter the user: root. Your password will be the root password that DigitalOcean emailed you.
If you do not have the root password, click the name of your droplet, select Access from the left navigation and choose Reset the root password so that a password gets emailed to you.
You may also login over SSH using the ssh root@your.domain.
Once you are logged in, run sudo certbot run --nginx --non-interactive --agree-tos -m YOUR_EMAIL --redirect -d YOUR_DOMAIN.
Be sure to replace YOUR_EMAIL and YOUR_DOMAIN with your email address and your domain.
Lets Encrypt uses the email you provide to send notifications about expiration of certificates.
Log into Aggregate¶
Go to https://your.domain and check that Aggregate is running.
Click Sign in with Aggregate password to login with the default username and password.
username:administrator
password:aggregate
Change the administrator account's password!