Compare commits

...

1054 Commits

Author SHA1 Message Date
440317c552 Update cs.py změna Organizační jednotky, Zařízení, Pobočky 2021-11-19 15:10:32 +01:00
fd23d27bba
Add Decidim Twilio SMS configuration setup 2021-04-18 15:21:18 +02:00
c9af05aeb0
Bump Decidim to 0.23.5, add omniauth plugin 2021-04-08 20:23:54 +02:00
5bd1f5e97c
Fix Decidim config population during clean install 2021-04-02 19:10:27 +02:00
215ffb81ae
Update fix for Decidim font diacritics 2021-04-02 17:54:46 +02:00
7052ea8859
Bump Decidim to 0.23.4 2021-04-02 11:23:00 +02:00
dd922b7775
Inject qt-patched wkhtmltopdf to Odoo 2021-03-21 11:24:17 +01:00
2877cd2748
Install wkhtmltopdf for Odoo 2021-03-20 22:33:10 +01:00
1d688ad1ff
Set Decidim currency, resolves 2021-02-08 06:46:55 +01:00
723a6a494f
Mount only currently customized Decidim configs, resolves for new installations 2021-02-06 13:50:28 +01:00
db26467d0b Update cs.py 2021-02-02 01:51:04 +00:00
8d15e2806d Update cs.py 2021-02-02 00:42:19 +00:00
f4700bef17
Update custom Decidim translations and helper script, related to 2021-01-30 14:42:37 +01:00
abf763683d
Replace Decidim Source Sans Pro with full version, resolves 2021-01-30 13:25:24 +01:00
0ad56ac087
Add custom Decidim translations, relates to 2021-01-30 13:22:44 +01:00
81226d3bcc
Bump vmmgr 2021-01-27 23:55:48 +01:00
358281816f Update cs.py 2021-01-25 01:41:03 +00:00
98327336ac
Bump Taarifa to Node.js 8 build 2021-01-24 19:40:00 +01:00
89c4e2e88f
Update docs 2021-01-24 12:14:59 +01:00
521f3f2ab6
Bump VMMgr 2021-01-24 11:34:23 +01:00
b17f6a3279
Add Taarifa to VMMgr portal 2021-01-24 10:13:18 +01:00
08313f07db
Add Mongodb on Debian10 + Taarifa Waterpoints 2021-01-24 09:16:50 +01:00
01d19fe5fb Update cs.py 2021-01-20 21:49:06 +00:00
093f306ec7
Disable Decidim templates module due to upstream 2021-01-18 18:42:00 +01:00
667354a158
Enable Decidim comparative_stats module, relates to 2021-01-18 17:58:14 +01:00
53141556f7
Enable bundled plugins, related to 2021-01-16 20:58:04 +01:00
88893abc50
Install and configure Decidim plugins, related to 2021-01-11 12:38:28 +01:00
082a9fb50d
Bump spoc 2021-01-10 16:45:17 +01:00
917c15420c
Bump Alpine 3.11, 3.12, services and apps to current versions 2021-01-06 19:28:37 +01:00
ef116c12ef
Create Odoo instance without demo data, resolves 2021-01-06 19:02:22 +01:00
03d56ac0c9
Bump Ruby to 2.7.2, Decidim to 0.23.1
- Split image to nginx and decidim
 - Make database migrations persistent, resolves 
2020-11-21 09:25:40 +01:00
86c97de908
Update DHIS2 app description 2020-11-09 09:49:08 +01:00
967ccc0d44
Align Sahana Spotter template with the current default template 2020-11-09 07:52:20 +01:00
6f52ea0f1a
Align Tomcat configs for ODK and Mifos with Tomcat upstream 2020-11-09 07:50:19 +01:00
c50e67dbc0
Add DHIS2 image and application 2020-11-09 07:45:55 +01:00
31876f3776 Update cs.py Dump - výprodej 2020-10-25 15:12:44 +01:00
4fd2de3935 Update cs.py Theme - Téma 2020-10-25 14:12:54 +01:00
b53f8b0a24 Update cs.py indikátor - ukazatel 2020-10-25 13:57:07 +01:00
1c2e59e64b Update cs.py - datum vypršení 2020-10-25 13:27:44 +01:00
c757630f7a
Use -i to apply patches instead of stdin redirect 2020-10-24 22:09:21 +02:00
1c140bb593
Apply Alpine patches for Ruby images 2020-10-24 22:08:12 +02:00
5c1130eafe
Bump VMMgr 2020-10-23 20:16:13 +02:00
b189f3c9a2
Disable Sahana vulnerability module, bump SAMBRO and SHARE configs 2020-10-23 19:47:36 +02:00
783fd3c094
Update docs and submodules 2020-10-22 23:05:13 +02:00
8bc038ea02
Bump Sahana to newer commit on Alpine 3.12
Bumped web2py to 2.20.4, python 3 now officially fully supported
2020-10-22 23:05:01 +02:00
8428373178
Bump Ushahidi to version 4.6.1 on Alpine 3.12 2020-10-22 23:03:44 +02:00
ddcca22498
Bump Odoo to version 6.0.13 on Alpine 3.12
Add section about updating to docs
2020-10-22 23:02:59 +02:00
0f89b0ae4b
Bump Pandora to newer commit on Alpine 3.12, add update script 2020-10-22 23:01:33 +02:00
9a83b97d33
Bump OpenMapKit date 2020-10-22 23:00:34 +02:00
a993e2f4ce
Bump OpenDataKit to Ruby 2.4.10 on Alpine 3.12 2020-10-22 22:59:58 +02:00
fe9928443f
Bump Odoo to version 14.0.0 on Alpine 3.12 2020-10-22 22:59:09 +02:00
d2082a896b
Bump Motech to Alpine 3.12 2020-10-22 22:58:17 +02:00
a763665f32
Bump MifosX to Alpine 3.12 2020-10-22 22:57:45 +02:00
2b09ee23c8
Bump Kanboard to version 1.2.16 on Alpine 3.12 2020-10-22 22:56:54 +02:00
40a46cd675
Bump GNU Health to version 3.6.5 on Alpine 3.12 2020-10-22 21:03:16 +02:00
9e2075a4af
Bump FrontlineSMS date, add comment Java/Jetty compatibility 2020-10-22 21:02:39 +02:00
7355cdb888
Add docs for Decidim middleware and DB migration 2020-10-22 21:00:32 +02:00
a4c52f9b3b
Fix Decidim HTTP proxy 2020-10-22 21:00:05 +02:00
013f0d110e
Bump Decidim to Alpine 3.12 2020-10-22 20:59:21 +02:00
4ba0069a8a
Bump CTS date, add comment about python2 and geos 2020-10-22 20:58:09 +02:00
99099e03bb
Bump CrisisCleanup to Ruby 2.4.10 2020-10-22 20:56:50 +02:00
6ec890aa30
Bump CKAN to 2.9.0, use Python 3 runtime 2020-10-22 20:56:10 +02:00
e39aa41c7c
Bump service images to Alpine 3.12 2020-10-22 20:53:40 +02:00
a7202756ab
Bump shared images based on Alpine 3.8, 3.10, 3.11
Remove custom repo key on 3.11
2020-10-22 20:45:13 +02:00
596955f6b4
Bump shared images to Alpine 12 2020-10-22 20:42:45 +02:00
14e07c9b56
Bump services built directly on Alpine layer to Alpine 3.12 2020-10-15 09:58:11 +02:00
3f9accced2
Build whole custom RabbitMQ image instead of just APK 2020-10-15 09:20:05 +02:00
1cd9fb1485
Add Alpine 3.12 image 2020-10-13 21:13:53 +02:00
9b517ceebb
Add py3-secure-cookie for VMMgr, install py3-sphinx_rtd_theme 2020-10-12 21:36:39 +02:00
97a5c63d48
Bump basic VM to Alpine 3.12, drop custom LXC as 3.12 uses LXC 4.0.2 2020-10-11 21:45:38 +02:00
f79cddbf44
Bump Ruby to 2.6.6 and Decidim to 0.22.0 2020-10-04 23:15:31 +02:00
c3d5542bee
Bump VMMgr with demo mode feature 2020-08-26 18:07:08 +02:00
a28b29f953 Update cs.py 2020-07-05 22:33:53 +02:00
4cc79de59c
Fix typo in OpenMapKit update-conf.sh, resolves 2020-06-25 17:43:29 +02:00
af7be5c1be
Add Sahana update scripts, remove unused DEBUG envvar 2020-06-21 20:45:32 +02:00
09b7ce481f
Add a note about Pandora celery workaround 2020-06-21 18:54:05 +02:00
3839eddb60
Bump Pandora to Alpine 3.11 + Python 3.8 2020-06-21 18:38:22 +02:00
ebe3828b5e
Make self-signed certificates work in OpenMapKit + fix build 2020-06-21 17:25:53 +02:00
d532d087fe
Future-proof Decidim passenger + nginx some more 2020-06-21 14:51:10 +02:00
bbc669d2a7
Hardcode SaFire and ShaRe VMMgr tiles 2020-06-21 14:50:30 +02:00
74df7b6a59
Fix GNU Health build 2020-06-21 13:10:24 +02:00
624693bb22
Fix Decidim build 2020-06-21 12:55:46 +02:00
5218d4d094
Update liboggplay (Pandora dependency) git repo URL 2020-06-21 12:29:48 +02:00
c9978e21c9
Future-proof Decidim passenger + nginx compilation 2020-06-21 10:45:12 +02:00
547c3cf84f
Documentation update for Sahana local development, closes 2020-06-21 10:13:19 +02:00
c41a007870
Bump Ushahidi to 4.5.0 2020-06-21 08:47:53 +02:00
60c0e25c49
Bump SeedDMS to 5.1.17 2020-06-21 08:46:27 +02:00
0d1b4942c3
Bump Kanboard to 1.2.15 2020-06-21 08:44:29 +02:00
cba47bc0b2
Bump GNU Health to 3.6.4 2020-06-21 08:43:35 +02:00
e1e4f706ee
Bump Decidim to 0.21.0 2020-06-21 08:42:08 +02:00
603bd923e1
Correctly report installed MariaDB version 2020-06-21 08:39:38 +02:00
c2064220d0
Bump ActiveMQ to 5.15.13 2020-06-21 08:37:51 +02:00
1fb67a69f9
Bump Tomcat 8.5 to 8.5.56 2020-06-21 08:36:30 +02:00
e0a071e9e5
Correctly report installed Python and PHP runtime version 2020-06-21 08:35:42 +02:00
a90cb7679b
Bump Tomcat 7 to 7.0.104 2020-06-21 08:33:20 +02:00
d307a559c0
Bump build date on all apps 2020-06-21 08:32:40 +02:00
3659f3d1ed
Bump Alpine 3.11 to 3.11.6 2020-06-21 08:26:58 +02:00
87429cda34
Bump Alpine 3.10 to 3.10.5 2020-06-21 08:22:36 +02:00
b2db2816fa
Update project URL after rename 2020-06-20 18:28:10 +02:00
d5aca4ad52
Add schemata into documentation, closes 2020-06-16 22:39:46 +02:00
57cef0f4cf
Add more docs 2020-06-03 18:56:46 +02:00
ea2ba79f96
Update OpenDataKit repo URLs 2020-06-03 18:38:01 +02:00
f5416a4501
More doc updated 2020-06-02 18:30:08 +02:00
553930da0d
Update docs with FrontlineSMS + comments in 2020-06-02 08:59:03 +02:00
40e98ff42a
Update technical documentation 2020-06-01 22:09:39 +02:00
615b847cf9
Properly capitalize Kanboard 2020-06-01 22:04:31 +02:00
8e4b38ef18 Update cs.py 2020-05-15 19:52:12 +02:00
004f35c186
Update Sahana Czech translation 2020-05-04 11:11:02 +02:00
a2ffc2ab63
Bump spoc and vmmgr 2020-05-04 11:07:19 +02:00
837466742e
Make Sahana errors and sessions persistent 2020-05-04 11:06:50 +02:00
b1ff00e36b
Make Sahana Setup module compatible with Alpine containers, closes 2020-05-04 11:04:29 +02:00
04c9795586
Add Debian 10 image to graveyard (LXC URL for doc purposes) 2020-05-04 10:51:08 +02:00
001faa160e
Remove RSS feeds (and Google scripts) from Sahana Spotter template, closes 2020-05-02 19:28:01 +02:00
eb5b8365c3
Unify Sahana language code for English, closes 2020-05-02 19:26:11 +02:00
29f1b52dee
Update Sahana Czech translation 2020-05-02 19:23:41 +02:00
93f94e16ac
Bump Sahana build after a bunch of upstream fixes 2020-04-26 18:52:43 +02:00
16c9a6c862
Bump spoc version and reflect /tmp mode change in spoc#6 2020-04-26 18:49:26 +02:00
92b61944dd
Update Sahana Czech translation 2020-04-26 18:49:01 +02:00
1620028382
Add Sahana compat patch for PostGIS 3 2020-04-22 21:39:40 +02:00
df2eb81928
Bump Sahana build after a bunch of upstream fixes 2020-04-21 16:58:56 +02:00
52016223ab
Hackfix Sahana's Web2Py gis/proxy
https://github.com/sahana/eden_deploy/commit/5f1d8d8b2
https://github.com/web2py/web2py/issues/2262
2020-04-18 19:16:55 +02:00
50e6ec1c3a
Move Crismapp + Alpine 3.8 - PHP 5.6 to graveyard 2020-04-18 19:01:12 +02:00
b3b1daf989
Reflect Kanboard plugin repo changes introduced in 2020-04-18 18:14:17 +02:00
2163506a8e
Update non-verbatim string in Czech Sahana translation 2020-04-18 15:32:49 +02:00
21f695d7ba
Update Czech Sahana translation + helper scripts, closes 2020-04-18 12:32:40 +02:00
5107631271
Update Czech Sahana translation, related to 2020-04-16 23:08:06 +02:00
676a9d24b7
Bump Kanboard and add Czech translation 2020-04-16 12:56:38 +02:00
e8e01417b2
Add SaFiRe + ShaRe to build-all.sh 2020-04-14 14:18:01 +02:00
1885b9e18e
Add SaFiRe + ShaRe, closes 2020-04-14 14:17:21 +02:00
780f44246f
Reflect small SAMBRO config update 2020-04-14 13:55:43 +02:00
1eea6c8e99
Add Crismapp, closes 2020-04-11 19:52:10 +02:00
9417ad24a2
Revert "Move alpine3.8-php5.6 used by EcoGIS to graveyard"
This reverts commit 7331ab6d96f18565a99a7fbff12cd1a7fe14cecd.
2020-04-11 19:25:45 +02:00
7331ab6d96
Move alpine3.8-php5.6 used by EcoGIS to graveyard 2020-04-11 16:59:07 +02:00
cc1ea7fa25
Add Odoo 10 to graveyard (cherry-picked from 2018-11-17) 2020-04-11 16:54:57 +02:00
e5574db63c
Add CrisisCleanup3 to graveyard (cherry-picked from 2018-08-10) 2020-04-11 16:52:28 +02:00
8771ac9828
Merge branch 'compose' 2020-04-11 16:47:26 +02:00
6047cbcd0a
Move EcoGIS and Sigmah to graveyard, closes , 2020-04-11 16:40:25 +02:00
ad437292ab
Rewrite extend-disk in python and move vmtty back to basic vm setup 2020-04-11 14:55:18 +02:00
bd946bf564
Bump submodules 2020-04-10 20:20:13 +02:00
867997b588
Include DOMAIN directly in HOST envvar for update-conf.sh, update add-ca-cert 2020-04-10 17:57:42 +02:00
6bab2bda8d
Bump vmmgr submodule 2020-04-10 14:08:11 +02:00
de5e7da26d
Make update-conf.sh executable 2020-04-10 13:40:40 +02:00
c287b1ea6e
Fix typo in ODK app definition 2020-04-10 13:09:29 +02:00
a12b0f101e
Update update-conf.sh, revert custom prop definitions
Partially reverts 0028a3ba5b1e20276a56024d1ba3ff60af6059c1
2020-04-10 13:03:34 +02:00
0028a3ba5b
Define custom props during application installation 2020-04-10 11:21:39 +02:00
09a146b54c
Make CKAN and ODK add-ca-cert parametrizable 2020-04-06 10:45:46 +02:00
5f6a7a2517
Fix Odoo setup when tty is attached 2020-04-05 20:38:07 +02:00
1a0c641df3
Fix vmmgr package creation 2020-04-04 23:01:02 +02:00
d16fcb8a9d
Move files managed by vmmgr to vmmgr package 2020-04-04 22:08:19 +02:00
391859ded4
Add acme.sh cron job 2020-04-04 20:33:08 +02:00
e7e255488d
Fix line endings 2020-04-04 18:04:56 +02:00
cb4ff53efd
Fix FrontlineSMS mount 2020-04-04 17:39:02 +02:00
087ad65518
Revert CrisisCleanup to working v2 revision 2020-04-04 17:33:04 +02:00
15be9aad67
Update forgotten Ushahidi version number 2020-04-04 13:44:02 +02:00
c04cf033a8
Hackfix GNU Health to install specific version of python dependency which doesn't fail during setup 2020-04-04 11:29:09 +02:00
0bae44985c
Bump Alpine to 3.11.5 + all apps 2020-04-04 00:17:24 +02:00
e788060456
Fix homeless .bundle paths 2020-03-25 21:32:19 +01:00
d93c739d38
Fix Sigmah mounts 2020-03-24 22:15:28 +01:00
4c0fcc5535
Bump postgres configs to version 12 2020-03-24 19:52:27 +01:00
268dc6447c
Make Ushahidi SPOC-compatible, cont'd 2020-03-24 19:17:46 +01:00
6cb0440d4a
Make Ushahidi SPOC-compatible 2020-03-24 15:15:26 +01:00
bd70f07f8b
Make Sigmah SPOC-compatible, cont'd 2020-03-23 16:08:21 +01:00
ecfafd0c4a
Make Sigmah SPOC-compatible 2020-03-23 13:51:23 +01:00
236c15dbac
Make SeedDMS SPOC-compatible, cont'd 2020-03-23 11:32:11 +01:00
e0e49ec31a
Make SeedDMS SPOC-compatible 2020-03-23 10:14:47 +01:00
746713eb9f
Work with ${LAYERS_DIR} bit more predictably 2020-03-23 10:10:57 +01:00
102761efac
Make SAMBRO SPOC-compatible 2020-03-22 21:16:22 +01:00
caf30e9958
Make Sahana-Demo SPOC-compatible 2020-03-22 20:45:07 +01:00
9f8571f622
Make Sahana SPOC-compatible, cont'd 2020-03-22 20:36:56 +01:00
b804987254
Make Sahana SPOC-compatible 2020-03-22 19:52:00 +01:00
2b9d73c847
Update Pandora celery setting 2020-03-22 16:03:24 +01:00
cab95d15f3
Downgrade Pandora to Alpine 10 + Python 3.7 2020-03-22 14:17:52 +01:00
b79323b4b7
Make Pandora SPOC-compatible 2020-03-22 13:44:46 +01:00
3e8032d867
Revert CrisisCleanup bump to Alpine 3.10 2020-03-22 12:40:37 +01:00
ef52c066d2
Bump CrisisCleanup to Alpine 3.10 + Node.js 10 2020-03-22 12:17:13 +01:00
c32365d671
OMK requires nodejs<=10 2020-03-22 11:08:52 +01:00
7a45daf853
Make OMK SPOC-compatible 2020-03-22 10:28:57 +01:00
fea0a7911a
Make ODK SPOC-compatible 2020-03-21 22:42:35 +01:00
f63e78a800
Reflect passlib depreciation in Odoo install.sh 2020-03-20 22:32:46 +01:00
0790a9243b
Make Odoo SPOC-compatible 2020-03-20 20:52:25 +01:00
590dde8206
Tweak Tomcat permissions 2020-03-20 15:21:16 +01:00
40e26e4407
Make Motech SPOC-compatible 2020-03-20 14:57:40 +01:00
35345dc529
Bump postgres JDBC driver and use full catalina.sh path 2020-03-20 14:50:41 +01:00
36181e3593
Patch lxc-attach to return correct returncode 2020-03-19 22:36:59 +01:00
dadda1c175
MySQL socket auth tries to be funny, so run init as root 2020-03-19 21:59:41 +01:00
719b4e04b6
Make MifosX SPOC-compatible, cont'd 2020-03-18 22:36:06 +01:00
692571a7f8
Add custom LXC with fixed -g/-u for lxc-execute/attach 2020-03-18 22:25:01 +01:00
ff3d37517f
Make MifosX SPOC-compatible 2020-03-18 16:51:21 +01:00
d8d9f5431e
Make KanBoard SPOC-compatible 2020-03-17 16:51:44 +01:00
8f27ee6afe
Make GNU Health SPOC-compatible 2020-03-17 14:47:28 +01:00
797e900268
Base FrontlineSMS on Alpine 3.8 Java 8 2020-03-17 12:54:43 +01:00
74ff517e09
Convert CRLF to LF 2020-03-17 12:53:44 +01:00
0455738fa8
Make FrontlineSMS SPOC-compatible 2020-03-17 11:03:24 +01:00
5782083921
Make EgoGIS SPOC-compatible 2020-03-17 10:48:06 +01:00
be4042d7e4
Make Decidim SPOC-compatible, cont'd. 2020-03-17 09:52:04 +01:00
f32b719630
Make Decidim SPOC-compatible 2020-03-17 09:18:13 +01:00
512895a6f2
Make CTS SPOC-compatible 2020-03-16 21:54:30 +01:00
f6328158ed
Add owner and mode for install in CKAN and CC 2020-03-16 21:34:46 +01:00
042a82c463
Fix CrisisCleanup data population 2020-03-16 20:53:27 +01:00
853c3852fd
Make CrisiCleanup SPOC-compatible 2020-03-16 20:06:51 +01:00
b55a5dfdbd
Use install binary to copy / create CKAN files 2020-03-16 19:13:43 +01:00
4e0cbe0dcb
Re-add CKAN DP X509_STORE_CTX wrapper hackfix 2020-03-14 15:16:48 +01:00
58960e5e01
Retain TLSv1.2 compatibility as old apps still need it 2020-03-14 14:26:32 +01:00
84d43f51ff
Append the CKAN cert to both modules 2020-03-14 11:36:58 +01:00
e02fc0f97d
Fix CKAN service provider instead 2020-03-14 11:10:36 +01:00
157a0b8660
Fix CKAN werkzeug compatibility issue 2020-03-14 11:02:18 +01:00
202aa1e8ca
Re-add accidentally dropped CKAN-DP requirements 2020-03-14 10:40:22 +01:00
72a4ea9e5c
Tryfix for missing local timezone data 2020-03-14 10:15:40 +01:00
243c8a4542
Keep CKAN DataPusher add-ca-cert on py2.7 2020-03-14 09:47:33 +01:00
c7b0ea28b2
Hackfix CKAN support for PostgreSQL 12 2020-03-13 22:55:12 +01:00
0b46076ae7
Revert CKAN who.ini to use pre-2.9 modules 2020-03-13 21:47:25 +01:00
3632568e29
Local installation repo must use plain HTTP due to cert mismatch 2020-03-13 21:27:47 +01:00
361bb2dc7b
Make CKAN SPOC-compatible, cont'd. 2020-03-13 21:12:16 +01:00
61ab0b0b48
Using tech scheduled to EOL 5 years ago should be a criminal offense 2020-03-13 20:42:12 +01:00
734a9611e5
Bump redis version 2020-03-13 20:20:11 +01:00
368a060a5e
Make CKAN SPOC-compatible, cont'd. 2020-03-13 20:19:26 +01:00
923b794cc6
Make CKAN SPOC-compatible 2020-03-13 20:13:28 +01:00
f45e25ea2c
Remove obsolete build files 2020-03-13 20:09:23 +01:00
81b9e8d0af
Bump forgotten Solr files 2020-03-13 20:05:46 +01:00
07163889a3
Name the repo key properly 2020-03-13 17:53:31 +01:00
04804d8883
Build fixes 2020-03-13 17:36:50 +01:00
bedbbb0c3a
Bump RabbitMQ sources 2020-03-13 17:36:06 +01:00
4c47c49eab
Bump packages for shared Alpine 3.8 images 2020-03-13 17:12:24 +01:00
29cad671dc
Mass bump shared and service images to Alpine 3.11 2020-03-13 17:03:03 +01:00
705ac8104a
Set proper filename for extlinux.conf 2020-03-13 16:36:11 +01:00
d73b0c381f
Build toolchain amendments 2020-03-13 13:22:47 +01:00
fe0777eaf2
Start cgroupfs on boot 2020-03-13 13:18:05 +01:00
f16d2cde9b
Compress vm.tar and update vmmgr config.json adminpwd init 2020-03-13 00:19:00 +01:00
7a19274211
Bump abuild.conf to Alpine 3.11 2020-03-13 00:01:59 +01:00
36d0b9156c
Update submodules 2020-03-12 23:56:06 +01:00
6aa4eb7778
Bump Decidim to 0.20.0 + install imagick 2020-03-12 23:54:17 +01:00
76bef22633
Drop custom acme-sh and use the default instead 2020-03-12 23:10:12 +01:00
7cb420dc4c
Add SPOC as a submodule 2020-03-12 22:56:40 +01:00
99c39d5ee9
Update KanBoard install scripts for spoc 2020-02-22 19:59:48 +01:00
2ee9b97020
Bump KanBoard app compose file 2020-02-22 15:48:05 +01:00
29d791afe1
Bump Kanboard to 1.2.13 on Alpine 3.11 2020-02-22 15:34:59 +01:00
7b1298d7d0
Bump PHP to Alpine 3.11 PHP 7.3 2020-02-22 15:32:25 +01:00
f948c885bc
Add translation-toolkit to Sahana 2020-02-10 08:16:24 +01:00
473dd4af61
Update Sahana + Sahana Demo for spoc 2020-02-09 15:56:37 +01:00
f5fee5afa1
Use full path for s6-svscan 2020-02-09 15:54:46 +01:00
5e7846b519
Anotate Sahana pip requirements exclusions 2020-02-07 18:49:22 +01:00
e5c6203412
Bump Sahana to Alpine 3.11 2020-02-07 18:35:25 +01:00
bba8f06422
Bump python, postgres, postgis to Alpine 3.11 2020-02-07 18:28:24 +01:00
076786f482
Bump nginx configs (tcp_nodelay, TLSv1.3) 2020-02-07 18:27:15 +01:00
28a70e878e
Bump the Alpine VM to 3.11 2020-02-04 16:09:48 +01:00
d7d89b9db6
Update web2py and hackfix SAMBRO installation 2019-12-22 10:59:47 +01:00
44209ddfb3
Fix wrong layer ordering 2019-12-21 17:45:05 +01:00
e355510575
Fix required bundler version for ruby app 2019-12-21 14:50:23 +01:00
3713365950
Bump version of Web2py for Sahana 2019-12-20 23:28:11 +01:00
1801fcdc3d
Bring Sahana config up-to-date 2019-12-20 17:53:39 +01:00
18698ef5d4
Fix Pandora password hash generation 2019-12-20 08:55:31 +01:00
d08848a4d0
Improve RabbitMQ ready command 2019-12-20 08:54:31 +01:00
48510beb28
Update Pandora config to align with upstream 2019-12-20 08:20:13 +01:00
751afa6cf2
Add Decidim uninstall script 2019-12-18 14:37:37 +01:00
64dced3dc8
Fix MifosX schema creation 2019-12-18 14:35:39 +01:00
b2b2c12cdf
Fix Decidim rake secret 2019-12-18 10:57:24 +01:00
91c413ecbf
Assign explicit UID/GID to decidim user 2019-12-18 10:14:14 +01:00
2bd45fea0d
Fix a few build omissions 2019-12-18 10:13:32 +01:00
c73c5f1eef
Reorder Decidim rake secret generation 2019-12-17 21:31:05 +01:00
7426ff6f9c
Fix MifosX install script 2019-12-13 22:20:27 +01:00
0e465b0820
Workaround for LXC root priv for mysql 2019-12-13 21:28:55 +01:00
19b62a4370
Fix SeedDMS install 2019-12-10 18:56:15 +01:00
ed997ab417
Fix Motech install 2019-12-10 18:48:39 +01:00
376a0f87ef
Fix Ecogis directory names 2019-12-10 08:38:51 +01:00
c2a30bc4c1
Reorder KanBoard install script 2019-12-09 22:28:11 +01:00
9532bc7405
Use repo.build.vm as local build host 2019-12-09 21:41:04 +01:00
0351abcb92
Rename apkrepo.conf to repo.conf 2019-12-08 14:54:00 +01:00
a2605594d3
Fix Decidim meta file 2019-12-07 19:46:22 +01:00
f2176428bc
Use find in clean-all instead of ls 2019-12-07 16:29:41 +01:00
91a5a24b1b
Use lxchelper extract where appropriate 2019-12-07 15:52:09 +01:00
d94db19410
Fix CrisisCleanup admin user creation 2019-12-01 14:46:45 +01:00
515672c170
Update CKAN conf files to 2.9 2019-12-01 07:44:47 +01:00
8a23276748
Add clean-all build script 2019-11-30 22:12:15 +01:00
a7a4004f53
Introduce lxc- prefix for services 2019-11-30 22:11:38 +01:00
22d10b5a69
Reflect recent change in CKAN python requirements 2019-11-30 21:51:54 +01:00
7809cc8a5e
Add logrotate to basic setup 2019-11-30 19:05:14 +01:00
bdf4a01b3b
Create OS user for tomcat directly instead of individual apps using it 2019-11-30 19:00:03 +01:00
c71817c2e8
Don't fail if image dir doesn't exist during build cleanup 2019-11-30 16:17:20 +01:00
c22d2c7393
Move BuildType to imagebuilder to prevent dependency conflicts 2019-11-30 16:08:04 +01:00
e794ced82a
Introduce BuildType for normal, force, scratch and metadata builds 2019-11-30 15:56:29 +01:00
e1b7ba1204
Remove unused nginx and nodejs images 2019-11-30 15:54:09 +01:00
f82ad15689
Remove nginx layers, convert to FROM 2019-11-30 09:59:32 +01:00
f8403c5f42
Remove MERGE capability, add FROM
layer inheritance is now linear
2019-11-30 09:59:11 +01:00
4d579ef8c1
Compile nginx+passenger for Decidim and finalize install script 2019-11-23 18:11:18 +01:00
b6c3949d41
Correctly rename crontabs dir 2019-11-20 23:05:31 +01:00
c10b1a7920
Wait for cron service on exit 2019-11-20 22:23:48 +01:00
9c3cee22a6
Bunch of install script fixes 2019-11-18 22:12:01 +01:00
a41d270743
Replace single quotes with double quotes in solr ready command 2019-11-18 20:48:45 +01:00
ebbbab71fb
Fix Sigmah version 2019-11-18 00:15:08 +01:00
a9a930b37b
Add more common libs to basic Alpine image 2019-11-17 21:40:14 +01:00
b5eabcb311
Create nginx user and group beforehand 2019-11-17 21:28:21 +01:00
7ed4628597
Add meta for Decidim 2019-11-17 17:36:25 +01:00
827991d7ac
Revert order of layers for MERGE 2019-11-17 16:28:49 +01:00
56af4a0b66
Leave ActiveMQ heap settings in default 2019-11-17 16:01:04 +01:00
3d8154d87f
Add and use alpine3.8-nginx image 2019-11-17 15:24:26 +01:00
d56afb17c2
Update naming in docs 2019-11-17 15:04:47 +01:00
5084dc1579
Rename FIXLAYER to MERGE and update for merging passwd/group/shadow 2019-11-17 15:04:34 +01:00
d3129d81ab
Move readline to basic alpine image 2019-11-17 14:53:05 +01:00
e8138099cb
Move libressl to basic alpine image 2019-11-17 14:48:16 +01:00
fe9fb27679
Add Decidim LXC app 2019-11-15 18:03:17 +01:00
692897c9bf
Introduce separate nginx layer 2019-11-15 17:45:34 +01:00
85e8b631a1
Add Alpine3.9-Ruby2.6 2019-11-13 22:07:59 +01:00
9c50b29d22
Start Odoo Postgres in install.sh 2019-11-13 21:07:31 +01:00
de80024445
Properly identify Odoo 13 2019-11-13 19:46:38 +01:00
5a43c23b83
Remove cwd magic as it's pkgmgr's responsibility now 2019-10-14 08:29:55 +02:00
4458be2763
Fix postgis version and replace with postgres in appropriate composes 2019-10-14 08:15:31 +02:00
0f5c1d6433
Change application users UID/GID to 8080 2019-10-14 07:59:06 +02:00
4e9c63d8aa
Make the executable files executable 2019-10-07 09:52:53 +02:00
7e3431a4c0
Add cron jobs for KanBoard, SeedDMS, Ushahidi 2019-10-07 09:48:37 +02:00
79efa46226
Fix rabbitmq image for Pandora 2019-10-06 00:03:39 +02:00
f9507ae4b7
Fix ODK build 2019-10-05 23:53:32 +02:00
8434f192c9
Fix missing import 2019-10-05 23:39:00 +02:00
d476a36f24
Fix propagated typo 2019-10-05 23:37:44 +02:00
3a3552f154
Fix GNU Health build via symlink to current version of trytond 2019-10-05 23:09:59 +02:00
466a83e407
Allow scratch builds with dir as argument 2019-10-05 23:09:30 +02:00
93cc9f435b
String formatting simplification 2019-10-05 22:42:29 +02:00
62a6612a79
Implement scratch containers and image/app removal 2019-10-05 22:26:54 +02:00
f2016d1b71
Fix FlSMS meta version 2019-10-05 17:51:14 +02:00
715ad22409
Typo fix 2019-10-05 17:47:33 +02:00
1aaf16e8b7
Fix CKAN build 2019-10-05 17:26:19 +02:00
3a554e1c84
Simplify composed builds 2019-10-05 16:35:10 +02:00
cf99826386
Fix hostnames 2019-10-05 16:34:10 +02:00
9b18c94ddd
Rework SAMBRO 2019-10-05 16:10:29 +02:00
985dd2998a
Rework Sahana Eden - Demo 2019-10-05 16:01:55 +02:00
f46fafa4ed
Rework Sahana Eden 2019-10-05 15:49:29 +02:00
4ba938d17f
Add forgotten Pandora Postgres config 2019-10-05 15:43:20 +02:00
0f093a1087
Rework Ushahidi 2019-10-05 15:40:27 +02:00
4ac414c691
Rework Sigmah 2019-10-05 15:34:42 +02:00
4391b33fbc
Rework SeedDMS 2019-10-05 15:27:14 +02:00
826b244bae
Rework Pan.do/ra 2019-10-05 15:26:48 +02:00
eac6129fb3
Rework RabbitMQ 2019-10-05 15:13:00 +02:00
ed3aeb60d8
Rework OpenMapKit 2019-10-05 15:07:53 +02:00
6c16aedadd
Merge CKAN+Datapusher and ODK+Build into respective single build directories 2019-10-05 15:01:03 +02:00
d1fc5b7796
Rework OpenDataKit 2019-10-05 14:37:43 +02:00
4e107840a1
Rework Odoo 2019-10-03 21:53:42 +02:00
8c7890fcbc
Rework Motech 2019-10-03 21:48:36 +02:00
15e7600ae4
Rework ActiveMQ 2019-10-03 21:41:02 +02:00
57cd65115d
Rework MifosX 2019-10-03 21:29:19 +02:00
990a9dcb71
Rework MariaDB 2019-10-03 21:28:43 +02:00
a8bca6727b
Rework KanBoard 2019-10-03 20:48:09 +02:00
8b6f09c7d5
Rework GNU Health 2019-10-03 20:36:14 +02:00
1ec7dfcc95
Remove meta['proxy'] and use vmmgr register-app instead 2019-10-03 20:35:51 +02:00
0bc2daf4ad
Rework FrontlineSMS 2019-10-03 20:19:13 +02:00
ed0c6c90a7
Rework EcoGIS 2019-10-03 20:09:58 +02:00
2e674aa2d0
Update build-all.sh 2019-10-03 20:08:37 +02:00
c9ceaff648
Rework CTS 2019-10-03 13:19:52 +02:00
dfdd1de8e8
Fix fix-layer launching and env var population 2019-10-03 12:13:39 +02:00
77196fdcca
Rework fix-apk to cover all apk files 2019-10-03 12:12:45 +02:00
99d31eb0b5
Rework CrisisCleanup 2019-09-27 11:28:00 +02:00
8171f20309
Hostnames shouldn't have underscores 2019-09-24 20:09:08 +02:00
8d42eac029
Fix CKAN install script 2019-09-24 19:15:40 +02:00
9d1e3f2d60
Fix layers, destroy container on build cleanup 2019-09-24 19:15:22 +02:00
f9cc283477
Fix CKAN scripts 2019-09-24 10:53:12 +02:00
89d3dd7d0c
Fix layer ordering 2019-09-24 10:53:01 +02:00
7f0d9572e3
Add unpacked sizes 2019-09-24 10:04:13 +02:00
69f67649f3
Make CKAN script executable 2019-09-23 15:40:59 +02:00
b1d705487a
Fix packaging 2019-09-23 15:34:37 +02:00
bbfe11f557
Add checks, fix build 2019-09-20 15:43:01 +02:00
7116566519
Allow lxcbuilder to pack meta files 2019-09-20 10:13:41 +02:00
2ea88cabce
Install ncurses-libs by default in basic Alpine images 2019-09-20 10:12:53 +02:00
846a85e939
Move CKAN app meta+files back to lxc-apps 2019-09-20 10:12:18 +02:00
9f1f247484
Introduce LXC-composer 2019-09-18 11:29:58 +02:00
1efc713ae3
Bump wireguard to 0.0.20190702 - 4.19.52 2019-08-21 11:11:15 +02:00
ec7e843024
Bump wireguard to 0.0.20190702 - 4.19.52 2019-08-21 11:09:06 +02:00
afbd4a0f60
New approach in package building and versioning 2019-06-25 15:56:35 +02:00
446b855d03
Fix extlinux disk UUID configuration 2019-06-13 09:46:24 +02:00
7186daeb1c
Use only UUIDs for runtime disk management 2019-06-12 16:27:49 +02:00
4fbeae6f7e
Sanitize all generated passwords 2019-06-05 18:55:15 +02:00
b96aae6780
Fix forgotten values 2019-06-05 18:15:34 +02:00
d3d8e3b766
Bump vmmgr 2019-06-05 15:15:28 +02:00
f1fb7607b5
Finalize restructuralization 2019-06-05 13:19:22 +02:00
048c0053f5
Update apk cache before attempting local installation 2019-06-05 10:17:53 +02:00
a7c85af7cc
Reintroduce repo tagging 2019-06-05 09:42:40 +02:00
6822f605d1
Add packages for wireguard 2019-06-04 19:16:46 +02:00
64aced5d8d
Simplify prereq installation for abuild 2019-06-03 13:23:03 +02:00
bdc0d0a2a6
Add custom rabbitmq-server build 2019-06-03 11:24:54 +02:00
8e57996b9c
Add spotter repo key to Alpine 3.9 basic image 2019-06-03 11:16:01 +02:00
9d0e30f728
Switch edge repositories to spotter 2019-06-02 11:31:24 +02:00
b556ee3c30
Add local nginx repository 2019-06-02 11:30:53 +02:00
cd4591501f
Build custom GDAL, GEOS, PROJ.4, PostGIS 2019-06-02 09:51:21 +02:00
1989b886f5
Reflect restructuralization in build-all.sh 2019-06-02 09:37:06 +02:00
6e9e0dffe1
Restructure repository 2019-06-02 08:24:26 +02:00
8f07df8c43
Bump Tomcat to 8.5.41 2019-06-01 20:03:09 +02:00
f35efa4a05
Bump acme.sh to 2.8.1 2019-06-01 19:55:06 +02:00
79442aa60e
Update SeedDMS execution time limit + cronjob 2019-05-17 18:08:37 +02:00
bc587252b4
Add myip.php to extras 2019-05-15 10:26:59 +02:00
1824e05393
Point URLs to repo.spotter.cz 2019-05-15 10:24:38 +02:00
e0637ce2a2
Add php-openssl as SeedDMS dependency for SMTP authentication 2019-05-11 13:45:15 +02:00
7e1e54a63e
Add php7-fileinfo as dependency for SeedDMS 2019-05-08 19:13:15 +02:00
42ec6eeb95
Bump SeedDMS to 5.1.9
Revert "Bump SeedDMS to 5.1.10" due to SeedDMS ticket 435.

