Awesome
Digital Helsinki CMS
This Wagtail-based CMS powers the Digital Helsinki website.
Installation
Set the DEBUG environment variable to 1
export DEBUG=1
Install required Python packages
(sudo) pip install -r requirements.txt
Create the database
sudo -u postgres createuser digihel
sudo -u postgres createdb -O digihel digihel
Install node dependencies
npm install
Install bower components
./manage.py bower install
If you have acquired a database dump, install it this way:
tar xvjf digihel-backup.tar.bz2
pg_restore -d digihel digihel.sql
echo "delete from wagtailimages_rendition;" | ./manage.py dbshell
Requirements
This project uses two files for requirements. The workflow is as follows.
requirements.txt
is not edited manually, but is generated
with pip-compile
.
requirements.txt
always contains fully tested, pinned versions
of the requirements. requirements.in
contains the primary, unpinned
requirements of the project without their dependencies.
In production, deployments should always use requirements.txt
and the versions pinned therein. In development, new virtualenvs
and development environments should also be initialised using
requirements.txt
. pip-sync
will synchronize the active
virtualenv to match exactly the packages in requirements.txt
.
In development and testing, to update to the latest versions
of requirements, use the command pip-compile
. You can
use requires.io to monitor the
pinned versions for updates.
To remove a dependency, remove it from requirements.in
,
run pip-compile
and then pip-sync
. If everything works
as expected, commit the changes.
Configuration
These settings are recognized in the Django settings.
You can acquire the Twitter keys from the Twitter developer portal (https://apps.twitter.com).
TWITTER_CONSUMER_KEY
: "Consumer Key (API Key)"TWITTER_CONSUMER_SECRET
: "Consumer Secret (API Secret)"TWITTER_ACCESS_TOKEN
: A personal (read-only) access tokenTWITTER_ACCESS_TOKEN_SECRET
: The secret for the personal (read-only) access token
Docker
Currently the development environment has been dockerized.
Configurations
Configure the following settings to local_settings.py:
DEBUG = True
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': '5432',
}
}
Daily running
- Run
docker-compose up
- Run
docker-compose exec web python3 manage.py migrate
- Run
docker-compose exec web python3 manage.py compilemessages