2015-10-03 01:07:05 +00:00
|
|
|
# Bornhack
|
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
Django project to power Bornhack. Features include news, villages, webshop, and more.
|
2015-10-03 01:07:05 +00:00
|
|
|
|
|
|
|
## Quickstart
|
|
|
|
|
2017-03-26 07:56:13 +00:00
|
|
|
### Clone the repo
|
|
|
|
Clone with --recursive to include submodules:
|
|
|
|
|
|
|
|
git clone --recursive https://github.com/bornhack/bornhack-website
|
|
|
|
|
2017-08-28 19:53:38 +00:00
|
|
|
If you already cloned the repository, you can add the submodules like this:
|
|
|
|
|
|
|
|
git submodule update --init --recursive
|
2017-03-26 07:56:13 +00:00
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
### Virtualenv
|
2017-01-30 11:26:33 +00:00
|
|
|
Create a Python 3 virtual environment and activate it:
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2017-08-28 19:41:16 +00:00
|
|
|
$ virtualenv venv -p python3
|
2017-01-20 16:47:10 +00:00
|
|
|
$ source venv/bin/activate
|
|
|
|
```
|
2016-07-03 12:27:31 +00:00
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
### System libraries
|
|
|
|
Install system dependencies (method depends on OS):
|
2017-01-28 16:06:46 +00:00
|
|
|
- postgresql headers (for psycopg2):
|
|
|
|
- Debian: libpq-dev
|
2017-04-14 20:49:54 +00:00
|
|
|
- FreeBSD: databases/postgresql93-client
|
2016-11-09 08:55:15 +00:00
|
|
|
- libjpeg (for pdf generation)
|
2017-01-20 16:47:10 +00:00
|
|
|
- Debian: libjpeg-dev
|
2017-01-31 17:52:40 +00:00
|
|
|
- FreeBSD: graphics/jpeg-turbo
|
2017-03-27 22:12:11 +00:00
|
|
|
- wkhtmltopdf (also for pdf generation):
|
|
|
|
- Debian: wkhtmltopdf
|
|
|
|
- FreeBSD: converters/wkhtmltopdf
|
2017-03-30 07:36:29 +00:00
|
|
|
- fonts
|
|
|
|
- Debian: ?
|
|
|
|
- FreeBSD: x11-fonts/webfonts
|
2016-07-03 12:27:31 +00:00
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
### Python packages
|
2017-01-20 16:47:10 +00:00
|
|
|
Install pip packages:
|
|
|
|
```
|
2017-08-28 19:28:27 +00:00
|
|
|
(venv) $ pip install -r src/requirements.txt
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2016-07-03 12:27:31 +00:00
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
### Configuration file
|
2017-04-12 11:41:49 +00:00
|
|
|
Copy environment settings file and change settings as needed:
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2017-08-28 19:28:27 +00:00
|
|
|
(venv) $ cp src/bornhack/environment_settings.py.dist src/bornhack/environment_settings.py
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2016-07-03 12:27:31 +00:00
|
|
|
|
2017-08-28 19:28:27 +00:00
|
|
|
Edit the configuration file, replacing all the ``{{ placeholder }}`` patterns
|
|
|
|
(intended for Ansible).
|
|
|
|
|
2016-11-09 08:55:15 +00:00
|
|
|
### Database
|
|
|
|
Is this a new installation? Initialize the database:
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2017-08-28 19:28:27 +00:00
|
|
|
(venv) $ src/manage.py migrate
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Is this for local development? Bootstrap the database with dummy data and users:
|
|
|
|
```
|
2017-08-28 19:28:27 +00:00
|
|
|
(venv) $ src/manage.py bootstrap-devsite
|
2017-01-20 16:47:10 +00:00
|
|
|
```
|
2016-08-29 18:43:50 +00:00
|
|
|
|
2017-08-28 20:29:38 +00:00
|
|
|
### Deploy camps+program test data
|
|
|
|
|
|
|
|
Run this command to create a bunch of nice test data:
|
|
|
|
|
|
|
|
```
|
|
|
|
(venv) $ src/manage.py bootstrap-devsite
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### Done
|
|
|
|
Is this for local development? Start the Django devserver:
|
|
|
|
```
|
|
|
|
(venv) $ src/manage.py runserver
|
|
|
|
```
|
|
|
|
|
|
|
|
Otherwise start uwsgi or similar to serve the application.
|
|
|
|
|
|
|
|
Enjoy!
|
|
|
|
|
|
|
|
## Notes
|
|
|
|
|
2017-08-28 20:11:30 +00:00
|
|
|
### Add a camp
|
|
|
|
|
|
|
|
Add a new camp by running:
|
|
|
|
|
|
|
|
```
|
|
|
|
(venv) $ src/manage.py createcamp {camp-slug}
|
|
|
|
```
|
|
|
|
|
|
|
|
Then go to the admin interface to edit the camp details, adding the same slug
|
|
|
|
that you just used and some current dates.
|
|
|
|
|
|
|
|
You can also specify details like:
|
|
|
|
|
|
|
|
* A sponsors page, `{camp-slug}_sponsors.html`, to `sponsors/templates`.
|
|
|
|
* A frontpage, `{camp-slug}_camp_detail.html`, to `camps/templates`.
|
|
|
|
* A call for speakers page, `{camp-slug}_call_for_speakers.html`, to `program/templates`.
|
|
|
|
* A `static_src/img/{camp-slug}/logo` and add two logos:
|
|
|
|
* `{camp-slug}-logo-large.png`
|
|
|
|
* `{camp-slug}-logo-small.png`
|
|
|
|
|
2017-01-28 20:01:19 +00:00
|
|
|
### multicamp prod migration notes
|
2017-01-31 21:03:03 +00:00
|
|
|
|
|
|
|
* when villages.0008 migration fails go add camp_id to all existing villages
|
|
|
|
* go to admin interface and add bornhack 2017, and set slug for bornhack 2016
|
|
|
|
* convert events to the new format (somehow)
|