Skip to content

Commit

Permalink
add docker badges; move to markdown
Browse files Browse the repository at this point in the history
  • Loading branch information
nico4 committed Sep 25, 2017
1 parent 3c3f979 commit 5401e89
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 105 deletions.
13 changes: 9 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
FROM python:2.7-slim

ENV PROJ_DIR=/gioland

RUN runDeps="gcc make libldap2-dev libsasl2-dev libssl-dev" \
&& apt-get update -y \
&& apt-get install -y --no-install-recommends $runDeps \
&& rm -vrf /var/lib/apt/lists/*

COPY . /gioland
WORKDIR /gioland
&& rm -vrf /var/lib/apt/lists/* \
&& mkdir -p $PROJ_DIR \
&& mkdir -p $PROJ_DIR\instance

COPY requirements.txt $PROJ_DIR
WORKDIR $PROJ_DIR
RUN pip install -r requirements.txt

COPY . $PROJ_DIR

ENTRYPOINT ["./docker-entrypoint.sh"]
132 changes: 32 additions & 100 deletions README.rst → README.md
Original file line number Diff line number Diff line change
@@ -1,106 +1,40 @@
======================
GioLand upload service
======================

The GioLand upload service is a platform where service providers can
deliver large files containing GIS data. Deliveries are tagged with:
country, theme, projection, spatial resolution, extent. Each delivery
goes through a workflow of checks, resubmissions and enhancement. See
`this issue`_ for the initial requirements.

Website: https://gaur.eea.europa.eu/gioland/

Issue tracker: http://taskman.eionet.europa.eu/projects/gioland

Code repository: https://github.com/eea/gioland

.. _`this issue`: http://taskman.eionet.europa.eu/issues/2

.. image:: https://travis-ci.org/eea/gioland.svg?branch=master
:target: https://travis-ci.org/eea/gioland

.. image:: https://coveralls.io/repos/github/eea/gioland/badge.svg?branch=master
:target: https://coveralls.io/github/eea/gioland?branch=master

.. image:: https://dockerbuildbadges.quelltext.eu/status.svg?organization=eeacms&repository=gioland
:target: https://hub.docker.com/r/eeacms/gioland/builds


Installation (using docker)
===========================

1. Clone the source repository::

$ git clone https://github.com/eea/gioland.git

2. Change directory to project directory::

$ cd gioland/

3. Create a configuration file (copy and modify the example)::

$ cp .env.example .env

4. Create an Apache configuration file (copy and modify the example)::
[this issue](http://taskman.eionet.europa.eu/issues/2) for the initial requirements.

$ cp conf.d/virtual-host.conf.example conf.d/virtual-host.conf
[![Travis](https://travis-ci.org/eea/gioland.svg?branch=master)](https://travis-ci.org/eea/gioland)
[![Coverage](https://coveralls.io/repos/github/eea/gioland/badge.svg?branch=master)](https://coveralls.io/github/eea/gioland?branch=master)
[![Docker]( https://dockerbuildbadges.quelltext.eu/status.svg?organization=eeacms&repository=gioland)](https://hub.docker.com/r/eeacms/gioland//builds)

5. Create an instance directory to store user data::
### Prerequisites

$ mkdir instance
* Install [Docker](https://docs.docker.com/engine/installation/)
* Install [Docker Compose](https://docs.docker.com/compose/install/)

6. Run docker containers (as daemon)::
### Installing the application

$ docker-compose up -d
1. Get the source code:

$ git clone https://github.com/eea/gioland.git
$ cd gioland/

Installation (old style)
========================
2. Customize env file:

Prerequisites
~~~~~~~~~~~~~
For RHEL systems::
$ cp app.env.example app.env
$ vim app.env

$ yum install python-virtualenv python-devel git openldap-devel
3. Start application stack:

For debian systems::
$ docker-compose up -d
$ docker-compose logs

$ apt-get install python-dev python-virtualenv git libldap2-dev libsasl2-dev
### Configuration variables


Setup
~~~~~
1. Create a project directory and database directory::

$ mkdir /var/local/gioland-production
$ mkdir /var/local/gioland-production/instance
$ cd /var/local/gioland-production

2. Clone the source repository::

$ git clone https://github.com/eea/gioland.git

3. Create a virtualenv and install dependencies::

$ cd /var/local/gioland-production
$ virtualenv-2.7 ./venv
$ ./venv/bin/pip install -r gioland/requirements.txt

4. Create a configuration file at ``/var/local/gioland-production/gioland/.env``::

WAREHOUSE_PATH=/var/local/gioland-production/instance/warehouse
LOCK_FILE_PATH=/var/local/gioland-production/instance/db.lock
SECRET_KEY=some random string here

5. Start the application::

$ cd /var/local/gioland-production/gioland
$ source ../venv/bin/activate
$ honcho start


Configuration variables
~~~~~~~~~~~~~~~~~~~~~~~
The application expects configuration via environment variables:

``DEBUG``
Expand Down Expand Up @@ -137,12 +71,10 @@ The application expects configuration via environment variables:
``ldap://ldap3.eionet.europa.eu`` and
``uid={user_id},ou=Users,o=EIONET,l=Europe``.

### Development notes

Development notes
=================
#### Data model

Data model
~~~~~~~~~~
Each service provider delivery goes through the following stages:

* ``int`` (Service provider upload)
Expand Down Expand Up @@ -172,8 +104,8 @@ copied over from parcel to parcel:
* coverage


Database
~~~~~~~~
#### Database

The application stores data in a ZODB database in
``$WAREHOUSE_PATH/filestorage``. The ``warehouse.py`` module is
responsible for connecting to the database and contains the models.
Expand All @@ -185,33 +117,33 @@ processing, a tree of symlinks is maintained in
fields of each parcel.


Notifications
~~~~~~~~~~~~~
#### Notifications

Uploads and other workflow steps trigger notifications to relevant
people. They are sent via UNS_.

.. _UNS: http://uns.eionet.europa.eu/


Large files
~~~~~~~~~~~
#### Large files

Service providers upload very large files (in the order of 20GB). This
is done via HTTP, with the file split in 1MB chunks, and reassembled on
the server. The chunks are saved in a temporary folder in the parcel.


Contacts
========
### Contacts

The project owner is Alan Steel (alan.steel at eaa.europa.eu)

Other people involved in this project are:

* Alex Morega (alex.morega at eaudeweb.ro)
* Dragoș Catarahia (dragos.catarahia at eaudeweb.ro)
* Andreea Dima (andreea.dima at eaudeweb.ro)
* Diana Boiangiu (diana.boiangiu at eaudeweb.ro)


### Resources

Resources
=========
Minimum requirements: 256MB RAM; 1 CPU

The production server needs a lot of hard disk space because raster map
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@ services:
ports:
- '80:80'
volumes:
- ./conf.d/virtual-host.conf:/usr/local/apache2/conf/extra/vh-my-app.conf
- ./docker/virtual-host.conf:/usr/local/apache2/conf/extra/vh-my-app.conf
- ./docs:/gioland/docs

0 comments on commit 5401e89

Please sign in to comment.