Installation of NearBeachļ
The following instructions will inform you how to setup NearBeach and get it running on your Web Server.
You will need to be in your virtual environment
source <<virtualenv_location>>/bin/activate
Navigate to your projectās folder
$ cd <<django_project_location>>
Install NearBeach through PIP. This will install NearBeach as well as all the required libraries utilised by NearBeach.
pip install NearBeach
Edit the projectās settings.py to include NearBeach
$ nano ./<<project name>>/settings.py
Add the following line to the āINSTALLED_APPSā section
'NearBeach.apps.NearBeachConfig',
Now save the document and add the following two lines to the ācontext_processorsā under āTEMPLATESā.
'NearBeach.context_processors.django_version', 'NearBeach.context_processors.nearbeach_version',These two lines will render the version of both Django and NearBeach inside the templates.
Enabling reCAPTCHA (optional). Register an account at [Google reCAPTCHA](https://www.google.com/recaptcha/intro/invisible.html).
$ nano ./<<project name>>/settings.pyThe following variables will need to be placed into your settings.py.
RECAPTCHA_PUBLIC_KEY = 'Your public key' RECAPTCHA_PRIVATE_KEY = 'Your private key'
Security - Add the following lines of code into the settings.py
SECURE_SSL_REDIRECT = True SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True CSRF_HTTPONLY = True
Email - optional however required for resetting passwords
$ nano ./<<project name>>/settings.pyAdd the following lines of code into the settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = True EMAIL_HOST = '<< your email host >>' EMAIL_PORT = 25 EMAIL_HOST_USER = '<< your username >>' EMAIL_HOST_PASSWORD = '<< your password >>' DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
Private Documents
nano ./<<project name>>/settings.pyAdd the following lines of code into the settings.py
PRIVATE_MEDIA_URL = '/private/' #Can change if DEBUG: # dev import os PRIVATE_MEDIA_ROOT = os.path.abspath(os.path.dirname(__file__)) PRIVATE_MEDIA_SERVER = 'DefaultServer' else: # prod PRIVATE_MEDIA_ROOT = '<< folder containing private folder >>' PRIVATE_MEDIA_SERVER = 'ApacheXSendfileServer'Note
Please note: The PRIVATE_MEDIA_ROOT variable will only contain the folder that contains the Private folder. The system will automatically append the āprivateā variable onto the end of PRIVATE_MEDIA_ROOT.
The following redundant code will need to be used at the moment.
STATIC_URL = '/static/' STATIC_ROOT= os.path.join(BASE_DIR,'static/') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
Edit the projectās URL.py to include NearBeach
nano ./<<project name>>/url.pyPlease make sure that the following import in included at the top of the file
from django.urls import path, includeEither of the following can be entered into the āurlpatternsā section
path('', include('NearBeach.urls')),
Create Database/Migrations
The database will need to be setup. Please note by default Django uses sqlite3, however it is possible to setup NearBeach to use a mysql database.
python ./manage.py migrate python ./manage.py migrate NearBeachIf you have setup NearBeach with an SQLite database, you will need to change itās permissions so nginx can access it
sudo chmod 755 ./db.sqlite
Create superuser
A superuser will need to be created. This superuser will be able to enter the ADMIN site of Django, which from there will be able to do administration items.
python ./manage.py createsuperuserEnter in the correct details for the superuser
Collect the static
The website uses static images, javascript, and CSS. You will need to collect this data to the static folder (set in the settings.py). Please run the following command
python ./manage.py collectstatic
Create the private media folder
$ mkdir ./private_media/
Assign write permissions to the ./media/ and ./private_media/ folder
$ sudo chmod -R 755 ./media $ sudo chmod -R 755 ./private_mediaRestart gunicorn
$ sudo service gunicorn restart
NearBeach should now be setup for you on your server. Navigate to your serverās Domain Name or IP address and you should see the login screen. Please note it is recommended to have HTTPS enabled, we recommend Lets Encrypt. Please see https://letsencrypt.org/ and follow the prompts to get Cert Bot installed.
Note
The first user to log in will automatically get administration permissions. It is recommended to get the system admin to log in first before importing any user data from other sources. This also allows the admin to setup groups and permissions.