This reverts commit 5c48a8354704cc21d8967360c04243adbf516fcb.
2019-05-08 17:25:10 +02:00
5c48a83547
Bump SeedDMS to 5.1.10 2019-05-08 11:18:52 +02:00
e165e9d8f7
Bump ODK to 2.0.3 2019-05-08 10:54:03 +02:00
f97d06873e
Bump KanBoard to 1.2.9 2019-05-08 10:44:14 +02:00
959da1a423
Bump GNU Health to 3.4.1 + Trytond 4.6.15 2019-05-08 10:34:35 +02:00
081c517e21
Bump ActiveMQ to 5.15.9 2019-05-08 10:03:27 +02:00
dc41cd5f4a
Bump Tomcat 8.5 to 8.5.40 2019-05-08 10:01:39 +02:00
893c3028a1
Bump Tomcat 7 to 7.0.94 2019-05-08 10:00:49 +02:00
13153d341b
Fix diacritics in Sahana PDF exports, closes 2019-04-13 20:50:56 +02:00
71fb5a7ca3 Update cs.py 2019-04-02 20:02:08 +02:00
387a7072f9 Update cs.py 2019-04-02 19:43:40 +02:00
65adfe8e16 Update cs.py 2019-04-02 18:49:28 +02:00
efff62d21e Update cs.py 2019-04-02 18:48:35 +02:00
4e36b2fb9e Update lang.inc 2019-04-02 11:49:15 +02:00
fda64ee225
Hackfix KanBoard postgres schema (will be fixed in 1.2.9) 2019-03-22 14:39:25 +01:00
b4b03d3505
Reflect SSH changes in documentation 2019-03-22 12:43:15 +01:00
ca3fd66ad3
Add nss to Java image as workaround for upstream bug 2019-03-22 11:39:23 +01:00
1bb3a4330e
Add empty line expected by vmmgr parser 2019-03-22 10:55:23 +01:00
0c9c54f481
Enable SSH only if any keys exist 2019-03-22 10:31:59 +01:00
db81cd38b8
Don't remove empty /root/.ssh 2019-03-22 10:14:29 +01:00
4f72107c98
Phase out serial TTY, update SSH MOTD 2019-03-22 09:59:33 +01:00
dfd0273a2c
Implement VPN + SSH configuration 2019-03-22 08:49:00 +01:00
508cb47c1e
Add wireguard remote support config 2019-03-20 08:49:50 +01:00
f155f0bc22
Use noop I/O scheduler elevator 2019-03-20 08:20:02 +01:00
8ddbc72644
Prevent extlinux.conf overwrites 2019-03-19 21:46:39 +01:00
91b1cfb08c
Hackfix python-barcode support for GNU Health 2019-03-19 18:21:10 +01:00
cd6ea369d7
Run apk upgrade for the base images 2019-03-19 15:00:32 +01:00
95665357f5
Add documentation build to build-all.sh 2019-03-19 14:04:13 +01:00
8cc7553acd
Add documentation 2019-03-19 11:32:31 +01:00
938c47f950
Update vmmgr submodule 2019-03-01 15:16:33 +01:00
eb079b9699
Make Sigmah install script independent on internet 2019-03-01 14:53:30 +01:00
98e87aa772
Upgrade GNU Health to 3.4.0 2019-03-01 14:30:32 +01:00
d0751b1f2c
Switch Sigmah to Tomcat 8.5 2019-03-01 12:23:36 +01:00
4f81baf02f
Upgrade OpenDataKit Aggregate to 2.0 + switch to Tomcat 8.5 2019-03-01 12:23:22 +01:00
3e51996286
Switch Motech to Tomcat 7 2019-03-01 12:22:43 +01:00
bf1c8b3fbf
Switch MifosX to Tomcat 8.5 2019-03-01 12:22:17 +01:00
e051ad1e06
Downgrade Tomcat 8.0 to 7.0 which is still supported 2019-03-01 12:21:49 +01:00
6977e1e7bd
Add Tomcat 8.5 layer 2019-03-01 12:21:18 +01:00
aaf2611b82
Adapt MariaDB config for 10.3.13 2019-02-28 16:06:03 +01:00
4129eb85c3
Bump KanBoard version to 1.2.8 2019-02-28 15:02:47 +01:00
180997be4a
Simplify MariaDB installation script 2019-02-27 13:46:24 +01:00
6af3888fda
Fix register-app calls 2019-02-26 21:16:00 +01:00
cb4b17e1d5
Remove /usr/bin/ from init scripts as it's in $PATH 2019-02-26 21:11:08 +01:00
3a424c5726
Use lxc start/stop commands in install script instead of service 2019-02-26 21:08:42 +01:00
3f6a74b5bd
Fix crisiscleanup dependencies 2019-02-26 20:48:08 +01:00
ce325cf3d0
Squashed commit of the following:
- Bump basic OS to Alpine 3.9
 - Restructure repo and add layer versioning
 - Use JSON for all metadata
 - Merge abuild branch (but without abuild)
2019-02-26 20:24:02 +01:00
b4f5979354
Make MifosX installation a bit less error-prone 2018-12-10 09:31:18 +01:00
bbf8219504
Add FrontlineSMS Czech translation, closes 2018-12-07 17:02:47 +01:00
e58fc05a7d
Update Ruby to 2.4.5, reflect in CrisisCleanup, closes 2018-12-05 14:07:45 +01:00
e17da9f060
Update pandora config to align with upstream, closes 2018-12-05 12:39:59 +01:00
b134f3c935 Update cs.py 2018-12-04 20:49:53 +01:00
1ce6abc6e4
Add missing comma to Ushahidi config.json, fixes 2018-12-04 20:19:29 +01:00
64dda6172e
Bump ActiveMQ version to 5.15.8 2018-12-04 14:53:10 +01:00
f623ce13ba Update cs.py 2018-12-01 01:04:10 +01:00
ea289aff48 Update cs.py 2018-12-01 00:27:20 +01:00
2dbefce8db Update cs.py 2018-12-01 00:25:00 +01:00
1dce7601cf
Introduce Odoo application package 2018-11-17 22:26:55 +01:00
aecf3eede2
Remove extraneous strings 2018-11-17 20:43:34 +01:00
3dfd71eb03 Update cs.py 2018-11-13 22:12:56 +01:00
8d6b2bdee6
Suppress agetty spam when ttyS0 doesn't exist 2018-11-13 22:02:38 +01:00
afb121c72e Update cs.py 2018-11-13 20:33:07 +01:00
e09669fb73
Fix postfix networks, closes , 2018-11-13 18:56:25 +01:00
96490c6c3e
Move vmmgr init script to proper place 2018-11-07 22:59:56 +01:00
2a75965449
Update app-vmmgr 2018-11-07 22:35:10 +01:00
8adf762acc
Create directory for Acme.sh 2018-11-07 21:53:22 +01:00
a13c44d2d6
Update build part in README 2018-11-07 20:14:49 +01:00
718a3b7a3f
Update app-vmmgr 2018-11-07 18:41:26 +01:00
5992629869
Fix Motech install URL 2018-11-07 14:08:30 +01:00
43922d8192
Distribute GNU Health demo database along with image 2018-11-07 10:10:07 +01:00
49dffce0d0
Fix acme.sh APKBUILD 2018-11-07 10:06:20 +01:00
e4d2422974
Update app-vmmgr 2018-11-07 10:00:39 +01:00
0ffbe9bb58
Add acme cron script to the package 2018-11-06 22:07:27 +01:00
12869d5dca
Add build key creation notes 2018-11-06 22:06:33 +01:00
5de59917cd
Add fallback nginx host 2018-11-04 19:50:48 +01:00
89a430fe5a
Update motech install script to use local hostname 2018-11-04 19:50:23 +01:00
e4bf6effe1
Update install scripts for upcomming vmmgr changes 2018-11-03 15:53:51 +01:00
d833b439c7
Remove extraneous variable 2018-11-02 17:46:16 +01:00
af6f90f9cb
Update app-vmmgr 2018-11-01 22:56:35 +01:00
6e182a9414
CRLF fix 2018-11-01 22:33:39 +01:00
6822269c84
Fix VM provisioning, update README 2018-11-01 15:30:28 +01:00
1812e27e1e
Add openssh-client to build toolchain 2018-11-01 13:37:24 +01:00
b7d9cec76a
Add vmmgr submodule 2018-11-01 13:04:42 +01:00
e225af87fb
Preparation for vmmgr submodule 2018-11-01 12:51:06 +01:00
58dc418e87
Create basic.tar as part of build-all 2018-11-01 10:01:15 +01:00
ab62d9bafc
Enable swap immediately after creation 2018-10-31 23:09:24 +01:00
35a70fd5c1
Streamline VM provisioning 2018-10-31 22:44:13 +01:00
072b529c9c
Create /var/log/lxc/ as part of lxc package 2018-10-31 21:49:17 +01:00
979060da69
Fix sahana-demo admin creation 2018-10-31 18:02:22 +01:00
410958a2a7
Simplify compile_url 2018-10-31 16:42:45 +01:00
76220d811d
Allow to set HDD password via command line 2018-10-31 14:16:03 +01:00
5919719f3e
Clean log and autostart on uninstall 2018-10-31 13:56:59 +01:00
20a6d670ca
Make AppMgr table more rigid 2018-10-31 11:27:15 +01:00
b76a350d7b
Stop app before uninstalling 2018-10-31 10:21:42 +01:00
cdb74d9677
Typo fix 2018-10-31 09:58:54 +01:00
905f2c62c1
Drop DB object only if they exist 2018-10-31 09:55:46 +01:00
61fab326c3
Revert "Update uninstall script not to fail on clean installation"
This reverts commit a339c8e8ff8b0fdcde1d3367afd26ea980b1149e.
2018-10-31 09:42:01 +01:00
237342254f
Partially revert unpacking stage in AppMgr 2018-10-31 09:40:53 +01:00
a339c8e8ff
Update uninstall script not to fail on clean installation 2018-10-31 08:28:26 +01:00
f98edaff58
Fix appmgr metadata fetching logic 2018-10-31 08:16:06 +01:00
d5a5962ee2
Don't fail on rabbitmq objects removal in Pandora uninstall 2018-10-31 07:47:08 +01:00
5ba5461a80
Add unpacking stage to AppMgr installation 2018-10-31 07:42:38 +01:00
0f4c2756ec
Fix SeedDMS uninstall script 2018-10-31 07:33:30 +01:00
6111325402
Fix db names in ODK Build uninstall script 2018-10-31 07:29:35 +01:00
b772f92c22
Transform PackageMgr into queue-backed AppMgr 2018-10-30 23:59:59 +01:00
eb27d92383
Escape names in Mifos uninstall script 2018-10-30 23:53:15 +01:00
f6c44f3d0c
rm -f cronjobs in uninstall scripts 2018-10-30 17:54:19 +01:00
7bca441acd
Add exit code to install scripts 2018-10-28 19:50:35 +01:00
25689d6345
Start with race condition mitigations 2018-10-28 18:20:27 +01:00
f675996e60
Add config file locking 2018-10-28 18:19:45 +01:00
cb0d0012c9
set -ev 2018-10-28 16:04:11 +01:00
1400bab1e1
Fix typo 2018-10-28 15:07:11 +01:00
cb2a3d65d8
Fix Sahana install scripts 2018-10-28 14:31:52 +01:00
6bafd28e3e
Split off sahana-shared from Sahana 2018-10-28 08:56:24 +01:00
5e4dbd6adf
Uninstall both CKAN databases 2018-10-28 08:27:36 +01:00
0a32d9ed9d
Make vm-ping more resilient, closes 2018-10-28 08:00:14 +01:00
6b38073372
Redirect to login when trying to access setup unauthenticated 2018-10-27 22:20:09 +02:00
d2b410efe8
Move common app settings below app manager 2018-10-27 21:35:49 +02:00
7c5b482392
fixes 2018-10-27 21:33:56 +02:00
874700ecb4
Remove excessive param 2018-10-27 21:20:56 +02:00
1060651116
Remove debug mode and move relevant files to zz-build 2018-10-27 21:19:57 +02:00
afe8df823f
Reimplement cert handling, strip useless cli params 2018-10-27 21:13:35 +02:00
6fb1e12ca6
Add uninstall scripts 2018-10-27 15:33:22 +02:00
38524e70af
update repo action + fixes 2018-10-27 12:49:22 +02:00
94048ba2fe
Show percentage as a whole number, clarify strings 2018-10-27 12:21:00 +02:00
960e7a2466
minor fixes 2018-10-27 06:54:54 +02:00
513c0839a5
Show installation progress in percents 2018-10-26 22:42:34 +02:00
848e99b4af
fixes 2018-10-26 22:11:34 +02:00
977b9af923
Add repository login form to frontend template 2018-10-26 22:05:43 +02:00
77965c614a
Split build script 2018-10-26 21:54:34 +02:00
780e469f82
Add uninstallation 2018-10-26 21:52:06 +02:00
65dfff8eb0
simplify pending counters, make werkzeug server threaded 2018-10-26 19:08:14 +02:00
951ae86520
Add VMMgr/PkgMgr install progress 2018-10-26 17:31:40 +02:00
920f01cf45
Change repo configuration structure 2018-10-26 15:38:35 +02:00
8be2bb2083
Fix install path in install.sh 2018-10-26 15:02:11 +02:00
203a70bdbd
Rename setup to install 2018-10-26 14:34:01 +02:00
b1cb57ab48
Uninstall + resiliency test 2018-10-26 14:12:12 +02:00
c6954816be
VMMgr - Install app + consolidate apps table 2018-10-26 11:15:48 +02:00
396653c9a6
eliminate SOURCE_DIR 2018-10-25 22:22:36 +02:00
7df7428acf
Build lxc pacakges to /srv/build/lxc 2018-10-25 22:17:39 +02:00
204318ef44
Use --xattrs in lxc-pack 2018-10-25 22:09:57 +02:00
f9218366fa
Reorganize build process 2018-10-25 22:05:48 +02:00
3abd3cf835
Install apps from custom repo, simplify usage of SOURCE_DIR 2018-10-25 21:48:35 +02:00
a0cf39811c
show all apps in one box 2018-10-22 11:59:46 +02:00
ac69aebf4e
Display online packages in setup-apps 2018-10-21 11:36:32 +02:00
07a195ab05
Simplify method calls in portal templates 2018-10-21 11:05:25 +02:00
867a5d4d69
Don't instantiate vmmgr on every request. Only reload config. 2018-10-21 11:04:48 +02:00
7abe6af068
VMMgr: Unify config, add pkg size 2018-10-21 10:09:02 +02:00
efdd1b1c68
Bump version of Alpine 3.8 rootfs 2018-10-15 20:51:04 +02:00
1817da3ebc
Bump KanBoard to 1.2.6 2018-10-15 20:34:37 +02:00
76616fcab9
Bump ActiveMQ to 5.15.6 2018-10-15 16:21:26 +02:00
2a6d271d2d
Fix solr dependency 2018-10-15 15:41:27 +02:00
66c61e581d
Fix more pkgmgr methods 2018-10-15 15:40:40 +02:00
de0dcc79f4
deps fixes 2018-10-15 14:58:24 +02:00
14984b3199
Distinguish registered apps and packages 2018-10-15 12:15:22 +02:00
1c967a0431
Add package manager prototype 2018-10-02 22:13:39 +02:00
ab78d18491
"fd" is apparently not pythonic 2018-10-02 22:09:34 +02:00
30254eb527
better lxc-pack unlinking 2018-10-02 17:38:58 +02:00
dbce751225
typo 2018-10-02 17:37:27 +02:00
91ebd4193e
Sign using py3-cryptography 2018-10-02 17:35:49 +02:00
48e31ca0f1
Add metadata for all packages 2018-10-02 14:29:17 +02:00
528e676d4d
Add exception handling for lxc-pack 2018-10-02 13:10:24 +02:00
b3cde0cdc8
Add a bunch of package descriptors for testing 2018-10-02 13:00:17 +02:00
88ae8848de
Add packaging script 2018-10-02 12:58:12 +02:00
31f7c408d4
Install tar and xz packages in DEBUG mode 2018-10-02 12:53:44 +02:00
a0dc16535d
Fix sahana demo + sambro install 2018-09-21 18:18:35 +02:00
67caca8171
Move app configuration to pre-start hook 2018-09-21 16:21:55 +02:00
48492bf405
Setup fixes 2018-09-21 15:23:02 +02:00
ed2e1193cb
Better s6 service stop handling 2018-09-21 11:04:12 +02:00
74b7d9478f
Include edge repos in basic alpine image 2018-09-21 09:17:19 +02:00
00eff6fa85
Startup and location fixes 2018-09-20 20:46:25 +02:00
96249760fd
Put config update script installation to the end of setup 2018-09-20 15:45:00 +02:00
011cf4356b
Rewrite confupdater back to individual files, change app start flow 2018-09-20 14:03:23 +02:00
da896c79f2
Stop MariaDB using SIGTERM 2018-09-20 07:21:24 +02:00
33a4c10f7a
Fix Pandora admin hash generator 2018-09-19 17:04:42 +02:00
0a30deb7e2
Have s6-setuidgid look up names from /etc/hosts 2018-09-19 16:52:29 +02:00
e055eb3542
fix copytypo 2018-09-19 10:56:09 +02:00
00154ef899
Implement lxc-build HALT and fix some minor regressions 2018-09-18 16:27:42 +02:00
fc99f7f6ab
Integrate forgotten update-url.sh 2018-09-18 15:18:29 +02:00
b0fe54d034
Fix VMMgr URL compilation 2018-09-17 16:12:17 +02:00
22fa90d785
Use UID/GID for lxc=attach in cron jobs 2018-09-16 19:59:01 +02:00
0240e95621
Use py-bcrypt instead of invoking container 2018-09-16 17:19:13 +02:00
3a2130eb48
Change method for postgres readiness check 2018-09-15 13:43:46 +02:00
4543bbc49f
move clean-ephemeral to lxc pre-start hook 2018-09-14 23:56:02 +02:00
433e23022a
CRLF 2018-09-14 23:12:07 +02:00
d141fff4c1
Start iptables just once 2018-09-14 18:23:16 +02:00
1894893a6f
create=(file|dir), fix setup errors 2018-09-14 18:13:11 +02:00
d957227d40
Fix 2018-09-14 15:58:10 +02:00
725ecc75a6
Move "postfix" host to "host" 2018-09-14 11:24:04 +02:00
30e2232b71
Integrate postfix into basic 2018-09-14 11:21:35 +02:00
b8bb87390f
Make cgroups preexisting hard dependency 2018-09-14 10:41:00 +02:00
ab82ed3fac
LXCize cronjobs 2018-09-14 10:33:07 +02:00
cbaf4d6941
LXCize Ushahidi setup 2018-09-14 09:43:54 +02:00
f74586c94c
LXCize Sigmah setup 2018-09-14 09:09:46 +02:00
d1991ddc7d
LXCize SeedDMS setup 2018-09-14 09:02:16 +02:00
8cc184c7e7
LXCize SAMBRO setup 2018-09-14 08:53:27 +02:00
8ac781bd8b
LXCize Sahana-Demo setup 2018-09-14 08:42:37 +02:00
b47df1d71d
LXCize Sahana setup 2018-09-13 22:09:01 +02:00
f747b89a5d
LXCize Pandora setup 2018-09-13 22:02:25 +02:00
f2a9529e29
LXCize OMK setup 2018-09-13 21:54:36 +02:00
44546c4816
LXCize ODK Build setup 2018-09-13 21:52:38 +02:00
57ecc71ebe
LXCize ODK setup 2018-09-13 21:30:38 +02:00
365f983c2d
LXCize Motech setup 2018-09-13 21:14:53 +02:00
db9458b4ad
LXCize MifosX setup 2018-09-13 21:10:32 +02:00
b7aedad589
start/stop prepreqs 2018-09-13 20:42:11 +02:00
86f4f940c7
LXCize KanBoard setup 2018-09-13 20:38:36 +02:00
986c13f4c7
LXCize GNU Health setup 2018-09-13 20:32:57 +02:00
01fc001990
LXCize FrontlineSMS setup 2018-09-13 19:57:14 +02:00
7dbfe8533c
LXCize CTS setup 2018-09-13 19:27:23 +02:00
4c5568f807
amendments 2018-09-13 19:17:29 +02:00
d3ecfbf4e7
LXCize CC setup 2018-09-13 18:31:19 +02:00
367deb0897
Set PATH in lxc-build 2018-09-13 16:21:16 +02:00
0fda481317
LXCize RabbitMQ setup 2018-09-13 16:05:13 +02:00
677ac1bc4c
LXCize MariaDB setup 2018-09-13 15:50:30 +02:00
7ebdfc1866
Add missing mounts 2018-09-13 14:58:03 +02:00
ea4b883b3f
LXCize Ushahidi build 2018-09-13 14:44:32 +02:00
2b46473cb0
LXCize Sigmah build 2018-09-13 14:39:35 +02:00
2c965f7cfb
LXCize SeedDMS build 2018-09-13 14:35:42 +02:00
79f170ff01
LXCize Sahana build 2018-09-13 14:26:27 +02:00
523765188a
LXCize RabbitMQ build 2018-09-13 14:20:37 +02:00
384f43748b
Reorder pandora build 2018-09-13 14:17:45 +02:00
629e247570
LXCize Pandora build 2018-09-13 14:15:22 +02:00
2f6ba72cea
LXCize OMK build 2018-09-13 14:08:52 +02:00
41b598936f
Fix fix-apk dropping last package 2018-09-13 13:59:56 +02:00
cbd65805f8
LXCize ODK Build build 2018-09-13 13:50:40 +02:00
05bf6da6ce
LXCize ODK build 2018-09-13 13:42:36 +02:00
89b11a6112
LXCize Motech build 2018-09-13 13:39:25 +02:00
444cfb58b1
LXCize MifosX build 2018-09-13 13:34:27 +02:00
cecb8d7dba
LXCize MariaDB build 2018-09-13 13:27:09 +02:00
ce71447928
LXCize KanBoard build 2018-09-13 13:22:15 +02:00
ecf1143524
LXCize GNU Health build 2018-09-13 13:12:46 +02:00
cd6d3815d6
LXCize Frontlinesms build 2018-09-13 13:05:39 +02:00
88008ad40b
LXCize CTS build 2018-09-13 10:38:58 +02:00
6583acc129
Freeze CC version 2018-09-12 19:42:12 +02:00
344b6be624
fixlayer 2018-09-12 19:04:55 +02:00
c7c949eead
cc build 2018-09-12 16:16:38 +02:00
d6447bb437
fix-apk 2018-09-12 16:12:23 +02:00
a25186b5ea
Dockerize the lxc-build a bit more 2018-09-12 16:08:10 +02:00
939d9b0d45
Fix tomcat build 2018-09-12 14:19:36 +02:00
b02d70df38
remove ephemeral layer 2018-09-12 13:59:37 +02:00
5facbb1b35
Modularize proxy registration 2018-09-12 13:19:16 +02:00
9f02c98d1b
ckan service 2018-09-12 11:56:31 +02:00
bc4c073b43
CKAN setup 2018-09-12 11:44:30 +02:00
cff204ca46
Add un/register container IP 2018-09-12 11:12:30 +02:00
fa70f85acb
solr global 2018-09-11 20:28:59 +02:00
e8354e59c9
Add ENV 2018-09-11 19:26:37 +02:00
a9e99a82c5
Create /var/log/lxc 2018-09-11 18:36:08 +02:00
0b56beea89
Add auxiliary script for LXC compilation 2018-09-11 17:08:09 +02:00
9b4be311e6
ckan test 2018-09-07 18:46:30 +02:00
354c98bbf0
typo 2018-09-07 16:03:14 +02:00
89126185eb
Update lxcfiles to LXC 3 2018-09-07 15:47:44 +02:00
bed2d7f5f6
Use compiled LXC 2018-09-07 15:20:07 +02:00
de640bb005
Prepare for LXC3 2018-09-07 14:37:38 +02:00
6ca49d4865
setuid + wget simplification 2018-09-06 21:15:43 +02:00
26bbab959f
bit differently 2018-09-06 14:55:51 +02:00
b56ac216ce
postgres test2 2018-09-06 14:52:46 +02:00
03050dd389
pg 2018-09-06 14:27:40 +02:00
5db1ed2baf
postgres uid tryfix 2018-09-06 14:20:30 +02:00
9a8c2103d4
yeah.. more vars 2018-09-06 10:02:10 +02:00
fd07ec7cb8
guess what? more vars 2018-09-06 09:50:10 +02:00
d0e3be5ce6
more vars 2018-09-06 09:45:13 +02:00
43c8962b0f
fix vars 2018-09-06 09:41:40 +02:00
6427a6ec09
Make lxc-build a bit more presentable 2018-09-06 09:32:20 +02:00
933a75bf57
iptables 2018-09-05 23:12:31 +02:00
eb69ea3cf1
fixes 2018-09-05 23:08:55 +02:00
1b07ef795e
CKAN + deps stup test 2018-09-05 22:20:24 +02:00
402ac5a469
Remove debug messages 2018-09-05 21:54:58 +02:00
8a65b6a0f4
copy_tree 2018-09-05 21:21:07 +02:00
824af776d9
more fixes 2018-09-05 19:44:23 +02:00
dd955c5e59
set -ev 2018-09-05 19:34:21 +02:00
260c8159c7
minor fixes 2018-09-05 19:29:56 +02:00
d21b09d547
minor fixes 2018-09-05 19:26:15 +02:00
1608b7a93f
Some lxc-build fixes 2018-09-05 18:25:27 +02:00
26075bad79
CRLF 2018-09-05 17:46:44 +02:00
deacaa94be
lxc-build + CKAN test 2018-09-05 17:41:38 +02:00
c3255cb00d
+x 2018-09-04 22:52:42 +02:00
1619380fdc
scripts 2018-09-04 22:50:41 +02:00
3a6011aad4
LXCize basic runtimes 2018-09-04 22:45:52 +02:00
b6ac14880b
fix 2018-09-04 22:13:08 +02:00
1c40252112
Initial commit for LXCification 2018-09-04 21:42:26 +02:00
42523d1aa3
Update Dockerfile maintainer field to recommended method 2018-09-03 22:12:08 +02:00
bf94306e25
De-brand AppMgr and scripts 2018-09-03 17:24:48 +02:00
cc20132a1f
Display Portal box only when app is visible and started, related to 2018-09-03 16:18:15 +02:00
afa81c81cd
Blackboxize VM start, related to 2018-09-03 16:06:56 +02:00
e7f8b365cd
Fix OMK build for recent versions 2018-09-03 16:00:39 +02:00
dfc3dafe37
Add ODK Build selfsigned cert injection 2018-09-03 15:59:05 +02:00
d47891b19c
Migrate CKAN DataPusher to s6 and add selfsigned cert injection 2018-09-03 15:58:41 +02:00
bc1994c31b
Add option to create selfsigned certs to AppMgr 2018-09-03 15:57:47 +02:00
ae70b53074
Fix URL compilation for AppMgr confupdate which expects only host 2018-09-02 22:09:54 +02:00
765f34f3f4
Don't clutter disk when debug mode is not set 2018-09-02 21:07:05 +02:00
46f212f1d9
Add spotter-ping.php 2018-09-02 18:16:48 +02:00
c564eda438
Add tty on serial port 2018-09-02 13:09:51 +02:00
9baf26ce56
Make Alpine start with nomodeset and custom tty prompt 2018-09-01 23:09:51 +02:00
c6c50bb3c5
Add script for automatic disk extension + swap creation 2018-09-01 15:16:22 +02:00
58622fa5b6
Rebuild /etc/issue on every boot 2018-08-31 09:13:59 +02:00
ed7171e8cc
Fix nignx paths to error 502 custom page 2018-08-30 21:31:57 +02:00
db514b6f4f
Fix escapes in Ushahidi update_email 2018-08-30 21:15:48 +02:00
9f6ff9f0ee
Make acme.sh executable 2018-08-30 20:09:18 +02:00
db3b04c90b
Fix forgotten Tryton version bump 2018-08-30 19:22:17 +02:00
377d135667
Add less to useful basic tools 2018-08-30 18:40:42 +02:00
2eb4a9fa3f
Bump PostgreSQL JDBC driver to 42.2.5 2018-08-30 18:38:11 +02:00
36c5ebbd78
Bump GNU Health to 3.2.10 and Tryton to 4.2.15 2018-08-30 18:35:05 +02:00
a6ab5edc02
Remove workaround for CKAN compatibility with Postgres 10 2018-08-30 18:23:00 +02:00
43b690c1a2
Bump ActiveMQ version to 5.15.5 2018-08-30 18:20:02 +02:00
05c4fdd99d
AppMgr visual improvements + removed few code repetitions 2018-08-30 18:04:47 +02:00
97c2c18ca3
Update Ushahidi Czech translation 2018-08-30 13:37:38 +02:00
eeb0ddeed5
Increase PHP workers limit 2018-08-30 13:31:53 +02:00
83fc9a29a4
Update SeedDMS Czech translation 2018-08-29 11:09:04 +02:00
f980dcafd5
Increase wait time for Docker socket 2018-08-29 11:06:19 +02:00
e2bb75a723
Add Ushahidi Czech translation and force settings 2018-08-29 11:05:09 +02:00
1b232ef8f3
Bump Ushahidi to 3.12.3 and use different installation method 2018-08-29 11:04:41 +02:00
e2cae77ecd
Update SeedDMS Czech translation 2018-08-27 15:44:45 +02:00
32ca0a827a
Update Sahana Czech translation 2018-08-27 15:41:59 +02:00
7a756aeaf2
Simplify path to SeedDMS previewers patch 2018-08-23 10:54:16 +02:00
2e74f8242c
Update OpenRC deps after spotter-appmgr and docker are installed 2018-08-23 10:54:16 +02:00
be512ee2b3
Bump Ushahidi version to 3.12.1 2018-08-23 10:54:16 +02:00
36f8572dfe
Update SeedDMS Czech translation 2018-08-23 10:53:06 +02:00
e2434abc96
Add SeedDMS Czech translation, related to 2018-08-20 14:51:58 +02:00
c77bbdae5e
Bump KanBoard version to 1.2.5, closes 2018-08-20 13:29:36 +02:00
7784a815a3
Mount sahana-demo default template for database population 2018-08-20 13:23:36 +02:00
3fb89d89d1
Install Sahana Demo container as part of standard installation 2018-08-17 15:33:59 +02:00
4d4903e7ec
menu, admin login, anonymized portal , closes 2018-08-17 14:10:29 +02:00
0926190a70
Fix CKAN data files ownership, resolves 2018-08-14 18:25:20 +02:00
4621dbbade
Unify non-login shells 2018-08-14 18:17:48 +02:00
1adc0977e7
Clarify spotter-appmgr cert_installed message 2018-08-14 17:39:54 +02:00
ee07661411
Properly escape Ushahidi SQL queries 2018-08-14 17:38:54 +02:00
1d718077f9
Add definition for restart_nginx used by callback 2018-08-14 16:35:28 +02:00
6532ed61e0
Add missing variable in spotter-appmgr confupdater 2018-08-14 16:27:15 +02:00
9036751cbe
Bump GNU Health tryton version to 4.2.14 2018-08-14 15:52:02 +02:00
81519dcca4
Modify app config only when the app is installed 2018-08-14 15:37:28 +02:00
86e411df12
Return custom 404 page from spotter-manager, related to 2018-08-14 15:10:32 +02:00
3f8aee2d84
Use CKAN git master again, closes 2018-08-10 21:04:22 +02:00
06b66fd04c
Fix host url generation for update_apps_urls 2018-08-10 21:03:21 +02:00
7c8f101868
Instantiate AppMgr on every request 2018-08-07 16:22:44 +02:00
325f818494
Add FrontlineSync and move SMS Sync on Portal, closes 2018-08-07 15:48:38 +02:00
f22d6ed689
Add SeedDMS attribute customization, closes 2018-08-05 08:29:56 +02:00
20f8172e44
Update Czech translation of Mifos X community-app 2018-08-02 22:05:46 +02:00
65aeb7aac4
Add missing previous_run_status column for MifosX, related to 2018-08-02 21:10:21 +02:00
50e4ef0330
Typo and logical fixes in basic installation 2018-08-02 11:15:15 +02:00
cbed880961
Update readme to reflect new gitlab URL 2018-08-02 10:43:37 +02:00
b42fe67f89
Merge spotter-appmgr WSGI application 2018-08-02 10:41:40 +02:00
edcbb2633e
Update sahana translation 2018-08-02 10:39:51 +02:00
4fa3f59675
Replace python2 with python3 in basic setup 2018-07-19 11:53:36 +02:00
5cc0cdb701
Update portal links, closes 2018-07-19 11:36:16 +02:00
5a32b94da1
Show proper external URL in Pandora, fixes 2018-07-18 12:32:40 +02:00
a8c6339bfc
Increase timeout of service start wait 2018-07-16 11:52:43 +02:00
e3ec786c41
Remove unused SSH keys 2018-07-16 08:48:30 +02:00
198b65ab29
Stop services required for build as part of build script
Halt build chain on any error
2018-07-15 21:55:35 +02:00
1c2d9c4124
Have Docker start cgroups as dependency
Reverts commit 5a0a00f296c37f6be8897b0133c18ba1f121dea9.
2018-07-15 21:53:09 +02:00
b4db5a5b78
Install flask-debugtoolbar for CKAN 2018-07-15 20:47:02 +02:00
fb0a8bc9da
Add remaining SeedDMS converters 2018-07-15 16:05:12 +02:00
9dc7792b9f
Freeze CKAN version on last working commit 2018-07-15 15:59:37 +02:00
bc524baa19
Simplify MariaDB config 2018-07-15 14:06:40 +02:00
6484a99ccb
Bump Motech version to 1.3 2018-07-13 13:40:29 +02:00
5c4d526660
Align Sahana files with upstream 2018-07-12 22:31:50 +02:00
7db69ccf13
Fix path to Sahana Dockerfile for Sahana-Demo and SAMBRO 2018-07-12 22:19:10 +02:00
435730095c
Bump SeedDMS version to 5.1.8 2018-07-10 18:30:03 +02:00
b1cb08a815
Add wait loop for RabbitMQ 2018-07-10 16:48:20 +02:00
1fbc52372c
Reflect requirements.txt changes for Pandora 2018-07-10 15:59:05 +02:00
1e5463db21
Bump ActiveMQ version to 5.15.4 2018-07-10 15:21:38 +02:00
ca9b38e141
Hackfix CCleanup NodeJS version dependency 2018-07-09 21:58:44 +02:00
7d62e9e0fa
Bump GNU Health Tryton version to 4.2.13 2018-07-09 21:00:21 +02:00
522f9a7345
Install npm as a separate package 2018-07-09 19:44:58 +02:00
5d0928f2aa
Reflect Postfix 3.3 and json-c (PostGIS) propagation to main repo 2018-07-09 18:12:53 +02:00
5a0a00f296
Mount cgroup in /etc/fstab by default 2018-07-09 17:08:34 +02:00
4a6974415f
Bump Tomcat version to 8.0.53 2018-07-09 16:41:55 +02:00
643ab39fb8
Remove paxctl as kernel is no longer hardened 2018-07-09 16:21:48 +02:00
a9446fa1e4
Reflect that kernel is no longer hardened in extlinux.conf 2018-07-09 16:17:58 +02:00
e403df0094
Bump Alpine version to 3.8 2018-07-09 15:14:44 +02:00
85227cd335
Remove CTS psycopg2 update as it's already in upstream 2018-05-10 15:19:28 +02:00
a4eeeed7ea
Replace DejaVu font with OpenSans (smaller size, thinner typeface) 2018-05-10 14:47:25 +02:00
6ef869b6c5
Fix SeedDMS fulltext indexing for PDF 2018-05-10 13:55:06 +02:00
ecbc376360
Add JMX host for Motech 2018-05-08 22:25:19 +02:00
59a54534e7
Convert some CRLF files 2018-05-07 14:21:09 +02:00
e5cc461f4a
Update SeedDMS to version 5.1.7, reflect FS changes 2018-05-05 22:53:42 +02:00
b10f5f5abc
Fix missing hostname in /etc/issue 2018-05-05 21:23:29 +02:00
0ae3b2ad61
Change SeedDMS Docker image base 2018-05-01 10:03:35 +02:00
375d345325
Fix Docker contexts for runtimes 2018-04-30 23:27:33 +02:00
551e9801b2
Migrate ActiveMQ to S6 supervisor 2018-04-30 23:18:04 +02:00
23e9de7630
Create a package with runtimes and make use of it 2018-04-30 23:17:16 +02:00
4be017508b
Make use of the runtime images 2018-04-30 22:57:50 +02:00
d4aceca201
Introduce basic images with s6 and python2 2018-04-30 22:39:44 +02:00
bcf4295086
Migrate CKAN to S6 supervisor 2018-04-30 22:02:54 +02:00
44035fba50
Simplify MariaDB configuration 2018-04-30 20:54:23 +02:00
6a988d8297
Stop GNU Health container using SIGINT 2018-04-29 22:17:37 +02:00
98cfa74e88
Migrate OpenMapKit to S6 supervisor 2018-04-29 22:02:03 +02:00
887b99c63b
Migrate MariaDB to S6 supervisor 2018-04-29 21:48:14 +02:00
6111c3be7c
Add Postfix to GHU Health init dependencies 2018-04-29 20:55:59 +02:00
ae43b232db
Move Motech to Tomcat root context 2018-04-29 20:55:59 +02:00
5fc43ada06
Move MifosX comunity-app to Tomcat root context 2018-04-29 20:55:58 +02:00
cb1033fd19
Move ODK Aggregate to Tomcat root context 2018-04-29 20:55:58 +02:00
075945a858
Rewrite spotter-appmgr (rest of the squashmerge) 2018-04-29 20:51:20 +02:00
701c4a0237
Update README 2018-04-29 20:49:34 +02:00
0756d354bb
Revert long naming for OpenMapKit 2018-04-29 20:49:34 +02:00
53b470118d
Revert long naming for OpenDataKit Build 2018-04-29 20:49:33 +02:00
e02745c89c
Revert long naming for OpenDataKit 2018-04-29 20:49:33 +02:00
9164ea8111
Revert long naming for FrontlineSMS 2018-04-29 20:49:33 +02:00
89bd1882c0
Revert long naming for CKAN DataPusher 2018-04-29 20:49:33 +02:00
a15a716066
Revert long naming for CrisisCleanup 2018-04-29 20:49:32 +02:00
c5e55e7f2e
Rewrite spotter-appmgr (partial squashmerge) 2018-04-29 20:48:57 +02:00
19ec74de4d
Bump PostgreSQL JDBC driver to 42.2.2 2018-04-24 22:13:18 +02:00
4fdff55d0e
Bump MifosX version to 18.03.01, closes 2018-04-22 20:42:17 +02:00
1dc2a6951a
Add check for MariaDB status in Ushahidi update-url.sh 2018-04-22 20:41:30 +02:00
70048ad796
Bump Tomcat version to 8.0.51 2018-04-22 11:28:51 +02:00
d50463a2c4
Bump requirements for PostGIS 2018-04-21 16:43:15 +02:00
883cfce04c
Check container status before running cron jobs 2018-04-09 15:20:20 +02:00
8e7f48339b
Use explicit @edge repository tag where applicable 2018-04-05 14:05:22 +02:00
934f6fe726
Upgrade Postfix to 3.3, supporting foreground start 2018-04-05 14:04:28 +02:00
3030131322
Introduce FrontlineSMS Docker image, closes 2018-03-30 21:58:44 +02:00
f17ea16a7d
Update Czech Sahana translation 2018-03-30 21:58:19 +02:00
867a4c06ec
Introduce a separate Java image and base all Java apps on it 2018-03-30 21:58:04 +02:00
5b714d0b10
Make spotter-appmgr restart nginx on port change instead of just reloading 2018-03-29 14:32:15 +02:00
e45d836e88
Update Czech Sahana translation, also closes 2018-03-29 14:31:01 +02:00
215f1bc80b
Add more ODK application links to Portal, closes 2018-03-29 13:09:02 +02:00
c42c59d9ac
Use Motech IP in install script instead of hostname 2018-03-27 16:27:09 +02:00
6cc27f7e48
Fix SeedDMS previewers and bump version to 5.1.6 2018-03-27 14:13:01 +02:00
5e06bad941
Provide MIME types for CKAN to recognize XLSX and ODS 2018-03-26 23:50:50 +02:00
41ae6eedb3
Make spotter-appmgr restart service after update-url.sh 2018-03-26 21:53:49 +02:00
dd2a936cc7
Make spotter-appmgr update proxy target IP directly in nginx 2018-03-26 21:12:48 +02:00
e52fbfd1f2
Fix OMK installation 2018-03-26 20:53:03 +02:00
cc259c8122
Remove invalid Sigmah dependency on ActiveMQ 2018-03-26 15:38:35 +02:00
50b946decb
Update README host assignment and make update-url.sh executable 2018-03-26 15:29:43 +02:00
70bb77e11e
Shorten OpenMapKit handle 2018-03-26 15:28:18 +02:00
459d0f711e
Shorten ODK Aggregate handle 2018-03-26 15:27:48 +02:00
0d8a9634e3
Shorten ODK Build handle 2018-03-26 15:08:16 +02:00
d1a7c4922b
Shorten CKAN Datapusher handle 2018-03-26 15:08:03 +02:00
551d71750a
Shorten CrisisClenup handle 2018-03-26 15:07:40 +02:00
189b156854
Unify MifosX naming and nginx configuration for spotter-appmgr 2018-03-26 13:36:48 +02:00
0d2b1158f2
Unify Ushahidi naming and nginx configuration for spotter-appmgr 2018-03-25 23:21:54 +02:00
0255878ced
Unify Sigmah naming and nginx configuration for spotter-appmgr 2018-03-25 23:21:24 +02:00
2d3465c59d
Unify SeedDMS naming and nginx configuration for spotter-appmgr 2018-03-25 23:20:57 +02:00
bf5ca4c4b4
Unify SAMBRO naming and nginx configuration for spotter-appmgr 2018-03-25 23:20:34 +02:00
73c6793c66
Unify Sahana Demo naming and nginx configuration for spotter-appmgr 2018-03-25 23:20:08 +02:00
3cf4d8ec1f
Unify Sahana naming and nginx configuration for spotter-appmgr 2018-03-25 23:19:45 +02:00
71ab395bff
Unify Pandora naming and nginx configuration for spotter-appmgr 2018-03-25 23:18:24 +02:00
2c33b9a9c6
Unify OMK naming and nginx configuration for spotter-appmgr 2018-03-25 23:17:58 +02:00
c0d9204daf
Fix ODK Build database population 2018-03-25 23:17:28 +02:00
12b7200f9e
Unify ODK Build naming and nginx configuration for spotter-appmgr 2018-03-25 23:16:06 +02:00
2edd4e19f8
Unify ODK Aggregate naming and nginx configuration for spotter-appmgr 2018-03-25 23:14:56 +02:00
551e2a2938
Unify Motech naming and nginx configuration for spotter-appmgr 2018-03-25 23:13:55 +02:00
9d37aed199
Unify KanBoard naming and nginx configuration for spotter-appmgr 2018-03-25 23:12:13 +02:00
41075c974e
Update GNU Health demo data URL 2018-03-25 23:11:44 +02:00
672777dd5e
Unify GNU Health naming and nginx configuration for spotter-appmgr 2018-03-25 23:10:39 +02:00
527e4550d6
Unify CTS naming and nginx configuration for spotter-appmgr 2018-03-25 23:09:53 +02:00
f1c5e18cd9
Unify CrisisCleanup naming and nginx configuration for spotter-appmgr 2018-03-25 23:05:18 +02:00
084fa11984
Remove duplicit CKAN init.d link 2018-03-25 23:05:18 +02:00
a000f27092
Remove CKAN hackfix for self-signed certificate verification 2018-03-25 23:05:18 +02:00
c054be6dac
Adjust CKAN for spotter-appmgr 2018-03-25 23:05:18 +02:00
d44b5e7ba3
Unify CKAN naming and nginx configuration for spotter-appmgr 2018-03-25 23:05:10 +02:00
a2323d1496
Introduce acme.sh Let's Encrypt client 2018-03-25 22:50:18 +02:00
dd5301a10d
Introduce spotter-appmgr for application, domain and port management 2018-03-25 22:47:19 +02:00
258ece68f5
Bump GNU Health Tryton version to 4.2.10 2018-03-25 22:36:44 +02:00
2400bf5413
Add poststart delay to Docker init script 2018-03-24 16:18:00 +01:00
e6ea09b8ef
Move docker to default runlevel 2018-03-24 16:17:51 +01:00
dc5718abbc
Bump jQuery version to 3.3.1 2018-03-24 16:07:20 +01:00
18d2465714
Update Czech translation for Sahana 2018-03-21 18:38:34 +01:00
2f3b8e76fd
Add OpenDataKit to 00-install.sh 2018-03-17 21:59:53 +01:00
52557f54aa
Introduce build2xlsform into ODK Build container, closes 2018-03-17 20:49:36 +01:00
f436a00223
Fix OpenDataKit URL confusion once more, related to and others
- Partially revert commit 955a178
 - Move ODK Build to port 8x17
