sharee.bike-Wiki/2.-Installation-guide.md

161 lines
5.5 KiB
Markdown
Raw Normal View History

2022-12-08 15:54:43 +01:00
**_sharee.bike copri is a apache2 mod-perl postgresql based webapplication_**
2022-01-25 20:37:01 +01:00
2022-12-14 11:54:07 +01:00
You must be familiar with linux debian, apache webserver, postgres DBMS and in web programming.
2022-01-27 19:17:55 +01:00
2022-12-08 15:54:43 +01:00
On installation you have to be root. The postgres DBMS have to be installed with de-DE.utf-8 localization, because date style default is done in german way.\
2022-01-25 20:37:01 +01:00
On debian based Linux systems you have to install following packages
2022-12-08 15:54:43 +01:00
2022-01-25 20:37:01 +01:00
```
2022-12-08 15:54:43 +01:00
apache2
postgresql
2022-01-25 20:39:09 +01:00
libapache2-mod-perl2
libapache2-reload-perl
libdbd-pg-perl
libcalendar-simple-perl
libdate-calc-perl
libdbd-csv-perl
libspreadsheet-writeexcel-perl
libtext-csv-xs-perl
libjson-perl
libxrender1
liburi-encode-perl
libxml-simple-perl
libio-all-perl
libdatetime-format-pg-perl
libcgi-pm-perl
libfile-copy-recursive-perl
libscalar-util-numeric-perl
libauthen-pam-perl
libnet-smtps-perl
libconfig-general-perl
libdigest-sha-perl
2023-03-20 08:52:33 +01:00
wkhtmltopdf
2022-01-25 20:47:13 +01:00
```
2022-01-27 19:17:55 +01:00
Webserver apache2 needs some modules loaded
2022-12-08 15:54:43 +01:00
2022-01-27 19:17:55 +01:00
```
a2enmod perl
a2enmod cgi
a2enmod rewrite
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod headers
a2enmod ssl
a2enmod proxy
a2enmod proxy_http
service apache2 restart
```
The copri operator-instance installation is done by
2022-12-08 15:54:43 +01:00
2022-01-25 20:47:13 +01:00
```
2022-01-27 19:17:55 +01:00
mkdir /exports && cd /exports
2022-01-27 20:43:26 +01:00
git clone https://gitlab.com/t6353/sharee.bike.git
2022-01-27 19:17:55 +01:00
mv sharee.bike gitlab
cd /var/www && ln -s ../../exports/gitlab/copri4
mkdir /var/log/copri4 && chown www-data /var/log/copri4
2022-12-08 15:54:43 +01:00
```
2022-01-25 20:47:13 +01:00
2022-12-13 09:15:25 +01:00
Mainly for the frontend user-interface we use some external open-source icons and javascript - css libraries that can be included via the respective CDN or by download via the "copri4external" path. In the configuration file "global.cfg" there are some variables named bootstrap and jquery whose values have to be adjusted according to the library versions.
```
mkdir /var/www/copri4external && cd /var/www/copri4external
```
2022-12-12 15:42:35 +01:00
In this directory we will keep some external ressources. Some have to be unzipped.
1. Download the latest stable bootstrap version for example from https://getbootstrap.com.
2022-12-12 15:42:35 +01:00
2. Download bootstrap-icons from https://icons.getbootstrap.com.
3. Download the latest stable jquery library from https://jquery.com.
4. Download the latest stable jquery-ui library from https://jqueryui.com.
The library path and filenames must be configured in global.cfg, more about this below.
```
cd /var/www/copri4/main
ln -s /var/www/copri4external external
chgrp -R www-data external/*
```
2023-03-20 08:52:33 +01:00
For the creation of PDF files we use the program "wkhtmltopdf".
```
cd /var/www/copri4/main/src
ln -s /usr/bin/wkhtmltopdf wkhtmltopdf-amd64
```
2022-12-13 09:19:25 +01:00
Setup the base copri database. You have to configure postgres to get just access by localhost. Set your postgres access rights.
2022-12-08 15:54:43 +01:00
2022-01-27 19:17:55 +01:00
```
su - postgres
createdb sharee_operator
exit
cd /exports/gitlab/copri4/shareeconf
gunzip -c examples/sharee_operator.sql.gz | psql -U your_psql_user sharee_operator
2022-12-08 15:54:43 +01:00
```
The installation has some configuration defaults and examples. You have to edit to fit your web-reachable DNS registered sharee servers.
2022-01-25 20:47:13 +01:00
2022-12-08 16:33:50 +01:00
- Operator-Instance DMS hostname is identified by "shareedms-operator.example.tld" and the helper hostname "shareedms-operator1.example.tld"
- Operator-Instance App API hostname is identified by "shareeapp-operator.example.tld" and the helper hostname "shareeapp-operator1.example.tld".
- Web-Project hostname is identified by "shareeweb-operator.example.tld" and the helper hostname "shareeweb-project1.example.tld".
2022-12-08 15:54:43 +01:00
2022-12-13 09:54:03 +01:00
There is until now a restriction in the naming of the server hostnames, because to differ the kind of copri application and take the right configuration. Please keep the first part hostname, so "shareedms-" and "shareeapp-" and "shareeweb-" have to be kept.
2022-01-27 19:17:55 +01:00
```
cd /exports/gitlab/copri4
edit shareeapp-operator/apache/shareeapp-operator.conf
edit shareedms-operator/apache/shareedms-operator.conf
2022-12-08 15:54:43 +01:00
edit shareeweb-project/apache/shareeweb-operator.conf
2022-01-25 20:47:13 +01:00
```
2022-12-08 15:54:43 +01:00
The global.cfg configuration is divided into sharp-cliped values.
2022-01-29 13:45:50 +01:00
- The `<operator>` block describes your operator-instance by operator-dbname `<sharee_operator>`.
- The `<project>` block describes your optional web-project by `<shareeweb-project>`.
2022-12-08 15:54:43 +01:00
- The `<merchant_ids>` block will indicate your block configuration on client request.
2022-01-27 19:17:55 +01:00
```
cd /exports/gitlab/copri4/shareeconf
2022-12-08 15:54:43 +01:00
rm *.cfg
2022-01-27 19:17:55 +01:00
cp examples/apikeys.cfg .
cp examples/mailx.cfg .
2022-12-08 15:54:43 +01:00
cp examples/global.cfg .
2022-01-27 19:17:55 +01:00
```
After setup all ressources make and check some file access rights by
```
cd /var/www/copri4 && ./mkaccess.sh
```
2022-01-27 19:17:55 +01:00
2022-01-29 13:45:50 +01:00
After configure your sharee apache confs, DNS, got SSLCertificate and set also the values in global.cfg. At last you have to softlink the sharee apache conf with:
2022-12-08 15:54:43 +01:00
2022-01-27 19:17:55 +01:00
```
cd /etc/apache2/sites-enabled
ln -s /var/www/copri4/shareeapp-operator/apache/shareeapp-operator.conf
ln -s /var/www/copri4/shareedms-operator/apache/shareedms-operator.conf
ln -s /var/www/copri4/shareeweb-project/apache/shareeweb-operator.conf
service apache2 restart
```
2022-01-27 19:35:08 +01:00
You should reach three webservers
2022-12-08 15:54:43 +01:00
2022-01-27 19:35:08 +01:00
1. For the bike sharing management
2022-12-08 15:54:43 +01:00
2022-01-27 19:35:08 +01:00
```
https://shareedms-operator.example.tld
```
2022-12-08 15:54:43 +01:00
2022-01-27 19:35:08 +01:00
2. To get access by the shareetool web-App and also by the sharee.bike bike booking App or your self-developed App. See also the API documentation
2022-12-08 15:54:43 +01:00
2022-01-27 19:35:08 +01:00
```
https://shareeapp-operator.example.tld
```
2022-12-08 15:54:43 +01:00
2022-01-27 19:35:08 +01:00
3. Is the optional webhost for iframe website integration. It implements station-map, user registration formular and contact menue.
2022-12-08 15:54:43 +01:00
```
2022-01-27 19:35:08 +01:00
https://shareeweb-project.example.tld
```
2022-12-13 09:19:25 +01:00
Pre-configured operator admin account for first simple start. Please change login and password after setup!
```
2022-12-12 15:46:11 +01:00
Login: admin@example.tld
PW: Please_Change4
2022-12-13 09:19:25 +01:00
```
2022-12-08 15:54:43 +01:00
Best regards, Rainer Gümpelein (TeilRad GmbH) https://sharee.bike