Installing the App

This will explain the basic steps involved in installing the main web application on your server.

Introduction

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.


Requirements

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.

Want $100 Free Digital Ocean Credit? Digital Ocean servers are perfect to run Donation Store. Claim your $100 Free Credit Now.

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


Recommendations

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.


The Setup

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:

  • setup.py
  • requirements.txt
  • activate.sh

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:

python setup.py

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



Secret Key

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


The Database

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:

Important Database Step Regardless of your database type, you must complete this step in a separate doc.

Logs

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/



Some Notes

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.



Next Steps

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:

Setup Your First Webstore If this is your first webstore please read this doc as it has information about setting up sub domains correctly..

Installing the Plugin

Setting up reCaptcha

Obtaining an SSL Certificate