2018-03-17 16:43:37 +01:00
b298553bcf
Fix grsec attributes for Java keytool (just in case) 2018-03-17 16:10:23 +01:00
55b698a5d5
Update and rearrange OpenDataKit and OpenMapKit Portal tiles, closes 2018-03-16 22:23:18 +01:00
955a178767
Fix OpenDataKit URL confusion, closes 2018-03-16 21:44:37 +01:00
580a0258a7
Add installation script + Dockerfile for OpenDataKit Build, closes 2018-03-16 18:31:34 +01:00
6bec5b5e55
Use ruby image as base for CrisisCleanup 2018-03-16 17:30:11 +01:00
86de624d8c
Introduce separate Docker image for Ruby 2.3.6 runtime 2018-03-16 17:27:13 +01:00
b85afce06c
Remove unused data dir for OpenDataKit 2018-03-16 17:22:54 +01:00
d30aca4781
Remove Pan.do/ra client from Portal 2018-03-16 16:09:32 +01:00
412e9b7c42
Create OpenMapKit forms directory 2018-03-16 16:09:05 +01:00
77043ccd62
Add installation script + Dockerfile for OpenDataKit, closes 2018-03-16 16:08:18 +01:00
8a0abe9c99
Bump tomcat version to 8.0.50 2018-03-15 18:21:17 +01:00
b495cf35a1
Fix duplicit Czech in Sahana language selector, related to 2018-03-14 21:34:40 +01:00
f260971661
Add nginx + uwsgi stack for Sahana, closes 2018-03-14 12:13:00 +01:00
0671e7378e
Reflect Sahana upstream commit cacaadf 2018-03-12 19:13:58 +01:00
5f1b157f0b
More Sahana translations, related to 2018-03-03 15:03:55 +01:00
4f1539de2e
Reflect Sahana upstream commit cacaadf 2018-02-27 21:41:47 +01:00
c9591ed649
Update Sahana Czech translation, related to 2018-02-21 14:49:05 +01:00
5d0bee878a
Add Ushahidi CORS headers, resolves for iOS 2018-02-21 13:35:05 +01:00
a50ca2e067
Add Ushahidi mobile app support config, closes 2018-02-20 21:17:05 +01:00
d40cbe6616
Modify Pandora script to allow to build vanilla instance 2018-02-20 20:50:42 +01:00
b41839e3c0
Add Google API key to Sahana config, closes 2018-02-20 14:17:38 +01:00
7f0190e6ab
Allow to parametrize Sahana Demo template deployment 2018-02-20 14:17:16 +01:00
1d3b7b9d8b
Reflect Sahana upstream configuration change 2018-02-20 09:05:11 +01:00
15a4ba720b
Disable Sahana Coalitions, related to 2018-02-18 10:11:44 +01:00
4b91dfdc57
Set default nginx encoding to UTF-8, resolves 2018-02-17 16:43:49 +01:00
0fb5b51dc7
Add Mifos X mobile URL to Portal, closes . 2018-02-16 22:07:58 +01:00
a4040adf0d
Add KanBoard mobile URL to Portal, closes . 2018-02-16 21:51:53 +01:00
88559c1e25
Force Pandora download extension, closes 2018-02-16 21:31:25 +01:00
2241d4aea4
Add SAMBRO mobile URL to Portal, closes . 2018-02-16 19:45:39 +01:00
1087481016
Add Sahana CAP GIS layers to Spotter template 2018-02-12 14:55:10 +01:00
1d68ced82a
Disable simplify_tolerance in SAMBRO template () 2018-02-12 13:28:43 +01:00
5637fb2231
Disable simplify_tolerance in Sahana Spotter template, closes 2018-02-12 13:24:36 +01:00
0455906dfc
Fix wrongly translated Sahana string, resolves 2018-02-10 22:15:40 +01:00
10f2353a85
Fix Sahana Demo mount paths 2018-02-10 13:37:54 +01:00
2b7f42d0db
Don't use wrapper for launching Sahana in Docker 2018-02-10 13:11:43 +01:00
3bd1dd3e43
Create persistent storage for Sahana demo default template 2018-02-10 12:53:47 +01:00
b214b872be
Remove Sahana Scenario module - obsoleted in upstream, closes 2018-02-09 23:22:01 +01:00
b086c39398
Fix typo in Sahana roles 2018-02-09 19:37:11 +01:00
a924a2dd26
Create vanilla Sahana Demo installation script 2018-02-09 19:20:32 +01:00
9c0b1ac8ce
Prolong nginx timeouts and simplify proxy rules 2018-02-09 14:31:55 +01:00
2f71537f07
Change ownership of SeedDMS config, closes 2018-02-08 09:39:58 +01:00
66293bf0ef
Set SeedDMS post_max_size to 100 MB, related to 2018-02-08 09:39:22 +01:00
b12e0222e7
Set Tomcat min heap size to 32 MB 2018-02-06 22:01:19 +01:00
86eabf4a42
Move all Docker containers to default runlevel 2018-02-06 21:54:11 +01:00
134be8aa46
Fix SAMBRO script shebang 2018-02-06 19:05:38 +01:00
afdea3375a
Fix Motech database password placeholder 2018-02-06 18:04:16 +01:00
3fc44dee2b
Configure busybox NTP client instead of sntpc 2018-02-06 16:59:00 +01:00
91e998a24a
Hackfix GNU Health template1 database lock 2018-02-06 10:26:56 +01:00
0a152eb534
Add Sahana + SAMBRO IP refresh script 2018-02-06 09:56:17 +01:00
c44951bc72
Add Ushahidi IP refresh script 2018-02-06 09:55:12 +01:00
d9f00fe35f
Update HTTP port numbers for mobile clients 2018-02-03 17:36:04 +01:00
908c4f25d5
Make postgres/mariadb hard dependencies in init.d scripts 2018-02-03 17:34:24 +01:00
2181423d9a
Integrate Sigmah with postfix 2018-02-03 15:17:11 +01:00
fde06390ea
Integrate Sahana with postfix 2018-02-03 13:42:32 +01:00
cf42cf349c
Integrate Pandora with postfix 2018-02-03 13:36:09 +01:00
ffc3cd1a6a
Integrate Motech with postfix 2018-02-03 13:19:24 +01:00
cf93891704
Sort Motech bootstrap property file 2018-02-03 13:11:02 +01:00
3955c749cd
Integrate Mifos X with postfix 2018-02-03 12:59:09 +01:00
00b2f7e9c5
Integrate GNU Health with postfix 2018-02-03 11:20:40 +01:00
dfd405e444
Build Postfix aliases database 2018-02-03 10:48:17 +01:00
0fdd906bc8
Integrate Ushahidi with postfix 2018-02-03 10:06:16 +01:00
5f1ce1a230
Integrate SeedDMS with postfix 2018-02-02 21:07:35 +01:00
09dfcd6751
Integrate KanBoard with postfix 2018-02-02 21:07:35 +01:00
6015df24b3
Integrate CrisisCleanup with Postfix 2018-02-02 21:07:35 +01:00
93a2918206
Integrate CKAN with postfix 2018-02-02 21:07:35 +01:00
d2acca67ed
Add sntpc to useful packages 2018-02-02 21:06:56 +01:00
003b3f2c12
Extend X-Forwarded headers to avoid bogus URLs on double-proxied apps 2018-02-02 21:04:12 +01:00
7f93df3014
Add Ushahidi data directory as persistent volume 2018-02-02 20:16:26 +01:00
e241c3a13e
Install php7-session as standard part of PHP runtime 2018-02-02 19:58:31 +01:00
a4a7394cc8
Hackfix CKAN X509_STORE_CTX wrapper 2018-02-01 17:45:43 +01:00
4f5571492b
Hackfix CKAN certificate verification 2018-02-01 15:34:43 +01:00
4451d479a2
Reorganize HTTP ports to avoid header confusion 2018-02-01 14:55:24 +01:00
086372e065
Add nginx and s6 for CTS 2018-02-01 14:01:05 +01:00
35da2c422c
Cleanup Postfix files more nicely 2018-02-01 11:55:27 +01:00
800bbce3d9
Reflect GNU Health Tryton version update 2018-02-01 11:54:35 +01:00
1ba9f6252e
Fix grsec attributes for GNU Health NodeJS 2018-02-01 11:54:17 +01:00
2c5c191522
Allow debug logging for CKAN 2018-01-30 20:59:11 +01:00
ae68a565ef
Expose correct Postfix port and remove manual pages 2018-01-30 15:16:17 +01:00
ebd58cb120
Fix Sigmah admin bcrypt hash generation 2018-01-29 20:24:41 +01:00
35ca12b96a
Set --no-cache even for apk del as @tags confuse cache 2018-01-29 16:47:27 +01:00
8a29b66c85
Hide ISOLINUX banner during boot 2018-01-28 10:34:42 +01:00
6a605e169a
Alpinize + Dockerize SAMBRO 2018-01-28 09:13:30 +01:00
f0ec1794ca
Use tag for edge repository 2018-01-27 22:46:45 +01:00
6ee04fcb71
Update ports in README.md 2018-01-27 22:37:19 +01:00
3c0fd17b48
Move Sigmah from port 8015 to 8011 2018-01-27 22:36:57 +01:00
79cea15bca
Move Pandora from port 8011 to 8002 2018-01-27 22:35:55 +01:00
5a67551dd4
Alpinize + Dockerize Sahana Eden 2018-01-27 22:26:37 +01:00
d117d3d236
Few typo and ordering fixes 2018-01-27 15:23:22 +01:00
7970306105
Make a proper data mount for Postgres 2018-01-27 14:44:44 +01:00
045c47a12f
Make a proper conf mount for Ushahidi 2018-01-27 14:35:16 +01:00
2584e263fc
Make a proper conf mount for Redis 2018-01-27 14:31:11 +01:00
e3e4a91dcd
Make a proper conf mount for OpenMapKit 2018-01-27 14:27:28 +01:00
2e8e6a9e69
Make a proper conf mount for Mifos X 2018-01-27 14:25:41 +01:00
0f2546631a
Make a proper conf mount for MariaDB 2018-01-27 14:13:59 +01:00
a1237a25ca
Split init.d docker run commands into lines 2018-01-27 14:08:19 +01:00
42e9046ef1
Chown Mifos X webapps 2018-01-27 13:59:54 +01:00
f9ab1ab379
Reduce extraneous Sigmah logging 2018-01-26 22:05:03 +01:00
01d93bf748
Fix CKAN Docker prerequisites 2018-01-26 21:58:55 +01:00
f07d5e746b
Create common Tomcat Docker image 2018-01-26 21:58:29 +01:00
f3ed426201
Alpinize + Dockerize Sigmah 2018-01-26 21:25:03 +01:00
29b7e6a7a8
Remove a few Pandora hackfixes as they're fixed in upstream now 2018-01-24 16:48:20 +01:00
7ceeec43c9
Cleanup root directory without recreating it 2018-01-24 16:28:41 +01:00
857cb131d5
No need to set docker hostname for simple file operations 2018-01-24 15:55:47 +01:00
f57dc0a0eb
Refine common PHP extensions 2018-01-24 15:52:13 +01:00
136a207a2f
Add KanBoard OS user, update volume, go easier on cleanup 2018-01-24 15:42:57 +01:00
3e341b88bd
Alpinize + Dockerize Ushahidi 2018-01-24 15:18:55 +01:00
3f9555efaf
Don't install unzip for KanBoard 2018-01-24 14:48:45 +01:00
9d857d80b6
Don't remove git metadata from host in zz-cleanup.sh (there shouldn't be any anyway) 2018-01-23 21:28:22 +01:00
aef583ebad
Check prerequisites at the start of install script 2018-01-23 21:27:18 +01:00
cc850a8b34
Add workdirs for Mifos X and Motech 2018-01-23 21:08:21 +01:00
aad9076b3f
Add Mifos X user + Reorder tomcat installation sequence 2018-01-23 21:01:47 +01:00
50b73c834f
Alpinize + Dockerize Motech 2018-01-23 18:18:46 +01:00
68d8e9e492
Fix coding style for postfix.sh 2018-01-23 18:18:35 +01:00
2013f05a1f
Install Motech-compatible ActiveMQ configuration 2018-01-23 18:18:02 +01:00
daa2948e21
Dockerize ActiveMQ 2018-01-23 13:39:50 +01:00
44cf422960
Alpinize + Dockerize Mifos X 2018-01-19 20:32:16 +01:00
8ad7513007
Install wget for SeedDMS to work around sourceforge bugs 2018-01-19 18:12:39 +01:00
8a4d5102a2
Wait until MariaDB is actually started 2018-01-19 17:14:25 +01:00
8a50e772e4
Stop MariaDB gracefully 2018-01-19 16:02:41 +01:00
e9e676dd33
Create MariaDB Docker container 2018-01-19 15:50:15 +01:00
07cd9518c9
Add CTS static files serving notice 2018-01-18 21:18:17 +01:00
e10c1904ec
Generate CTS static resources 2018-01-18 20:50:01 +01:00
fb945c940b
Remove excessive && in CrisisCleanup Dockerfile 2018-01-18 15:46:36 +01:00
dfd588bc84
Remove ckanext_pages extension as it causes Error 500 2018-01-18 15:35:32 +01:00
67dc6b01b3
Change docker link arg to not use '=' 2018-01-18 13:59:24 +01:00
6ef0d15d60
Hackfix Pandora's oxjs get_version() 2018-01-18 13:45:29 +01:00
642a190514
Alpinize + Dockerize Pandora 2018-01-18 13:39:39 +01:00
8058938473
Remove unnecessary space from OpenMapKit service wrapper 2018-01-16 21:17:01 +01:00
c7c0aa08f0
Add curl to useful packages 2018-01-16 21:16:36 +01:00
c8a3dc0b0e
Use fixed Docker hostnames 2018-01-15 21:51:15 +01:00
5d1eb43648
Make postfix.sh executable 2018-01-15 21:22:05 +01:00
a6629375f5
Squash multiple mkdir commands 2018-01-15 20:06:06 +01:00
edb2b6cd8c
Dockerize postfix 2018-01-15 20:05:33 +01:00
bcb40b3ac1
Use absolute path in s6 units 2018-01-15 10:31:33 +01:00
770c6fbd8e
Add RabbitMQ Dockerfile + script 2018-01-11 16:36:57 +01:00
89bf24d6cf
Reorganize edge repo usage in Dockerfiles 2018-01-11 11:10:12 +01:00
489a5df07f
Add view to aliases 2018-01-11 10:36:55 +01:00
6e6c606023
Add .profile and purge motd in basic configuration 2018-01-11 09:16:26 +01:00
ed66c4b705 Reorganize Dockerfiles 2018-01-08 21:04:35 +01:00
d32573974b Update GNU Health bundled Trytond version 2018-01-08 16:00:45 +01:00
9e2120676c Fix shebang for GNU Health 2018-01-08 15:48:23 +01:00
df000f4473 Consolidate nginx configs 2018-01-08 15:27:29 +01:00
bb7171f3e1 Alpinize + Dockerize SeedDMS 2018-01-08 15:06:11 +01:00
70243a7ddc Alpinize + Dockerize KanBoard 2018-01-02 15:55:35 +01:00
0e74e6541f Simplify basic nginx config 2018-01-02 11:18:47 +01:00
e592bfb7d6 Update ports in README.md 2018-01-02 11:18:07 +01:00
6709ee478a Alpinize + Dockerize GNU Health 2017-12-29 16:31:48 +01:00
96e3bd4a5f Replace CVUT Alpine repo with CDN as CVUT is down at the moment 2017-12-28 09:45:21 +01:00
a3227e8c0b Alpinize + Dockerize CTS 2017-12-26 09:33:47 +01:00
db1ee7571d Documentation update 2017-12-26 09:32:50 +01:00
639a253d80 Alpinize + Dockerize Crisis Cleanup 2017-12-25 11:43:06 +01:00
4f0a1de88e Squash nginx reload to nginx app definition block 2017-12-25 08:50:31 +01:00
a17cd6e4f3 Install OpenMapKit's Yarn as native dependency package 2017-12-25 08:49:50 +01:00
013551c143 Cleanup Yarn cache in OpenMapKit Docker image 2017-12-22 17:45:03 +01:00
abe1ef01c3 Remove duplicit git from OpenMapKit Dockerfile 2017-12-21 13:22:11 +01:00
0a903f9a6e Add CKAN Docker link to CKAN DataPusher container 2017-12-21 11:19:43 +01:00
bd8b85cfe3 Fix CKAN + DataPusher SOURCE_DIR 2017-12-21 10:43:54 +01:00
2501b593a4 Add OpenMapKit Dockerfile comments 2017-12-21 10:39:35 +01:00
9724190d8e Add CKAN + DataPusher Dockerfile comments 2017-12-21 10:39:22 +01:00
fcba872d75 Add Postgres, Redis, Solr Dockerfile comments 2017-12-21 10:39:07 +01:00
728ad4f4ec Add cron to basic services 2017-12-21 10:38:28 +01:00
bfd15b9eef Install CKAN cronjob 2017-12-20 22:47:23 +01:00
21fcde7b2d Loosen CKAN container service dependencies 2017-12-20 22:45:49 +01:00
fc74de15b2 Alpinize + Dockerize CKAN DataPusher 2017-12-20 15:41:29 +01:00
2b63a7a17d Properly cleanup after OpenMapKit docker image build 2017-12-20 11:07:40 +01:00
8ff4cfe525 Adjust CKAN Dockerfile - move common deps, cleanup properly 2017-12-20 11:06:46 +01:00
7cdd22261e Call CKAN's update-ip.sh in start_pre() 2017-12-20 11:05:54 +01:00
1ea2b63636 Set Solr heap size 2017-12-20 09:40:01 +01:00
3b6c8471fe Alpinize CKAN 2017-12-19 22:17:12 +01:00
56794033e0 Set proper scheme in X-Forwarded-Proto for OpenMapKit 2017-12-19 22:16:13 +01:00
6d801b8d8a Install python runtime 2017-12-19 20:43:20 +01:00
4c8e5452f5 Alpinize OpenMapKit 2017-12-19 20:28:33 +01:00
c0198b4dc7 Prepare structure for nginx apps 2017-12-19 19:42:10 +01:00
648064e5dd Daemonize Postgres container 2017-12-19 19:29:02 +01:00
182c9eb10b Minor script updates
- Make init.d scripts executable
- Change shebang from bash to sh
- Alpinize zz-cleanup.sh
2017-12-19 19:27:44 +01:00
5e398988d5 Alpinize Redis 2017-12-19 19:12:51 +01:00
8733cb8b30 Alpinize Solr 2017-12-19 16:31:35 +01:00
88964e2f7c Alpinize Postgres Docker service 2017-12-19 13:53:30 +01:00
b96182dd58 Remove apk update as no cache should be used 2017-12-19 12:49:39 +01:00
ea27896702 Suppress OpenRC boot messages 2017-12-19 11:21:59 +01:00
9d0e653cfa Strip comments and reorganize nginx and consolefont config 2017-12-19 11:05:09 +01:00
1a5ad7ba15 Simplify Postfix configuration 2017-12-19 11:01:37 +01:00
5477e36dec Alpinize nginx configuration 2017-12-19 10:09:33 +01:00
cea4df2b99 Slim down basic Alpine configs 2017-12-19 08:40:56 +01:00
aa100397f1 Revamp basic OS installation and settings for Alpine 2017-12-18 22:16:21 +01:00
f0afd6e596 Install Alpine as host operating system instead of Debian 2017-12-18 15:45:17 +01:00
4da4e23719 Forward Ckan and OpenMapKit HTTP ports to Docker host's localhost 2017-12-16 20:53:00 +01:00
fa13411d57 Dockerize CKAN (without DataPusher so far) 2017-12-16 20:41:58 +01:00
678f91b555 Add Postgres Docker service wrapper 2017-12-16 20:40:40 +01:00
7eddaeda5e Use .deps in OpenMapKit Dockerfile 2017-12-16 20:40:06 +01:00
4a1e821796 Introduce PostgreSQL + PostGIS Dockerfile and script 2017-12-15 16:39:40 +01:00
64e861d8c7 Add port assignment to README.md 2017-12-15 16:39:40 +01:00
6dc1a16bf2 Move CKAN Solr config where expected 2017-12-15 16:39:40 +01:00
1c238b77fe Remove tmpfs from docker run (containers are destroyed anyway) 2017-12-15 16:39:40 +01:00
ae2eea1933 Add UID/GID for OpenMapKit, change path from omk to openmapkit 2017-12-15 16:39:40 +01:00
d973836b8c Add UID/GID for Redis 2017-12-15 16:39:40 +01:00
cfdbb2c609 Move Solr to /opt and create separate UID/GID 2017-12-15 16:39:40 +01:00
86f9b8cae1 CRLF fix 2017-12-15 16:39:40 +01:00
1959137a0b Introduce Redis Dockerfile and installation script 2017-12-15 16:39:40 +01:00
0363e6b53f Fix and configure Solr persistent locations and configuration 2017-12-15 16:39:40 +01:00
3e123a9a9c Add Dockerfile for Solr 2017-12-15 16:39:40 +01:00
4946fe2c71 Remove explicit mention of py-setuptools in OpenMapKit Dockerfile. 2017-12-15 16:39:40 +01:00
8e51e09d58 Kill OpenMapKit container instead of stopping (which fails anyway) 2017-12-15 16:39:40 +01:00
145b73c3ce OpenMapKit concept 2017-12-15 16:39:40 +01:00
71da796259 Comment out docker-compose for the moment 2017-12-15 16:39:40 +01:00
942e978faa Install docker-compose 2017-12-15 16:39:40 +01:00
89ae15f3f4 Install Docker CE instead of LXC 2017-12-15 16:39:40 +01:00
699 changed files with 97395 additions and 13586 deletions
.gitlab/issue_templates
.gitmodules00-install.sh01-basic.shREADME.md
apk
py3-secure-cookie
spocvmmgr
basic
build
ckan.sh
ckan
ckan-adminpwd.pyckan-serviceprovider-sslverify.patch
etc
cron.d
nginx/sites-available
uwsgi/apps-available
lib/systemd/system
srv/ckan
crisiscleanup.sh
crisiscleanup
etc/nginx/sites-available
lib/systemd/system
srv/crisiscleanup
cts.sh
cts/etc
nginx/sites-available
uwsgi/apps-available
doc

