summaryrefslogtreecommitdiffstats
path: root/_deploy/debian/wookey-exposerver-recipe.txt
diff options
context:
space:
mode:
Diffstat (limited to '_deploy/debian/wookey-exposerver-recipe.txt')
-rw-r--r--_deploy/debian/wookey-exposerver-recipe.txt95
1 files changed, 95 insertions, 0 deletions
diff --git a/_deploy/debian/wookey-exposerver-recipe.txt b/_deploy/debian/wookey-exposerver-recipe.txt
new file mode 100644
index 0000000..ab2fa60
--- /dev/null
+++ b/_deploy/debian/wookey-exposerver-recipe.txt
@@ -0,0 +1,95 @@
+adduser expo
+apt install openssh-server mosh tmux mc zile emacs-nox mc most ncdu
+apt install python-django apache2 mysql-server survex make rsync
+apt install libjs-openlayers make
+apt install git mercurial mercurial-server?
+
+for boe:
+apt install libcgi-session-perl libcrypt-passwdmd5-perl libfile-slurp-perl libgit-wrapper-perl libhtml-template-perl libhtml-template-pro-perl libmime-lite-perl libtext-password-pronounceable-perl libtime-parsedate-perl libuuid-tiny-perl libcrypt-cracklib-perl
+
+apt install ufraw for PEF image decoding.
+sudo apt install python-django python-django-registration e fonts-freefont-ttf libapache2-mod-wsgi python3-gdbm
+# sudo apt install python-django-imagekit python-django-tinymc
+
+obsolete-packages: bins (move to jigl?)
+ older python-django?
+backports: survex therion
+not-packaged: caveview
+
+
+make these dirs available at top documentroot:
+cuccfiles
+expofiles
+loser
+tunneldata
+troggle
+expoweb
+boc/boe
+
+config
+containing:
+
+setup apache configs for cucc and expo
+#disable default website
+a2dissite 000-default
+a2ensite cucc
+a2ensite expo
+a2enmod cgid
+
+
+Boe config:
+Alias /boe /home/expo/boe/boc/boc.pl
+<Directory /home/expo/boe/boc>
+ AddHandler cgi-script .pl
+ SetHandler cgi-script
+ Options +ExecCGI
+ Require all granted
+</Directory>
+And remember to set both program and data dir to be
+www-data:www-data
+(optionally make file group read/write by treasurer account)
+create empty repo by clicking create in boe interface
+then set names in 'settings'
+
+Set up mysql (as root)
+mysql -p
+CREATE DATABASE troggle;
+GRANT ALL PRIVILEGES ON troggle.* TO 'expo'@'localhost' IDENTIFIED BY 'somepassword';
+
+install django:
+sudo apt install python-django python-django-registration python-django-imagekit python-django-tinymce fonts-freefont-ttf libapache2-mod-wsgi
+
+python-django-imagekit comes from https://salsa.debian.org/python-team/modules/python-django-imagekit
+python-django-tinymce comes from https://salsa.debian.org/python-team/modules/python-django-tinymce
+
+need fonts-freefont-ttf (to have truetype freesans available for troggle via PIL)
+need libapache2-mod-wsgi for apache wsgi support.
+
+On stretch the django 1.10 is no use so get rid of that:
+apt remove python3-django python-django python-django-common python-django-doc
+
+Then replace with django 1.7 (Needs to be built for stretch)
+apt install python-django python-django-common python-django-doc
+apt install python-django-registration python-django-imagekit python-django-tinymce
+
+then hold them to stop them being upgraded by unattended upgrades:
+echo "python-django hold" | sudo dpkg --set-selections
+echo "python-django-common hold" | sudo dpkg --set-selections
+echo "python-django-doc hold" | sudo dpkg --set-selections
+
+Optimizing server
+I've tweaked the apache and mysql settings to make them a bit more suitable for a small machine. Seems to have shaved 200MB or so off the idling footprint.
+https://www.narga.net/optimizing-apachephpmysql-low-memory-server/
+
+(just discovered 'ab' for running apache performance tests - handy).
+
+Do the edit to site-packages/django/db/backends/base.py
+to comment out the requirement for mysqlclient >1.3.13
+as we run perfectly happily with Django 2.2.19 & mysqlite 1.3.10
+:
+
+version = Database.version_info
+#test nobbled by Wookey 2021-04-08 as 1.3.13 is not available on stable
+#if version < (1, 3, 13):
+# raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
+