forked from expo/troggle
rearrange variant debian, ubuntu dev environemnts
This commit is contained in:
103
_deploy/debian-server/wookey-exposerver-recipe.txt
Normal file
103
_deploy/debian-server/wookey-exposerver-recipe.txt
Normal file
@@ -0,0 +1,103 @@
|
||||
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';
|
||||
Ctrl-D to exit
|
||||
|
||||
somepassword is set in localsettings.py
|
||||
sudo service mariadb stop
|
||||
sudo service mariadb start
|
||||
|
||||
to delete the database, it is
|
||||
DROP DATABASE troggle;
|
||||
|
||||
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__)
|
||||
|
||||
Reference in New Issue
Block a user