@ -1,13 +0,0 @@
### Steps to reproduce
1.
2.
3.
### Expected behaviour
### Observed behaviour
### Additional data (ticket URL, log, timestamp, stack trace etc.)

6
.gitmodules vendored Normal file

@ -0,0 +1,6 @@
[submodule "app-vmmgr"]
path = apk/vmmgr
url = ssh://git@git.spotter.cz:2222/Spotter-Cluster/vmmgr.git
[submodule "spoc"]
path = apk/spoc
url = ssh://git@git.spotter.cz:2222/Spotter-Cluster/spoc.git

@ -1,30 +0,0 @@
#!/bin/bash
# For production builds change to DEBUG=0 or comment the line entirely
export DEBUG=1
SOURCE_DIR=$(realpath $(dirname "${0}"))
# Install shared packages and perform OS customization
${SOURCE_DIR}/01-basic.sh
# Install applications
${SOURCE_DIR}/ckan.sh
# ${SOURCE_DIR}/crisiscleanup.sh
# ${SOURCE_DIR}/cts.sh
${SOURCE_DIR}/gnuhealth.sh
${SOURCE_DIR}/kanboard.sh
${SOURCE_DIR}/mifosx.sh
${SOURCE_DIR}/motech.sh
${SOURCE_DIR}/openmapkit.sh
${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
if [ ${DEBUG:-0} -eq 0 ]; then
${SOURCE_DIR}/zz-cleanup.sh
fi

@ -1,166 +0,0 @@
#!/bin/bash
SOURCE_DIR=$(realpath $(dirname "${0}"))/basic
export DEBIAN_FRONTEND="noninteractive"
# Uninstall unnecessary packages
apt-get -y purge bsdmainutils dictionaries-common emacsen-common iamerican ibritish ienglish-common installation-report ispell laptop-detect nano os-prober task-english tasksel tasksel-data wamerican
# Install useful packages
apt-get -y update
apt-get -y --no-install-recommends install apt-transport-https bash-completion ca-certificates curl file git htop ntp openssl sudo tree unzip vim
######
# OpenSSH and user settings
#####
# Install OpenSSH server
apt-get -y --no-install-recommends install openssh-server
mkdir ~/.ssh
cp ${SOURCE_DIR}/root/.ssh/authorized_keys /root/.ssh/authorized_keys
# Copy profile files and settings
mkdir -p /root/.config/htop
cp ${SOURCE_DIR}/root/.bashrc /root/.bashrc
cp ${SOURCE_DIR}/root/.config/htop/htoprc /root/.config/htop/htoprc
cp ${SOURCE_DIR}/root/.vimrc /root/.vimrc
# Remove default user
deluser --remove-all-files user 2>/dev/null
#####
# System boot
#####
# Rename encrypted partition
sed -i 's/sda2_crypt/system/' /etc/crypttab
dmsetup rename sda2_crypt system
# Suppress warnings during boot
cp ${SOURCE_DIR}/usr/share/initramfs-tools/scripts/local-top/lvm2 /usr/share/initramfs-tools/scripts/local-top/lvm2
cp ${SOURCE_DIR}/usr/share/initramfs-tools/scripts/local-top/cryptroot /usr/share/initramfs-tools/scripts/local-top/cryptroot
# Set GRUB options
cp ${SOURCE_DIR}/etc/default/grub /etc/default/grub
# Set legal banner with URL + latin2 character set
cp ${SOURCE_DIR}/etc/default/console-setup /etc/default/console-setup
cp ${SOURCE_DIR}/etc/issue /etc/issue
dpkg-reconfigure console-setup
# Forbid login on tty1, disable tty2-6
cp ${SOURCE_DIR}/lib/systemd/system/getty@.service /lib/systemd/system/getty@.service
systemctl mask getty-static
# Update initramfs and GRUB
update-initramfs -u
update-grub
#####
# Postfix
#####
# Preconfigure
echo postfix postfix/main_mailer_type string "Satellite system" | debconf-set-selections
echo postfix postfix/mailname string "$(hostname -f)" | debconf-set-selections
echo postfix postfix/relayhost string "" | debconf-set-selections
# Install packages
apt-get -y --no-install-recommends install postfix
# Configure Postfix
cp ${SOURCE_DIR}/etc/postfix/main.cf /etc/postfix/main.cf
# Restart services
systemctl restart postfix
#####
# Nginx + uWSGI
#####
# Install packages
apt-get -y --no-install-recommends install nginx-light uwsgi uwsgi-plugin-python
# Create a self-signed certificate
openssl req -x509 -new -out /etc/ssl/certs/services.pem -keyout /etc/ssl/private/services.key -nodes -days 3654 -subj "/C=CZ/CN=$(hostname -f)"
chgrp ssl-cert /etc/ssl/private/services.key
chmod 640 /etc/ssl/private/services.key
# Configure nginx
mkdir /etc/nginx/apps-available /etc/nginx/apps-enabled
cp ${SOURCE_DIR}/etc/nginx/nginx.conf /etc/nginx/nginx.conf
cp ${SOURCE_DIR}/etc/nginx/sites-available/default /etc/nginx/sites-available/default
# Workaround for web2py shutdown problem, see https://github.com/web2py/web2py/issues/1769
sed -i 's|QUIT/30|QUIT/5|' /usr/share/uwsgi/init/specific_daemon
# Copy Portal resources
cp -r ${SOURCE_DIR}/usr/local/bin/portal-app-manager /usr/local/bin/portal-app-manager
cp -r ${SOURCE_DIR}/srv/portal /srv/portal
chown -R www-data:www-data /srv/portal
# Restart
systemctl restart nginx
#####
# PostgreSQL + PostGIS
#####
# Install packages
apt-get -y --no-install-recommends install postgresql-9.6 postgresql-9.6-postgis postgresql-contrib-9.6
# Install Czech search data
wget http://postgres.cz/data/czech.tar.gz -O /tmp/czech.tar.gz
tar xzf /tmp/czech.tar.gz -C /usr/share/postgresql/9.6/tsearch_data --strip-components 1
chown root:root /usr/share/postgresql/9.6/tsearch_data/czech.*
rm -f /tmp/czech.tar.gz
# Configure
cp ${SOURCE_DIR}/etc/postgresql/9.6/main/postgresql.conf /etc/postgresql/9.6/main/postgresql.conf
cp ${SOURCE_DIR}/etc/postgresql/9.6/main/pg_hba.conf /etc/postgresql/9.6/main/pg_hba.conf
# Enable query logging. Only if the DEBUG environment variable is set
if [ ${DEBUG:-0} -eq 1 ]; then
sed -i 's/#log_destination/log_destination/' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#logging_collector/logging_collector/' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#log_directory/log_directory/' /etc/postgresql/9.6/main/postgresql.conf
sed -i 's/#log_statement/log_statement/' /etc/postgresql/9.6/main/postgresql.conf
fi
# Restart
systemctl restart postgresql
#####
# MariaDB
#####
# Install packages
apt-get -y --no-install-recommends install mariadb-server
# Enable query logging. Only if the DEBUG environment variable is set
if [ ${DEBUG:-0} -eq 1 ]; then
sed -i 's/#general_log/general_log/g' /etc/mysql/mariadb.conf.d/50-server.cnf
fi
# Restart
systemctl restart mysqld
#####
# Tomcat
#####
# Install packages
apt-get -y --no-install-recommends install libservlet3.1-java openjdk-8-jre-headless tomcat8
# Configure
cp ${SOURCE_DIR}/etc/tomcat8/server.xml /etc/tomcat8/server.xml
# Restart
systemctl restart tomcat8

145
README.md

@ -1,145 +0,0 @@
This is the main repository containing all installation scripts, configuration and customization of operating system all application present in Spotter Cluster virtual machine.
## Operating system preparation
### Virtual machine specifications
- **Memory:** 4 GB
- **CPU:** 1 processor, 2 cores
- **Hard Disk:** SCSI, 60 GB
### Operating system media download
Download **Debian 9.0.0 amd64 netinstall** from <https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/> and launch Text-mode installation
## Operating system installation
### Locale settings
- **Language:** English
- **Country, territory or area:** other
- **Continent or region:** Europe
- **Country, territory or area:** Czech Republic
- **Country to base default locale settings on:** United States - en_US.UTF-8
- **Keymap to use:** American English
### Hostname
- **Hostname:** debian
- **Domain name:** [leave blank]
### Users
- **Root password:** [random password of your choice]
- **Full name for the new user:** user
- **Username for your account:** user
- **Choose a password for the new user:** [random passowrd of your choice]
Note: The *user* account will be deleted afterwards as part of installation steps.
### Partitions
- **Partitioning method:** Manual
1. Create empty partition table on SCSI1 (0,0,0) (sda)
2. Create new partition
- **New partition size:** 256 MB
- **Type for the new partition:** Primary
- **Location for the new partition:** Beginning
- Definition
- **Use as:** Ext2 file system
- **Format the partition:** yes, format it
- **Mount point:** /boot
- **Mount options:** default
- **Label:** none
- **Reserved blocks:** 5%
- **Typical usage:** standard
- **Bootable flag:** on
3. Create new partition
- **New partition size:** [maximum]
- **Type for the new partition:** Primary
- **Location for the new partition:** Beginning
- Definition
- **Use as:** physical volume for encryption
- **Encryption method:** Device-mapper (dm-crypt)
- **Encryption:** aes
- **Key size:** 128
- **IV algorithm:** xts-plain64
- **Encryption key:** Passphrase
- **Erase data:** no
- **Bootable flag:** off
4. Configure encrypted volumes
- Create encrypted volumes
- /dev/sda2
- Finish
- **Encryption passphrase:** [random]
5. Select encrypted volume (sda2_crypt), partition #1
- **Use as:** physical volume for LVM
6. Configure the Logical Volume Manager
- Create volume group
- **Volume group name:** vg0
- **Devices for the new volume group:** /dev/mapper/sda2_crypt
- Create logical volume
- **Volume group:** vg0
- **Logical volume name:** swap
- **Logical volume size:** 4 GB
- Create logical volume
- **Volume group:** vg0
- **Logical volume name:** root
- **Logical volume size:** [maximum]
- Finish
7. Select LVM VG vg0, LV root, partition #1
- Definition
- **Use as:** Ext4 journaling file system
- **Mount point:** /
- **Mount options:** noatime
- **Label:** none
- **Reserved blocks:** 1%
- **Typical usage:** standard
8. Select LVM VG vg0, LV swap, partition #1
- **Use as:** swap area
9. Finish partitioning and write changes to disk
### Packages
- **Scan another CD or DVD?:** No
- **Debian archive mirror counrty:** Czechia
- **Debian archive mirror:** ftp.cz.debian.org
- **HTTP proxy information:** [leave blank]
- **Participate in package survey:** No
- **Choose software to install:** [unselect all]
### Bootloader
- **Install the GRUB boot loader to the master boot record?:** yes
- **Device for boot loader installation:** /dev/sda
## Application installation
### First time setup
```
# Update package info
apt update
# Install git
apt install git
# Clone the repository
git clone https://gitlab.dasm.cz:8443/Spotter-Cluster/Spotter-Cluster.git
# Enter the repository directory
cd Spotter-Cluster
# Optional: Edit the install sequence script
vi 00-install.sh
# Launch the script
./00-install.sh
```
### Resuming from a snapshot
Assumes that the repository has already been cloned.
```
# Enter the repository directory
cd Spotter-Cluster
# Update repository
git pull
# Optional: Edit the install sequence script
vi 00-install.sh
# Launch the script
./00-install.sh
```

@ -0,0 +1,28 @@
# Maintainer: Disassembler <disassembler@dasm.cz>
pkgname=py3-secure-cookie
_pkgname=secure-cookie
pkgver=0.1.0
pkgrel=0
pkgdesc="Secure cookie and session interface for WSGI applications"
url="https://secure-cookie.readthedocs.io/"
arch="noarch"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
checkdepends="py3-pytest py3-werkzeug"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
build() {
python3 setup.py build
}
package() {
python3 setup.py install --prefix=/usr --root="$pkgdir"
}
check() {
PYTHONPATH=$PWD/build/lib pytest
}
sha512sums="2e57dba6f73ceb03eda33c804dbe2277c9fe700dd1be219bb3d8d43a5c9105c2323fb6b28d74d3a1dfc8fbbd938b91ab54d3e1bac1dc74490335b1d27e43b55a secure-cookie-0.1.0.tar.gz"

1
apk/spoc Submodule

@ -0,0 +1 @@
Subproject commit 8c22df2e71de329a286e75af9bff69e82876db35

1
apk/vmmgr Submodule

@ -0,0 +1 @@
Subproject commit 1c810db9472f50bd9dbe1e0f38df72590b120124

@ -1,16 +0,0 @@
# CONFIGURATION FILE FOR SETUPCON
# Consult the console-setup(5) manual page.
ACTIVE_CONSOLES="/dev/tty[1-6]"
CHARMAP="UTF-8"
CODESET="Lat2"
FONTFACE="Fixed"
FONTSIZE="8x16"
VIDEOMODE=
# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'

@ -1,34 +0,0 @@
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_RECORDFAIL_TIMEOUT=0
GRUB_FORCE_HIDDEN_MENU="true"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet loglevel=0"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

@ -1,36 +0,0 @@
 _____ _ _ _____ _ _
/ ____| | | | | / ____| | | |
| (___ _ __ ___ | |_| |_ ___ _ __ | | | |_ _ ___| |_ ___ _ __
\\___ \\| '_ \\ / _ \\| __| __/ _ \\ '__| | | | | | | / __| __/ _ \\ '__|
____) | |_) | (_) | |_| || __/ | | |____| | |_| \\__ \\ || __/ |
|_____/| .__/ \\___/ \\__|\\__\\___|_| \\_____|_|\\__,_|___/\\__\\___|_|
| |
|_|
UPOZORNĚNÍ: Neoprávněný přístup k tomuto zařízení je zakázán.
Musíte mít výslovné oprávnění k přístupu nebo konfiguraci tohoto zařízení.
Neoprávněné pokusy a kroky k přístupu nebo používání tohoto systému mohou mít
za následek občanské nebo trestní sankce.
CAUTION: Unauthozired access to this device is prohibited.
You must have explicit, authorized permission to access or configure this
device. Unauthorized attempts and actions to access or use this system may
result in civil or criminal penalties.
Pro přístup k aplikacím otevřete URL https://\4/ ve Vašem
internetovém prohlížeči.


@ -1,94 +0,0 @@
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_max_body_size 100m;
##
# SSL Settings
##
ssl_protocols TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_certificate /etc/ssl/certs/services.pem;
ssl_certificate_key /etc/ssl/private/services.key;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}

