Installing the App
This will explain the basic steps involved in installing the main web application on your server.
The installation process of Donation Store has been improved and automated since it's first release. This doc will show you how to install Donation Store on your server. If you have any queries you can open a support ticket, or if you'd like a Donation Store developer to install it for you, you can purchase the installation service.
To install Donation Store, you will need a Linux based VPS (we recommend either Ubuntu or Debian). While the setup script is designed for Debian based boxes that use apt, you can install the application on another distro like CentOS. You'll just have to install the requirements instead with yum.
For the current version of Donation Store, you must use Python 2.7 for executing scripts and also for the main application. We currently have plans to upgrade to the latest version in the next coming iterations. If Python 2.7 isn't installed, you can install it using:
sudo apt update sudo apt upgrade sudo apt install python2.7 python-pip
We recommend that you use Nginx as your webserver and Gunicorn as your WSGI server. Right now this guide is for Nginx and Gunicorn, but if requested, we may add others to it in the future. Note that if you already use a web server like Apache, Nginx will offer similar functionality, it just does it in a different way. We advise you to use Nginx for the best results on performance.
An environment needs to be setup for you first where the script will execute from. To achieve this, navigate to your /home directory and upload the following files to the directory:
When you run the setup script in the next step it will:
- Setup your environment and install necessary dependencies
- Setup, configure and start Nginx
- Create a Systemd Donation Store service, so you can start the application easily
Change directories into home and simply run:
It will prompt you for some options, fill them out as necessary.
You may need to run the commands using sudo if you do not have the correct permissions. These three files will setup a Python Virtual Environment inside of the donationstore folder where the application will live. It will also install any dependencies that are needed.
Uploading the App
While the above script has setup the entire environment for us, you need to now copy all of the files in the app folder and place them into: /home/donationstore/env
Donation Store requires a "SECRET_KEY" which must be generated. This key is essential for Donation Store to generate hashes for passwords etc. To generate a secret key, run the same setup script again, but this time instead of choosing "setup" as the option, choose secret. It will give you a secret which should be placed in the DonationStoreV2/settings.py file in the SECRET_KEY list.
Running Donation Store
Once completed you can start Donation Store by running:
service donationstore start
To stop Donation Store:
service donationstore stop
To restart Donation Store:
service donationstore restart
If you visit your URL you will notice that Donation Store is throwing an error. Before moving to the browser based installer, please now follow the database docs. This is a really important step which is essential to the application running correctly:
As the Donation Store service starts a few different services at once, it may report that the entire service as a whole is fine but the app may not be started correctly. If you ever see a 502 Bad Gateway error from Nginx, it tends to mean there was a problem starting Donation Store. To see any errors, you can check two different log files:
/var/log/donationstore/error.log : Error logs when starting Donation Store /var/log/donationstore/access.log : Access (Requests) coming into Donation Store
RabbitMQ & Celery
Since v2.2, Donation Store has used RabbitMQ and Celery as the asynchronous task queue for events that can take a long time, like sending emails. Originally, sending an email after a payment that isn't successful (for whatever reason, whether it be SMTP issues), to a customer, might prevent the response from the gateway from occurring, meaning no commands. However, with v2.2 and with RabbitMQ and Celery, the task of sending emails is delegated to a separate process meaning the core functionality can continue. You don't have to do any other configuration, it has already been setup and installed with the setup script.
Donation Store Installer
After the above steps you can now visit your application and follow the steps to start setting up your first webstore/creating your admin account. You can do so by visiting: yourdomain.com/install/
Please ensure that you never run Donation Store on a production server in DEBUG mode. This can be changed in the settings.py file found in DonationStoreV2/settings.py. By running the application in debug mode you are exposing information to the public about the inner workings of your application. DO NOT DO THIS.
As of v2.2, Donation Store now manages sub domains built in. It's pretty simple to setup and doesn't require a lot of configuration, however you should follow the following doc to get setup: