How to install a SIB server

What is behind SiB server ?

Our solution is based on Django and named DjangoLDP, adapted to be compatible with Linked Datas convention.

Go to Server Architecture to know more about it.


The SIB server requires:

  • python 3.6

  • postgresql database (for production)

Initiate the server


If you’re working on many project in Python, we advice you to use a virtual environement.

From a fresh environment, get the last version of the sib-manager:

python -m pip install -U sib-manager

Create a project structure from a production template:

sib startproject sibserver --production
cd sibserver

For a development server remove the –production flag.

now your architecture should look like :


For more detail, go to the official Django project documentation.

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.

Here you have :

If the description of the available packages is unclear, open an issue to ask for more description.

    djangoldp_account: djangoldp_account
    oidc_provider: 'git+'

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:

    site_url: 'http://localhost:8000'
    admin_name: admin
    admin_pass: admin
    registration_open: True
    xmpp_url: 'https://jabber.localhost'
    jabber_host: 'jabber.localhost'
    default_client: 'http://localhost:3000'

This configuration works for a local development server but for a production instance you need to setup a postgresql database and configure dependent services:

    site_url: ''
    db_name: batman_db
    db_user: batman
    db_pass: changeit
    smtp_user: batman
    smtp_pass: changeit
    admin_name: admin
    admin_pass: changeit
    xmpp_url: ''
    jabber_host: ''

Make your migration

python migrate

Create your super user

python createsuperuser

Follow the instructions you get in your terminal.

Launch the server

Run the server in development:

python runserver

Then go to to acces to your Django administration.

Enter the identifier you’ve just created and you shoud see the Django admin.


In some case, you could get this kind of error : no such table: djangoldp_xyz_abc. Enter this command to solve it : python3 migrate - -run-syncdb

You should be able to get you api at http://localhost:8000/abc/ where abc is the model of data you want to get.

To update the installation

Install/update the project:

sib install sibserver

To launch the server in production:

  • You have to install the static files with python collectstatic

  • You have to configure your python server to server the script: on the URL

If you have any problem, tell us reporting it in an issue. Thanks!

Tips & tricks

Activate debug mode To activate the debug mode (default in development) you can override manually the DEBUG variable in the

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 you have to manually override the configuration in the

STATIC_URL = '/api/static/'

and URLs in

urlpatterns = [
    url(r'^api/', include('djangoldp.urls')),

Note: Alwaysdata static config /api/static/=/static/

Initiate the server with Docker

This is not intended to support production running.

Setup your SIB server

Create your packages.yml according to the documentation. Create the Dockerfile:

FROM python:3.6
ENV PATH="/root/.local/bin:${PATH}"
RUN pip install --user -U sib-manager
RUN cd /opt/ && sib startproject sib_server
ADD packages.yml /opt/sib_server/packages.yml
RUN cd /opt/sib_server && sib install sib_server
CMD cd /opt/sib_server && python runserver

Build the image:

docker build -t sibserver .

Run the container:

docker run --rm -p -d sibserver

Serve your client app

Launch a container from within your code folder:

docker run --rm -v $PWD:/code -w /code -u $UID -it -p node npm install && npm run watch