Gå till innehållet

RatticDB

RatticDB är en open-source password management databas gjord för att flera ska kunna läsa och skriva samtidigt. Man hostar den själv och når den via en hemsida.

Förberedelse

Om man vill och det är rekomenderat är följande,

  • Att man använder HTTPS för att logga in på Rattic.
  • Filsystemet där din databas lagras bör vara krypterat.
  • Access loggarna bör vara skyddade.
  • Program som OSSEC är bra att använda.

En fungerande LAMP och en databas skapad åt rattic samt följande paket.

  • python
  • pip
  • GCC
  • mysql-devel
  • openssl-devel
  • openldap-devel
  • python-devel
  • libxml2-devel
  • libxslt-devel
  • gettext

Installation

Det är rekomenderat att installera under /opt/apps.

mkdir /opt/apps && cd /opt/apps git clonehttps://github.com/tildaslash/RatticWeb cd RatticWeb pip install -r requirements-mysql.txt mkdir static cd conf && cp defaults.cfg local.cfg

Ändra följande rader,

[ratticweb] debug = False secretkey = [enter a string of random secret data] hostname = rattic

[filepaths] static = /opt/apps/RatticWeb/static

[database] engine = django.db.backends.mysql name = rattic user = root password = host = port =

Skapa sedan tabeller i databasen och fyll static mappen.

cd /opt/apps/RatticWeb/ ./manage.py syncdb --noinput ./manage.py migrate --all ./manage.py collectstatic -c --noinput ./manage.py demosetup

Logga in med användaren admin med password rattic.

Nginx konfiguration

Börja med att installera supervisord och gunicorn.

pip install gunicorn easy_install supervisor wgethttps://gist.githubusercontent.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh-O /etc/init.d/supervisord update-rc.d supervisord defaults mkdir /opt/apps/log

Lägg till följande rader längst ner i /etc/superviseord.conf.

[program:RatticDB] command = /opt/apps/gunicorn_start.sh user = rattic stdout_logfile = /opt/apps/log/gunicorn_supervisor.log redirect_stderr = true

Skapa en fil som heter gunicorn_start.sh under /opt/apps och lägg in följande.

#!/bin/bash NAME="RatticDB"                                   # Name of the application DJANGODIR=/opt/apps/RatticWeb/                     # ratticdb project directory USER=rattic                                       # the user to run as GROUP=rattic                                      # the group to run as NUM_WORKERS=3                             # how many worker processes should Gunicorn spawn (2xcores+1) DJANGO_SETTINGS_MODULE=ratticweb.settings         # which settings file should Django use DJANGO_WSGI_MODULE=ratticweb.wsgi                 # WSGI module name echo "Starting $NAME as `whoami`" # Activate the virtual environment cd $DJANGODIR export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE export PYTHONPATH=$DJANGODIR:$PYTHONPATH # Start your Django Unicorn # Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon) exec /usr/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \ --name $NAME \ --workers $NUM_WORKERS \ --user=$USER --group=$GROUP \ --log-level=debug \ --bind=127.0.0.1:8000

Nginx conf fil.

server { listen       443 ssl; server_name  rattic.hackernet.se; client_max_body_size 4G;

location /static/ { alias /opt/apps/RatticWeb/static/; }

location /media/ { alias   /opt/apps/RatticWeb/media/; }

add_header Strict-Transport-Security max-age=15768000; add_header X-Frame-Options DENY; add_header X-Content-Type-Options nosniff; ssl_certificate         /etc/nginx/cert.crt; ssl_certificate_key     /etc/nginx/cert/cert.pem; ssl_protocols       TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!DSS:!RC4'; ssl_prefer_server_ciphers on; ssl_dhparam /etc/nginx/cert/dhparam.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout  5m;

location / { proxy_passhttp://127.0.0.1:8000; } } server { listen      80; server_name rattic.hackernet.se; # 301 = permanent redirect, 302 = temporary redirect return 301https://rattic.hackernet.se$request_uri; }

Starta sedan Rattic med hjälp av supervisord.

service supervisord start

LDAP

Lägg in följande i conf filen. Mer dokumentation finns på Rattic Wiki.

[ldap] # LDAP server details uri =ldap://localhost

# User parameters userbase = ou=users,dc=example,dc=com userfilter = (uid=%(user)s)

# Set up the basic group parameters. groupbase = ou=django,ou=groups,dc=example,dc=com groupfilter = (objectClass=groupOfNames) grouptype = GroupOfNamesType

# How do I find staff staff = cn=staff,ou=groups,dc=example,dc=com

Category:Guider Category:Sparco