Web umenia is an open platform to explore digitized art collections from public galleries and museums.
Web umenia is developed by lab.SNG: the digital R&D lab of the Slovak National Gallery. We are working with public art organisations to make their art accessible and explorable online so curious people around the world can learn more about works of art and the context they've been created in.
Web umenia offers a user-friendly way to search and explore art from collections of multiple galleries and museums.
Digital reproductions of public domain artworks from several collections are available for download in high resolution for both personal and commercial use
Art organisation with digitized artworks organised in a Collection Management System can easily publish their art via CSV imports or OAI-PMH harvests. If you would like to know more about using Web umenia in your organisation, contact us via [email protected]
Developers interested to build applications on top of Web umenia can use our API. See our wiki on GitHub for more info.
We greatly encourage others to get involved! See our contributing guidelines for more info about different ways to contribute to Web umenia.
We are committed to providing a welcoming and inspiring community for all and expect others who participate in the project to honour our code of conduct.
This software is built with the Laravel5 framework.
It requires
- PHP 5.5.9+
- MySQL
- Elasticsearch
Here are the steps for installation on a local machine.
- Clone this repository.
[email protected]:SlovakNationalGallery/web-umenia-2.git webumenia/ cd webumenia/
- Setup database in your favourite database editor. set:
- db name
- username
- password
- Configure access to your database in
/app/config/database.php
- Set
.env
file. you can copy values from.env.example
- Run
composer install
to fulfil required libraries. - Make sure elasticsearch is running. you can set the index name in
app/config/app.php
- Run migrations to setup the database with
php artisan migrate --seed
- Start your queue listener and setup the Laravel scheduler (optional)
This requires docker-compose these steps will set up a linked system of 4 containers: web service (nginx webserver) php service (contains our application code) database container -- CAVEAT: don't use 'root' user for db, .env.example has sample username / password when you first build the stack the mysql dockerfile builds a new database and creates a specific user with which web_umenia accesses the db, which is as it should be. You may still access the db as 'root' yourself through elasticsearch container that will communicate internally with one another
- Clone this repository.
[email protected]:SlovakNationalGallery/web-umenia-2.git webumenia/ cd webumenia/
- create a .env file (you can use the included env.example as a base)
- build the whole stack (mysql, elasticsearch, laravel php app + nginx server)
with docker-compose:
the first time you do this it will take a while, a lot of different components need to be fetched from remote servers. Be patient, subsequent builds won't take nearly as long. 3.5 - choose a database - you can set $DB_DATABASE in the environment and switch between different variants by editing that variable.
docker-compose build
- start the app
or
docker-compose up
to run it in the background. (In this case you can watch the output of a component like this:docker-compose up -d
docker-compose logs -f php
) - install dependencies
docker-compose exec php composer install --no-plugins --no-scripts --no-interaction
- run migrations
docker-compose exec php php artisan migrate --seed
- setup elasticsearch
docker-compose exec php php artisan es:setup
- visit http://localhost:8080 in your browser to have a look
to stop the dockerized application: docker-compose down
Create .env.testing
file (you can use the included .env.testing.example
as a base) and run:
The local way:
php vendor/bin/phpunit
The Docker way:
docker-compose -f docker-compose.yml -f docker-compose.test.yml run php
You can now fill artworks by adding them manually or importing using the "spice harvester" (harvests using OAI-PMH protocol) using php artisan oai-pmh:harvest
and choosing to harvest 1 [item] Europeana SNG
. Or login to admin at http://yourlocalhost/admin
using default credentials admin
/admin
and go to Import
-> Spice Harvester
-> Spustiť
.
This application uses IIPImage server for zoomable (and downloadable) images.
IIPImage must be seen locally, what can be achieved using a ProxyForwarding.
To enable image server for default oai set (Europeana), put this lines of code into your virtualhost setup:
ProxyPass /fcgi-bin/iipsrv.fcgi http://imi.sng.cust.eea.sk/publicIS/fcgi-bin/iipsrv.fcgi
ProxyPassReverse /fcgi-bin/iipsrv.fcgi http://imi.sng.cust.eea.sk/publicIS/fcgi-bin/iipsrv.fcgi
- info about the files and plugins can be found in the separated README
- command to generate ES2 compatible index:
php artisan es:setup
- command to reindex data to the index
php artisan es:reindex
We use LESS to compile styles imported into a main file into a single CSS file:
lessc public/css/less/style.less public/css/style.css --clean-css
For a better developer experience, use less-watch-compiler to watch a directory for changes and automatically compile LESS into CSS. Thanks to the config file less-watch-compiler.config.json
all you have to run (from root dir) is:
less-watch-compiler
This project is maintained by lab.SNG. If you have any questions please don't hesitate to ask them by creating an issue or email us at [email protected].
Source code in this repository is licensed under the MIT license. Please see the License File for more information.