Hackhub is our member database and lives on Finzean.
It is very closely integrated with 57North ID and both need to be running.
Hackhub code is hosted at Github.
Some form of OS (Debian stable):
apt install python-flask sqlite3 slapd ldap-utils ldapscripts git apache2 libapache2-mod-wsgi python-virtualenv python-ldap/home/hackhub/hackhub.dbadduser hackhub - ensure hackhub has no password, has a /home/hackhub and a shell of /bin/shpip2 install python-cas monthdeltasu -l hackhubgit clone https://github.com/hackerdeen/hackhubhackhub/local_settings.py cd && virtualenv .hackhubExport Database Schema and cn=config
slapcat -n 0 -l /tmp/57nldap.configExport user data:
slapcat -n 1 -l /tmp/57nldap.usersCopy these two files to where the new db is. Use SCP or something secure
Stop slapd:
systemctl stop slapdMake sure that the existing slapd.d folder on the new machine is empty:
rm -rf /etc/ldap/slapd.d/*Add the schema and cn=config:
slapadd -n 0 -F /etc/ldap/slapd.d -l /tmp/57nldap.configAdd the user data:
slapadd -n 1 -l /tmp/57nldap.usersChange the ownership of the slapd.d folder:
chown -R openldap:openldap slapd.dStart slapd:
systemctl start slapd a2enmod rewritea2enmod wsgi<VirtualHost *:80>
ServerName hub.57north.org.uk
ServerAdmin ctte-private@57north.co
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,QSA,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<IfModule mod_ssl.c>
WSGIPythonPath /home/hackhub/hackhub
<VirtualHost *:443>
ServerName hub.57north.org.uk
ServerAdmin ctte-private@57north.co
SSLCertificateFile /etc/letsencrypt/live/hub.57north.org.uk/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hub.57north.org.uk/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
WSGIDaemonProcess hackhub user=hackhub group=hackhub threads=2
WSGIScriptAlias / /home/hackhub/hackhub/hackhub.wsgi
DocumentRoot /home/hackhub/hackhub
RewriteEngine On
RewriteRule ^/$ https://57north.org.uk [L,R=301]
<Directory /home/hackhub/hackhub>
WSGIProcessGroup hackhub
WSGIApplicationGroup %{GLOBAL}
Require all granted
</Directory>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>