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.
Running your own instance of Joinup
There are two ways to run Joinup. With
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
Dependency management and builds
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/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/fixturesfolder. Make sure Virtuoso can read from this folder by adding it to the
DirsAllowedsetting in your
virtuoso.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 local build properties file
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
build.properties.dist file, since this would override all options.
# 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
Build the project
Execute the Phing target
build-dev to build a
development instance, then install the site with
$ ./vendor/bin/phing build-dev $ ./vendor/bin/phing install-dev
Run the tests
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
// use \Drupal\joinup\Traits\ScreenShotTrait;
and use the
pretty formatter instead of
formatters: pretty: ~
Also run the PHPUnit tests, from the web root.
$ cd web $ ../vendor/bin/phpunit
See the readme in the theme folder.