sharee.bike-Wiki/Installation-guide.md
2022-01-27 18:35:08 +00:00

3.9 KiB

sharee.bike copri is a apache2 mod-perl postgresql based webapplication

On installation you have to be root. This guide describes the setup of one copri operator-instance, which you can manage your own private or public accessible bike-sharing system. Ideally, you will connect to our primary server to get a part of a wide network of bike-sharing opportunities by single-sign-on users via sharee.bike App.

You must be familiar with linux debian, apache webserver and postgres DBMS. The postgres DBMS have to be installed with de-DE.utf-8 localization, because date style default is done in german way.
On debian based Linux systems you have to install following packages

libapache2-mod-perl2 
libapache2-reload-perl 
perlmagick 
libdbd-pg-perl 
libcalendar-simple-perl 
libdate-calc-perl 
libdbd-csv-perl 
libspreadsheet-writeexcel-perl 
libtext-csv-xs-perl 
libjson-perl 
libemail-mime-createhtml-perl 
libemail-sender-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

Webserver apache2 needs some modules loaded

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

mkdir /exports && cd /exports
git clone ssh://gitlab/sharee.bike
mv sharee.bike gitlab
cd gitlab/copri4 && ./mkaccess
cd /var/www && ln -s ../../exports/gitlab/copri4
mkdir /var/log/copri4 && chown www-data /var/log/copri4

At first setup the base copri database. Configure postgres to get access by localhost

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

The installation has some configuration defaults and examples. You have to edit to fit your web-reachable DNS registered shareehost.example.tld. Operator-Instance hostnames are indicated by "shareedms-operator.example.tld" and "shareeapp-operator.example.tld". Web-Project hostname is indicated by "shareeweb-operator.example.tld".

cd /exports/gitlab/copri4
edit shareeapp-operator/apache/shareeapp-operator.conf
edit shareedms-operator/apache/shareedms-operator.conf
eidt shareeweb-project/apache/shareeweb-operator.conf

The global.cfg configuration is divided into sharp-cliped values. The <operator> block describes your operator-instance by operator-dbname <sharee_operator>. The <project> block describes your optional web-project by <shareeweb-project>. The <merchant_ids> block will indicate your block configuration on client request.

cd /exports/gitlab/copri4/shareeconf
cp examples/apikeys.cfg .
cp examples/mailx.cfg .
cp examples/global.cfg  .

After configure your sharee apache confs, DNS, got SSLCertificate and set also the values in global.cfg you have to softlink the sharee apache conf with

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

You should reach three webservers

  1. For the bike sharing management
https://shareedms-operator.example.tld
  1. 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
https://shareeapp-operator.example.tld
  1. Is the optional webhost for iframe website integration. It implements station-map, user registration formular and contact menue.
https://shareeweb-project.example.tld 

Best regards, Rainer Gümpelein (TeilRad GmbH) https://sharee.bike