From 5eee68077e9d2914ee45176fed9d96039f91e0ec Mon Sep 17 00:00:00 2001 From: Disassembler Date: Mon, 4 Dec 2017 21:08:04 +0100 Subject: [PATCH] Introduce Sigmah installation script, closes #144 --- 00-install.sh | 1 + basic/srv/portal/img/Sigmah.png | Bin 0 -> 32796 bytes basic/srv/portal/index.html | 9 +++ sigmah.sh | 59 ++++++++++++++++++ sigmah/etc/nginx/apps-available/sigmah | 11 ++++ sigmah/tmp/sigmah-createdb.sql | 6 ++ .../WEB-INF/classes/META-INF/persistence.xml | 39 ++++++++++++ .../sigmah/WEB-INF/classes/sigmah.properties | 40 ++++++++++++ 8 files changed, 165 insertions(+) create mode 100644 basic/srv/portal/img/Sigmah.png create mode 100755 sigmah.sh create mode 100644 sigmah/etc/nginx/apps-available/sigmah create mode 100644 sigmah/tmp/sigmah-createdb.sql create mode 100644 sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml create mode 100644 sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties diff --git a/00-install.sh b/00-install.sh index 3551c6a..63f5e7c 100755 --- a/00-install.sh +++ b/00-install.sh @@ -18,6 +18,7 @@ ${SOURCE_DIR}/pandora.sh ${SOURCE_DIR}/sahana.sh ${SOURCE_DIR}/sambro.sh ${SOURCE_DIR}/seeddms.sh +${SOURCE_DIR}/sigmah.sh ${SOURCE_DIR}/ushahidi.sh # Perform cleanup only if DEBUG environment variable is not set diff --git a/basic/srv/portal/img/Sigmah.png b/basic/srv/portal/img/Sigmah.png new file mode 100644 index 0000000000000000000000000000000000000000..8b07dbe6f20183e7ab45a87a44f08292ac6ee005 GIT binary patch literal 32796 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 +
+

SigmahSigmah

+

Rozpočtování získávání finančních prostředků.

+
    +
  • Login:
  • +
  • Heslo:
  • +
+
+

diaspora*diaspora*

Autonomní sociání síť s možností propojení do cizích sociálních sítí.

