bornhack-website/README.md

93 lines
2.3 KiB
Markdown
Raw Normal View History

2015-10-03 01:07:05 +00:00
# Bornhack
Django project to power Bornhack. Features include news, villages, webshop, and more.
2015-10-03 01:07:05 +00:00
## Quickstart
### Clone the repo
Clone with --recursive to include submodules:
git clone --recursive https://github.com/bornhack/bornhack-website
### Virtualenv
Create a Python 3 virtual environment and activate it:
2017-01-20 16:47:10 +00:00
```
$ virtualenv venv
$ source venv/bin/activate
```
2016-07-03 12:27:31 +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-01-31 17:52:40 +00:00
- FreeBSD: databases/postgresql93-client
- 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
- 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
### Python packages
2017-01-20 16:47:10 +00:00
Install pip packages:
```
(venv) $ pip install -r requirements.txt
```
2016-07-03 12:27:31 +00:00
### Configuration file
2017-01-20 16:47:10 +00:00
Copy environment file template and change settings as needed:
```
2016-07-03 12:27:31 +00:00
(venv) $ cp bornhack/settings/env.dist bornhack/settings/.env
2017-01-20 16:47:10 +00:00
```
2016-07-03 12:27:31 +00:00
### Database
Is this a new installation? Initialize the database:
2017-01-20 16:47:10 +00:00
```
(venv) $ ./manage.py migrate
```
Is this for local development? Bootstrap the database with dummy data and users:
```
(venv) $ ./manage.py bootstrap-devsite
```
### Done
Is this for local development? Start the Django devserver:
2017-01-20 16:47:10 +00:00
```
(venv) $ ./manage.py runserver
```
Otherwise start uwsgi or similar to serve the application.
2017-01-20 16:47:10 +00:00
Enjoy!
## Notes
### How to add a camp
Add a new camp in the admin interface and run `
```
(venv) $ ./manage.py createcamp {camp-slug}
```
or go through the manuel process below:
* Add a new camp in the admin interface.
* Add a sponsers page, `{camp-slug}-sponsors.html`, to `sponsors/templates`.
* Add a frontpage, `{camp-slug}-camp_detail.html`, to `camps/templates`.
* Add a call for speakers page, `{camp-slug}-call_for_speakers.html`, to `program/templates`.
* Create `static_src/img/{camp-slug}/logo` and add two logos:
* `{camp-slug}-logo-large.png`
* `{camp-slug}-logo-small.png`
### multicamp prod migration notes
* 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)