Compare commits

...

839 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
770 changed files with 94829 additions and 5800 deletions
.gitlab/issue_templates
.gitmodules00-install.shREADME.mdactivemq.sh
activemq
alpine.sh
apk
py3-secure-cookie
spocvmmgr
basic.sh
basic
build
ckan-datapusher.sh
ckan-datapusher
Dockerfile
docker/srv/ckan-datapusher
etc/init.d
ckan.sh
ckan
Dockerfile
etc
init.d
nginx/conf.d
periodic/hourly
srv/ckan
crisiscleanup.sh
crisiscleanup
Dockerfile
etc/nginx/conf.d
srv/crisiscleanup/db
cts.sh
cts
Dockerfile
etc
init.d
nginx/conf.d
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,32 +0,0 @@
#!/bin/sh
# 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}/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}/opendatakit-build.sh
${SOURCE_DIR}/opendatakit.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,87 +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.
## Virtual machine specifications
- **Memory:** 4 GB
- **CPU:** 1 processor, 2 cores
- **Hard Disk:** SCSI, 60 GB
## Operating system installation
Download **Alpine Virtual 3.7.0 x86_64** from <https://alpinelinux.org/downloads/> and boot from it. At the login prompt, use the root user without password to log in.
```
# Set up interfaces (leave the default choices)
setup-interfaces
ifup eth0
# Download and launch the setup script
wget dl.dasm.cz/alpine.sh
sh alpine.sh
```
The script will perform the bare Alpine linux installation into VM using LUKS-on-LVM. The default disk encryption password is `password`. No root password is set.
## Application installation
### First time setup
```
# Install git
apk --no-cache add 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
```
## Port assignment
| Application | Internal Port | HTTP Port | HTTPS Port |
|-----------------|------------------:|----------:|-----------:|
| ActiveMQ | 61616 (ActiveMQ) | N/A | N/A |
| CKAN | 8003 (HTTP) | 8803 | 8403 |
| CKAN Datapusher | 8004 (HTTP) | N/A | N/A |
| Crisis Cleanup | 8005 (HTTP) | 8805 | 8405 |
| CTS | 8006 (HTTP) | 8806 | 8406 |
| GNU Health | 8008 (HTTP) | 8808 | 8408 |
| KanBoard | 8009 (HTTP) | 8809 | 8409 |
| MariaDB | 3306 (MySQL) | N/A | N/A |
| Mifos X | 8012 (HTTP) | 8812 | 8412 |
| Motech | 8013 (HTTP) | 8813 | 8413 |
| ODK Aggregate | 8015, 8016 (HTTP) | 8815 | 8415 |
| ODK Build | 8017 (HTTP) | 8817 | 8417 |
| OpenMapKit | 8007 (HTTP) | 8807 | 8407 |
| Pan.do/ra | 8002 (HTTP) | 8802 | 8402 |
| Postfix | 25 (SMTP) | N/A | N/A |
| Postgres | 5432 (Postgres) | N/A | N/A |
| RabbitMQ | 5672 (AMQP) | N/A | N/A |
| Redis | 6379 (Redis) | N/A | N/A |
| Sahana | 8001 (HTTP) | 8801 | 8401 |
| SAMBRO | 8001 (HTTP) | 8899 | 8499 |
| SeedDMS | 8010 (HTTP) | 8810 | 8410 |
| Sigmah | 8011 (HTTP) | 8811 | 8011 |
| Solr | 8983 (HTTP) | N/A | N/A |
| Ushahidi | 8014 (HTTP) | 8814 | 8414 |

@ -1,15 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/activemq
# Build Docker container
docker build -t activemq ${SOURCE_DIR}
# Configure ActiveMQ
mkdir -p /srv/activemq/data
chown -R 61616:61616 /srv/activemq/data
# Configure Solr service
cp ${SOURCE_DIR}/etc/init.d/activemq /etc/init.d/activemq
rc-update add activemq
service activemq start

@ -1,35 +0,0 @@
FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Java 1.8 JRE
apk --no-cache add openjdk8-jre-base paxctl \
# Fix grsec attributes to loosen memory protection restrictions
&& paxctl -cm /usr/lib/jvm/java-1.8-openjdk/jre/bin/java \
&& paxctl -cm /usr/lib/jvm/java-1.8-openjdk/bin/java \
# Cleanup
&& apk --no-cache del paxctl
RUN \
# Download and install ActiveMQ
wget http://archive.apache.org/dist/activemq/5.15.2/apache-activemq-5.15.2-bin.tar.gz -O /tmp/activemq.tgz \
&& tar xf /tmp/activemq.tgz -C /srv \
&& mv /srv/apache-activemq-5.15.2 /srv/activemq \
&& rm -f /tmp/activemq.tgz \
# Create OS user
&& addgroup -S -g 61616 activemq \
&& adduser -S -u 61616 -h /srv/activemq -s /bin/false -g activemq -G activemq activemq \
&& mkdir /srv/activemq/tmp \
&& chown activemq:activemq /srv/activemq/tmp \
# Configure Java heap size
&& sed -i "s/-Xms64M -Xmx1G/-Xms32M -Xmx256M/" /srv/activemq/bin/env \
# Make start/stop script visible globally
&& ln -s /srv/activemq/bin/activemq /usr/local/bin/activemq
COPY docker/ /
VOLUME ["/srv/activemq/data"]
EXPOSE 61616
USER activemq
CMD ["activemq", "console"]

@ -1,20 +0,0 @@
#!/sbin/openrc-run
description="ActiveMQ docker container"
depend() {
need docker net
use dns logger netmount
}
start() {
/usr/bin/docker run -d --rm \
--name activemq \
-h activemq \
-v /srv/activemq/data:/srv/activemq/data \
activemq
}
stop() {
/usr/bin/docker stop activemq
}

100
alpine.sh

@ -1,100 +0,0 @@
#!/bin/sh
# Prerequisites
# setup-interfaces
# ifup eth0
# Set up repositories
cat <<EOF >/etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/v3.7/main
http://dl-cdn.alpinelinux.org/alpine/v3.7/community
#http://dl-cdn.alpinelinux.org/alpine/edge/main
#http://dl-cdn.alpinelinux.org/alpine/edge/community
#http://dl-cdn.alpinelinux.org/alpine/edge/testing
EOF
# Install disk management tools
apk --no-cache add lvm2 cryptsetup e2fsprogs syslinux
# Create disk partitions
cat <<EOF | fdisk /dev/sda
n
p
1
+100m
a
1
n
p
2
t
2
8e
w
EOF
# Set up partition encryption
echo -n 'password' | cryptsetup -q luksFormat /dev/sda2
echo -n 'password' | cryptsetup open --type luks /dev/sda2 system
# Set up LVM
pvcreate /dev/mapper/system
vgcreate vg0 /dev/mapper/system
lvcreate -L 4G vg0 -n swap
lvcreate -l 100%FREE vg0 -n root
# Format
mkfs.ext4 -m0 /dev/sda1
mkfs.ext4 -m1 /dev/vg0/root
mkswap /dev/vg0/swap
# Mount
mount -t ext4 /dev/vg0/root /mnt
mkdir /mnt/boot
mount -t ext4 /dev/sda1 /mnt/boot
# Install Alpine linux
setup-disk -m sys /mnt
# Update boot-time volume information
BOOT_UUID=$(blkid /dev/sda1 | awk '{print $2}' | tr -d '"')
cat <<EOF >/mnt/etc/fstab
/dev/vg0/root / ext4 rw,noatime,data=ordered 0 1
${BOOT_UUID} /boot ext4 rw,noatime,data=ordered 0 2
/dev/vg0/swap swap swap defaults 0 0
EOF
echo "system /dev/sda2 none luks" >/mnt/etc/crypttab
# Rebuild initfs
sed -i 's/lvm/lvm cryptsetup/' /mnt/etc/mkinitfs/mkinitfs.conf
mkinitfs -c /mnt/etc/mkinitfs/mkinitfs.conf -b /mnt $(ls /mnt/lib/modules)
# Update extlinux
sed -i 's/rootfstype=ext4/rootfstype=ext4 cryptroot=\/dev\/sda2 cryptdm=system/' /mnt/etc/update-extlinux.conf
chroot /mnt update-extlinux
# Set time zone
chroot /mnt setup-timezone -z Europe/Prague
# Set hostname
echo 'vm' >/mnt/etc/hostname
sed -i 's/localhost/vm/' /mnt/etc/network/interfaces
sed -i 's/localhost /vm localhost /' /mnt/etc/hosts
# Enable services on boot
ln -s /etc/init.d/networking /mnt/etc/runlevels/boot
ln -s /etc/init.d/urandom /mnt/etc/runlevels/boot
# Install bootloader to MBR
dd bs=440 count=1 conv=notrunc if=/mnt/usr/share/syslinux/mbr.bin of=/dev/sda
# Unmount and shut down
umount /mnt/boot
umount /mnt
swapoff -a
vgchange -a n
cryptsetup luksClose system
poweroff

