Automatic Updater
Learn how to use the Automatic Updater and How it Works
Introduction
The Automatic Updater allows for Donation Store to automatically update itself to the latest version without requiring the store owner to manually add files.
Please note that the Automatic Updater does backup your files for safety, however there may be situations where it may fail and manual intervention may be required. The Automatic Updater is ever improving based on customer feedback.
If you haven't already, please check out our video on How to Update your Store Using the Automatic Updater.
Requirements
The Automatic Updater has a few requirements that it uses during its setup. These will be installed during the Donation Store setup, however please make sure you have the following installed on your machine
- wget
- bsdtar (part of libarchive-tools)
If you don't have either of the above, they can be installed easily using apt
apt-get install wget
apt-get install libarchive-tools
Permissions Needed
The updater runs as the donationstore user in the donationstore groups. If it tries to move files from the update into a directory not owned by the updater, it'll fail.
The setup script that comes with Donation Store should have done this for you, but before running the bot, make sure to run:
chown donationstore:donationstore -R /home/donationstore/env
Update Types
We will only put stable builds up for the automatic updater to install. While these builds may be BETA, they are not experimental.
Any updates that require infrastructure updates (i.e. they addition of some sort of external dependency) will require a manual install. This will come with instructions on the Donation Store website.
Performing an Update
When there is an update available, you will be prompted to update on the home page of your webstore. When you click "Update Now", you will be redirected to the update page. Here you will be able to see your currently installed version and the newest version available.
To update, click the update version. Donation Store will do the following during the update
- Set the webstore to maintenance mode
- Create a backup of all of the files in the /home/donationstore/env
- Create a backup of the database and dump it as a JSON file (which can be manually loaded back into the database by Donation Store if needed in the future)
- Pull the newest updated files from the Donation Store servers and apply updates. Note, any updates to core files (i.e. ones that came with Donation Store, outside your custom themes and settings), will be overwritten if a newer version is available
- Return the store to normal mode
Throughout this process, an update instance is created to track logs pertaining to that update. This can be found in the update section of the control panel. This is useful to follow if something failed and you needs logs to explain what has happened/to provide us for support.
State of App During Update
Throughout this process, an update instance is created to track logs pertaining to that update. This can be found in the update section of the control panel. This is useful to follow if something failed and you needs logs to explain what has happened/to provide us for support.
Update Logs
When updates are performed, logs are written to at each step to explain what is happening. For each update, the logs associated are stored along with other information about that update. Things like when it started, when it finished, what version it was updating from and what it was updating to.
To get the update info and logs, you can view all updates from the update page. By click the three dots on the right, you can get an option to view all logs for that update, like this
Where to Turn if Things Go Wrong
If the updater fails or something goes wrong. Please do reach out to us. We can give you information on the best way to restore your backup and update again!
Have Questions? Open a Support Ticket
View Common Issues on the Knowledgebase
Video Guides on YouTube
Other clients and Donation Store developers hang out on our Discord server, where you can ask for support in #ds-chat, or if you are a Client and you don't uet have your Client role on Discord, let us know and we can add it. Once added you get access to our private Client's support channel.