Welcome to the Zulip documentation!
Welcome! Zulip’s documentation is split into four parts:
Help center documentation, for users and administrators of Zulip organizations.
Installation documentation, for installing and maintaining a production self-hosted Zulip installation.
API documentation, for writing integrations or bots using the Zulip API.
Contributor documentation, for developing the Zulip software, translating, submitting bug reports, or making other contributions to the project.
Zulip has well over 150,000 words of documentation. If you can’t find what you’re looking for, please let us know! Further information on the Zulip project and its features can be found at https://zulip.com.
This site contains our installation and contributor documentation. If this is your first time here, you may want to start with Production installation or Contributing guide.
Contents:
- Zulip homepage
- Overview
- Zulip overview
- Zulip architectural overview
- Directory structure
- Release lifecycle
- Version history
- Zulip Server 9.x series
- Zulip Server 8.x series
- Zulip Server 7.x series
- Zulip Server 6.x series
- Zulip Server 5.x series
- Zulip Server 4.x series
- Zulip Server 3.x series
- Zulip Server 2.1.x series
- Zulip Server 2.0.x series
- Zulip Server 1.9.x series
- Zulip Server 1.8.x series
- Zulip Server 1.7.x series
- Zulip Server 1.6.x and older
- Upgrade notes
- Zulip in production
- Requirements and scalability
- Install a Zulip server
- Troubleshooting and monitoring
- Management commands
- Server configuration
- System configuration
- Mobile push notification service
- Upgrade Zulip
- Modify Zulip
- Security model
- Authentication methods
- Backups, export and import
- PostgreSQL database details
- File upload backends
- Installing SSL certificates
- Outgoing email
- Deployment options
- Reverse proxies
- Hosting multiple organizations
- Incoming email integration
- Video call providers
- GIPHY GIF integration
- SCIM provisioning
- Contributing to Zulip
- Contributing guide
- Zulip Code of Conduct
- How we communicate
- Asking great questions
- Design discussions
- Commit discipline
- Code style and conventions
- Reviewing Zulip code
- Submitting a pull request
- Pull request review process
- Using zulipbot
- Reporting bugs
- Suggesting features and improvements
- Counting contributions
- Licensing
- Development environment
- Development environment installation
- Recommended setup
- Requirements
- Step 0: Set up Git & GitHub
- Step 1: Install prerequisites
- Step 2: Get Zulip code
- Step 3: Start the development environment
- Step 4: Developing
- Next steps
- Troubleshooting and common errors
- Specifying an Ubuntu mirror
- Specifying a proxy
- Using a different port for Vagrant
- Customizing CPU and RAM allocation
- Advanced setup
- Using the development environment
- Developing remotely
- Authentication in the development environment
- Testing the installer
- Developer tutorials
- Writing a new application feature
- Writing views in Zulip
- Life of a request
- A request is sent to the server, and handled by nginx
- Static files are served directly by nginx
- nginx routes other requests between Django and Tornado
- Django routes the request to a view in urls.py files
- Views serving HTML are internationalized by server path
- API endpoints use REST
- Django calls rest_dispatch for REST endpoints, and authenticates
- The view will authorize the user, extract request variables, and validate them
- Results are given as JSON
- Reading list
- Screenshot and GIF software
- Shell tips
- Subsystems documentation
- Provisioning and third-party dependencies
- Settings system
- HTML and CSS
- Accessibility
- Real-time push and events
- Sending messages
- Notifications in Zulip
- Queue processors
- Unread counts and the pointer
- Markdown implementation
- Caching in Zulip
- Performance and scalability
- Realms in Zulip
- Management commands
- Schema migrations
- URL hashes and deep linking
- Emoji
- Onboarding Steps
- Full-text search
- Analytics
- Clients in Zulip
- Logging and error reporting
- Typing indicators
- Upgrading Django
- Zulip server release checklist
- Zulip PyPI packages release checklist
- UI: input pills
- Presence
- Unread message synchronization
- Billing (Development)
- Widgets
- Slash commands
- Translating Zulip
- Translation guidelines
- Internationalization for developers
- Chinese translation style guide(中文翻译指南)
- Finnish translation style guide
- French translation style guide
- German translation style guide (Richtlinien für die deutsche Übersetzung)
- Hindi translation style guide (हिन्दी अनुवाद शैली मार्गदर्शक)
- Japanese translation style guide
- Polish translation style guide
- Russian translation style guide
- Spanish translation style guide
- Urdu translation style guide(انداذِ ترجمہ کا رہنما)