- NodeJs 16.x
- MariaDB 10 (or 10.6) or Mysql 8 Server
- after installation, initialize the mysql server with
sudo mysql_secure_installation- this also ensures the correct user authentication method, via password
- this project requires access to the root user from localhost, or a user with similar privileges of root, the password and user needs to be declared in the env.env file
- a
enterprisedatabase and all privileges on it - the server needs to be able to have indices of length up to 3000 bytes, to achieve this one can use the following options for the server:
- innodb_file_format = Barracuda
- innodb_default_row_format = dynamic
- innodb_large_prefix = ON
- mariadb >= 10.3 does not need these options
- after installation, initialize the mysql server with
Example Hardware requirements for the magnitude:
| Application | CPU-Cores (1Ghz) | RAM |
|---|---|---|
| Web-Server | 1 Core | ~100 MB |
| Crawler | 1-2 Cores | 100-200 MB |
The variables can be defined in a env.env file or via Environment Variables (takes precedence).
The file test.env can be taken as an template.
default < env.env < environment variable
port=80 # the server port, a valid number - web-server
NODE_ENV=test # test, development or production - both
dbHost=localhost # hostname or ip address for the sql database - both
dbUser= # database user name - both
dbPassword= # database user password - both
dbPort=3306 # database port - both
dbConLimit=50 # maximum of database connections - both
crawlerHost=localhost # hostname or ip adress for the host on which the crawler is running - web-server
crawlerPort=3000 # port on which the crawler listens - both
crawlerWSPort=3001 # port on which the crawler listens for Websocket - both
Requires a database.env file to be available in current working directory.
database.env has the same properties as test-database.env.
On Windows use the docker-compose -f Dockerfil_win up command.
On Linux, the current work directory is used as the fully setup code base. Any code changes are immediately available after starting (anew).
@vue/babel-preset-app is only listed as a devDependency because @vue/cli-plugin-babel, which it is originally a dependecy of, could not find the package in its own node_module folder.
npm install
cd packages/website/
npx vue-pwa-asset-generator -a \<favicon svg image path> # generate pwa icons
cp \<favicon svg image path> public/img/icons/favicon.svg # copy favicon.svg which is not generatednpm run start:servernpm run start:crawlernpm run build -wsnpm run testnpm run lint -ws