- Node.js version 16, and npm
- Contentful CMS account
- Redis cache (included as Docker Compose service for development)
Configuration options can be set in a .env file (see .env.example) or via ENV variables on your machine.
Some core features such as authentication and editorial content require the relevant configuration options to be specified. In particular, pay attention to the Europeana APIs, Contentful, Redis and oAuth sections in the example .env file.
# start services
docker-compose up
# install package dependencies
npm ci
# serve with hot reload at localhost:3000
npm run dev
# build for production and launch server
npm run build
npm start
For detailed explanation on how things work, refer to Nuxt.js docs.
To build the Docker image, run:
docker build -t europeana/portal.js -f packages/portal/Dockerfile .
To run everything with Docker Compose, including the app:
docker compose -f docker-compose.app.yml up
The app will be exposed on the host on port 8080.
To run end-to-end tests, you will need Docker Engine and Compose installed and the docker service running.
Run the full test suite with: npm test
npm run test:unit
runs all unit tests.
To run unit tests from a single file, append the full path, e.g.
npm run test:unit packages/portal/tests/unit/components/PageHeader.spec.js
To run unit tests from just one of the packages registered as a Jest project,
run e.g.
npm run test:unit -- --selectProjects portal
First, create an env file for the app container, copying tests/e2e/docker/app/.env.example to tests/e2e/docker/app/.env and populating with actual API keys.
npm run test:e2e
runs all end-to-end feature tests.
To run a single end-to-end test file, append the full path, e.g.
npm run test:e2e tests/e2e/features/common/header.feature
If you have modified app files and want to re-run e2e tests, you will need to first
rebuild the generated Docker images in the test stack, with npm run test:stack:rebuild
Ensure that you have set a Percy token as PERCY_TOKEN
in
tests/e2e/docker/nightwatch-visual/.env, then run npm run test:visual
.
Versioning of the monorepo packages is managed using Lerna.
npx lerna version
Licensed under the EUPL v1.2.
For full details, see LICENSE.md.