Docker is the recommended way to develop and deploy ContentDB.
-
Install
docker
anddocker-compose
.Debian/Ubuntu:
sudo apt install docker-ce docker-compose
-
Copy
config.example.cfg
toconfig.cfg
.- Set
SECRET_KEY
andWTF_CSRF_SECRET_KEY
to different random values.
- Set
-
(Optional) Set up mail in config.cfg. Make sure to set
USER_ENABLE_EMAIL
to True. -
(Optional) Set up GitHub integration
- Make a Github OAuth Client at https://github.com/settings/developers:
- Homepage URL -
http://localhost:5123/
- Authorization callback URL -
http://localhost:5123/user/github/callback/
- Put client id and client secret in
GITHUB_CLIENT_ID
andGITHUB_CLIENT_SECRET
in config.cfg.
-
Create config.env:
POSTGRES_USER=contentdb POSTGRES_PASSWORD=password POSTGRES_DB=contentdb FLASK_DEBUG=1
-
Start docker images:
docker-compose up --build
-
Setup database:
./utils/run_migrations.sh
-
Create initial data
./utils/bash.sh
- Either
python utils/setup.py -t
orpython utils/setup.py -o
:-o
creates just the admin, and static data like tags, and licenses.-t
will do-o
and also create test packages. (Recommended)
-
View at http://localhost:5123. The admin username is
rubenwardy
and the password istuckfrump
.
In the future, starting CDB is as simple as:
docker-compose up --build
To hot/live update CDB whilst it is running, use:
./utils/reload.sh
This will only work with python code and templates, it won't update tasks or config.