@ -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,55 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/basic
# Install packages
apk --no-cache add --virtual .useful curl git file htop libressl openssh-server openssh-sftp-server
apk --no-cache add docker gettext kbd-misc python2 nginx
# Copy profile files and settings
mkdir -p /root/.config/htop /root/.ssh
cp ${SOURCE_DIR}/root/.profile /root/.profile
cp ${SOURCE_DIR}/root/.ssh/authorized_keys /root/.ssh/authorized_keys
cp ${SOURCE_DIR}/root/.config/htop/htoprc /root/.config/htop/htoprc
# Copy boot configuration
cp ${SOURCE_DIR}/boot/extlinux.conf /boot/extlinux.conf
cp ${SOURCE_DIR}/boot/spotter.txt /boot/spotter.txt
cp ${SOURCE_DIR}/etc/inittab /etc/inittab
# Enable support for Czech characters
cp ${SOURCE_DIR}/etc/rc.conf /etc/rc.conf
cp ${SOURCE_DIR}/etc/conf.d/consolefont /etc/conf.d/consolefont
# Set legal banner with URL
cp ${SOURCE_DIR}/etc/issue.template /etc/issue.template
cp ${SOURCE_DIR}/sbin/issue-gen /sbin/issue-gen
>/etc/motd
# Configure NTP client
cp ${SOURCE_DIR}/etc/conf.d/ntpd /etc/conf.d/ntpd
# Create a self-signed certificate
mkdir /etc/ssl/private
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)"
chmod 640 /etc/ssl/private/services.key
# Configure nginx
mkdir /etc/nginx/apps
cp ${SOURCE_DIR}/etc/nginx/nginx.conf /etc/nginx/nginx.conf
cp ${SOURCE_DIR}/etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf
# Copy Portal resources
cp ${SOURCE_DIR}/usr/local/bin/portal-app-manager /usr/local/bin/portal-app-manager
cp -r ${SOURCE_DIR}/srv/portal /srv/portal
# Configure services
for SERVICE in consolefont crond nginx ntpd sshd; do
rc-update add ${SERVICE} boot
service ${SERVICE} start
done
# Configure Docker service
cp ${SOURCE_DIR}/etc/init.d/docker /etc/init.d/docker
rc-update add docker
service docker start

@ -1,9 +0,0 @@
DEFAULT vm
PROMPT 0
ALLOWOPTIONS 0
NOESCAPE 1
DISPLAY spotter.txt
LABEL vm
LINUX vmlinuz-virthardened
INITRD initramfs-virthardened
APPEND root=/dev/vg0/root modules=sd-mod,usb-storage,ext4 pax_nouderef quiet rootfstype=ext4 cryptroot=/dev/sda2 cryptdm=system

@ -1,4 +0,0 @@
Startuji SpotterVM...

@ -1 +0,0 @@
NTPD_OPTS="-N -p tik.cesnet.cz -p tak.cesnet.cz"

@ -1,42 +0,0 @@
#!/sbin/openrc-run
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
command="${DOCKERD_BINARY:-/usr/bin/dockerd}"
pidfile="${DOCKER_PIDFILE:-/run/${RC_SVCNAME}.pid}"
command_args="-p \"${pidfile}\" ${DOCKER_OPTS}"
DOCKER_LOGFILE="${DOCKER_LOGFILE:-/var/log/${RC_SVCNAME}.log}"
DOCKER_ERRFILE="${DOCKER_ERRFILE:-${DOCKER_LOGFILE}}"
DOCKER_OUTFILE="${DOCKER_OUTFILE:-${DOCKER_LOGFILE}}"
start_stop_daemon_args="--background \
--stderr \"${DOCKER_ERRFILE}\" --stdout \"${DOCKER_OUTFILE}\""
grsecdir=/proc/sys/kernel/grsecurity
depend() {
need sysfs
}
start_pre() {
checkpath -f -m 0644 -o root:docker "$DOCKER_LOGFILE"
for i in $disable_grsec; do
if [ -e "$grsecdir/$i" ]; then
einfo " Disabling $i"
echo 0 > "$grsecdir/$i"
fi
done
ulimit -n 1048576
# Having non-zero limits causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
ulimit -p unlimited
return 0
}
start_post() {
until [ -e /var/run/docker.sock ]; do
usleep 100000
done
}

@ -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://${URL}/ ve Vašem
internetovém prohlížeči.


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

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

@ -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,4 +0,0 @@
#!/bin/sh
export URL=$(ip route get 1 | awk '{print $NF;exit}')
envsubst </etc/issue.template >/etc/issue

