This is the source code for https://joinup.ec.europa.eu/
Joinup is a collaborative platform created by the European Commission and funded by the European Union via the Interoperability Solutions for European Public Administrations (ISA) Programme.
It offers several services that aim to help e-Government professionals share their experience with each other. We also hope to support them to find, choose, re-use, develop and implement interoperability solutions.
The Joinup platform is developed as a Drupal 8 distribution, and therefore tries to follow the 'drupal-way' as much as possible.
You are free to fork this project to host your own collaborative platform. Joinup is licensed under the EUPL, which is compatible with the GPL.
See our contributors guide.
There are two ways to run Joinup. With docker
and docker-compose
and building a local installation.
To start with docker, please, check the separated README file.
To run Joinup locally, below is a list of requirements and instructions.
- A regular LAMP stack running PHP 7.1.0 or higher
- Virtuoso 7 (Triplestore database)
- SASS compiler
- Apache Solr
We use Drupal composer as a template for the project. For the most up-to-date information on how to use Composer, build the project using Phing, or on how to run the Behat test, please refer directly to the documention of drupal-composer.
-
Clone the repository.
$ git clone https://github.com/ec-europa/joinup-dev.git
-
Use composer to install the dependencies.
$ cd joinup-dev $ composer install
-
Install Solr. If you already have Solr installed you can configure it manually by following the installation instructions from the Search API Solr module. Or you can execute the following command to download and configure a local instance of Solr. It will be installed in the folder
./vendor/apache/solr
.$ ./vendor/bin/phing setup-apache-solr
-
Install Virtuoso. For basic instructions, see setting up Virtuoso. Due to a bug in Virtuoso 6 it is recommended to use Virtuoso 7. During installation some RDF based taxonomies will be imported from the
resources/fixtures
folder. Make sure Virtuoso can read from this folder by adding it to theDirsAllowed
setting in yourvirtuoso.ini
. For example:DirsAllowed = /var/www/joinup/resources/fixtures, /usr/share/virtuoso-opensource-7/vad
-
Install the official SASS compiler. This depends on Ruby being installed on your system.
$ gem install sass
-
Install Selenium. The simplest way of doing this is using Docker to install and run it with a single command. This will download all necessary files and start the browser in the background in headless mode:
$ docker run -d -p 4444:4444 --network=host selenium/standalone-chrome
-
Point the document root of your webserver to the 'web/' directory.
Create a new file in the root of the project named `build.properties.local using your favourite text editor:
$ vim build.properties.local
This file will contain configuration which is unique to your development machine. This is mainly useful for specifying your database credentials and the username and password of the Drupal admin user so they can be used during the installation.
Because these settings are personal they should not be shared with the rest of the team. Make sure you never commit this file!
All options you can use can be found in the build.properties.dist
file. Just
copy the lines you want to override and change their values. Do not copy the
entire build.properties.dist
file, since this would override all options.
Example build.properties.local
:
# The location of the Composer binary.
composer.bin = /usr/bin/composer
# The location of the Virtuoso console (Debian / Ubuntu).
isql.bin = /usr/bin/virtuoso-isql
# The location of the Virtuoso console (Arch Linux).
isql.bin = /usr/bin/virtuoso-isql
# The location of the Virtuoso console (Redhat / Fedora / OSX with Homebrew).
isql.bin = /usr/local/bin/isql
# SQL database settings.
drupal.db.name = my_database
drupal.db.user = root
drupal.db.password = hunter2
# SPARQL database settings.
sparql.dsn = localhost
sparql.user = my_username
sparql.password = qwerty123
# Admin user.
drupal.admin.username = admin
drupal.admin.password = admin
# The base URL to use in tests.
drupal.base_url = http://joinup.local
# Verbosity of Drush commands. Set to 'yes' for verbose output.
drush.verbose = yes
Execute the Phing target build-dev
to build a
development instance, then install the site with install-dev
:
$ ./vendor/bin/phing build-dev
$ ./vendor/bin/phing install-dev
Run the Behat test suite to validate your installation.
$ cd tests
$ ./behat
During development you can enable Behat test screen-shots by uncomment this line in tests/features/bootstrap/FeatureContext.php
:
// use \Drupal\joinup\Traits\ScreenShotTrait;
and use the pretty
formatter instead of progress
, in tests/behat.yml
:
formatters:
pretty: ~
Also run the PHPUnit tests, from the web root.
$ cd web
$ ../vendor/bin/phpunit
See the readme in the theme folder.
- In Rdf draft module there is information on handling draft in CRUD operations for rdf entities.
- In Joinup notification module there is information on how to handle notifications in Joinup.
- In Joinup core module there is information on how to handle and create workflows.