Author: inblockio / 23. August 2021
Installation for Linux (Tested in Ubuntu 20.04) of your Personal Knowledge Container (PKC)
This should work for other environments like Windows and Mac if the requirements are met.
Please read the this entire page before installing.
Hardware requirements:
- x86_64 architecture with
- 1 CPU 2.2 GHZ
- 1 GB RAM
- 8 GB SSD Harddrive (or more to store large media files)
Environment requirements:
- Git Git install
- Docker Docker Getting Started
- for Docker install for macOS
- for Docker install for Ubuntu
- for Docker install for Windows, note: be sure you have WSL 2 installed first.
- Available ports at
8089
for Eauth and9352
for MediaWiki. (MEDIAWIKI_PORT
andEAUTH_PORT
may be customized in the.env
file) - Browser based Ethereum key manager (e.g.MetaMask)
git clone https://github.com/inblockio/aqua-PKC
cd aqua-PKC
./pkc setup --wallet-address <your ETH wallet address>
If you want to install the PKC so that it is publicly accessible from the web:
- Modify the A record for your domain to register the subdomains, e.g.
pkc.yourdomain.com
andeauth.yourdomain.com
, to the public IP address of your server - Run
./pkc setup --web-public --wallet-address <your wallet address> --server <mediawiki.domain> --eauth-server <eauth.domain> --le-email <your@email.com>
Other flags:
./pkc setup --private
is setting the wiki into private mode by default. Except the main page all pages will not be visible to non-registered users../pkc setup --empty-wiki
will not pre-populate the wiki from https://github.com/inblockio/PKC-Content which includes default pages for how to use the PKC and other helpful resources../pkc nuke
is a command which deletes the mountpoint (the persistent data) and deletes the current instances of the docker containers.
Test if deployment was successful:
Go to localhost:9352 and see if you can open your 'Personal Knowledge Container'
If the special pages work, congratulations! You successfully deployed PKC!
- You have the choice to use the command line verification tool or the online-chrome extension (recommended) to verify your page.
- Visit https://github.com/inblockio/data-accounting-external-verifier for the command line tool.
- Visit https://github.com/inblockio/VerifyPage for the chrome extension.
Keep in mind that this software is in alpha-release stage. Please report bugs and issues back to us.
The following repositories are automatically installed by the pkc
CLI during setup.
- MediaWiki extension https://github.com/inblockio/DataAccounting This contains all scripts and information for the 'Verified Page History' implementation. languages: PHP, JavaScript, Shell
- Dockerized PKC https://github.com/inblockio/aqua-PKC For running the PKC MediaWiki including the DataAccounting extension via Docker Compose. languages: Shell, PHP, JavaScript (and Docker of course)
- Content for population of a fresh installed pkc https://github.com/inblockio/PKC-Content This contains all the content which is pulled into the PKC through the create of an initial set of pages.
- Smart Contract for Witnessing / Timestamping https://github.com/inblockio/DataSymmetry This Smart Contract is part of the infrastructure required to interact with the Ethereum network for time-stamping and 'proof of existence' of a set of verified page fields.
- Backup-Script for PKC https://github.com/rht/MediaWiki_Backup.git This repository includes all backup and restore logic for the dockerized-mediawiki
- To install the OAuth2 Client in MW https://github.com/rht/MW-OAuth2Client This is a modified fork which does no allow new user creation.
These repositories need to be manually set up and installed. For more details visit each repository.
- CLI page verifier https://github.com/inblockio/data-accounting-external-verifier A CLI JavaScript client for verifying DataAccounting pages. languages: JavaScript
- Chrome extension https://github.com/inblockio/VerifyPage which wraps the CLI page verifier. This is used to remotely interface and verify with servers which integrate the verification protocol. languages: TypeScript, HTML
- Authentication server for Ethereum wallets via OAUTH2 pelith/node-eauth-server
- Custom build MediaWiki image based on the standard MediaWiki docker image fantasticofox/docker-aqua-mediawiki
- A MariaDB database container as a database endpoint for the above services xlp0/mariadb
- If using "Crypto Wallets" feature of the Brave browser, MetaMask login will not function properly. To fix, disable "Crypto Wallets" extension in the Brave browser.
- Background: We need the content of the "mediawiki-extensions-Aqua" repository to deploy MediaWiki with all functions. To ensure this, a Docker image from this repository is used, which already includes the files. To enable development and have these changes applied live directly, we need to override the DataAccounting folder in the container with a volume. This works as follows:
-
Clone mediawiki-extensions-Aqua
-
Adjust docker-compose-local.yml / docker-compose-web.yml:
- Add a new volume to the "mediawiki" container: <path on the host to the mediawiki-extensions-Aqua repo (e.g., ./DataAccounting)>:/var/www/html/extensions/DataAccounting