@ -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: 42 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: 7.9 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,306 +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.3.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.<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>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
</ul>
</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-build">
<h2><a href="#"><img src="img/ODK.png" alt="Open Data Kit" title="Open Data Kit">ODK Build</a></h2>
<p><strong>Sběr dat s pomocí smartphone</strong>.<br>Aplikace pro návrh formulářů<br>
<a href="http://opendatakit.org/xiframe/">XLSForm</a> - online konverter XLS.
</p>
</div>
<div class="c" id="opendatakit-clients">
<h2><a href="#"><img src="img/ODK_Collect.png" alt="Open Data Kit" title="Open Data Kit">ODK Collect</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>
</p>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></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">ODK Aggregate</a></h2>
<p><strong>Sběr dat s pomocí smartphone</strong>.<br>
<a href="http://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">OpenMapKit Server</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="geoodk-clients">
<h2><a href="#"><img src="img/GeoODK_Collect.png" alt="GeoODK Collect" title="GeoODK Collect">GeoODK Collect</a></h2>
<p>Mobilní aplikace<br>
<a href="https://play.google.com/store/apps/details?id=com.geoodk.collect.android"><img src="img/android.png" class="ico" alt="GeoODK Collect">GeoODK Collect pro Android</a>
</p>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></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">OpenMapKit</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="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>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
</ul>
</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>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
</ul>
</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>
<ul>
<li><strong>URL:</strong> <span class="clienturl"></span></li>
<li><strong>Tenant ID:</strong> <span>default</span></li>
</ul>
</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/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())

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"

@ -1,17 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan-datapusher
# Build Docker container
docker build -t ckan-datapusher ${SOURCE_DIR}
# Configure CKAN DataPusher
mkdir -p /srv/ckan-datapusher/conf /srv/ckan-datapusher/data
cp ${SOURCE_DIR}/srv/ckan-datapusher/conf/datapusher.wsgi /srv/ckan-datapusher/conf/datapusher.wsgi
cp ${SOURCE_DIR}/srv/ckan-datapusher/conf/datapusher_settings.py /srv/ckan-datapusher/conf/datapusher_settings.py
chown -R 8004:8004 /srv/ckan-datapusher/data
# Configure CKAN DataPusher service
cp ${SOURCE_DIR}/etc/init.d/ckan-datapusher /etc/init.d/ckan-datapusher
rc-update add ckan-datapusher
service ckan-datapusher start

@ -1,47 +0,0 @@
FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Python2 runtime
apk --no-cache add python2
RUN \
# Install runtime XML dependencies
apk --no-cache add libxml2 libxslt
RUN \
# Install runtime dependencies
apk --no-cache add libffi libressl uwsgi-python
RUN \
# Install build dependencies
apk --no-cache add --virtual .deps build-base git libffi-dev libressl-dev libxml2-dev libxslt-dev py2-pip python2-dev \
# Install CKAN DataPusher
&& mkdir -p /srv/ckan-datapusher \
&& cd /srv/ckan-datapusher \
&& pip install -U setuptools \
&& pip install -e 'git+https://github.com/ckan/datapusher.git#egg=datapusher' \
# Hackfix the X509_STORE_CTX wrapper
&& sed -i 's/\[security\]//' /srv/ckan-datapusher/src/datapusher/requirements.txt \
&& pip install -r /srv/ckan-datapusher/src/datapusher/requirements.txt \
# Create OS user
&& addgroup -S -g 8004 ckan-datapusher \
&& adduser -S -u 8004 -h /srv/ckan-datapusher -s /bin/false -g ckan-datapusher -G ckan-datapusher ckan-datapusher \
&& chown -R ckan-datapusher:ckan-datapusher /srv/ckan-datapusher \
# Cleanup
&& apk --no-cache del .deps \
&& find /srv/ckan-datapusher/src -name '.git*' -exec rm -rf {} + \
&& rm -rf /root/.cache
COPY docker/ /
RUN \
# Hackfix the self-signed certificate verification
cd /usr/lib/python2.7/site-packages \
&& patch -p0 </srv/ckan-datapusher/ssl_verify.patch
VOLUME ["/etc/ckan-datapusher", "/srv/ckan-datapusher/data"]
EXPOSE 8004
USER ckan-datapusher
CMD ["uwsgi", "--plugin", "python", "--http-socket", "0.0.0.0:8004", "--wsgi-file", "/etc/ckan-datapusher/datapusher.wsgi", "--enable-threads"]

