Docker

OLDP has a containerized version powered by Docker.

Getting started

The OLDP web app depends services like search, db, cache. To run all service in orchestrated fashion use docker-compose as following:

# Build & start services
docker-compose up

# In beginning the database will be empty, thus, we need to create all tables
docker exec -it oldp_app_1 python manage.py migrate

# Import some demo data (from fixtures)
docker exec -it oldp_app_1 python manage.py loaddata locations/

# Create superuser (admin, pw: admin)
docker exec -it oldp_app_1 python manage.py shell -c \
    "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'admin')"

Sometimes Elasticsearch has problems writing to its data directory. To solve this, set access rights:

# Quick & Dirty
chmod 777 docker/data/es

# Correct user group
chown docker:docker docker/data/es

Additional notes

# Build image from repo
docker build -t oldp .

# Tag image as latest
docker tag oldp:latest
docker tag oldp openlegaldata/oldp:latest

# Push to hub
docker push openlegaldata/oldp:latest

# Override environment variables
docker run -e DATABASE_URL="sqlite:///db/db.sqlite" -it oldp python manage.py runserver