@ -1,21 +0,0 @@
server {
listen 80;
listen [::]:80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
add_header Strict-Transport-Security "max-age=31536000;";
root /srv/portal;
index index.html;
location / {
try_files $uri $uri/ =404;
}
include /etc/nginx/apps-enabled/*;
}

@ -1,13 +0,0 @@
append_dot_mydomain = no
biff = no
compatibility_level = 2
inet_interfaces = loopback-only
inet_protocols = ipv4
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
recipient_delimiter = +
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls=yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls=yes

@ -1,4 +0,0 @@
local all postgres peer
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5

@ -1,53 +0,0 @@
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
[Unit]
Description=Getty on %I
Documentation=man:agetty(8) man:systemd-getty-generator(8)
Documentation=http://0pointer.de/blog/projects/serial-console.html
After=systemd-user-sessions.service plymouth-quit-wait.service
After=rc-local.service
# If additional gettys are spawned during boot then we should make
# sure that this is synchronized before getty.target, even though
# getty.target didn't actually pull it in.
Before=getty.target
IgnoreOnIsolate=yes
# IgnoreOnIsolate causes issues with sulogin, if someone isolates
# rescue.target or starts rescue.service from multi-user.target or
# graphical.target.
Conflicts=rescue.service
Before=rescue.service
# On systems without virtual consoles, don't start any getty. Note
# that serial gettys are covered by serial-getty@.service, not this
# unit.
ConditionPathExists=/dev/tty0
[Service]
# the VT is cleared by TTYVTDisallocate
ExecStart=-/sbin/agetty -l /usr/sbin/nologin %I $TERM
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=%I
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no
SendSIGHUP=yes
# Unset locale for the console getty since the console has problems
# displaying some internationalized messages.
Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
[Install]
WantedBy=getty.target
DefaultInstance=tty1

@ -1,25 +0,0 @@
shopt -s histappend
HISTSIZE=10000
HISTFILESIZE=20000
HISTTIMEFORMAT="(%F %T) "
PROMPT_COMMAND="history -a"
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\H:\w\a\]$PS1"
;;
*)
;;
esac
eval "`dircolors`"
COLOR="--color=auto"
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
alias ls='ls --color=auto'
alias ll='ls -la --color=auto'
alias l='ls -a --color=auto'
alias grep='grep --color=auto'

@ -1,2 +0,0 @@
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILc3Mu7OlKrV7VqDQZ31vT3I3JJxtNNBiemUTRQVOZ3I Disassembler
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDMLx88cP67gOmmwDj2vjnPZnZp4KT/aqAkIEVBasss073wtU+tHAia5qKB+PJau3WnUSid/ZVcwHNXgrXE69DS2ZlBQFFBCJdWKP1Pd528Ot66mw9FaZvxRLaeA60yxC9dTFD0WCyVJw3HSdkJf17NYTtKcPQcn5DGfrdPHX16C3KUxOJXveTBOiieWbkQ1uUCTYyfeR9Qj+RR0gPogK217dNxGd4F3PJ3hXPKWDVpSH9JBnpG64mab3krhb6/eMUnLPUUAtgF6b0vXWNahFlA3NsriQiJy5mroLQCL2feqfkGVKlbxpRwgkGOPph4UK6RgNehF7oPwni/zMQ2rjxbpIWredlOPNvU7F8BebiuU8K4/16tz6xRiSgYzpm9nTHvJaz3W12b8Co145zPcmIdRg5KCQDEf+xB7gfpK/uo3qmc7ddMtA4oqUztbAlpfW6qR+i4X5ed9LnWdMKoWeB5Xn52cbKuTvD1qmVWGm0IPF/r+hw7Gn97nyq1Oatn9LKTJaLZeaJ9b1nBGL56U5i+4hdZPema7tVgWEYfYKTq4hrKWdWwJjlpJjqZ2qLltJmkJMNji9Ve+xBe+nRjW9wNk7c7fDxPvJe45EbrqDQNFxXjw4CKOIIt/k6e/imrVf9S7Or4Vxi+OJCQLZYT8EPb/VUuPn0JhtpIlBvD3xCDjw== vampola.karel@gmail.com

@ -1,2 +0,0 @@
runtime! defaults.vim
set mouse-=a

@ -1,85 +0,0 @@
* {
margin: 0;
padding: 0;
border: 0;
}
body {
font-family: 'Calibri', 'Verdana', 'Tahoma', sans-serif;
background-color: silver;
color: black;
line-height: 150%;
margin: 25px 30px;
}
a {
text-decoration: none;
}
h1, h2 {
font-size: 150%;
font-weight: normal;
}
h2 a {
color: inherit;
}
h2 img {
float: right;
margin-left: 10px;
margin-bottom:10px;
width: 100px;
height: 100px;
}
ul {
margin-left: 30px;
}
header {
color: white;
}
header h1 {
font-weight: bold;
}
header p {
padding: 0px;
margin: 0px;
}
.c, .c2 {
background-color: white;
position: relative;
min-width: 365px;
max-width: 365px;
width: 90%;
float: left;
min-height: 175px;
margin-top: 13px;
margin-right: 13px;
border: solid 1px black;
padding: 10px;
}
.c {
display: none;
}
.c2 {
max-width: 765px;
width: 95%;
}
.ico {
margin-right: 5px;
width: 20px;
height: 20px;
vertical-align: top;
}
.cleaner {
clear: both;
}

Binary file not shown.

Before

(image error) Size: 5.4 KiB

Binary file not shown.

Before

(image error) Size: 69 KiB

Binary file not shown.

Before

(image error) Size: 17 KiB

Binary file not shown.

Before

(image error) Size: 70 KiB

Binary file not shown.

Before

(image error) Size: 12 KiB

Binary file not shown.

Before

(image error) Size: 15 KiB

Binary file not shown.

Before

(image error) Size: 6.4 KiB

Binary file not shown.

Before

(image error) Size: 119 KiB

Binary file not shown.

Before

(image error) Size: 12 KiB

Binary file not shown.

Before

(image error) Size: 48 KiB

Binary file not shown.

Before

(image error) Size: 21 KiB

Binary file not shown.

Before

(image error) Size: 36 KiB

Binary file not shown.

Before

(image error) Size: 83 KiB

Binary file not shown.

Before

(image error) Size: 101 KiB

Binary file not shown.

Before

(image error) Size: 16 KiB

Binary file not shown.

Before

(image error) Size: 47 KiB

Binary file not shown.

Before

(image error) Size: 6.1 KiB

Binary file not shown.

Before

(image error) Size: 22 KiB

Binary file not shown.

Before

(image error) Size: 21 KiB

Binary file not shown.

Before

(image error) Size: 16 KiB

Binary file not shown.

Before

(image error) Size: 13 KiB

Binary file not shown.

Before

(image error) Size: 12 KiB

Binary file not shown.

Before

(image error) Size: 32 KiB

Binary file not shown.

Before

(image error) Size: 23 KiB

Binary file not shown.

Before

(image error) Size: 53 KiB

Binary file not shown.

Before

(image error) Size: 9.2 KiB

Binary file not shown.

Before

(image error) Size: 17 KiB

Binary file not shown.

Before

(image error) Size: 33 KiB

Binary file not shown.

Before

(image error) Size: 4.3 KiB

@ -1,276 +0,0 @@
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="utf-8">
<meta name="author" content="TS">
<meta name="copyright" content="page is under CC BY-NC-ND 3.0 CZ">
<meta name="generator" content="Spotter.ngo">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Cluster NGO</title>
<link rel="icon" href="img/cluster_spotter.png" type="image/png">
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
<script src="js/jquery-3.2.1.min.js" type="text/javascript"></script>
<script src="js/script.js" type="text/javascript"></script>
</head>
<body>
<header>
<h1>CLUSTER NGO</h1>
<p>Sada softwarových nástrojů určená pro krizový management.</p>
</header>
<div class="c c2" id="sahana-eden">
<h2><a href="#"><img src="img/EDEN.png" alt="Sahana EDEN" title="Sahana EDEN">Sahana EDEN</a></h2>
<p><strong>Registr kontaktů</strong> asociací, organizací, jednotek zaměstnanců, dobrovolníků, <strong>Registr prostředků</strong>, materiálních zdrojů určených pro činnost v krizových situacích, <strong>logistika</strong> krizového zboží ve skladištích, úkrytech, <strong>organizace lidských zdrojů</strong>, diobrovolníků, <strong>mapová vizualizace</strong> pro lokalizaci a popis krizové události a <strong>mnoho dalších funkcí</strong>.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="sahana-eden-demo">
<h2><a href="#"><img src="img/EDEN.png" alt="Sahana EDEN DEMO" title="Sahana EDEN DEMO">Sahana EDEN DEMO</a></h2>
<p>Přístup určený k bezpečnému vyzkoušení aplikace. Zde můžete přidávat i mazat testovací data.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="sambro">
<h2><a href="#"><img src="img/EDEN.png" alt="Sahana EDEN SAMBRO" title="Sahana EDEN SAMBRO">Sahana EDEN SAMBRO</a></h2>
<p>Samostatná instance Sahana EDEN s šablonou SAMBRO.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="sambro-mobile">
<h2><a href="#"><img src="img/EDEN.png" alt="SAMBRO Mobile" title="SAMBRO Mobile">SAMBRO Mobile</a></h2>
<p>Mobilní klient k aplikaci Sahana EDEN. Po stažení se zaregistrujte a pro přístup k serveru zadejte IP vaší instalace Sahana EDEN.<br>
<a href="https://itunes.apple.com/us/app/sambro-mobile/id1127251669"><img src="img/ios.png" class="ico" alt="IOS">IOS 6.0 a vyšší</a><br>
<a href="https://play.google.com/store/apps/details?id=io.sahana.sambro.mobile"><img src="img/android.png" class="ico" alt="Android">Android 4.0 a vyšší</a>
</p>
</div>
<div class="c" id="crisis-cleanup">
<h2><a href="#"><img src="img/Crisis_Cleanup.png" alt="Crisis Cleanup" title="Crisis Cleanup">Crisis Cleanup</a></h2>
<p><strong>Mapování krizové pomoci</strong> při odstraňování následků katastrof a koordinaci práce. Jde o majetek, ne o lidi.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="ckan">
<h2><a href="#"><img src="img/CKAN.png" alt="CKAN" title="CKAN">CKAN</a></h2>
<p><strong>Repository</strong> management a datová analýza pro vytváření otevřených dat.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="opendatakit">
<h2><a href="#"><img src="img/ODK.png" alt="Open Data Kit" title="Open Data Kit">Open Data Kit</a></h2>
<p><strong>Sběr dat s pomocí smartphone</strong>.<br>
<a href="http://geoodk.com/xlsform_converter.html">XLSForm</a> - online konverter XLS.<br>
<a href="httbap://geoodk.com">GeoODK Collect</a> - náhrada papírových dotazníků smartphonem.
</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="openmapkit">
<h2><a href="#"><img src="img/OMK.png" alt="Open Map Kit" title="Open Map Kit">Open Data Kit</a></h2>
<p><strong>Sběr dat s pomocí smartphone</strong>.<br>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="openmapkit-clients">
<h2><a href="#"><img src="img/OMK.png" alt="Open Map Kit" title="Open Map Kit">Open Map Kit</a></h2>
<p>Mobilní aplikace<br>
<a href="https://play.google.com/store/apps/details?id=org.odk.collect.android"><img src="img/android.png" class="ico" alt="ODK Collect">ODK Collect pro Android</a><br>
<a href="https://play.google.com/store/apps/details?id=org.redcross.openmapkit"><img src="img/android.png" class="ico" alt="Android">OpenMapKit pro Android 4.1 a vyšší</a>
</p>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
</ul>
</div>
<div class="c" id="frontlinesms">
<h2><a href="#"><img src="img/FrontlineSMS.png" alt="FrontlineSMS" title="FrontlineSMS">FrontlineSMS</a></h2>
<p><strong>SMS messaging</strong> přes veřejné datové brány</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="seeddms">
<h2><a href="#"><img src="img/SeedDMS.png" alt="SeedDMS" title="SeedDMS">SeedDMS</a></h2>
<p><strong>Dokument management</strong> na dokumentaci a projektovou dokumentaci</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="pandora">
<h2><a href="#"><img src="img/Pandora.png" alt="Pan.do/ra" title="Pan.do/ra">Pan.do/ra</a></h2>
<p><strong>Media management</strong> na foto a video z krizové události. Tvorba metadat, komentářů, lokalizace v čase a na mapě.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="pandora-client">
<h2><a href="#"><img src="img/Pandora.png" alt="Pan.do/ra" title="Pan.do/ra">Pan.do/ra Client</a></h2>
<p><strong>Dávkový upload videa</strong> do aplikace Pan.do/ra. Podpora rozlišení HD. Videa nahrávejte pouze pod licencí Creative Commons nebo Public Domain.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="ushahidi">
<h2><a href="#"><img src="img/Ushahidi.png" alt="Ushahidi" title="Ushahidi">Ushahidi</a></h2>
<p>Reakce na krizovou událost. Shromažďujte zprávy od obětí a pracovníků v terénu prostřednictvím SMS, e-mailu, webu, Twitteru.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="ushahidi-mobile">
<h2><a href="#"><img src="img/Ushahidi_mobile.png" alt="Ushahidi" title="Ushahidi">Ushahidi Mobile</a></h2>
<p>Mobilní aplikace Ushahidi pro<br>
<a href="https://itunes.apple.com/us/app/ushahidi-mobile/id1205994516?mt=8"><img src="img/ios.png" class="ico" alt="IOS">IOS 9.0 a vyšší</a><br>
<a href="https://play.google.com/store/apps/details?id=com.ushahidi.mobile"><img src="img/android.png" class="ico" alt="Android">Android 4.4 a vyšší</a>
</p>
</div>
<div class="c" id="sms-sync-gateway">
<h2><a href="#"><img src="img/SMS_Sync.png" alt="SMS Sync Gateway" title="SMS Sync Gateway">SMS Sync Gateway</a></h2>
<p>Mobilní aplikace pro<br>
<a href="https://play.google.com/store/apps/details?id=org.addhen.smssync"><img src="img/android.png" class="ico" alt="Android">Android 2.3 a vyšší</a>
</p>
</div>
<div class="c" id="kanboard">
<h2><a href="#"><img src="img/Kanboard.png" alt="Kanboard" title="Kanboard">Kanboard</a></h2>
<p>Usnadňuje tvorbu a řízení projektů s pomocí Kanban metodiky.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="kanboard-mobile">
<h2><a href="#"><img src="img/Kanboard.png" alt="Kanboard" title="Kanboard">Kanboard Mobile</a></h2>
<p>Mobilní aplikace<br>
<a href="https://play.google.com/store/apps/details?id=eu.it_quality.kanboard"><img src="img/android.png" class="ico" alt="KanBoard">KanBoard client pro Android 4.1 a vyšší</a><br>
<a href="https://f-droid.org/packages/in.andres.kandroid/"><img src="img/android.png" class="ico" alt="Android">Kandroid pro Android 4.2 a vyšší</a>
</p>
</div>
<div class="c" id="cts">
<h2><a href="#"><img src="img/CTS.png" alt="CTS" title="CTS">CTS</a></h2>
<p>Logistika hmotné pomoci pro humanitární potřeby.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="gnuhealth">
<h2><a href="#"><img src="img/GNU_Health.png" alt="GNU Health" title="GNU Health">GNU Health</a></h2>
<p>Zdravotní a nemocniční informační systém.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
<li><strong>Heslo k demu:</strong> <span class="demopassword">gnusolidario</span></li>
</ul>
</div>
<div class="c" id="gnuhealth-clients">
<h2><a href="#"><img src="img/GNU_Health.png" alt="GNU Health" title="GNU Health">GNU Health klienti</a></h2>
<p>Klientské aplikace platformy Tryton GNU Health pro<br>
<a href="https://downloads.tryton.org/4.2/tryton-last.exe"><img src="img/Windows.png" class="ico" alt="Windows">Windows</a><br>
<a href="https://downloads.tryton.org/4.2/tryton-last.dmg"><img src="img/MacOS.png" class="ico" alt="MacOS">MacOS</a><br>
<a href="https://downloads.tryton.org/4.2/tryton-last.tar.gz"><img src="img/Linux.png" class="ico" alt="Linux">Linux</a>
</p>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
</ul>
</div>
<div class="c" id="sigmah">
<h2><a href="#"><img src="img/Sigmah.png" alt="Sigmah" title="Sigmah">Sigmah</a></h2>
<p>Rozpočtování získávání finančních prostředků.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="motech">
<h2><a href="#"><img src="img/Motech.png" alt="Motech" title="Motech">Motech</a></h2>
<p>Integrace zdravotnických a komunikačních služeb.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="mifosx">
<h2><a href="#"><img src="img/MifosX.png" alt="Mifos X" title="Mifos X">Mifos X</a></h2>
<p>Nástroj na rozvojovou, humanitární pomoc a mikrofinancování.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="mifosx-mobile">
<h2><a href="#"><img src="img/MifosX_Mobile.png" alt="Mifos X" title="Mifos X">Mifos X</a></h2>
<p>Mobilní aplikace<br>
<a href="https://play.google.com/store/apps/details?id=com.mifos.mifosxdroid"><img src="img/android.png" class="ico" alt="KanBoard">Mifos X client pro Android 3.0 a vyšší</a><br>
</p>
</div>
<div class="c" id="diaspora">
<h2><a href="#"><img src="img/Diaspora.png" alt="diaspora*" title="diaspora*">diaspora*</a></h2>
<p>Autonomní sociání síť s možností propojení do cizích sociálních sítí.</p>
<ul>
<li><strong>Login:</strong> <span class="login"></span></li>
<li><strong>Heslo:</strong> <span class="password"></span></li>
</ul>
</div>
<div class="c" id="openid">
<h2><a href="http://openid.net"><img src="img/OpenID.png" alt="OpenID" title="OpenID">OpenID</a></h2>
<p>Pro ověření identity budete potřebovat účet OpenID. Zaregistrujte se. Registraci využijete v software Sahana EDEN.</p>
</div>
<div class="c" id="posm">
<h2><a href="#"><img src="img/POSM.png" alt="POSM" title="POSM">POSM</a></h2>
<p><strong>Portable Open Street Map</strong> - softwarový balík na offline používání OpenStreet Map v samostatné virtuální image.</p>
</div>
<div class="c" id="cluster-spotter">
<h2><a href="http://spotter.ngo"><img src="img/cluster_spotter.png" alt="Cluster Spotter" title="Cluster Spotter">Cluster Spotter</a></h2>
<p>Info o Misi a Vizi projektu, včetně kontaktu. Zachovejte data bezpečná a neposkytujte je nepovolaným osobám.<br>
<small>CC 4.0 CZ by <a href="http://trendspotter.cz">TS</a>. Content is based on PD, CC, GNU/GPL. Brand names, trademarks belong to their respective holders.</small>
</p>
</div>
<div class="cleaner"></div>
</body>
</html>

@ -1 +0,0 @@
{"cluster-spotter": {}}

File diff suppressed because one or more lines are too long

@ -1,12 +0,0 @@
$(function() {
$.getJSON('js/apps.json', function(data) {
$.each(data, function(id, props) {
var div = $('#'+id).show();
if (props.hasOwnProperty('url'))
div.find('h2 a').attr('href', props.url.replace('{host}', window.location.hostname));
$.each(props, function(key, value) {
div.find('.'+key).text(value.replace('{host}', window.location.hostname));
});
});
});
});

@ -1,33 +0,0 @@
#!/usr/bin/env python
import argparse
import json
def main(args):
jsonfile = '/srv/portal/js/apps.json'
data = {}
with open(jsonfile, 'r') as f:
data = json.load(f)
if not args.app in data:
data[args.app] = {}
if args.url:
data[args.app]['url'] = args.url
if args.login:
data[args.app]['login'] = args.login
if args.password:
data[args.app]['password'] = args.password
if args.property:
for key, value in args.property:
data[args.app][key] = value
with open(jsonfile, 'w') as f:
json.dump(data, f)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Spotter Cluster portal application manager')
parser.add_argument('app', help='Application ID.')
parser.add_argument('url', nargs='?', help='URL to the application. Use "{host}" as a host placeholder.')
parser.add_argument('login', nargs='?', help='Administrative login.')
parser.add_argument('password', nargs='?', help='Administrative password.')
parser.add_argument('-p', '--property', nargs=2, action='append', help='Add arbitrary key-value to the application properties')
main(parser.parse_args())

@ -1,425 +0,0 @@
#!/bin/sh
PREREQ="cryptroot-prepare"
#
# Standard initramfs preamble
#
prereqs()
{
# Make sure that cryptroot is run last in local-top
for req in $(dirname $0)/*; do
script=${req##*/}
if [ $script != cryptroot ]; then
echo $script
fi
done
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
# source for log_*_msg() functions, see LP: #272301
. /scripts/functions
#
# Helper functions
#
message()
{
if [ -x /bin/plymouth ] && plymouth --ping; then
plymouth message --text="$@"
else
echo "$@" >&2
fi
return 0
}
udev_settle()
{
# Wait for udev to be ready, see https://launchpad.net/bugs/85640
if command -v udevadm >/dev/null 2>&1; then
udevadm settle --timeout=30
elif command -v udevsettle >/dev/null 2>&1; then
udevsettle --timeout=30
fi
return 0
}
parse_options()
{
local cryptopts
cryptopts="$1"
if [ -z "$cryptopts" ]; then
return 1
fi
# Defaults
cryptcipher=aes-cbc-essiv:sha256
cryptsize=256
crypthash=ripemd160
crypttarget=cryptroot
cryptsource=""
cryptheader=""
cryptlvm=""
cryptkeyscript=""
cryptkey="" # This is only used as an argument to an eventual keyscript
cryptkeyslot=""
crypttries=3
crypttcrypt=""
cryptveracrypt=""
cryptrootdev=""
cryptdiscard=""
CRYPTTAB_OPTIONS=""
local IFS=" ,"
for x in $cryptopts; do
case $x in
hash=*)
crypthash=${x#hash=}
;;
size=*)
cryptsize=${x#size=}
;;
cipher=*)
cryptcipher=${x#cipher=}
;;
target=*)
crypttarget=${x#target=}
export CRYPTTAB_NAME="$crypttarget"
;;
source=*)
cryptsource=${x#source=}
if [ ${cryptsource#UUID=} != $cryptsource ]; then
cryptsource="/dev/disk/by-uuid/${cryptsource#UUID=}"
elif [ ${cryptsource#LABEL=} != $cryptsource ]; then
cryptsource="/dev/disk/by-label/$(printf '%s' "${cryptsource#LABEL=}" | sed 's,/,\\x2f,g')"
fi
export CRYPTTAB_SOURCE="$cryptsource"
;;
header=*)
cryptheader=${x#header=}
if [ ! -e "$cryptheader" ] && [ -e "/conf/conf.d/cryptheader/$cryptheader" ]; then
cryptheader="/conf/conf.d/cryptheader/$cryptheader"
fi
export CRYPTTAB_HEADER="$cryptheader"
;;
lvm=*)
cryptlvm=${x#lvm=}
;;
keyscript=*)
cryptkeyscript=${x#keyscript=}
;;
key=*)
if [ "${x#key=}" != "none" ]; then
cryptkey=${x#key=}
fi
export CRYPTTAB_KEY="$cryptkey"
;;
keyslot=*)
cryptkeyslot=${x#keyslot=}
;;
tries=*)
crypttries="${x#tries=}"
case "$crypttries" in
*[![:digit:].]*)
crypttries=3
;;
esac
;;
tcrypt)
crypttcrypt="yes"
;;
veracrypt)
cryptveracrypt="--veracrypt"
;;
rootdev)
cryptrootdev="yes"
;;
discard)
cryptdiscard="yes"
;;
esac
PARAM="${x%=*}"
if [ "$PARAM" = "$x" ]; then
VALUE="yes"
else
VALUE="${x#*=}"
fi
CRYPTTAB_OPTIONS="$CRYPTTAB_OPTIONS $PARAM"
eval export CRYPTTAB_OPTION_$PARAM="\"$VALUE\""
done
export CRYPTTAB_OPTIONS
if [ -z "$cryptsource" ]; then
message "cryptsetup ($crypttarget): source parameter missing"
return 1
fi
return 0
}
activate_vg()
{
# Sanity checks
if [ ! -x /sbin/lvm ]; then
message "cryptsetup ($crypttarget): lvm is not available"
return 1
fi
# Detect and activate available volume groups
/sbin/lvm vgscan >/dev/null 2>&1
/sbin/lvm vgchange -a y --sysinit >/dev/null 2>&1
return $?
}
setup_mapping()
{
local opts count cryptopen cryptremove NEWROOT
opts="$1"
if [ -z "$opts" ]; then
return 0
fi
parse_options "$opts" || return 1
if [ -z "$cryptkeyscript" ]; then
if [ ${cryptsource#/dev/disk/by-uuid/} != $cryptsource ]; then
# UUIDs are not very helpful
diskname="$crypttarget"
else
diskname="$cryptsource ($crypttarget)"
fi
cryptkeyscript="/lib/cryptsetup/askpass"
cryptkey="Please unlock disk $diskname: "
elif ! type "$cryptkeyscript" >/dev/null; then
message "cryptsetup ($crypttarget): error - script \"$cryptkeyscript\" missing"
return 1
fi
if [ "$cryptkeyscript" = "cat" ] && [ "${cryptkey#/root/}" != "$cryptkey" ]; then
# skip the mapping if the root FS is not mounted yet
sed -rn 's/^\s*[^#]\S*\s+(\S+)\s.*/\1/p' /proc/mounts | grep -Fxq "$rootmnt" || return 1
# substitute the "/root" prefix by the real root FS mountpoint otherwise
cryptkey="${rootmnt}/${cryptkey#/root/}"
fi
if [ -n "$cryptheader" ] && ! type "$cryptheader" >/dev/null; then
message "cryptsetup ($crypttarget): error - LUKS header \"$cryptheader\" missing"
return 1
fi
# The same target can be specified multiple times
# e.g. root and resume lvs-on-lvm-on-crypto
if [ -e "/dev/mapper/$crypttarget" ]; then
return 0
fi
modprobe -q dm_crypt
# Make sure the cryptsource device is available
if [ ! -e $cryptsource ]; then
activate_vg
fi
# If the encrypted source device hasn't shown up yet, give it a
# little while to deal with removable devices
# the following lines below have been taken from
# /usr/share/initramfs-tools/scripts/local, as suggested per
# https://launchpad.net/bugs/164044
if [ ! -e "$cryptsource" ]; then
log_begin_msg "Waiting for encrypted source device..."
# Default delay is 180s
if [ -z "${ROOTDELAY}" ]; then
slumber=180
else
slumber=${ROOTDELAY}
fi
slumber=$(( ${slumber} * 10 ))
while [ ! -e "$cryptsource" ]; do
# retry for LVM devices every 10 seconds
if [ ${slumber} -eq $(( ${slumber}/100*100 )) ]; then
activate_vg
fi
/bin/sleep 0.1
slumber=$(( ${slumber} - 1 ))
[ ${slumber} -gt 0 ] || break
done
if [ ${slumber} -gt 0 ]; then
log_end_msg 0
else
log_end_msg 1 || true
fi
fi
udev_settle
# We've given up, but we'll let the user fix matters if they can
if [ ! -e "${cryptsource}" ]; then
echo " ALERT! ${cryptsource} does not exist."
echo " Check cryptopts=source= bootarg: cat /proc/cmdline"
echo " or missing modules, devices: cat /proc/modules; ls /dev"
panic -r "Dropping to a shell. Will skip ${cryptsource} if you can't fix."
fi
if [ ! -e "${cryptsource}" ]; then
return 1
fi
# Prepare commands
cryptopen="/sbin/cryptsetup -T 1"
if [ "$cryptdiscard" = "yes" ]; then
cryptopen="$cryptopen --allow-discards"
fi
if [ -n "$cryptheader" ]; then
cryptopen="$cryptopen --header=$cryptheader"
fi
if [ -n "$cryptkeyslot" ]; then
cryptopen="$cryptopen --key-slot=$cryptkeyslot"
fi
if /sbin/cryptsetup isLuks ${cryptheader:-$cryptsource} >/dev/null 2>&1; then
cryptopen="$cryptopen open --type luks $cryptsource $crypttarget --key-file=-"
elif [ "$crypttcrypt" = "yes" ]; then
cryptopen="$cryptopen open --type tcrypt $cryptveracrypt $cryptsource $crypttarget"
else
cryptopen="$cryptopen -c $cryptcipher -s $cryptsize -h $crypthash open --type plain $cryptsource $crypttarget --key-file=-"
fi
cryptremove="/sbin/cryptsetup remove $crypttarget"
NEWROOT="/dev/mapper/$crypttarget"
# Try to get a satisfactory password $crypttries times
count=0
while [ $crypttries -le 0 ] || [ $count -lt $crypttries ]; do
export CRYPTTAB_TRIED="$count"
count=$(( $count + 1 ))
if [ ! -e "$NEWROOT" ]; then
if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
$cryptkeyscript "$cryptkey" | $cryptopen; then
message "cryptsetup ($crypttarget): cryptsetup failed, bad password or options?"
continue
fi
fi
if [ ! -e "$NEWROOT" ]; then
message "cryptsetup ($crypttarget): unknown error setting up device mapping"
return 1
fi
#FSTYPE=''
#eval $(fstype < "$NEWROOT")
FSTYPE="$(/sbin/blkid -s TYPE -o value "$NEWROOT")"
# See if we need to setup lvm on the crypto device
#if [ "$FSTYPE" = "lvm" ] || [ "$FSTYPE" = "lvm2" ]; then
if [ "$FSTYPE" = "LVM_member" ] || [ "$FSTYPE" = "LVM2_member" ]; then
if [ -z "$cryptlvm" ]; then
message "cryptsetup ($crypttarget): lvm fs found but no lvm configured"
return 1
elif ! activate_vg; then
# disable error message, LP: #151532
#message "cryptsetup ($crypttarget): failed to setup lvm device"
return 1
fi
# Apparently ROOT is already set in /conf/param.conf for
# flashed kernels at least. See bugreport #759720.
if [ -f /conf/param.conf ] && grep -q "^ROOT=" /conf/param.conf; then
NEWROOT=$(sed -n 's/^ROOT=//p' /conf/param.conf)
else
NEWROOT=${cmdline_root:-/dev/mapper/$cryptlvm}
if [ "$cryptrootdev" = "yes" ]; then
# required for lilo to find the root device
echo "ROOT=$NEWROOT" >>/conf/param.conf
fi
fi
#eval $(fstype < "$NEWROOT")
FSTYPE="$(/sbin/blkid -s TYPE -o value "$NEWROOT")"
fi
#if [ -z "$FSTYPE" ] || [ "$FSTYPE" = "unknown" ]; then
if [ -z "$FSTYPE" ]; then
message "cryptsetup ($crypttarget): unknown fstype, bad password or options?"
udev_settle
$cryptremove
continue
fi
# decrease $count by 1, apparently last try was successful.
count=$(( $count - 1 ))
message "cryptsetup ($crypttarget): set up successfully"
break
done
failsleep=60 # make configurable later?
if [ "$cryptrootdev" = "yes" ] && [ $crypttries -gt 0 ] && [ $count -ge $crypttries ]; then
message "cryptsetup ($crypttarget): maximum number of tries exceeded"
message "cryptsetup: going to sleep for $failsleep seconds..."
sleep $failsleep
exit 1
fi
udev_settle
return 0
}
#
# Begin real processing
#
# Do we have any kernel boot arguments?
cmdline_cryptopts=''
unset cmdline_root
for opt in $(cat /proc/cmdline); do
case $opt in
cryptopts=*)
opt="${opt#cryptopts=}"
if [ -n "$opt" ]; then
if [ -n "$cmdline_cryptopts" ]; then
cmdline_cryptopts="$cmdline_cryptopts $opt"
else
cmdline_cryptopts="$opt"
fi
fi
;;
root=*)
opt="${opt#root=}"
case $opt in
/*) # Absolute path given. Not lilo major/minor number.
cmdline_root=$opt
;;
*) # lilo major/minor number (See #398957). Ignore
esac
;;
esac
done
if [ -n "$cmdline_cryptopts" ]; then
# Call setup_mapping separately for each possible cryptopts= setting
for cryptopt in $cmdline_cryptopts; do
setup_mapping "$cryptopt"
done
exit 0
fi
# Do we have any settings from the /conf/conf.d/cryptroot file?
if [ -r /conf/conf.d/cryptroot ]; then
while read mapping <&3; do
setup_mapping "$mapping" 3<&-
done 3< /conf/conf.d/cryptroot
fi
exit 0

@ -1,65 +0,0 @@
#!/bin/sh
PREREQ="mdadm mdrun multipath"
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
if [ ! -e /sbin/lvm ]; then
exit 0
fi
lvchange_activate() {
lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@" >/dev/null 2>&1
}
activate() {
local dev="$1"
# Make sure that we have a non-empty argument
if [ -z "$dev" ]; then
return 1
fi
case "$dev" in
# Take care of lilo boot arg, risky activating of all vg
fe[0-9]*)
lvchange_activate
exit 0
;;
# FIXME: check major
/dev/root)
lvchange_activate
exit 0
;;
/dev/mapper/*)
eval $(dmsetup splitname --nameprefixes --noheadings --rows "${dev#/dev/mapper/}")
if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then
lvchange_activate "$DM_VG_NAME/$DM_LV_NAME"
fi
;;
/dev/*/*)
# Could be /dev/VG/LV; use lvs to check
if lvm lvs -- "$dev" >/dev/null 2>&1; then
lvchange_activate "$dev"
fi
;;
esac
}
activate "$ROOT"
activate "$resume"
exit 0

117
build/build-all.sh Executable file

@ -0,0 +1,117 @@
#!/bin/sh
set -ev
ROOT=$(dirname $(dirname $(realpath "${0}")))
# Build documentation
cd ${ROOT}/doc
make html
# Build basic tar
cd ${ROOT}/vm
tar czpf /srv/build/vm.tar.gz *
# Build native apps
cd ${ROOT}/apk/py3-secure-cookie
apk add -U py3-setuptools py3-pytest py3-werkzeug
abuild -F
cd ${ROOT}/apk/spoc
abuild -F
cd ${ROOT}/apk/vmmgr
abuild -F
# Build runtimes
cd ${ROOT}/lxc-shared
spoc-image build -p alpine3.8/image
spoc-image build -p alpine3.8-java8/image
spoc-image build -p alpine3.8-ruby2.4/image
spoc-image build -p alpine3.10/image
spoc-image build -p alpine3.10-nodejs10/image
spoc-image build -p alpine3.11/image
spoc-image build -p alpine3.11-python2.7/image
spoc-image build -p alpine3.12/image
spoc-image build -p alpine3.12-java8/image
spoc-image build -p alpine3.12-php7.3/image
spoc-image build -p alpine3.12-python3.8/image
spoc-image build -p alpine3.12-ruby2.4/image
spoc-image build -p alpine3.12-ruby2.7/image
spoc-image build -p alpine3.12-tomcat7/image
spoc-image build -p alpine3.12-tomcat8.5/image
spoc-image build -p debian10/image
# Build services
cd ${ROOT}/lxc-services
spoc-image build -p activemq/image
spoc-image build -p mariadb/image
spoc-image build -p mongodb/image
spoc-image build -p postgres/image
spoc-image build -p postgis/image
spoc-image build -p rabbitmq/image
spoc-image build -p redis/image
spoc-image build -p solr6/image
# Build applications
cd ${ROOT}/lxc-apps
spoc-image build -p ckan/ckan.image
spoc-image build -p ckan/ckan-datapusher.image
spoc-app publish ckan/app
spoc-image build -p crisiscleanup/image
spoc-app publish crisiscleanup/app
spoc-image build -p cts/image
spoc-app publish cts/app
spoc-image build -p decidim/decidim-nginx.image
spoc-image build -p decidim/decidim.image
spoc-app publish decidim/app
spoc-image build -p dhis2/image
spoc-app publish dhis2/app
spoc-image build -p frontlinesms/image
spoc-app publish frontlinesms/app
spoc-image build -p gnuhealth/image
spoc-app publish gnuhealth/app
spoc-image build -p kanboard/image
spoc-app publish kanboard/app
spoc-image build -p mifosx/image
spoc-app publish mifosx/app
spoc-image build -p motech/image
spoc-app publish motech/app
spoc-image build -p odoo/image
spoc-app publish odoo/app
spoc-image build -p opendatakit/opendatakit.image
spoc-image build -p opendatakit/opendatakit-build.image
spoc-app publish opendatakit/app
spoc-image build -p openmapkit/image
spoc-app publish openmapkit/app
spoc-image build -p pandora/image
spoc-app publish pandora/app
spoc-image build -p sahana/image
spoc-app publish sahana/app
spoc-app publish sahana-demo/app
spoc-app publish sambro/app
spoc-app publish safire/app
spoc-app publish share/app
spoc-image build -p seeddms/image
spoc-app publish seeddms/app
spoc-image build -p taarifa/image
spoc-app publish taarifa/app
spoc-image build -p ushahidi/image
spoc-app publish ushahidi/app

29
build/clean-all.sh Executable file