@ -1,10 +0,0 @@
--- orig/web.py
+++ ckanserviceprovider/web.py
@@ -733,6 +733,7 @@
try:
result = requests.post(
result_url,
+ verify=False,
data=json.dumps(job_dict, cls=DatetimeJsonEncoder),
headers=headers)

@ -1,21 +0,0 @@
#!/sbin/openrc-run
description="CKAN DataPusher docker container"
depend() {
need docker net
use dns logger netmount
}
start() {
/usr/bin/docker run -d --rm \
--name ckan-datapusher \
-h ckan-datapusher \
-v /srv/ckan-datapusher/conf:/etc/ckan-datapusher \
-v /srv/ckan-datapusher/data:/srv/ckan-datapusher/data \
ckan-datapusher
}
stop() {
/usr/bin/docker stop ckan-datapusher
}

69
ckan.sh

@ -1,69 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan
# Check prerequisites
docker image ls | grep -q ckan-datapusher || $(realpath $(dirname "${0}"))/ckan-datapusher.sh
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
docker image ls | grep -q redis || $(realpath $(dirname "${0}"))/redis.sh
docker image ls | grep -q solr || $(realpath $(dirname "${0}"))/solr.sh
# Build Docker container
docker build -t ckan ${SOURCE_DIR}
# Create database
export CKAN_PWD=$(head -c 18 /dev/urandom | base64)
export CKAN_DS_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/createdb.sql | docker exec -i postgres psql
# Configure CKAN Solr core
docker exec solr solr create -p 8983 -c ckan
cp ${SOURCE_DIR}/srv/solr/data/ckan/conf/schema.xml /srv/solr/data/ckan/conf/schema.xml
cp ${SOURCE_DIR}/srv/solr/data/ckan/conf/solrconfig.xml /srv/solr/data/ckan/conf/solrconfig.xml
chown 8983:8983 /srv/solr/data/ckan/conf/schema.xml
service solr restart
# Configure CKAN
mkdir -p /srv/ckan/conf /srv/ckan/data
chown -R 8003:8003 /srv/ckan/data
export CKAN_SECRET=$(head -c 18 /dev/urandom | base64)
export CKAN_UUID=$(cat /proc/sys/kernel/random/uuid)
envsubst <${SOURCE_DIR}/srv/ckan/conf/ckan.ini >/srv/ckan/conf/ckan.ini
cp ${SOURCE_DIR}/srv/ckan/conf/who.ini /srv/ckan/conf/who.ini
cp ${SOURCE_DIR}/srv/ckan/update-ip.sh /srv/ckan/update-ip.sh
/srv/ckan/update-ip.sh
# 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/ckan/conf/ckan.ini
fi
# Populate database
docker run --rm -h ckan --link postgres --link redis --link solr -v /srv/ckan/conf:/etc/ckan -v /srv/ckan/data:/srv/ckan/storage ckan paster --plugin=ckan db init -c /etc/ckan/ckan.ini
docker run --rm -h ckan --link postgres --link redis --link solr -v /srv/ckan/conf:/etc/ckan -v /srv/ckan/data:/srv/ckan/storage ckan paster --plugin=ckanext-spatial spatial initdb -c /etc/ckan/ckan.ini
docker run --rm -h ckan --link postgres --link redis --link solr -v /srv/ckan/conf:/etc/ckan -v /srv/ckan/data:/srv/ckan/storage ckan paster --plugin=ckan datastore set-permissions -c /etc/ckan/ckan.ini | docker exec -i postgres psql
# Create admin account
export CKAN_ADMIN_USER="admin"
export CKAN_ADMIN_UUID=$(cat /proc/sys/kernel/random/uuid)
export CKAN_ADMIN_APIKEY=$(cat /proc/sys/kernel/random/uuid)
export CKAN_ADMIN_PWD=$(head -c 12 /dev/urandom | base64)
export CKAN_ADMIN_HASH=$(docker run --rm ckan python -c "from passlib.hash import pbkdf2_sha512;print pbkdf2_sha512.encrypt('${CKAN_ADMIN_PWD}')")
export CKAN_ADMIN_EMAIL="admin@example.com"
envsubst <${SOURCE_DIR}/adminpwd.sql | docker exec -i postgres psql ckan
# Configure CKAN service
cp ${SOURCE_DIR}/etc/init.d/ckan /etc/init.d/ckan
rc-update add ckan
service ckan start
# Create nginx app definition
cp ${SOURCE_DIR}/etc/nginx/conf.d/ckan.conf /etc/nginx/conf.d/ckan.conf
service nginx reload
# Install cron job
cp ${SOURCE_DIR}/etc/periodic/hourly/ckan /etc/periodic/hourly/ckan
# Add portal application definition
portal-app-manager ckan "https://{host}:8403/" "${CKAN_ADMIN_USER}" "${CKAN_ADMIN_PWD}"

