spaceport/apiserver/docs/source/ldap.rst

69 lines
1.6 KiB
ReStructuredText

LDAP Server Setup
=================
.. contents:: :depth: 3
This guide assumes you are on a Debian-based distro.
Install dependencies:
.. sourcecode:: bash
$ sudo apt update
$ sudo apt install build-essential python3 python3-dev python3-pip python-virtualenv python3-virtualenv supervisor libsasl2-dev libldap2-dev libssl-dev
Clone the repo:
.. sourcecode:: bash
$ git clone https://github.com/Protospace/spaceport.git
$ cd spaceport
Main Script
-----------
Create a venv, activate it, and install:
.. sourcecode:: bash
$ cd ldapserver
$ virtualenv -p python3 env
$ source env/bin/activate
(env) $ pip install -r requirements.txt
Edit ``ldapserver/secrets.py.example`` and save it as ``ldapserver/secrets.py``.
Securely move the auth token to ``apiserver/secrets.py`` on the server running Spaceport.
Now you can run the script to test:
.. sourcecode:: bash
(env) $ python main.py
Flask will now be running on port 5000, connect to localhost:5000 to test it.
Process Management
------------------
The script is kept alive with `supervisor <https://pypi.org/project/supervisor/>`_.
Configure ``/etc/supervisor/conf.d/ldapserver.conf``:
.. sourcecode:: text
[program:ldapserver]
user=ldapserver
directory=/opt/spaceport/ldapserver
command=/opt/spaceport/ldapserver/env/bin/gunicorn -w 2 --bind 0.0.0.0:5000 server:app
stopasgroup=true
stopsignal=INT
autostart=true
autorestart=true
stderr_logfile=/var/log/ldapserver.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/ldapserver.log
stdout_logfile_maxbytes=10MB
Script logs to ``/var/log/ldapserver.log``.