@ -0,0 +1,29 @@
#!/bin/sh
set -ev
# Clean documentation
rm -rf /srv/build/doc/*
# Clean basic tar
rm -f /srv/build/vm.tar.gz
# Clean native apps
rm -rf /srv/build/alpine/*
# Clean built LXC packages
rm -rf /srv/build/spoc
# Remove nginx configs
for CONF in $(find /etc/nginx/conf.d -name '*.conf' -a ! -name repo.conf -a ! -name default.conf); do
rm -f ${CONF}
done
service nginx reload
# Stop running containers
for APP in $(spoc-container list); do
spoc-container stop ${APP}
done
# Remove data
rm -rf /var/lib/spoc
rm -rf /var/log/spoc

32
build/etc/abuild.conf Normal file

@ -0,0 +1,32 @@
export CFLAGS="-Os -fomit-frame-pointer"
export CXXFLAGS="$CFLAGS"
export CPPFLAGS="$CFLAGS"
export LDFLAGS="-Wl,--as-needed"
export JOBS=2
export MAKEFLAGS=-j$JOBS
# remove line below to disable colors
USE_COLORS=1
# uncomment line below to enable ccache support.
#USE_CCACHE=1
SRCDEST=/var/cache/distfiles
# uncomment line below to store built packages in other location
# The package will be stored as $REPODEST/$repo/$pkgname-$pkgver-r$pkgrel.apk
# where $repo is the name of the parent directory of $startdir.
REPODEST=/srv/build/alpine/v3.12
# PACKAGER and MAINTAINER are used by newapkbuild when creating new aports for
# the APKBUILD's "Contributor:" and "Maintainer:" comments, respectively.
#PACKAGER="Your Name <your@email.address>"
#MAINTAINER="$PACKAGER"
PACKAGER_PRIVKEY="/root/repo.spotter.cz.rsa"
# what to clean up after a successful build
CLEANUP="srcdir bldroot pkgdir deps"
# what to cleanup after a failed build
ERROR_CLEANUP="bldroot deps"

@ -0,0 +1,8 @@
server {
listen [::]:80;
server_name repo.build.vm;
location / {
root /srv/build;
}
}

36
build/install-toolchain.sh Executable file

@ -0,0 +1,36 @@
#!/bin/sh
set -ev
cd $(realpath $(dirname "${0}"))
# Install basic build tools
apk update
apk add git file htop less openssh-client tree
# Install Alpine SDK (for APK builds)
apk add alpine-sdk
# Install Sphinx support (for documentation builds)
apk add py3-sphinx py3-sphinx_rtd_theme
# Copy root profile files and settings
mkdir -p /root/.config/htop
cp root/.profile /root/.profile
cp root/.config/htop/htoprc /root/.config/htop/htoprc
# Prepare abuild toolchain
adduser root abuild
cp etc/abuild.conf /etc/abuild.conf
# Prepare local APK repository
cp etc/nginx/conf.d/repo.conf /etc/nginx/conf.d/repo.conf
echo "172.17.0.1 repo.build.vm" >>/etc/hosts
service nginx reload
# Change SPOC repository
sed -i 's/https:\/\/repo\.spotter\.cz/http:\/\/repo.build.vm/' /etc/spoc/spoc.conf
# Supply abuild key
# echo '/root/repo.spotter.cz.rsa' | abuild-keygen
# Supply SPOC key
# openssl ecparam -genkey -name secp384r1 -out /etc/spoc/publish.key
# openssl ec -in /etc/spoc/publish.key -pubout -out /tmp/repository.pub

2
build/root/.profile Normal file

@ -0,0 +1,2 @@
alias ll="ls -la"
alias view="vi -R"

120
ckan.sh

@ -1,120 +0,0 @@
#!/bin/bash
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan
# Install dependencies for CKAN
apt-get -y --no-install-recommends install gcc libpq-dev python-dev python-virtualenv redis-server virtualenv
# Install dependencies for Solr
apt-get -y --no-install-recommends install openjdk-8-jre-headless lsof
# Install CKAN python virtual environment
mkdir -p /srv/ckan
virtualenv --no-site-packages --python=/usr/bin/python2.7 /srv/ckan
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan'
/srv/ckan/bin/pip install -r /srv/ckan/src/ckan/requirements.txt
# Install Datapusher python virtual environment
mkdir -p /srv/ckan-datapusher
virtualenv --no-site-packages --python=/usr/bin/python2.7 /srv/ckan-datapusher
/srv/ckan-datapusher/bin/pip install -e 'git+https://github.com/ckan/datapusher.git#egg=datapusher'
/srv/ckan-datapusher/bin/pip install -r /srv/ckan-datapusher/src/datapusher/requirements.txt
# Patch service provider TLS verification for Datapusher
# https://github.com/ckan/ckan-service-provider/issues/36
patch -d /srv/ckan-datapusher -p0 <${SOURCE_DIR}/ckan-serviceprovider-sslverify.patch
# Install CKAN extensions
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckanext-basiccharts#egg=ckanext_basiccharts'
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckanext-spatial#egg=ckanext_spatial'
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckanext-geoview#egg=ckanext_geoview'
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckanext-mapviews#egg=ckanext_mapviews'
/srv/ckan/bin/pip install -e 'git+https://github.com/ckan/ckanext-pages#egg=ckanext_pages'
/srv/ckan/bin/pip install -e 'git+https://github.com/XVTSolutions/ckanext-spatialUI#egg=ckanext_spatialui'
/srv/ckan/bin/pip install -e 'git+https://github.com/aptivate/ckanext-datasetthumbnail#egg=ckanext_datasetthumbnail'
/srv/ckan/bin/pip install -e 'git+https://github.com/datagvat/ckanext-dgvat_xls#egg=ckanext_dgvat_xls'
/srv/ckan/bin/pip install -r /srv/ckan/src/ckanext-spatial/pip-requirements.txt
/srv/ckan/bin/pip install -r /srv/ckan/src/ckanext-datasetthumbnail/requirements.txt
/srv/ckan/bin/pip install -r /srv/ckan/src/ckanext-dgvat-xls/requirements.txt
# Download Solr
wget http://archive.apache.org/dist/lucene/solr/6.5.1/solr-6.5.1.tgz -O /tmp/solr-6.5.1.tgz
tar xzf /tmp/solr-6.5.1.tgz -C /opt/
mv /opt/solr-6.5.1 /opt/solr
rm -f /tmp/solr-6.5.1.tgz
# Create Solr OS user
adduser --system --group --home /var/lib/solr --shell /bin/false solr
chown -R solr:solr /opt/solr/
# Configure Solr
cp ${SOURCE_DIR}/lib/systemd/system/solr.service /lib/systemd/system/solr.service
cp -p /opt/solr/server/solr/solr.xml /var/lib/solr/
systemctl daemon-reload
systemctl enable solr
systemctl start solr
sleep 5
# Configure CKAN Solr core
sudo -u solr /opt/solr/bin/solr create -c ckan
cp ${SOURCE_DIR}/var/lib/solr/ckan/conf/solrconfig.xml /var/lib/solr/ckan/conf/solrconfig.xml
ln -s /srv/ckan/src/ckan/ckan/config/solr/schema.xml /var/lib/solr/ckan/conf/schema.xml
systemctl restart solr
# Create database
export CKAN_PWD=$(head -c 18 /dev/urandom | base64)
export CKAN_DS_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/tmp/ckan-createdb.sql >/tmp/ckan-createdb.sql
sudo -u postgres psql -f /tmp/ckan-createdb.sql
rm -f /tmp/ckan-createdb.sql
# Configure CKAN
export CKAN_SECRET=$(head -c 18 /dev/urandom | base64)
export CKAN_UUID=$(python -c "import uuid; print uuid.uuid4()")
mkdir /etc/ckan
envsubst <${SOURCE_DIR}/etc/ckan/ckan.ini >/etc/ckan/ckan.ini
cp ${SOURCE_DIR}/etc/ckan/datapusher.wsgi /etc/ckan/datapusher.wsgi
cp ${SOURCE_DIR}/etc/ckan/datapusher_settings.py /etc/ckan/datapusher_settings.py
ln -s /srv/ckan/src/ckan/ckan/config/who.ini /etc/ckan/who.ini
cp ${SOURCE_DIR}/srv/ckan/update-ip.sh /srv/ckan/update-ip.sh
/srv/ckan/update-ip.sh
# Populate database
/srv/ckan/bin/paster --plugin=ckan db init -c /etc/ckan/ckan.ini
/srv/ckan/bin/paster --plugin=ckanext-spatial spatial initdb -c /etc/ckan/ckan.ini
/srv/ckan/bin/paster --plugin=ckan datastore set-permissions -c /etc/ckan/ckan.ini | sudo -u postgres psql
# Create CKAN OS user
adduser --system --group --home /srv/ckan --shell /bin/false ckan
chown -R ckan:ckan /srv/ckan/
chown -R ckan:ckan /srv/ckan-datapusher/
# Create admin account
export CKAN_ADMIN_USER="admin"
export CKAN_ADMIN_UUID=$(python -c "import uuid; print uuid.uuid4()")
export CKAN_ADMIN_APIKEY=$(python -c "import uuid; print uuid.uuid4()")
export CKAN_ADMIN_PWD=$(head -c 12 /dev/urandom | base64)
export CKAN_ADMIN_HASH=$(/srv/ckan/bin/python ${SOURCE_DIR}/ckan-adminpwd.py ${CKAN_ADMIN_PWD})
export CKAN_ADMIN_EMAIL="admin@example.com"
envsubst <${SOURCE_DIR}/tmp/ckan-adminpwd.sql >/tmp/ckan-adminpwd.sql
sudo -u postgres psql -f /tmp/ckan-adminpwd.sql ckan
rm /tmp/ckan-adminpwd.sql
# Create uwsgi and nginx app definition
cp ${SOURCE_DIR}/etc/uwsgi/apps-available/ckan.ini /etc/uwsgi/apps-available/ckan.ini
cp ${SOURCE_DIR}/etc/uwsgi/apps-available/ckan-datapusher.ini /etc/uwsgi/apps-available/ckan-datapusher.ini
ln -s /etc/uwsgi/apps-available/ckan.ini /etc/uwsgi/apps-enabled/ckan.ini
ln -s /etc/uwsgi/apps-available/ckan-datapusher.ini /etc/uwsgi/apps-enabled/ckan-datapusher.ini
cp ${SOURCE_DIR}/etc/nginx/sites-available/ckan /etc/nginx/sites-available/ckan
ln -s /etc/nginx/sites-available/ckan /etc/nginx/sites-enabled/ckan
# Restart services
systemctl restart uwsgi
systemctl restart nginx
# Install cron job
cp ${SOURCE_DIR}/srv/ckan/cron-pageviews.sh /srv/ckan/cron-pageviews.sh
cp ${SOURCE_DIR}/etc/cron.d/ckan /etc/cron.d/ckan
# Add portal application definition
portal-app-manager ckan "https://{host}:8003/" "${CKAN_ADMIN_USER}" "${CKAN_ADMIN_PWD}"

@ -1,6 +0,0 @@
#!/usr/bin/python
import sys
from passlib.hash import pbkdf2_sha512
print pbkdf2_sha512.encrypt(sys.argv[1])

@ -1,11 +0,0 @@
diff -ruN orig/python2.7/site-packages/ckanserviceprovider/web.py lib/python2.7/site-packages/ckanserviceprovider/web.py
--- orig/python2.7/site-packages/ckanserviceprovider/web.py 2017-12-01 08:55:57.595353323 +0100
+++ lib/python2.7/site-packages/ckanserviceprovider/web.py 2017-12-01 08:56:37.819592364 +0100
@@ -733,6 +733,7 @@
try:
result = requests.post(
result_url,
+ verify=False,
data=json.dumps(job_dict, cls=DatetimeJsonEncoder),
headers=headers)

@ -1 +0,0 @@
10 * * * * ckan /srv/ckan/bin/paster --plugin=ckan tracking update -c /etc/ckan/ckan.ini >/dev/null && /srv/ckan/bin/paster --plugin=ckan search-index rebuild -r -c /etc/ckan/ckan.ini >/dev/null

@ -1,29 +0,0 @@
server {
listen 8003 ssl http2;
listen [::]:8003 ssl http2;
access_log /var/log/nginx/ckan.access.log;
error_log /var/log/nginx/ckan.error.log;
location / {
uwsgi_pass unix:///run/uwsgi/app/ckan/socket;
include uwsgi_params;
uwsgi_param SCRIPT_NAME '';
uwsgi_param UWSGI_SCHEME $scheme;
}
}
server {
listen 127.0.0.1:8098;
listen [::1]:8098;
access_log /var/log/nginx/ckan-datapusher.access.log;
error_log /var/log/nginx/ckan-datapusher.error.log;
location / {
uwsgi_pass unix:///run/uwsgi/app/ckan-datapusher/socket;
include uwsgi_params;
uwsgi_param SCRIPT_NAME '';
uwsgi_param UWSGI_SCHEME $scheme;
}
}

@ -1,11 +0,0 @@
[uwsgi]
uid = ckan
gid = ckan
chown-socket = www-data:www-data
chdir = /srv/ckan-datapusher
home = /srv/ckan-datapusher
master = false
workers = 1
disable-logging = true
file = /etc/ckan/datapusher.wsgi
enable-threads = true

@ -1,12 +0,0 @@
[uwsgi]
uid = ckan
gid = ckan
chown-socket = www-data:www-data
chdir = /srv/ckan
home = /srv/ckan
master = false
workers = 1
exec-asap = /srv/ckan/update-ip.sh
disable-logging = true
ini-paste = /etc/ckan/ckan.ini
enable-threads = true

@ -1,11 +0,0 @@
[Unit]
Description=Apache Solr
After=network.target
[Service]
ExecStart=/opt/solr/bin/solr start -f -p 8983 -s /var/lib/solr
ExecStop=/opt/solr/bin/solr stop -p 8983
User=solr
[Install]
WantedBy=multi-user.target

@ -1,4 +0,0 @@
#!/bin/sh
URL=$(ip route get 1 | awk '{print $NF;exit}')
sed -i "s|^ckan\.site_url.*|ckan.site_url = https://${URL}:8003|" /etc/ckan/ckan.ini

@ -1,69 +0,0 @@
#!/bin/bash
SOURCE_DIR=$(realpath $(dirname "${0}"))/crisiscleanup
# Add NodeJS + Yarn repositories
wget https://deb.nodesource.com/gpgkey/nodesource.gpg.key -O - | apt-key add -
wget https://dl.yarnpkg.com/debian/pubkey.gpg -O - | apt-key add -
echo 'deb https://deb.nodesource.com/node_8.x stretch main' > /etc/apt/sources.list.d/nodejs.list
echo 'deb https://dl.yarnpkg.com/debian/ stable main' > /etc/apt/sources.list.d/yarn.list
apt-get -y update
# Install CrisisCleanup dependecies
apt-get -y --no-install-recommends install build-essential curl libpq-dev nodejs ruby ruby-dev yarn zlib1g-dev
gem install bundler
# Clone CrisisCleanup git repository
git clone --depth 1 https://github.com/CrisisCleanup/crisiscleanup /srv/crisiscleanup
# Fix Ruby version dependencies
sed -i 's/2\.2\.5/2.3.3/' /srv/crisiscleanup/Gemfile
sed -i 's/rdoc (4\.2\.0)/rdoc (4.3.0)/' /srv/crisiscleanup/Gemfile.lock
# Create CrisisCleanup OS user
adduser --system --group --home /srv/crisiscleanup --shell /bin/bash crisis
chown -R crisis:crisis /srv/crisiscleanup/
# Install CrisisCleanup dependencies
sudo -u crisis -i bundle install --path /srv/crisiscleanup/vendor/bundle
sudo -u crisis -i npm install
sudo -u crisis -i yarn
# Create database
export CRISISCLEANUP_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/tmp/crisiscleanup-createdb.sql >/tmp/crisiscleanup-createdb.sql
sudo -u postgres psql -f /tmp/crisiscleanup-createdb.sql
rm /tmp/crisiscleanup-createdb.sql
# Configure CrisisCleanup
export CRISISCLEANUP_SECRET=$(sudo -u crisis -i /srv/crisiscleanup/bin/rake secret)
export CRISISCLEANUP_ADMIN_USER="Admin"
export CRISISCLEANUP_ADMIN_EMAIL="admin@example.com"
export CRISISCLEANUP_ADMIN_PWD=$(head -c 12 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/srv/crisiscleanup/config/database.yml >/srv/crisiscleanup/config/database.yml
envsubst <${SOURCE_DIR}/srv/crisiscleanup/config/secrets.yml >/srv/crisiscleanup/config/secrets.yml
envsubst <${SOURCE_DIR}/srv/crisiscleanup/config/initializers/devise.rb >/srv/crisiscleanup/config/initializers/devise.rb
envsubst <${SOURCE_DIR}/srv/crisiscleanup/db/seeds.rb >/srv/crisiscleanup/db/seeds.rb
cp ${SOURCE_DIR}/srv/crisiscleanup/config/environments/production.rb /srv/crisiscleanup/config/environments/production.rb
cp ${SOURCE_DIR}/srv/crisiscleanup/.env /srv/crisiscleanup/.env
rm /srv/crisiscleanup/.env.test
sudo -u crisis -i /srv/crisiscleanup/bin/rake assets:precompile RAILS_ENV=production
# Populate database
sudo -u crisis -i /srv/crisiscleanup/bin/rake db:schema:load RAILS_ENV=production
sudo -u crisis -i /srv/crisiscleanup/bin/rake db:seed RAILS_ENV=production
# Create Rails service
cp ${SOURCE_DIR}/lib/systemd/system/crisiscleanup.service /lib/systemd/system/crisiscleanup.service
systemctl daemon-reload
# Create nginx site definition
cp ${SOURCE_DIR}/etc/nginx/sites-available/crisiscleanup /etc/nginx/sites-available/crisiscleanup
ln -s /etc/nginx/sites-available/crisiscleanup /etc/nginx/sites-enabled/crisiscleanup
# Restart services
systemctl start crisiscleanup
systemctl restart nginx
# Add portal application definition
portal-app-manager crisis-cleanup "https://{host}:8005/" "${CRISISCLEANUP_ADMIN_EMAIL}" "${CRISISCLEANUP_ADMIN_PWD}"

@ -1,20 +0,0 @@
server {
listen 8005 ssl http2;
listen [::]:8005 ssl http2;
access_log /var/log/nginx/crisiscleanup.access.log;
error_log /var/log/nginx/crisiscleanup.error.log;
root /srv/crisiscleanup/public;
try_files $uri/index.html $uri @crisiscleanup;
location @crisiscleanup {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://127.0.0.1:3000;
}
error_page 404 /404.html;
error_page 500 502 503 504 /500.html;
}

@ -1,11 +0,0 @@
[Unit]
Description=Crisis Cleanup Ruby on Rails server
After=network.target
[Service]
User=crisis
WorkingDirectory=/srv/crisiscleanup
ExecStart=/srv/crisiscleanup/bin/rails server -b 127.0.0.1 -p 3000 -e production
[Install]
WantedBy=multi-user.target

@ -1,2 +0,0 @@
COMPOSE_PROJECT_NAME=crisiscleanup
GOOGLE_MAPS_API_KEY=AIzaSyBvIF3D550tlpL6o1xRrDurGo-81VhHlOw

@ -1,31 +0,0 @@
development: &development
adapter: postgresql
encoding: unicode
database: crisiscleanup_development
pool: 5
username: crisiscleanup
password: crisiscleanup
host: localhost
port: 5432
docker:
<<: *development
host: postgres
test:
adapter: postgresql
encoding: unicode
database: crisiscleanup_test
pool: 5
username: crisiscleanup
password: crisiscleanup
host: localhost
port: 5432
production:
adapter: postgresql
encoding: unicode
database: crisiscleanup
pool: 5
username: crisiscleanup
password: ${CRISISCLEANUP_PWD}

@ -1,25 +0,0 @@
# Be sure to restart your server when you modify this file.
# Your secret key is used for verifying the integrity of signed cookies.
# If you change this key, all old signed cookies will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
# You can use `rake secret` to generate a secure secret key.
# Make sure the secrets in this file are kept private
# if you're sharing your code publicly.
development:
secret_key_base: 57e62ae63822f461997fa79e75462ba7316c44e03c80d003ef9f68b572b8755cb5a7221e6c4b4958f995c2b03a82112941ee8951b9f393e5ca2449ab480b572b
docker:
secret_key_base: a6a0606f1a506b1a9e0059a1db833f2ee3d07ce86e2f938af1f5c0c120b2f5af73965610357edfb82afc90b024ed2ac7f39f25b38d3570d9e3cb76d4d096861b
test:
secret_key_base: 055f7b3ef374b2c1c7469fab62d9bc38a8dc510b9f314cc401b75e52974b1422f7796e27d8ff1594468c65ee04493c13a249bcaf77a18e75f96ddec5dbd36ce9
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: ${CRISISCLEANUP_SECRET}

File diff suppressed because one or more lines are too long

65
cts.sh

@ -1,65 +0,0 @@
#!/bin/bash
SOURCE_DIR=$(realpath $(dirname "${0}"))/cts
# Install packages
apt-get -y --no-install-recommends install build-essential libpq-dev python-dev python-virtualenv virtualenv zlib1g-dev
# Clone CTS git repository
git clone --depth 1 https://github.com/theirc/CTS /srv/cts
# Install CTS python virtual environment
virtualenv --no-site-packages --python=/usr/bin/python2.7 /srv/cts
/srv/cts/bin/pip install -r /srv/cts/requirements/production.txt
# Create database
export CTS_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/tmp/cts-createdb.sql >/tmp/cts-createdb.sql
sudo -u postgres psql -f /tmp/cts-createdb.sql
rm -f /tmp/cts-createdb.sql
# Configure CTS
export CTS_SECRET=$(head -c 26 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/srv/cts/cts/settings/spotter.py >/srv/cts/cts/settings/spotter.py
ln -s /srv/cts/lib/python2.7/site-packages/django/contrib/admin/static/admin /srv/cts/cts/static/admin
ln -s /srv/cts/lib/python2.7/site-packages/django_extensions/static/django_extensions /srv/cts/cts/static/django_extensions
ln -s /srv/cts/lib/python2.7/site-packages/django_tables2/static/django_tables2 /srv/cts/cts/static/django_tables2
ln -s /srv/cts/lib/python2.7/site-packages/leaflet/static/leaflet /srv/cts/cts/static/leaflet
ln -s /srv/cts/lib/python2.7/site-packages/rest_framework/static/rest_framework /srv/cts/cts/static/rest_framework
ln -s /srv/cts/lib/python2.7/site-packages/rest_framework_swagger/static/rest_framework_swagger /srv/cts/cts/static/rest_framework_swagger
ln -s /srv/cts/lib/python2.7/site-packages/selectable/static/selectable /srv/cts/cts/static/selectable
ln -s /srv/cts/lib/python2.7/site-packages/session_security/static/session_security /srv/cts/cts/static/session_security
# Set "production values" (increases performance) only if the DEBUG environment variable is not set
if [ ${DEBUG:-0} -eq 0 ]; then
sed -i 's/DEBUG = True/DEBUG = False/' /srv/cts/cts/settings/spotter.py
fi
# Populate database
DJANGO_SETTINGS_MODULE=cts.settings.spotter /srv/cts/bin/python /srv/cts/manage.py migrate
# Create admin account
export CTS_ADMIN_EMAIL=admin@example.com
export CTS_ADMIN_PWD=$(head -c 12 /dev/urandom | base64)
export CTS_ADMIN_HASH=$(cd /srv/cts && DJANGO_SETTINGS_MODULE=cts.settings.spotter /srv/cts/bin/python -c "from django.contrib.auth.hashers import make_password; print make_password('${CTS_ADMIN_PWD}')")
export CTS_ADMIN_SECRET=$(head -c 12 /dev/urandom | sha256sum | cut -c1-13)
envsubst <${SOURCE_DIR}/tmp/cts-adminpwd.sql >/tmp/cts-adminpwd.sql
sudo -u postgres psql -f /tmp/cts-adminpwd.sql cts
rm -f /tmp/cts-adminpwd.sql
# Create CTS OS user
adduser --system --group --home /srv/cts --shell /bin/false cts
chown -R cts:cts /srv/cts
# Create uwsgi and nginx app definition
cp ${SOURCE_DIR}/etc/uwsgi/apps-available/cts.ini /etc/uwsgi/apps-available/cts.ini
ln -s /etc/uwsgi/apps-available/cts.ini /etc/uwsgi/apps-enabled/cts.ini
cp ${SOURCE_DIR}/etc/nginx/sites-available/cts /etc/nginx/sites-available/cts
ln -s /etc/nginx/sites-available/cts /etc/nginx/sites-enabled/cts
# Restart services
systemctl restart uwsgi
systemctl restart nginx
# Add portal application definition
portal-app-manager cts "https://{host}:8004/" "${CTS_ADMIN_EMAIL}" "${CTS_ADMIN_PWD}"

@ -1,44 +0,0 @@
server {
listen 8004 ssl http2;
listen [::]:8004 ssl http2;
root /srv/cts/cts;
access_log /var/log/nginx/cts.access.log;
error_log /var/log/nginx/cts.error.log;
location /robots.txt {
alias /srv/cts/cts/static/robots.txt;
}
location /media {
alias /srv/cts/cts/media;
}
location /static {
gzip on;
alias /srv/cts/cts/static;
expires max;
add_header Cache-Control public;
location /static/protected {
return 401;
}
}
location /protected {
internal;
root /srv/cts/cts/static;
}
error_page 502 503 504 /502.html;
location /502.html {
alias /srv/cts/cts/static/502.html;
}
location / {
uwsgi_pass unix:///run/uwsgi/app/cts/socket;
include uwsgi_params;
}
}

@ -1,9 +0,0 @@
[uwsgi]
uid = cts
gid = cts
chown-socket = www-data:www-data
chdir = /srv/cts
home = /srv/cts
disable-logging = true
module = cts.wsgi:application
env = DJANGO_SETTINGS_MODULE=cts.settings.spotter

19
doc/Makefile Normal file

@ -0,0 +1,19 @@
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build-3
SOURCEDIR = .
BUILDDIR = /srv/build/doc
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)

@ -0,0 +1,21 @@
Application,Container,Host
CKAN,ckan,ckan
Crisis Cleanup,crisiscleanup,cc
CTS,cts,cts
EcoGIS,ecogis,ecogis
FrontlineSMS,frontlinesms,sms
GNU Health,gnuhealth,gh
Kanboard,kanboard,kb
Mifos X,mifosx,mifosx
Motech,motech,motech
ODK Aggregate,opendatakit,odk
ODK Build,opendatakit-build,odkbuild
Odoo,odoo,odoo
OpenMapKit,openmapkit,omk
Pan.do/ra,pandora,pandora
Sahana,sahana,sahana
Sahana - Demo,sahana-demo,sahana-demo
SAMBRO,sambro,sambro
SeedDMS,seeddms,dms
Sigmah,sigmah,sigmah
Ushahidi,ushahidi,ush
1 Application Container Host
2 CKAN ckan ckan
3 Crisis Cleanup crisiscleanup cc
4 CTS cts cts
5 EcoGIS ecogis ecogis
6 FrontlineSMS frontlinesms sms
7 GNU Health gnuhealth gh
8 Kanboard kanboard kb
9 Mifos X mifosx mifosx
10 Motech motech motech
11 ODK Aggregate opendatakit odk
12 ODK Build opendatakit-build odkbuild
13 Odoo odoo odoo
14 OpenMapKit openmapkit omk
15 Pan.do/ra pandora pandora
16 Sahana sahana sahana
17 Sahana - Demo sahana-demo sahana-demo
18 SAMBRO sambro sambro
19 SeedDMS seeddms dms
20 Sigmah sigmah sigmah
21 Ushahidi ushahidi ush

@ -0,0 +1,13 @@
Product,Layer
Alpine 3.8,alpine3.8
Alpine 3.8 - PHP 5.6,alpine3.8-php5.6
Alpine 3.9 - Ruby 2.4,alpine3.8-ruby2.4
Alpine 3.9,alpine3.9
Alpine 3.9 - Java 8,alpine3.9-java8
Alpine 3.9 - PHP 7.2,alpine3.9-php7.2
Alpine 3.9 - Python 2.7,alpine3.9-python2.7
Alpine 3.9 - Python 3.6,alpine3.9-python3.6
Alpine 3.9 - Ruby 2.4,alpine3.9-ruby2.4
Alpine 3.9 - Ruby 2.6,alpine3.9-ruby2.6
Alpine 3.9 - Tomcat 7,alpine3.9-tomcat7
Alpine 3.9 - Tomcat 8.5,alpine3.9-tomcat8.5
1 Product Layer
2 Alpine 3.8 alpine3.8
3 Alpine 3.8 - PHP 5.6 alpine3.8-php5.6
4 Alpine 3.9 - Ruby 2.4 alpine3.8-ruby2.4
5 Alpine 3.9 alpine3.9
6 Alpine 3.9 - Java 8 alpine3.9-java8
7 Alpine 3.9 - PHP 7.2 alpine3.9-php7.2
8 Alpine 3.9 - Python 2.7 alpine3.9-python2.7
9 Alpine 3.9 - Python 3.6 alpine3.9-python3.6
10 Alpine 3.9 - Ruby 2.4 alpine3.9-ruby2.4
11 Alpine 3.9 - Ruby 2.6 alpine3.9-ruby2.6
12 Alpine 3.9 - Tomcat 7 alpine3.9-tomcat7
13 Alpine 3.9 - Tomcat 8.5 alpine3.9-tomcat8.5

@ -0,0 +1,8 @@
Product,Layer,UID/GID,Internal Port
ActiveMQ,activemq,61616,61616 (ActiveMQ)
MariaDB,mariadb,3306,3306 (MySQL)
Postgres,postgres,5432,5432 (Postgres)
PostGIS,postgis,5432,5432 (Postgres)
RabbitMQ,rabbitmq,5672,5672 (AMQP)
Redis,redis,6379,6379 (Redis)
Solr 6,solr6,8983,8983 (HTTP)
1 Product Layer UID/GID Internal Port
2 ActiveMQ activemq 61616 61616 (ActiveMQ)
3 MariaDB mariadb 3306 3306 (MySQL)
4 Postgres postgres 5432 5432 (Postgres)
5 PostGIS postgis 5432 5432 (Postgres)
6 RabbitMQ rabbitmq 5672 5672 (AMQP)
7 Redis redis 6379 6379 (Redis)
8 Solr 6 solr6 8983 8983 (HTTP)

@ -0,0 +1,12 @@
Application,Data sources,Map viewer,Configurable,Notes
CKAN,OSM (`Stamen <http://maps.stamen.com>`_),Leaflet,No,[1]
CrisisCleanup v2,Google Maps,Google Maps,No,
CrisisCleanup v3,OSM,Leaflet,No,
Crismapp,OSM,Leaflet,,
CTS,"OSM, `ArcGIS <http://server.arcgisonline.com/arcgis/rest/services>`_",Leaflet,No,
EcoGIS,,FreeGIS + OpenLayers 2,Probably,[2]
Odoo,Google Maps,Google Maps,No,[3]
OpenMapKit,OSM,N/A,Yes,[4]
Pan.do/ra,Google Maps,Google Maps + OxMap,No,
Sahana Eden,OSM (`HOT <https://www.hotosm.org/>`_),OpenLayers 2,"Yes, very",[5]
Ushahidi,"OSM (`Mapbox <https://www.mapbox.com/about/maps/>`_, `HOT`_)",Leaflet,No,
1 Application Data sources Map viewer Configurable Notes
2 CKAN OSM (`Stamen <http://maps.stamen.com>`_) Leaflet No [1]
3 CrisisCleanup v2 Google Maps Google Maps No
4 CrisisCleanup v3 OSM Leaflet No
5 Crismapp OSM Leaflet
6 CTS OSM, `ArcGIS <http://server.arcgisonline.com/arcgis/rest/services>`_ Leaflet No
7 EcoGIS FreeGIS + OpenLayers 2 Probably [2]
8 Odoo Google Maps Google Maps No [3]
9 OpenMapKit OSM N/A Yes [4]
10 Pan.do/ra Google Maps Google Maps + OxMap No
11 Sahana Eden OSM (`HOT <https://www.hotosm.org/>`_) OpenLayers 2 Yes, very [5]
12 Ushahidi OSM (`Mapbox <https://www.mapbox.com/about/maps/>`_, `HOT`_) Leaflet No

78
doc/applications/ckan.rst Normal file

@ -0,0 +1,78 @@
CKAN
====
Overview
--------
CKAN is an open-source DMS (data management system) for powering data hubs and data portals. CKAN makes it easy to publish, share and use data. It is written in python, has Flask-based web interface and uses Postgres database with PostGIS extension. CKAN exposes API which allows third parties to create extensions.
The project is split to several components. The most important ones are:
- **ckan** - https://github.com/ckan/ckan - The main DMS component with Flask frontend.
- **datapusher** - https://github.com/ckan/datapusher - A standalone web service that pushes data files from a CKAN site's resources into its DataStore.
- **ckan-service-provider** - https://github.com/ckan/ckan-service-provider - A library for making web services that make functions available as synchronous or asynchronous jobs.
Apart from that, CKAN requires a *Redis* in-memory data store and *Solr* search platform instance. Note that CKAN is shipped with Solr schemas which don't work well with up-to-date versions of Solr, therefore we use older Solr 6.5.1.
DataPusher
----------
DataPusher is running as a separate service. Its development is a bit out of sync with the core ckan component. SKAN has already moved to python 3, however datapusher is still working only with python 2.7. Due to that, DataPusher has its own image and is running as a separate container.
Alpine, being a progressive linux distribution, stopped supporting uwsgi connector for python 2.7 in Alpine 3.11, therefore the container needs to be based on older Alpine 3.10 which still ships with *uwsgi-python2*.
The connection between CKAN and DataPusher is done via HTTPS endpoints. There is a possibility to disable TLS certificate verification, but a better solution seems to be import any self-signed certificate into the DataPusher's trust store. There is a script which automatically handles the import whenever the DataPusher container starts.
Extensions
----------
CKAN container comes with several preinstalled and preconfigured extensions. Historically, there were more extensions, but over the time CKAN's API evolved and the development has moved to python 3, so majority of the historical extensions are no longer operational.
ckan/ckanext-basiccharts
^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/ckan/ckanext-basiccharts
Adds Line, Bar and Pie charts. It uses Flot Charts, which is compatible with all major browsers (including IE6+).
ckan/ckanext-spatial
^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/ckan/ckanext-spatial
Contains plugins that add geospatial capabilities to CKAN. E.g. a spatial field on the default CKAN dataset schema which allows to perform spatial queries and to display the dataset extent on the frontend.
ckan/ckanext-geoview
^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/ckan/ckanext-geoview
Contains view plugins to display geospatial files and services in CKAN. It contains an OpenLayers based viewer and other view plugins that used to be part of ckanext-spatial.
ckan/ckanext-mapviews
^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/ckan/ckanext-mapviews
Adds regular and choropleth maps to CKAN, using the new CKAN Resource View. It uses LeafletJS, which is compatible with all major browsers (including IE7+).
XVTSolutions/ckanext-spatialUI
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/XVTSolutions/ckanext-spatialUI
Provides the UI elements for spatial search. Spatial search widget and dataset extent map.
aptivate/ckanext-datasetthumbnail
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/aptivate/ckanext-datasetthumbnail
Adds support for generation and display of thumbnail images.
datagvat/ckanext-dgvat_xls
^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/datagvat/ckanext-dgvat_xls
Allows group admin to export datasets from their organizations to export all datasets to a .xls worksheet. Sysadmins may choose to export datasets from any organization they want or to export all datasets of all groups.

@ -0,0 +1,21 @@
CrisisCleanup
=============
Overview
--------
Crisis Cleanup is a collaboration platform that connects disaster recovery organization volunteers with people who need help after a disaster. It is a Ruby on Rails application written for Ruby 2.6 with NodeJS-dependent web frontend.
Upstream URL: https://github.com/CrisisCleanup/crisiscleanup-2
Version 2 maintenance
---------------------
As of 2020-03-27, CrisisCleanup v2 is no longer maintained. The maintenance has been discontinued in favor of CrisisCleanup v3, which splits the backend and frontend into two separate projects. Unfortunately the source of the backend part hasn't been opened and the creator has no plants to do so, so currently only the frontend application as available on https://github.com/CrisisCleanup/crisiscleanup-3-web.
Version 3 uses OpenStreetMap and Leaflet, whereas version 2 used Google Maps.
NodeJS compatibility
--------------------
The application uses NodeJS to generate and pack assets, however due to its age, yarn dependencies installation fails on NodeJS versions newer than 8, therefore the NodeJS version has been frozen on 8.14.0 provided by Alpine 3.8.

@ -0,0 +1,26 @@
Decidim
=======
Overview
--------
Decidim is a participatory democracy platform for cities and organizations. Decidim is written and runs on Ruby 2.6, where it is installed as Ruby Gem. Incoming HTTP requests are handled via passenger nginx plugin.
Upstream URL: https://github.com/decidim/decidim
Passenger nginx plugin
----------------------
The passenger plugin work as application proxy between HTTP server and Ruby on Rails applications. Nginix doesn't have modules API like Apache does, so all nginx module must be present at compile time and only then they can be loaded and unloaded at runtime. Passenger plugin is not present in the standard Alpine nginx packages, therefore for passenger to work, a custom version of nginx including the passenger plugin needs to be compiled. Passenger sources contain ``passenger-install-nginx-module`` script which eases and semi-automates the compilation.
Database upgrades
-----------------
Decidim creates a series of database migration scripts under ``db/migrate`` directory. Unfortunately, these script are not created deterministically as their file names are always created with current build's timestamp. The same script using the same Decidim version therefore always ends up with different database migration scripts. Newly added scripts in a new version of Decidim are not sorted at the end, so it's impossible to determine which scripts need to applied from the filenames alone.
During manual upgrade, the workaround is to compare the directories between the old and the new image, stripping the timestamp and running only the scripts which don't exist in the old directory, however this is impossible to be done during automatic upgrade, as the old image is removed before the upgrade script is executed.
Additional site creation
------------------------
Decidim allows to create managed sites using the superadmin interface on ``https://<Decidim URL>/system/``. The sites require their own (sub)domains, therefore some additional considerations must be taken when setting up HTTP reverse proxies and TLS certificates.

@ -0,0 +1,97 @@
FrontlineSMS
============
Overview
--------
FrontlineSMS is a system for both manual and automatic processing of SMS, supporting creation of various SMS workflows. The application is written in Java (resp. Groovy) and uses Grails layout engine. It has its own installer which deploys single-tenant Jetty lightweight applicaiton server. To work efficiently, FrontlineSMS requires a device with SMS capabilities or a connection to third-party service such as Twilio.
The version of FrontlineSMS is no longer maintained by the original developers and no new updates are expected to appear. The manufacturer currently offers and supports only a cloud version of FrontlineSMS.
Upstream URL: https://github.com/frontlinesms/frontlinesms2
Fork URL: https://github.com/trendspotter/frontlinesms2 - the fork contains the last known working version of installer as a release.
Modem capabilities
------------------
There are special considerations to be taken whenever an application witch direct access to hardware is run in a container. Currently FrontlineSMS has not been tested with such device and it is expected that some extra work or container configuration not present in any other application needs to be done in order to make the hardware device available and usable by the container.
Localization
------------
FrontlineSMS is localized to Czech only locally on SpoterVM. Upstream doesn't contain the localization as the application is not developed anymore. The localization is supplied as a Java property file ``WEB-INF/grails-app/i18n/messages_cs.properties`` and then once again as the same file packed and minifies as ``assets/i18n/frontlinesms-core_messages_cs.js``. The minified file can be created using ``frontlinesms-lang-js.py`` helper script in SpotterVM repository.
Java support
------------
Due to the age of the application (latest release somewhere in 2014), FrontlineSMS doesn't work well with current versions of Java runtime. The last know working version is Java 8.222.10 supplied by Alpine 3.8. More recent version, e.g. Java 8.242 cause HTTP connection accept failures.
X server
--------
Although FrontlineSMS is a web application, it requires X server as it attempts to install a systray icon. On a headless server, this requirement can be worked around using ``xf86-video-dummy`` package which works as a *blackhole* display driver.
The X server is then started as
.. code-block:: bash
Xorg -noreset +extension GLX +extension RANDR +extension RENDER -config dummy.conf :10
Where the ``dummy.conf`` looks as follows
.. code-block:: xorg.conf
Section "ServerFlags"
Option "DontVTSwitch" "true"
Option "AllowMouseOpenFail" "true"
Option "PciForceNone" "true"
Option "AutoEnableDevices" "false"
Option "AutoAddDevices" "false"
EndSection
Section "InputDevice"
Identifier "dummy_mouse"
Option "CorePointer" "true"
Driver "void"
EndSection
Section "InputDevice"
Identifier "dummy_keyboard"
Option "CoreKeyboard" "true"
Driver "void"
EndSection
Section "Device"
Identifier "dummy_videocard"
Driver "dummy"
Option "ConstantDPI" "true"
VideoRam 192000
EndSection
Section "Monitor"
Identifier "dummy_monitor"
HorizSync 5.0 - 1000.0
VertRefresh 5.0 - 200.0
Modeline "1280x720" 27.41 1280 1312 1416 1448 720 737 740 757
EndSection
Section "Screen"
Identifier "dummy_screen"
Device "dummy_videocard"
Monitor "dummy_monitor"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1280x720"
Virtual 8192 4096
EndSubSection
EndSection
Section "ServerLayout"
Identifier "dummy_layout"
Screen "dummy_screen"
InputDevice "dummy_mouse"
InputDevice "dummy_keyboard"
EndSection

@ -0,0 +1,25 @@
List of existing container images
=================================
Basic and runtime images
------------------------
.. csv-table::
:file: attachments/images-list-basic.csv
:header-rows: 1
Common service images
---------------------
.. csv-table::
:file: attachments/images-list-services.csv
:header-rows: 1
List of application images
--------------------------
All application images have the application user UID/GID 8080 and listen on internal port 8080 (HTTP).
.. csv-table::
:file: attachments/images-list-apps.csv
:header-rows: 1

@ -0,0 +1,21 @@
Applications and containers
===========================
.. toctree::
:maxdepth: 2
images-list
tech-knowledge
map-services
ckan
crisiscleanup
decidim
frontlinesms
kanboard
opendatakit
openmapkit
pandora
sahana
sahana-configuration-report
seeddms
taarifa

@ -0,0 +1,121 @@
Kanboard
========
Overview
--------
Kanboard is a Kanban project management tool written in PHP. It supports creation of projects and their population with tasks, provides Kanban boards with swimlanes, charts etc. It is extensile via plugins.
Upstream URL: https://github.com/kanboard/kanboard
Localization
------------
Kanboard is localized via PHP files containing associative arrays with original English string and the translation in the respective language. Every plugin has its own localization files. Due to this, we currently maintain forks or 4 repositories with plugins where the original maintainer decided to discontinue support.
Plugins
-------
Following list summarizes state of Kanboard plugins used or requested in our container as of 05/2020.
BlueTeck/kanboard_plugin_overwrite_translation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/BlueTeck/kanboard_plugin_overwrite_translation
Supplies translation strings via additional configuration file for other plugins which are missing or have incorrect translations. Not updated anymore, however the maintainer is active on GitHub. This plugin has initially been requested to be included in our installation, but due to its purpose, it's mostly useless as all translations were done in the respective plugin localization files.
BlueTeck/kanboard_plugin_coverimage
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/BlueTeck/kanboard_plugin_coverimage
This plugin adds a cover image function to tasks on the board, and allows you to set a project image to use as a logo for projects. Development is active.
BlueTeck/kanboard_plugin_metadata
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/BlueTeck/kanboard_plugin_metadata
This plugin adds a basic GUI for Plugin Metadata. Not updated anymore, however the maintainer is active on GitHub.
eSkiSo/Subtaskdate
^^^^^^^^^^^^^^^^^^
- URL: https://github.com/eSkiSo/Subtaskdate
Adds a new due date field for subtasks, including events, API and search functions. Development is active.
kanboard/plugin-budget
^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-budget
- Fork URL: https://github.com/trendspotter/kanboard-plugin-budget
Allows to create budget lines, see expenses based on sub-task time tracking and manage user hourly rates. Repository has been forked. The original repository is archived.
kanboard/plugin-calendar
^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-calendar
Adds embedded calendar view for Kanboard. Development is active.
kanboard/plugin-chat
^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-chat
- Fork URL: https://github.com/trendspotter/kanboard-plugin-chat
Minimalist internal chat for Kanboard. Allows only one room for all users. Repository has been forked. The original repository is archived.
kanboard/plugin-gantt
^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-gantt
Adds Gantt charts for Kanboard. Development is active.
kanboard/plugin-gravatar
^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-gravatar
Enables Gravatar icons for Kanboard users. Repository is archived. There are no strings for translation, so it hasn't been forked.
kanboard/plugin-registration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-registration
Allows new user to sign up to Kanboard. Development is active.
kanboard/plugin-sms-2fa
^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-sms-2fa
- Fork URL: https://github.com/trendspotter/kanboard-plugin-sms-2fa
Allows to use text messages (SMS) instead of the default TOTP system (Time-based One-time Password Algorithm). Works with Twilio service. Repository has been forked. The original repository is archived.
kanboard/plugin-task-board-date
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/kanboard/plugin-task-board-date
Adds new date field for tasks to define the visibility on the board and dashboard. Repository is archived. There are no strings for translation, so it hasn't been forked.
oliviermaridat/kanboard-milestone-plugin
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/oliviermaridat/kanboard-milestone-plugin
Adds section for milestones to show their related tasks. Development is active.
xavividal/kanboard-plugin-relationgraph
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- URL: https://github.com/xavividal/kanboard-plugin-relationgraph
- Fork URL: https://github.com/trendspotter/kanboard-plugin-relationgraph
Shows relations between tasks using a graph library. Repository has been forked. The original repository is inactive.

@ -0,0 +1,12 @@
Map services used in applications
=================================
.. csv-table::
:file: attachments/map-services.csv
:header-rows: 1
1. Used by CKAN extensions *reclineview*, *spatial* and *geoview*.
2. Untested as the EcoGIS source code is not fully open. Looks like the data sources are configurable, but the full documentation is only in Italian.
3. Used by Odoo *Google Maps* module to display company/partner address on map.
4. Map is used by OMK and ODK Android clients. OMK Server only offers API.
5. Sahana Eden supports multitude of connectors and protocols to process map and feature data. ArcGIS REST, Bing maps, GeoJSON, GeoRSS, Google Maps, GPX, KML, MGRS, OSM, OWM, Shapefile, TMS, WFS, WMS and XYZ.

@ -0,0 +1,24 @@
OpenDataKit
===========
Overview
--------
OpenDataKit is a suite of tools that help organizations collect and manage data, typically via mobile application. The most interesting components used on SpotterVM are
- **ODK Aggregate** - Main data storage server and analysis tool, written in Java, running on Apache Tomcat using PostgreSQL database.
- **ODK Build** - Drag-and-drop form designer, written in Ruby 2.4, requires NodeJS for frontend assets.
- **build2xlsform** - Service to convert ODK Build forms to xlsform-compliant XLSX, written in LiveScript (NodeJS).
Upstream URLs:
- **ODK Aggregate** - https://github.com/getodk/build
- **ODK Build** - https://github.com/getodk/build
- **build2xlsform** - https://github.com/getodk/build2xlsform
ODK Build exports
-----------------
ODK Build runs in a container separate from ODK Aggregate and doesn't use any database engine for its persistent storage. ODK Build can however export the designed form to ODK Aggregate via HTTP endpoint. In case HTTPS is used with self-signed certificate, it needs to be imported to OpenSSL trust store prior to first communication attempt. In our container, this is ensured by ``add-ca-cert`` script.
build2xlsform lives in the same container as ODK Build and allows for export of ODK Build JSON forms to XLSX files editable via any modern office suite.

@ -0,0 +1,12 @@
OpenMapKit
==========
Overview
--------
OpenMapKit is a standalone extension to OpenDataKit providing mapping features and handles collection and aggregation of OpenStreetMap and OpenDataKit data generated via mobile applications.
NodeJS compatibility
--------------------
OpenMapKit is purely NodeJS application. Unfortunately it depends on a libxmljs module in version incompatible with NodeJS version newer that 10. Due to that OpenMapKit is currently frozen on NodeJS 10.19.0 provided by Alpine 3.10.

@ -0,0 +1,25 @@
Pan.do/ra
=========
Overview
--------
Pan.do/ra is a free, open source media archive platform. It allows to manage large, decentralized collections of video and collaboratively create metadata and time-based annotations. Pan.do/ra is a Django-based application written in python and is split to several components, most notably OxJS javascript framework and oxtimelines. It heavily relies on *ffmpeg* and uses *RabbitMQ* to pass messages between the components.
Upstream URLs
^^^^^^^^^^^^^
- Pan.do/ra: https://code.0x2620.org/0x2620/pandora
- OxJS: https://code.0x2620.org/0x2620/oxjs
- python-ox: https://code.0x2620.org/0x2620/python-ox
- oxtimelines: https://code.0x2620.org/0x2620/oxtimelines
Localization
------------
Czech localtization for Pan.do/ra currently exists only in SpotterVM repository. Separate localization is required for Pan.do/ra and OxJS framework which it uses. Moreover, the list of supported languages is hardcoded, so localization entails also modification of this fixed list of languages.
Python 3.8 compatibility
------------------------
Pandora uses Celery message broker, however depends on a version with known incompatibility with python 3.8, see https://github.com/celery/celery/issues/5761. This can be worked around by setting environment variable ``COLUMNS`` to value ``80`` prior to launching the celery process. The affected services run by container's s6 daemon supervisor are currently configured to use this workaround.

File diff suppressed because it is too large Load Diff

@ -0,0 +1,92 @@
Sahana Eden
===========
Overview
--------
Sahana Eden is a flexible and extensible humanitarian platform written in python, running on web2py platform and PostgreSQL with PostGIS extension. Sahana Eden is extremely highly customizable and configurable which unfortunately often leads to various bugs and misunderstandings in the configuration. For the description of the individual configuration options and their effect, see `Sahana Eden configuration usability report <sahana-configuration-report.html>`_. The application is usually configured via templates, which contain all the configuration, forms and logic customizations and some basic data relevant for the intended deployment.
The application supports various interfaces, protocols and formats for data exchange - CAP (Common Alerting Protocol), XML/Atom feeds, WMS, WFS, WCS and other map services, KML exports, XML and CSV tabular data etc. Maps can be configured and adjusted to use virtually any tile, layer and feature sets. See `map services <map-services.html>`_.
Upstream URL: https://github.com/sahana/eden
Setup module
------------
Sahana deployment functions are based on Ansible. Ansible is provisioning, configuration management, and application-deployment tool written in python. It uses YAML files to define the desired actions or states. These files are called *playbooks*. There is a whole separate sahana_deploy project focusing on rapid Sahana Eden deployment and parts of it are used also in the Setup module. The setup module allows to control Sahana instances and adjust their configuration in terms of setting simple values and enabling/disabling modules in ``000_config.py``. The module, as well as the Ansible playbooks for the whole deployment are a bit too strict when it comes to assumptions and discovery of Sahana's environment. E.g. the path to the instance is expected to be always under ``/home/prod``. The Setup module is enabled and can be used, however due to its limitations and expectations it sets, it can't be considered reliable in the environment of Alpine container.
Python 3.8 compatibility
------------------------
Sahana Eden is currently recommended to be run on web2py R2.18.5 (commit hash `59700b8 <https://github.com/web2py/web2py/commit/59700b8>`_). Recommended version is tracked in eden_deploy project in `main.yml for common playbook <https://github.com/sahana/eden_deploy/blob/master/roles/common/tasks/main.yml>`_. This version however doesn't fully support python 3.8, so a series of patches needs to applied to achieve the full support for python 3.8. This includes compatibility patches for gluon and pydal tracked in `_compat.patch <https://github.com/sahana/eden_deploy/blob/master/roles/common/files/_compat.patch>`_ and scheduler patch tracked separately in `scheduler.diff <https://github.com/sahana/eden_deploy/blob/master/roles/common/files/scheduler.diff>`_.
Localization
------------
Czech localization for Sahana Eden is currently not a part of upstream code. It is currently held in SpotterVM repository and there are currently no plans to submit a pull request with the translation.
The localization is done via translation export function of Sahana Eden found in the administration menu. The exported CSV or XLS file is then manually translated and fed back to ``sahana-lang-convert.py`` helper script which generated the appropriate python dictionary file used as translation. Some strings are not output by the translation function and are either hardcoded or composed, so there is also ``sahana-lang-compare.py`` helper script which traverses installed Sahana Eden instance and tries to locate and supply all missing strings from the previous translation file. Both helper scripts are also contained in the SpotterVM repository.
Local development
-----------------
Since Sahana Eden is the crown jewel of the whole environment and unfortunately also the most buggy application, it may be needed to work on some development tasks and bugfixes outsite of the VM environment. Following are a few tips to important tasks and gotchas you may encounter.
To enable debug mode for Sahana, set ``settings.base.debug = True`` in ``applications/eden/models/000_config.py``.
Database migration
^^^^^^^^^^^^^^^^^^
New commits (both upstream and local) can require a modification of database structure. If this is not done, Sahana may report internal server errors or corrupt the database. Migration to the up-to-date schema version can be achieved via following steps.
.. code-block:: bash
# Change directory to web2py root
cd /srv/web2py
# Allow database migration (normally denied in prod)
sed -i 's/settings.base.migrate = False/settings.base.migrate = True/g' applications/eden/models/000_config.py
# Remove old cached bytecode
rm -rf applications/eden/compiled
# Run the migration task
python web2py.py -S eden -M -R applications/eden/static/scripts/tools/noop.py
# Deny database migration (improves performance)
sed -i 's/settings.base.migrate = True/settings.base.migrate = False/g' applications/eden/models/000_config.py
# Precompile fresh bytecode
python web2py.py -S eden -M -R applications/eden/static/scripts/tools/compile.py
Factory reset
^^^^^^^^^^^^^
In case you'd like to wipe all data and restore your Sahana instance to pre-installation phase, stop all Sahana (uWSGI) processes and run the following.
.. code-block:: bash
# Drop and recreate database
cat <<EOF | sudo -u postgres psql
DROP DATABASE sahana
REVOKE ALL ON DATABASE sahana FROM public;
ALTER DATABASE sahana OWNER TO sahana;
\c sahana;
CREATE EXTENSION postgis;
GRANT ALL ON geometry_columns TO sahana;
GRANT ALL ON spatial_ref_sys TO sahana;
EOF
# Change directory to web2py root
cd /srv/web2py
# Wipe file caches
rm -rf applications/eden/compiled
rm -rf applications/eden/databases/*
rm -rf applications/eden/uploads/*
rm -rf applications/eden/errors/*
rm -f applications/eden/config/0000_update_check.py
# Allow database migration and prepopulation
sed -i 's/settings.base.migrate = True/settings.base.migrate = False/' applications/eden/models/000_config.py
sed -i 's/#settings.base.prepopulate = 0/settings.base.prepopulate = 0/' applications/eden/models/000_config.py

Some files were not shown because too many files have changed in this diff Show More