@ -1,54 +0,0 @@
FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Python2 runtime
apk --no-cache add python2
RUN \
# Install runtime XML dependencies
apk --no-cache add libxml2 libxslt
RUN \
# Add edge/testing repository
echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories \
# Install runtime dependencies
&& apk --no-cache add geos@edge libjpeg-turbo libmagic libpq py2-pip zlib
RUN \
# Install build dependencies
apk --no-cache add --virtual .deps build-base git libjpeg-turbo-dev libxml2-dev libxslt-dev postgresql-dev python2-dev zlib-dev \
# Hackfix for python find_library('c') call
&& ln -s /lib/ld-musl-x86_64.so.1 /lib/libc.so.1 \
# Install CKAN
&& mkdir -p /srv/ckan \
&& cd /srv/ckan \
&& pip install -U setuptools \
&& pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan' \
# Force psycopg2 version update for compatibility with PostgreSQL 10
&& sed -i 's/psycopg2==2.4.5/psycopg2==2.7.1/' /srv/ckan/src/ckan/requirements.txt \
&& pip install -r /srv/ckan/src/ckan/requirements.txt \
# Install CKAN extensions
&& pip install -e 'git+https://github.com/ckan/ckanext-basiccharts#egg=ckanext_basiccharts' \
&& pip install -e 'git+https://github.com/ckan/ckanext-spatial#egg=ckanext_spatial' \
&& pip install -e 'git+https://github.com/ckan/ckanext-geoview#egg=ckanext_geoview' \
&& pip install -e 'git+https://github.com/ckan/ckanext-mapviews#egg=ckanext_mapviews' \
&& pip install -e 'git+https://github.com/XVTSolutions/ckanext-spatialUI#egg=ckanext_spatialui' \
&& pip install -e 'git+https://github.com/aptivate/ckanext-datasetthumbnail#egg=ckanext_datasetthumbnail' \
&& pip install -e 'git+https://github.com/datagvat/ckanext-dgvat_xls#egg=ckanext_dgvat_xls' \
&& pip install -r /srv/ckan/src/ckanext-spatial/pip-requirements.txt \
&& pip install -r /srv/ckan/src/ckanext-dgvat-xls/requirements.txt \
# Create OS user
&& addgroup -S -g 8003 ckan \
&& adduser -S -u 8003 -h /srv/ckan -s /bin/false -g ckan -G ckan ckan \
&& chown -R ckan:ckan /srv/ckan \
# Cleanup
&& apk --no-cache del .deps \
&& find /srv/ckan/src -name '.git*' -exec rm -rf {} + \
&& rm -rf /root/.cache
VOLUME ["/etc/ckan", "/srv/ckan/storage"]
EXPOSE 8003
USER ckan
CMD ["paster", "serve", "/etc/ckan/ckan.ini"]

@ -1,33 +0,0 @@
#!/sbin/openrc-run
description="CKAN docker container"
depend() {
need docker net postgres
use dns logger netmount postfix
after ckan-datapusher redis solr
}
start_pre() {
/srv/ckan/update-ip.sh
}
start() {
/usr/bin/docker run -d --rm \
--name ckan \
-h ckan \
--link ckan-datapusher \
--link postfix \
--link postgres \
--link redis \
--link solr \
--link ckan-datapusher \
-p 127.0.0.1:8003:8003 \
-v /srv/ckan/conf:/etc/ckan \
-v /srv/ckan/data:/srv/ckan/storage \
ckan
}
stop() {
/usr/bin/docker stop ckan
}

@ -1,11 +0,0 @@
server {
listen [::]:8803 ipv6only=off;
listen [::]:8403 ssl http2 ipv6only=off;
access_log /var/log/nginx/ckan.access.log;
error_log /var/log/nginx/ckan.error.log;
location / {
proxy_pass http://127.0.0.1:8003;
}
}

@ -1,4 +0,0 @@
#!/bin/sh
docker exec ckan paster --plugin=ckan tracking update -c /etc/ckan/ckan.ini >/dev/null
docker exec ckan paster --plugin=ckan search-index rebuild -r -c /etc/ckan/ckan.ini >/dev/null

@ -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}:8403|" /srv/ckan/conf/ckan.ini

