====== Installation procedure for new DAPNET node ====== ATTENTION: Due to serious problems of the current version of DAPNET-CORE we do not accept any new cores. A new version overcoming this issues is in progress. If you want to run your own core, please wait for the new version being released! ===== Introduction ===== This manual describes the necessary steps to install a new DAPNET Core node on a linux running machine. Please inform us about any mistakes or misunderstandable descriptions. Overview The Node program consists of two parts: * The DAPNET-Core as the main control programm for all DAPNET actions * The DAPNET-Web as the Web frontend ===== Preparations ===== We assume a fresh debian based linux system where you have root access. The user the DAPNET Core will run on is ''dapnet'' in this manual. Choose whatever fits to you system setup. Create this user. Google how to do this on your linux system. The dapnet Core does not need root rights to run. The following software packages are needed * git * maven * Java 1.8 You need to install java 1.8 following [[https://tecadmin.net/install-oracle-java-8-ubuntu-via-ppa/|this link]]. This link is for Debian or Ubuntu. For RaspberryPi use sudo apt-get install oracle-java8-jdk After having installed java, install the rest with sudo apt-get install git maven Verify your java version is minimum 1.8 with java -version If you have installed the default java 1.7 OpenJDK, remove it with sudo apt-get remove java-common ===== Installation DAPNET-Core ===== Create a new user called ''dapnet'' sudo adduser dapnet Make a directory /opt/dapnet sudo mkdir /opt/dapnet Make ''dapnet'' the owner of this directory sudo chown dapnet /opt/dapnet Change to user ''dapnet''. If you don't have a user ''dapnet'' on your system, make one. If you don't know how, ask google. sudo su dapnet Change to cd /opt/dapnet and download the newest version from github. git clone https://github.com/DecentralizedAmateurPagingNetwork/Core.git git clone https://github.com/DecentralizedAmateurPagingNetwork/Web.git Compile the Core: cd Core mvn clean package The compiled files are now in the directory ''/opt/dapnet/Core/target''. In order not to loose your config every time you recompile a new version make a directory named ''local'' mkdir /opt/dapnet/Core/local Generate three more dircetories mkdir /opt/dapnet/Core/local/config mkdir /opt/dapnet/Core/local/data mkdir /opt/dapnet/Core/local/logs Copy the example config files to /opt/dapnet/Core/local/config: cp /opt/dapnet/Core/example_config/* /opt/dapnet/Core/local/config Edit /opt/dapnet/Core/local/config/ClusterConfig.xml If the Core is behind NAT, activate the following section by removing the and enter your outbound HAMNET-IP. If you want the Core to bind to a specific address you can extend the TCP config {{:icons:warning.png |}}**Contact us or one of the existing Core sysops to have your node added and get the password**.{{ :icons:warning.png|}} We assume here the password is "geheim". So put the real one in the line: auth_value="geheim"/> At the bottom, put the callsign of the core in lowercase. The example here ist ''db0abc''. Enter the one that is registered in the DAPNET. Use lowercase letters. That's all for now. ==== Alternative 1 to run the Node ==== Change to cd /opt/dapnet/Core/local and start a ''screen'', so the program keeps running even if your SSH connection is closed. Install ''screen'' if not already installed. sudo apt-get install screen Run the ''screen'' screen You can leave the screen with CTRL+A D. New attachment to the screen with screen -r . Start the core: cd /opt/dapnet/Core/local java -Dlog4j.configurationFile=../local/config/LogSettings_REST.xml -jar ../target/dapnet-core.jar Replace the jar filename with the right one you just compiled. It may change in the development process. ==== Alternative 2 to run the Node ==== If you don't like the screen and better want a systemd service to start at boot time, have a look at [[https://github.com/DecentralizedAmateurPagingNetwork/Core/tree/master/util/systemd|https://github.com/DecentralizedAmateurPagingNetwork/Core/tree/master/util/systemd]] ==== Important information on the connection with other Cores ==== All cores have to be able to reach each other directly by HAMNET IPs (44.0.0.0/8). If you do not have native HAMNET access, consider the [[https://www.afu.rwth-aachen.de/projekte/funkruf-pager-pocsag/funkrufmaster-2-0-dapnet/manual-to-install-new-dapnet-core-node-english/8-static-content/191-hamnet-pptp-vpn-with-linux|PPTP manual]] and ask us for a static IP and user/password combination. ===== Installation of DAPNET-Web ===== The source code is already downloaded to /opt/dapnet/Web. Now install the apache2 webserver and the php module if not already present. apt-get install apache2 Edit /etc/apache2/sites-available/000-default.conf and change DocumentRoot dist Insert below this line: Options Indexes FollowSymLinks AllowOverride None Require all granted Restart the apache. sudo service apache2 restart Change to cd /opt/dapnet/Web and follow the instructions on [[https://github.com/DecentralizedAmateurPagingNetwork/Web|Github]]. Now the web interface is accessable on ''http://YOURURL'' . ==== Hint to run the REST-API on the same HTTP Port ==== Normally, the REST-API runs on port 8080. If you just have port 80 open for your website and don't want to add port 8080, you can use the Apache webserver as a proxy to process the API requests. Add to your apache config: ProxyPass "/api" "http://URLOFYOURCORE:8080 ProxyPassReverse "/api" "http://URLOFYOURCORE:8080" In the settings of the DAPNET-WEG, enter in ''/src/store/defaultUrls.json'' the API URL to "api": "http://YOURWEBSITEURL/api", Restart the apache and build the website again: sudo systemctl restart apache2 cd /opt/dapnet/Web/ npm run build ===== First Steps ===== Ask us for your personal login data and happy paging.