diff --git a/sigmah.sh b/sigmah.sh new file mode 100755 index 0000000..4a972ce --- /dev/null +++ b/sigmah.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +SOURCE_DIR=$(realpath $(dirname "${0}"))/sigmah + +# Install Tomcat +apt-get -y --no-install-recommends install openjdk-8-jre-headless python-bcrypt tomcat8 + +# Download Sigmah +wget https://github.com/sigmah-dev/sigmah/releases/download/v2.0.2/sigmah-2.0.2.war -O /tmp/sigmah.war +unzip /tmp/sigmah.war -d /var/lib/tomcat8/webapps/sigmah +rm -f /tmp/sigmah.war + +# Create database +export SIGMAH_PWD=$(head -c 18 /dev/urandom | base64) +envsubst <${SOURCE_DIR}/tmp/sigmah-createdb.sql >/tmp/sigmah-createdb.sql +sudo -u postgres psql -f /tmp/sigmah-createdb.sql +rm -f /tmp/sigmah-createdb.sql + +# Configure Sigmah +mkdir -p /srv/sigmah/{files,archives} +chown -R tomcat8:tomcat8 /srv/sigmah +envsubst <${SOURCE_DIR}/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml >/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml +cp ${SOURCE_DIR}/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties /var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties +cp /var/lib/tomcat8/webapps/sigmah/sigmah/images/header/org-default-logo.png /srv/sigmah/files/logo.png + +# Populate database +wget https://github.com/sigmah-dev/sigmah/releases/download/v2.0.2/sigmah-MinimumDataKit-2.0.postgresql.sql -O /tmp/sigmah-MinimumDataKit.sql +wget https://github.com/sigmah-dev/sigmah/releases/download/v2.0.2/sigmah-newOrganizationLaunchScript-2.0.postgresql.sql -O /tmp/sigmah-newOrganizationLaunchScript.sql +export SIGMAH_ADMIN_USER=Admin +export SIGMAH_ADMIN_EMAIL=admin@example.com +export SIGMAH_ADMIN_PWD=$(head -c 12 /dev/urandom | base64) +export SIGMAH_ADMIN_HASH=$(python -c "import bcrypt; print bcrypt.hashpw('${SIGMAH_ADMIN_PWD}', bcrypt.gensalt(10, prefix=b'2a'))") +sed -i "s|§OrganizationName§|Demo organization|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§OrganizationLogoFilename§|logo.png|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§HeadquartersCountryCode§|CZ|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§UserEmail§|${SIGMAH_ADMIN_EMAIL}|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§UserName§|${SIGMAH_ADMIN_USER}|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§UserFirstName§|${SIGMAH_ADMIN_USER}|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|§UserLocale§|en|g" /tmp/sigmah-newOrganizationLaunchScript.sql +sed -i "s|\$2a\$10\$pMcTA1p9fefR8U9NoOPei.H0eq/TbbdSF27M0tn9iDWBrA4JHeCDC|${SIGMAH_ADMIN_HASH}|" /tmp/sigmah-newOrganizationLaunchScript.sql +export PGPASSWORD=${SIGMAH_PWD} +psql -f /tmp/sigmah-MinimumDataKit.sql -U sigmah sigmah +psql -f /tmp/sigmah-newOrganizationLaunchScript.sql -U sigmah sigmah +unset PGPASSWORD +rm -f /tmp/sigmah-MinimumDataKit.sql +rm -f /tmp/sigmah-newOrganizationLaunchScript.sql + +# Create nginx app definition +cp ${SOURCE_DIR}/etc/nginx/apps-available/sigmah /etc/nginx/apps-available/sigmah +ln -s /etc/nginx/apps-available/sigmah /etc/nginx/apps-enabled/sigmah + +# Restart services +systemctl restart tomcat8 +systemctl restart nginx + +# Add portal application definition +portal-app-manager sigmah "/sigmah/" "${SIGMAH_ADMIN_EMAIL}" "${SIGMAH_ADMIN_PWD}" + +# TODO: Split tomcat installation, secure port 8080 diff --git a/sigmah/etc/nginx/apps-available/sigmah b/sigmah/etc/nginx/apps-available/sigmah new file mode 100644 index 0000000..f4c75d7 --- /dev/null +++ b/sigmah/etc/nginx/apps-available/sigmah @@ -0,0 +1,11 @@ +location /sigmah { + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-Proto https; + proxy_set_header Host $http_host; + proxy_set_header Proxy ""; + proxy_redirect off; + proxy_buffering off; + proxy_read_timeout 90; + proxy_connect_timeout 90; + proxy_pass http://127.0.0.1:8080/sigmah; +} diff --git a/sigmah/tmp/sigmah-createdb.sql b/sigmah/tmp/sigmah-createdb.sql new file mode 100644 index 0000000..f9c46d4 --- /dev/null +++ b/sigmah/tmp/sigmah-createdb.sql @@ -0,0 +1,6 @@ +CREATE ROLE sigmah NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN ENCRYPTED PASSWORD '${SIGMAH_PWD}'; +CREATE DATABASE sigmah; +REVOKE ALL ON DATABASE sigmah FROM public; +ALTER DATABASE sigmah OWNER TO sigmah; +\c sigmah; +CREATE EXTENSION pg_trgm; diff --git a/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml b/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml new file mode 100644 index 0000000..4ad5a0f --- /dev/null +++ b/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/META-INF/persistence.xml @@ -0,0 +1,39 @@ + + + + + org.hibernate.ejb.HibernatePersistence + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties b/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties new file mode 100644 index 0000000..32fcb65 --- /dev/null +++ b/sigmah/var/lib/tomcat8/webapps/sigmah/WEB-INF/classes/sigmah.properties @@ -0,0 +1,40 @@ +# +# All Sigmah code is released under the GNU General Public License v3 +# See COPYRIGHT.txt and LICENSE.txt. +# + + + +# -- +# FILES STORAGE +# -- + +# Root directory name where files are stored. +files.repository.name=/srv/sigmah/files + +# Root directory name where backup archives are stored. +archives.repository.name=/srv/sigmah/archives/ + +#Maximum size of the uploaded files (bytes) +files.upload.maxSize=20971520 + +# -- +# MAILS +# -- + +mail.hostname=localhost +mail.port=25 +mail.from.address=sigmah@spotter.ngo +mail.from.name=Sigmah +# Authentication (leave empty if no authentication is required). +mail.auth.username= +mail.auth.password= +mail.encoding=UTF-8 +mail.contentType=text/html + +mail.support.to=sigmah@spotter.ngo + +# -- +# MAPS API +# -- +maps.key=AIzaSyBvIF3D550tlpL6o1xRrDurGo-81VhHlOw