@ -1,48 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/crisiscleanup
# Check prerequisites
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
docker image ls | grep -q ruby || $(realpath $(dirname "${0}"))/ruby.sh
# Build Docker container
docker build -t crisiscleanup ${SOURCE_DIR}
# Create database
export CRISISCLEANUP_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/createdb.sql | docker exec -i postgres psql
# Copy existing config files into persistent storage
mkdir -p /srv/crisiscleanup/conf
chown 8005:8005 /srv/crisiscleanup/conf
docker run --rm -v /srv/crisiscleanup/conf:/mnt/conf crisiscleanup cp -rp /srv/crisiscleanup/config/. /mnt/conf
chown root:root /srv/crisiscleanup/conf
# Configure CrisisCleanup
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/conf/database.yml >/srv/crisiscleanup/conf/database.yml
cp ${SOURCE_DIR}/srv/crisiscleanup/conf/boot.rb /srv/crisiscleanup/conf/boot.rb
cp ${SOURCE_DIR}/srv/crisiscleanup/conf/initializers/devise.rb /srv/crisiscleanup/conf/initializers/devise.rb
cp ${SOURCE_DIR}/srv/crisiscleanup/conf/environments/production.rb /srv/crisiscleanup/conf/environments/production.rb
# Populate database
envsubst <${SOURCE_DIR}/srv/crisiscleanup/db/seeds.rb >/tmp/seeds.rb
docker run --rm -h crisiscleanup --link postgres -v /srv/crisiscleanup/conf:/srv/crisiscleanup/config crisiscleanup rake db:schema:load
docker run --rm -h crisiscleanup --link postgres -v /srv/crisiscleanup/conf:/srv/crisiscleanup/config -v /tmp/seeds.rb:/srv/crisiscleanup/db/seeds.rb crisiscleanup rake db:seed
rm /tmp/seeds.rb
# Create CrisisCleanup service
cp ${SOURCE_DIR}/etc/init.d/crisiscleanup /etc/init.d/crisiscleanup
rc-update add crisiscleanup
service crisiscleanup start
# Create nginx app definition
cp ${SOURCE_DIR}/etc/nginx/conf.d/crisiscleanup.conf /etc/nginx/conf.d/crisiscleanup.conf
service nginx reload
# Add portal application definition
portal-app-manager crisis-cleanup "https://{host}:8405/" "${CRISISCLEANUP_ADMIN_EMAIL}" "${CRISISCLEANUP_ADMIN_PWD}"

@ -1,51 +0,0 @@
FROM ruby
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install NodeJS runtime
apk --no-cache add nodejs paxctl \
# Fix grsec attributes to loosen memory protection restrictions
&& paxctl -cm /usr/bin/node \
# Cleanup
&& apk --no-cache del paxctl
RUN \
# Install runtime dependencies
apk --no-cache add libpq libxml2 libxslt tzdata
ENV RAILS_ENV production
RUN \
# Install build dependencies
apk --no-cache add --virtual .deps build-base git libxml2-dev libxslt-dev linux-headers postgresql-dev yarn zlib-dev \
# Clone CrisisCleanup
&& git clone --depth 1 https://github.com/CrisisCleanup/crisiscleanup /srv/crisiscleanup \
# Hackfix ruby dependency versions
&& sed -i 's/2\.2\.5/2.3.6/' /srv/crisiscleanup/Gemfile \
&& sed -i 's/rdoc (4\.2\.0)/rdoc (4.3.0)/' /srv/crisiscleanup/Gemfile.lock \
# Install Ruby and NodeJS dependencies
&& cd /srv/crisiscleanup \
&& bundle config build.nokogiri --use-system-libraries \
&& bundle install \
&& npm install \
&& yarn \
# Create CrisisCleanup secret
&& echo -e "production:\n secret_key_base: $(rake secret)" >/srv/crisiscleanup/config/secrets.yml \
# Generate static resources
&& rake assets:precompile \
# Create OS user
&& addgroup -S -g 8005 crisiscleanup \
&& adduser -S -u 8005 -h /srv/crisiscleanup -s /bin/false -g crisiscleanup -G crisiscleanup crisiscleanup \
&& chown -R crisiscleanup:crisiscleanup /srv/crisiscleanup \
# Cleanup
&& apk --no-cache del .deps \
&& find /srv/crisiscleanup -name '.git*' -exec rm -rf {} + \
&& rm -rf /usr/local/share/.cache \
&& rm -rf /root/.bundle /root/.config /root/.npm
VOLUME ["/srv/crisiscleanup/config"]
EXPOSE 8005
USER crisiscleanup
WORKDIR /srv/crisiscleanup
CMD ["rails", "server"]

