This is the source code for the London Hackspace web site
We use Vagrant to deploy a consistent development environment. To get your development environment set up:
- Clone this repo
- Fetch libraries:
git submodule update --init
- Create config file (the defaults are fine):
cp etc/config.php.example etc/config.php
- Create production settings file (the defaults are fine):
cp lhs/production_settings.py.example lhs/production_settings.py
- Install Vagrant and Virtualbox
- To create and configure a virtual machine run in this directory
vagrant up
You should now be able to connect to http://localhost:8000 to view your development site. Changes you make on your machine will be reflected on the VM.
If you need to log into the VM for any reason, you can just run
vagrant ssh
To access the postgres database, run from the SSH shell
psql hackspace
In the postgres shell:
hackspace=# update users set subscribed=True;
hackspace=# update users set admin=True;
to make yourself a member and an admin
use visudo to add this:
www-data ALL=(www-data:ldapadmin) NOPASSWD:NOSETENV: /var/www/hackspace-foundation-sites/bin/ldap-add.sh, /var/www/hackspace-foundation-sites/bin/ldap-delete.sh
and then:
groupadd ldapadmin
chgrp ldapadmin /etc/smbldap-tools/smbldap_bind.conf
chmod 0640 /etc/smbldap-tools/smbldap_bind.conf
- Enable the Calendar API at https://console.developers.google.com/.../apiui/api
- Create a service account for OAuth at https://console.developers.google.com/.../apiui/credential
- Put the OAuth certificate in ./var, and correct the service_account_name and key_file_location in lib/calendar.php
- Go to the Hackspace calendar on Google and share it with the same service_account_name address
API documentation https://developers.google.com/api-client-library/php/
Add to cron:
0 4 * * * www-data /var/www/hackspace-foundation-sites/manage.sh clearsessions
After setting the credentials appropriately and taking a backup, run:
env/bin/python manage.py migrate main 0001 --fake-initial
env/bin/python manage.py migrate sites
env/bin/python manage.py migrate
And then run in the following SQL files:
- etc/create-flourish-tables.sql
- etc/restore-column-defaults.sql
- etc/restore-multicolumn-pks.sql
And don't forget to run:
env/bin/python manage.py collectstatic
after each deployment.
This is a work-in-progress, but likely to take over from Vagrant quickly.
docker-compose up
To clear out the database and PHP sessions:
docker-compose down -v
To access the DB:
docker-compose exec db psql postgres://hackspace:hackspace@db/hackspace