This page describes development-specific URLs and commands that may come in handy. Make sure your development server is running when you visit the pages linked below.
| URL | Command | Description |
|---|---|---|
| /devtools/integrations | None needed | Test incoming webhook integrations |
| /emails | None needed | View outgoing and example emails. |
| /digest | None needed | View sample digest email. |
| /docs/index.html | ./tools/build-docs |
Developer and production documentation (ReadTheDocs) built locally |
| /stats/realm/analytics/ | ./manage.py populate_analytics_dbRun the command after changing analytics data population logic. |
View the /stats page with some pre-populated data |
| URL | Description |
|---|---|
| /devtools/buttons | Test button styles |
| /devtools/banners | Test banner styles |
| /devtools/inputs | Test input styles |
| URL | Command | Description |
|---|---|---|
| /coverage/index.html | ./tools/test-backend --coverage |
Backend (Django) test coverage report |
| /node-coverage/index.html | ./tools/test-js-with-node --coverage |
Frontend (node) test coverage report |
Development-specific management commands live in zilencer/management/commands. Highlights include:
./manage.py populate_db: Rebuilds database. Has options to, for example, create 3K users for testing../manage.py mark_all_messages_unread: Useful for testing reading messages../manage.py send_zulip_update_announcements: Send Zulip
update notices drafted in zerver/lib/zulip_update_announcements.py../manage.py add_mock_conversation: Add test messages, streams, images, emoji, etc.
into the dev environment. First edit zilencer/management/commands/add_mock_conversation.py
to add the data you're testing.
We also have documentation on testing LDAP, Google & GitHub authentication in the development environment.
./tools/run-dev --only-help-center.
./tools/run-dev --help-center-dev-server (requires more resources).
./tools/build-help-center followed by
./tools/run-dev --help-center-static-build. Hot reloads won't
work: rerun ./tools/build-help-center
and reload your browser to see updates. Search will not
work with other methods of running the help center.
| URL | Command | Description |
|---|---|---|
| /webpack/5xx.html | None needed | Error 5xx page served by nginx (used when Django is totally broken) |
| /errors/404 | None needed | Error 404 page served by Django |
| /errors/5xx | None needed | Error 5xx page served by Django |
| /accounts/do_confirm/invalid | None needed | Invalid confirmation link page |
./manage.py dbshell: Connect to
PostgreSQL database via your terminal.
provision creates a ~/.pgpass file,
so psql -U zulip -h localhost works too.
To connect using a graphical PostgreSQL client like pgAdmin, use the following credentials:
local_database_password in zulip/zproject/dev-secrets.conf