@ -1,11 +0,0 @@
server {
listen [::]:8805 ipv6only=off;
listen [::]:8405 ssl http2 ipv6only=off;
access_log /var/log/nginx/crisiscleanup.access.log;
error_log /var/log/nginx/crisiscleanup.error.log;
location / {
proxy_pass http://127.0.0.1:8005;
}
}

File diff suppressed because one or more lines are too long

49
cts.sh

@ -1,49 +0,0 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/cts
# Check prerequisites
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
# Build Docker container
docker build -t cts ${SOURCE_DIR}
# Create database
export CTS_PWD=$(head -c 18 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/createdb.sql | docker exec -i postgres psql
# Copy existing config files into persistent storage
mkdir -p /srv/cts/conf
docker run --rm -v /srv/cts/conf:/mnt/conf cts cp /srv/cts/cts/settings/base.py /mnt/conf/
# Configure CTS
export CTS_SECRET=$(head -c 26 /dev/urandom | base64)
envsubst <${SOURCE_DIR}/srv/cts/conf/spotter.py >/srv/cts/conf/spotter.py
touch /srv/cts/conf/__init__.py
# 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/conf/spotter.py
fi
# Populate database
docker run --rm -h cts --link postgres -v /srv/cts/conf:/srv/cts/cts/settings 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=$(docker run --rm -h cts -v /srv/cts/conf:/srv/cts/cts/settings cts 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}/adminpwd.sql | docker exec -i postgres psql cts
# Create CTS service
cp ${SOURCE_DIR}/etc/init.d/cts /etc/init.d/cts
rc-update add cts
service cts start
# Create nginx app definition
cp ${SOURCE_DIR}/etc/nginx/conf.d/cts.conf /etc/nginx/conf.d/cts.conf
service nginx reload
# Add portal application definition
portal-app-manager cts "https://{host}:8406/" "${CTS_ADMIN_EMAIL}" "${CTS_ADMIN_PWD}"

@ -1,46 +0,0 @@
FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Python2 runtime
apk --no-cache add python2
RUN \
# Add edge/testing repository
echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories \
# Install runtime dependencies
&& apk --no-cache add geos@edge libpq nginx s6 zlib
RUN \
# Install build dependencies
apk --no-cache add --virtual .deps build-base git postgresql-dev python2-dev py2-pip zlib-dev \
# Install CTS
&& git clone --depth 1 https://github.com/theirc/CTS /srv/cts \
# Force psycopg2 version update for compatibility with PostgreSQL 10
&& sed -i 's/psycopg2==2.5.2/psycopg2==2.7.1/' /srv/cts/requirements/base.txt \
&& pip install -r /srv/cts/requirements/production.txt \
# Hackfix geos version detection
&& sed -i 's/\$//' /usr/lib/python2.7/site-packages/django/contrib/gis/geos/libgeos.py \
# Make manage.py globally executable
&& chmod +x /srv/cts/manage.py \
&& ln -s /srv/cts/manage.py /usr/local/bin/manage.py \
# Compile static files
&& sed -i '/debug_toolbar/d' /srv/cts/cts/settings/dev.py \
&& DJANGO_SETTINGS_MODULE=cts.settings.dev manage.py collectstatic -l --noinput \
# Create OS user
&& addgroup -S -g 8006 cts \
&& adduser -S -u 8006 -h /srv/cts -s /bin/false -g cts -G cts cts \
&& chown -R cts:cts /srv/cts \
# Cleanup
&& apk --no-cache del .deps \
&& find /srv/cts -name '.git*' -exec rm -rf {} + \
&& rm -rf /root/.cache
COPY docker/ /
VOLUME ["/srv/cts/cts/settings"]
EXPOSE 8006
ENV DJANGO_SETTINGS_MODULE cts.settings.spotter
WORKDIR /srv/cts
CMD ["s6-svscan", "/etc/services.d"]

@ -1,22 +0,0 @@
#!/sbin/openrc-run
description="CTS docker container"
depend() {
need docker net postgres
use dns logger netmount
}
start() {
/usr/bin/docker run -d --rm \
--name cts \
-h cts \
--link postgres \
-p 127.0.0.1:8006:8006 \
-v /srv/cts/conf:/srv/cts/cts/settings \
cts
}
stop() {
/usr/bin/docker stop cts
}

@ -1,11 +0,0 @@
server {
listen [::]:8806 ipv6only=off;
listen [::]:8406 ssl http2 ipv6only=off;
access_log /var/log/nginx/cts.access.log;
error_log /var/log/nginx/cts.error.log;
location / {
proxy_pass http://127.0.0.1:8006;
}
}

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

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