From 94fb13fb6556bb49712d16ad92c16fef8eee06f9 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Tue, 19 Jan 2021 15:52:50 +0100 Subject: [PATCH] README instructions improved --- README.md | 105 ++++++++++++++++++++++++++++++++++++++- config_example/config.py | 18 ++++--- main/settings.py | 9 ++-- 3 files changed, 116 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 0486491..cfb89eb 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,104 @@ -# patt +# PaTT -Project And Teamorganisation Tool \ No newline at end of file +Project and Teamorganisation Tool + + +---- +## Installation +---- +### Get the repository +####Go to the subfolder, where you want to create your new PaTT-Application (here ~/tmp) + cd ~/tmp +#### Clone the repository + git clone https://git.mount-mockery.de/application/patt.git +#### Change to your repository and initialise it completely + cd patt + git submodule init + git submodule update + + +### Create your virtual environment +#### Create python3 environment + virtualenv -p /usr/bin/python3 venv +#### Activate the environment + source activate +#### Upgrade all outdated packages + pip list -o --format freeze|cut -d '=' -f 1 | xargs pip install $1 --upgrade +#### Install PaTT Requirements + pip install -r requirements.txt + +---- +## Configuration and Initialisation of PaTT +---- +### Create your config File +#### Copy the config example + cp config_example/config.py . + chmod 700 config.py + +#### Set a secret key +Edit config.py and add a SECRET_KEY. Generate the secret e.g by executing the following command: + + python manage.py + +At the End of the error message you'll see a random secret: + +KeyError: "You need to create a config.py file including at least a SECRET_KEY definition (e.g.: --> **'HERE IS THE RANDOM SECRET ;-)'** <--)." + + + +### Create your initial database and first user for Patt + python manage.py migrate + python manage.py createsuperuser + +### Finalise Configuration +Now there are two ways to finalise your configuration. The first way is for a test or development system. The other is for a production System. + +1. **Test or development System:** Edit + config.py +and set the Variable + DEBUG +to + True. + +2. **Production System:** Edit + config.py +and set the Variable ALLOWED_HOSTS. Execute + "python manage.py collectstatic" to create a folder including all static files. Then add PaTT to your server configuration. See also [Django Documnetation](https://docs.djangoproject.com/en/3.1/howto/deployment/) for further information. + +---- +## Start the Test or development System +---- +### Go to the folder, where your PaTT-Application is locates (here ~/tmp/patt) + cd ~/tmp/patt + +###Activate your Virtual Environment + source activate + +###Start the Server + python manage.py runserver + + +---- +## Backup +---- +### Create Backup files + source venv/bin/activate + python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e sessions -e auth.Permission -e sessions -e patt --indent 2 > dump_base.json + python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e sessions -e auth.Permission -e sessions patt --indent 2 > dump_patt.json + tar -cvzf dump_media.tgz data/media + +**Further Files need to be backuped! ** + +### Restore Backup + + source venv/bin/activate + +If you are starting with any database, you need to create one + + python manage.py migrate + +Afterward add data step by step to the database. + + python manage.py loaddata dump_base.json + python manage.py loaddata dump_patt.json + tar -xvzf dump_media.tgz diff --git a/config_example/config.py b/config_example/config.py index 8c1b76f..add8f68 100644 --- a/config_example/config.py +++ b/config_example/config.py @@ -1,15 +1,17 @@ -import os - -BASE_DIR = os.path.dirname(os.path.abspath(__file__)) - # # General settings # -# SECRET_KEY = 'define a secret key' -# -# ALLOWED_HOSTS = [] + +# SECURITY WARNING: don't run with debug turned on in production! +# DEBUG = False + +# SECURITY WARNING: don't run with a dummy secret in production! +# SECRET_KEY = None + +# SECURITY WARNING: don't run with '0.0.0.0' in in production, unless you know what you are doing! +# ALLOWED_HOSTS = ['127.0.0.1', ] # # Style settings # -# DEFAULT_THEME = 'clear-red' +# DEFAULT_THEME = 'clear-green' diff --git a/main/settings.py b/main/settings.py index 985b14a..544ed43 100644 --- a/main/settings.py +++ b/main/settings.py @@ -31,9 +31,10 @@ if sys.platform == 'linux' or sys.platform == 'linux2': # Default values, if not defined in config.py # USER_CONFIG_DEFAULTS = { + 'DEBUG': False, 'SECRET_KEY': None, 'DEFAULT_THEME': 'clear-green', - 'ALLOWED_HOSTS': [], + 'ALLOWED_HOSTS': ['127.0.0.1', ], } # Set configuration parameters @@ -54,13 +55,9 @@ for property_name in USER_CONFIG_DEFAULTS: if SECRET_KEY is None: chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)' s_key = ''.join([random.choice(chars) for n in range(50)]) - secret_key_warning = "You need to create a config.py file including a variable config which is a dict with at least a SECRET_KEY definition (e.g.: %s)." % repr(s_key) + secret_key_warning = "You need to create a config.py file including at least a SECRET_KEY definition (e.g.: --> %s <--)." % repr(s_key) raise KeyError(secret_key_warning) -# SECURITY WARNING: don't run with debug turned on in production! -# -DEBUG = False - # Application definition #