- Notifications
You must be signed in to change notification settings - Fork45
Configuration for Django's Trac instance (code.djangoproject.com)
License
django/code.djangoproject.com
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Getting a local Trac install running is a bit tricky. Here are a few tricksthat can help:
- Follow the installation instructions in djangoproject/README.rst (especiallythe database creation).
- Use
trac-admin ./trac-env/ permission add anonymous TRAC_ADMIN
to give all permissions to the anonymous user. - Use the command
DJANGO_SETTINGS_MODULE=tracdjangoplugin.settings TRAC_ENV=`pwd`/trac-env gunicorn tracdjangoplugin.wsgi:application --bind 0.0.0.0:9000 --workers=1 --reload
to serve Trac locally. - If you've modified the
trackhack.scss
file, usesassc scss/trachacks.scss trac-env/htdocs/css/trachacks.css -s compressed
to compile it to CSS.
Install Docker
pip install docker-compose
Create a
secrets.json
file at the root of the repository (next to Dockerfile), containingsomething like:{ "secret_key": "xyz", "db_host": "localhost", "db_password": "secret"}
docker-compose up --build
Follow instructions above to create/load the DB, grant permissions, create theconfig, etc. For example:
docker-compose up --buildexport DATABASE_URL=postgres://code.djangoproject:secret@db/code.djangoprojectdocker-compose exec -T db psql $DATABASE_URL < ../djangoproject.com/tracdb/trac.sqldocker-compose exec trac trac-admin /code/trac-env/ permission add anonymous TRAC_ADMIN
It may be possible to use Podman for local development to more closely simulateproduction. The above Docker instructions should work for Podman as well,however, be aware thatpodman-compose
is not as well battle-tested asdocker-compose
(e.g., it may require pruning or forcefully stopping acontainer before it will rebuild properly).
Assumes that code.djangoproject.com and djangoproject.com are stored in thesame directory (adjust paths if needed).
- Copy the generated CSS:
cp ../djangoproject.com/static/css/*.css trac-env/htdocs/css/
- Copy _utils.scss (needed by trackahacks.scss):
cp ../djangoproject.com/static/scss/_utils.scss scss/
- Copy the javascript directory:
cp -rT ../djangoproject.com/static/js trac-env/htdocs/js
- Compile trackhacks.scss:
make compile-scss
Start with a clean slate:
docker-compose downsh -c 'cd ../djangoproject.com && git checkout tracdb/trac.sql'
Bring up database and Trac via docker-compose:
docker-compose up --build -dexport DATABASE_URL=postgres://code.djangoproject:secret@db/code.djangoprojectdocker-compose exec -T db psql $DATABASE_URL < ../djangoproject.com/tracdb/trac.sqldocker-compose exec trac /venv/bin/trac-admin /code/trac-env/ upgradedocker-compose exec db pg_dump --column-inserts -d $DATABASE_URL > ../djangoproject.com/tracdb/trac.sql
Note:
- There's no need to run the
trac-admin ... wiki upgrade
command - Be careful with changes that
trac-admin ... upgrade
makes totrac.ini
. We usually don't want them. - Review the diff carefully to make sure no unexpected database changesare inadvertently included.
About
Configuration for Django's Trac instance (code.djangoproject.com)