This is the repository for the Indicia Warehouse, the server-side component of Indicia, the online wildlife recording toolkit. Indicia accelerates development of wildlife recording websites and mobile applications. Documentation is available at https://indicia-docs.readthedocs.io/en/latest/index.html.
Details of the installation procedure are at http://indicia-docs.readthedocs.org/en/latest/administrating/warehouse/warehouse-installation.html.
The latest stable download of the warehouse code is available at https://github.com/Indicia-Team/warehouse/releases/latest
Details of the upgrade procedure are at http://indicia-docs.readthedocs.org/en/latest/administrating/warehouse/warehouse-upgrading.html.
For those working in Linux, there is a set up script which will install and configure a 'complete' (work in progress) Indicia infrastructure using Docker. The code is in a shared volume so that you can see the effect of changes immediately and xdebug is set up so you can set breakpoints and single step through code.
Naturally you'll need Docker installed.
Currently, a postgres client is needed on the host for the script to complete the set
up of the indicia schema. E.g. on Ubuntu you can
sudo apt install postgresql-client
.
If you clone this repo, cd docker
and execute ./compose.sh
it will start
8 docker containers offering these services.
- A postgres database with postgis installed.
- pgAdmin for administering the database.
- A mock mail server.
- A webserver running the warehouse code.
- GeoServer for sharing spatial data in OGC standard format.
- Elasticsearch for storing an index of warehouse data.
- Kohana for exploring and managing Elasticsearch
- Logstash for populating Elasticsearch with warehouse data.
On first run, it offers to initialise the indicia database schema.
If you choose this option you will later login in as user
admin
having passwordpassword
.
To reset your docker system to an entirely clean state, execute ./reset.sh
from the docker
folder.
If you are going to immediately restart docker then delete cookies from
your browser too.
Once running you can browse the warehouse at http://localhost:8080. You can examine the database with pgAdmin at http://localhost:8070. Any mail sent by the warehouse can be viewed at http://localhost:8025. GeoServer can be configured at http://localhost:8090/geoserver. The Elasticsearch API is accessible at https://localhost:9200. Kohana is accessed by browsing https://localhost:5601.
To log in , the default credentials are
- Email: [email protected]
- Password: password
To connect pgAdmin to the database, add a new server and configure the connection with
- Host name: The docker container name e.g. indicia-postgres-1
- Port: 5432
- Username: postgres
- Password: password
To list the container names and ports you can execute the command
docker container ls --format "table {{.Names}}\t{{.Ports}}"
To log in, the default credentials are:
- Username: admin
- Password: geoserver
Note that security is enabled so use https. To log in the default credentials are
- Username: elastic
- Password: password
There is a separate Docker configuration for unit testing which can be
run up by cd docker
then ./phpunit.sh
. This replicates the unit
testing performed when you push commits to the repository, enabling you
to create and debug tests locally. It uses its own volume for the database
so won't overwrite any setup you have in your development system. You do have to
stop your development containers before running unit testing though, as it uses
the same ports and modifies configuration. Config files that are modified by
testing are backed up and restored, provided the script runs to completion.