New user interface for PhiloBiblon.
Main features:
- User friendly interface to query Wikibase PhiloBiblon items via SPARQL.
- Show Wikibase PhiloBiblon items via Wikibase API.
- User friendly interface to edit Wikibase PhiloBiblon items.
- OAuth integration with Wikibase.
- Show Wikibase pages directly as web pages.
- Deployable via docker-compose.
PhiloBiblon UI has two main modules:
- frontend: A VUE application (including nuxt) using client side rendering.
- backend: A Java application (Spring Boot) with two main purposes:
- Authentication with Wikibase via OAuth 1.0.
- Proxy to wikibase-edit library in frontend in order to edit items in the Wikibase.
Steps to build the modules:
- Set
.env
file which defines the environment variables depending on the platform where we are installing (currently,.env.local
for local development;.env.pbuidev
for sandbox).
ln -s .env.pbuidev .env
- Build backend container.
cd backend
mvn clean install
- Build frontend container.
docker-compose --env-file .env build
- First time only, get
Let's Encrypt
ssl certificates to enable thehttps
protocol.
init-letsencrypt.sh
The last step already starts all modules for PhiloBiblon UI.
Start the PhiloBiblon UI:
docker-compose --env-file .env up -d
Stop the PhiloBiblon UI:
docker-compose --env-file .env stop
The configuration is centralized in the env file
, where we can find all the environment variables:
- frontend
- FRONTEND_DOMAIN: Public DNS domain.
- FRONTEND_HTTP_PORT: Public port for frontend.
- FRONTEND_HTTPS_PORT: Public port for backend.
- LETSENCRYPT_USER: Let's Encrypt user mail.
- API_BASE_URL: URL for public backend API.
- backend
- WIKIBASE_BASE_URL: Wikibase base url (i.e, without any request URI)
- WIKIBASE_API_URL: Wikibase API url.
- WIKIBASE_INDEX_URL: Wikibase index url.
- WIKIBASE_NICE_URL_BASE: Wikibase nice url (used for OAuth communication)
- SPARQL_BASE_URL: SPARQL base url (i.e, without any request URI)
- SPARQL_ENDPOINT: SPARQL endpoint url.
- SPARQL_QUERY_PREFIX: SPARQL prefix to use in queries.
- OAUTH_CONSUMER_KEY: OAuth consumer key generated in Wikibase (similar that we did for QS).
- OAUTH_CONSUMER_SECRET: OAuth consumer secret generated in Wikibase.
- OAUTH_CALLBACK_URL: OAuth callback url.
- ALLOWED_ORIGINS: Allowed origins to access the backend module (for public instances use directly *).
backend
variables are exposed to the frontend
via the backend endpoint: ${API_BASE_URL}/api/config
.