diff --git a/source/import_documentation/install-sib-server.rst b/source/import_documentation/install-sib-server.rst new file mode 100644 index 0000000000000000000000000000000000000000..e7ec1322783c286c1b8acc8bbcd7ec4144bac231 --- /dev/null +++ b/source/import_documentation/install-sib-server.rst @@ -0,0 +1,140 @@ +*************************** +How to install a SIB server +**************************** + +Requirements +############ + +The SIB server requires: + +* python 3.6 +* postgresql database (for production) + + +Initiate the server +################### + +From a fresh environment, get the last version of the sib-manager: + +.. code-block:: bash + + python -m pip install -U sib-manager + + +Create a project structure from a production template: + +.. code-block:: bash + + sib startproject sibserver --production + cd sibserver + + +For a development server remove the --production flag. + +Configure your LDP packages +############################ + +The configuration of the packages goes in packages.yml file in the ldppackages section. Those following ones are given as an example. Yours depend on what your app does. + +.. code-block:: yml + + ldppackages: + djangoldp_circle: djangoldp_circle + djangoldp_account: djangoldp_account + djangoldp_profile: djangoldp_profile + oidc_provider: 'git+https://github.com/jblemee/django-oidc-provider.git@develop' + + +Details about packages.yml format are given in the template file. + +Configure your server parameters +################################# + +The packages.yml files is also use to provide parameters to the server itself. +Configure the server parameters in the packages.yml: + +.. code-block:: yml + + server: + site_url: 'http://localhost:8000' + admin_email: admin@example.org + admin_name: admin + admin_pass: admin + +This configuration works for a local development server but for a production instance you need to setup a postgresql database and configure dependent services: + +.. code-block:: yml + + server: + site_url: 'https://api.batman.happy-dev.fr' + allowed_hosts: + - api.batman.happy-dev.fr + db_host: postgresql-batman.happy-dev.fr + db_name: batman_db + db_user: batman + db_pass: changeit + smtp_host: smtp-batman.happy-dev.fr + smtp_user: batman + smtp_pass: changeit + admin_email: admin@example.org + admin_name: admin + admin_pass: changeit + xmpp_url: 'https://jabber.happy-dev.fr' + jabber_host: 'happy-dev.fr' + + +Launch the installation +####################### + +Install/update the project: + +.. code-block:: bash + + sib install server + + + +Launch the server +################## + +Run the server in development: + +.. code-block:: bash + + python manage.py runserver 0.0.0.0:8000 + + +To launch the server in production: + + +* You have to install the static files with python manage.py collectstatic + +* You have to configure your python server to server the script: wsgi.py on the URL api.batman.happy-dev.fr/. + + +Tips & tricks +############## + +Activate debug mode +To activate the debug mode (default in development) you can override manually the `DEBUG` variable in the settings.py + +Install the server as a subfolder URL +This method isn't officially supported and requires to change values in the core configuration. +To setup the SIB server on a subfolder https://batman.happy-dev.fr/api you have to manually override the configuration in the settings.py: + +.. code-block:: python + + BASE_URL = 'https://batman.happy-dev.fr' + SITE_URL = 'https://batman.happy-dev.fr/api' + STATIC_URL = '/api/static/' + +and URLs in urls.py: + +.. code-block:: python + + urlpatterns = [ + url(r'^api/', include('djangoldp.urls')), + url(r'^api/admin/', admin.site.urls), + ] + +Note: Alwaysdata static config /api/static/=/static/ \ No newline at end of file