Welcome to the Zulip documentation!¶
Welcome! Zulip’s documentation is split into four parts:
User 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://www.zulip.org.
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 to Zulip.
Contents:
- Zulip in Production
- Requirements and Scalability
- Installing a production server
- Troubleshooting and monitoring
- Management commands
- Customize Zulip
- Mobile push notification service
- Upgrade or modify Zulip
- Security Model
- Authentication methods
- Backups, export and import
- Postgres database details
- File upload backends
- Installing SSL Certificates
- Outgoing email
- Deployment options
- Incoming email integration
- Video call providers
- Development Environment
- Development environment installation
- Recommended setup (Vagrant)
- 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 (non-Vagrant)
- Using the development environment
- Developing remotely
- Authentication in the development environment
- 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
- Real-time Push and Events
- Sending messages
- Queue processors
- Custom Apps
- Unread counts and the pointer
- Markdown implementation
- Caching in Zulip
- Realms in Zulip
- Management commands
- Schema Migrations
- URL hashes and deep linking
- Emoji
- Hotspots
- Full-text search
- Analytics
- Clients in Zulip
- Logging and Error reporting
- Typing indicators
- Users data model
- Upgrading Django
- Zulip server release checklist
- Zulip PyPI package release checklist
- Exporting data from a large multi-realm Zulip server
- UI: Input Pills
- Thumbnailing
- Presence
- Unread message synchronization
- Billing
- Widgets (experimental)
- Translating Zulip
- Translation Guidelines
- Internationalization for Developers
- Chinese translation style guide(中文翻译指南)
- French translation style guide
- German translation style guide (Richtlinien für die deutsche Übersetzung)
- Hindi translation style guide(हिन्दी अनुवाद शैली मार्गदर्शक)
- Polish translation style guide
- Russian Translation Style Guide
- Spanish Translation Style Guide
- Index