Zulip server and webapp - powerful open source team chat

Overview

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 700 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

CircleCI branch coverage status Mypy coverage code style: black code style: prettier GitHub release docs Zulip chat Twitter

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on Twitter. Zulip is distributed under the Apache 2.0 license.

Issues
  • bugdown: Change youtube preview to show name of video instead of link.

    bugdown: Change youtube preview to show name of video instead of link.

    Currently our youtube previews look like image

    And it would be better if they looked like image

    (namely, the url is replaced by a link with the name as the text of the link).

    I think you can find the relevant code by grepping for youtube in zerver/lib/bugdown/__init__.py.

    help wanted good first issue area: markdown 
    opened by rishig 97
  • integrations: Add grafana.

    integrations: Add grafana.

    Grafana has a webhooks system, so this should be pretty straightforward: https://grafana.com/docs/alerting/notifications/#webhook

    You can follow the instructions for adding a new webhook integration at https://zulipchat.com/api/incoming-webhooks-overview

    area: integrations good first issue in progress 
    opened by rishig 65
  • Dockerfile

    Dockerfile

    @timabbott Here you go, a working Dockerfile. Any improvements I could add?

    This adds a working Dockerfile and my create-admin-user.sh script.

    I included the docker-compose.yml because the database server needs to be my galexrt/zulip-postgresql-tsearchextras (because other postgresql images don't have the tsearch extension installed). You would just need to change the image names (example zulip/zulip:1.3.10).

    If there is anything that can improve this Pull Request, please let me know.


    Original commit messages:

    This adds a working Dockerfile for "production" use
    It includes a `docker-compose.yml` which currently uses my image.
    The `docker-entrypoint.sh` is about 285 lines of code, but it has inbuilt database backup and restore function.
    (I can remove the backup and restore or add more functions see https://github.com/galexrt/docker-zulip)
    
    I also added an README.docker.md, it should give users a quick start on how to use the docker image.
    
    Added Dockerfile for "production" use
    Added other docker related files like docker-compose.yml and docker-entrypoint.sh
    
    Added the generate secrets command to the entrypoint
    
    puppet: Move several debugging tool dependencies out of base.pp.
    
    Rename zulip::postgres_appdb to zulip::postgres_appdb_base.
    
    The purpose of this rename is to allow us to move the postgres-related
    configuration out of voyager.pp.
    
    puppet: Move tuned postgres configuration out of voyager.pp.
    
    This should make it easier for someone to run just the tuned Zulip
    database on one server and the Zulip frontend on another.
    
    puppet: Move prod-static creation from voyager.pp to app_frontend.pp.
    
    Every app frontend will need this directory and this should help
    enable more modular puppet rules.
    
    puppet: Move Zulip apt repository to its own manifest.
    
    puppet: Rename app_frontend.pp to app_frontend_base.pp.
    
    This will enable us to move the remaining app-frontend related content
    out of voyager.pp.
    
    puppet: Move memcached into its own puppet module.
    
    puppet: Move memcached and rabbitmq include out of app_frontend_base.pp.
    
    puppet: Move default nginx configuration out of voyager.pp.
    
    Document the puppet configuration somewhat in zulip::voyager.
    
    puppet: Make apt repository conditional on the Ubuntu version.
    
    We still will need to address this in the install script as well.
    
    puppet: Use a variable to configure the postgres version.
    
    puppet: Use $postgres_version in postgres template.
    
    This eliminates hardcoding of the postgres version from the Zulip
    puppet configuration.
    
    Fix missing puppet dependencies on postgres package.
    
    Added "custom" dockervoyer puppet manifest
    
    Add the files from the repo directly (dont use git clone to get something we already have in our docker build directory)
    
    Added cron.conf for running cron inside the docker container
    Useful for later docker related features like auto backup (see https://github.com/Galexrt/docker-zulip/blob/master/entrypoint.sh#L337-L345)
    
    Filled .dockerignore with directories and fiels to ignore/exclude from the image builds
    
    Fixed the linking of directories
    
    Removed git package and don't add "deb-src" list
    
    Fixed the settings path aka the zproject settings folder
    
    Removed the "removement" of "Service" tasks thing puppet
    
    Remove the puppet files after the puppet install
    
    Removed the zproject directory from the $DATA_DIR
    The zproject directory causes trouble if it is just linked. Because zulip uses paths like this for example "deployments/../memcached_prefix".
    
    Removed a trailing slash
    
    Wait for database to come online and create database and schema "manually"
    (Shouldn't occure because zulip needs the postgres tsearch thingy extensions, thus rendering every other postgresql image/server than the galexrt/zulip-postgresql-tsearchextras:latest)
    
    Added the wait for database code
    
    Fixed the rabbitmq connection problem
    
    Use sed to replace the default memcached location with the env var MEMCACHED_LOCATION
    
    Added the tsearch_extras extension query to the database (re)creation part
    
    Migrate the database everytime we start (for safety)
    
    Tweaks and fixes to the docker-entrypoint.sh
    
    Restructured the entrypoint.sh
    
    Restructured the docker-entrypoint.sh
    This restructure adds database backup and restore functionality
    Added "Running in Docker" to the README.md
    
    Fixed the help text for the app:help function
    
    Fixed the restore help line (was app:backup is now app:restore)
    Added more explanation to the README.docker.md
    
    Small adjustments and tweaks to the entrypoint.sh
    
    We don't need to copy the uploads from the home/zulip
    
    Added restart always to the docker-compose.yml (because there is no wait for container x to become ready)
    Added Try counter at the migration
    
    Tweaks and optimization for the entrypoint.sh
    
    Renamed the zulipgeneratesecrets function
    
    This could fix the exit code 0 problem
    
    Fix for the retry at the database migration
    
    Some changes to the sql queries
    
    Small change to the queries
    Fixed the if
    
    Added the forgotten nginx.conf to supervisor
    (It's a little bit embarassing, that forgot the main part of this container)
    

    @smarx I signed the CLA.

    area: production installer needs review inactive 
    opened by galexrt 65
  • Zulip install on 1und1 VPS

    Zulip install on 1und1 VPS

    Hi,

    I have not much experience in server setup and linus and so on, so I'm sorry for stupid questions ;)

    I try to go through installation process from https://www.zulip.org/server.html and everything is fine until I do install process. This is what I got:

    [email protected]:~/zulip# ./scripts/setup/install
    + wget -O /root/zulip-ppa.asc https://zulip.com/dist/keys/zulip-ppa.asc
    --2015-10-06 03:34:03--  https://zulip.com/dist/keys/zulip-ppa.asc
    Resolving zulip.com (zulip.com)... 54.244.50.68
    Connecting to zulip.com (zulip.com)|54.244.50.68|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 1667 (1.6K) [application/octet-stream]
    Saving to: '/root/zulip-ppa.asc'
    
         0K .                                                     100%  216M=0s
    
    2015-10-06 03:34:04 (216 MB/s) - '/root/zulip-ppa.asc' saved [1667/1667]
    
    + apt-key add /root/zulip-ppa.asc
    OK
    + cat
    + apt-get update
    Ign http://mirror-eu.oneandone.net trusty InRelease
    Ign http://mirror-eu.oneandone.net trusty-updates InRelease
    Ign http://mirror-eu.oneandone.net trusty-security InRelease
    Get:1 http://mirror-eu.oneandone.net trusty Release.gpg [933 B]
    Get:2 http://mirror-eu.oneandone.net trusty-updates Release.gpg [933 B]
    Get:3 http://mirror-eu.oneandone.net trusty-security Release.gpg [933 B]
    Hit http://mirror-eu.oneandone.net trusty Release
    Get:4 http://mirror-eu.oneandone.net trusty-updates Release [63.5 kB]
    Get:5 http://mirror-eu.oneandone.net trusty-security Release [63.5 kB]
    Ign http://mirror-eu.oneandone.net trusty Release
    Ign http://mirror-eu.oneandone.net trusty/main amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty/restricted amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty/universe amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-updates Release
    Ign http://mirror-eu.oneandone.net trusty/main i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty/restricted i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty/universe i386 Packages/DiffIndex
    Hit http://mirror-eu.oneandone.net trusty/main Translation-en
    Ign http://ppa.launchpad.net trusty InRelease
    Ign http://mirror-eu.oneandone.net trusty-security Release
    Hit http://ppa.launchpad.net trusty Release.gpg
    Hit http://mirror-eu.oneandone.net trusty/restricted Translation-en
    Hit http://mirror-eu.oneandone.net trusty/universe Translation-en
    Hit http://mirror-eu.oneandone.net trusty/main amd64 Packages
    Hit http://mirror-eu.oneandone.net trusty/restricted amd64 Packages
    Hit http://mirror-eu.oneandone.net trusty/universe amd64 Packages
    Ign http://mirror-eu.oneandone.net trusty-updates/main amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-updates/restricted amd64 Packages/DiffIndex
    Hit http://ppa.launchpad.net trusty Release
    Ign http://mirror-eu.oneandone.net trusty-updates/universe amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-updates/main i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-updates/restricted i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-updates/universe i386 Packages/DiffIndex
    Get:6 http://mirror-eu.oneandone.net trusty-updates/main Translation-en [305 kB]
    Get:7 http://mirror-eu.oneandone.net trusty-updates/restricted Translation-en [3,569 B]
    Hit http://ppa.launchpad.net trusty/main Sources
    Hit http://ppa.launchpad.net trusty/main amd64 Packages
    Get:8 http://mirror-eu.oneandone.net trusty-updates/universe Translation-en [169 kB]
    Hit http://mirror-eu.oneandone.net trusty/main i386 Packages
    Hit http://mirror-eu.oneandone.net trusty/restricted i386 Packages
    Hit http://mirror-eu.oneandone.net trusty/universe i386 Packages
    Hit http://ppa.launchpad.net trusty/main i386 Packages
    Ign http://mirror-eu.oneandone.net trusty-security/main amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-security/restricted amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-security/universe amd64 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-security/main i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-security/restricted i386 Packages/DiffIndex
    Ign http://mirror-eu.oneandone.net trusty-security/universe i386 Packages/DiffIndex
    Get:9 http://mirror-eu.oneandone.net trusty-security/main Translation-en [191 kB]
    Hit http://ppa.launchpad.net trusty/main Translation-en
    Get:10 http://mirror-eu.oneandone.net trusty-security/restricted Translation-en [3,076 B]
    Get:11 http://mirror-eu.oneandone.net trusty-security/universe Translation-en [68.2 kB]
    Get:12 http://mirror-eu.oneandone.net trusty-updates/main amd64 Packages [627 kB]
    Get:13 http://mirror-eu.oneandone.net trusty-updates/restricted amd64 Packages [15.4 kB]
    Get:14 http://mirror-eu.oneandone.net trusty-updates/universe amd64 Packages [319 kB]
    Get:15 http://mirror-eu.oneandone.net trusty-updates/main i386 Packages [608 kB]
    Get:16 http://mirror-eu.oneandone.net trusty-updates/restricted i386 Packages [15.1 kB]
    Get:17 http://mirror-eu.oneandone.net trusty-updates/universe i386 Packages [321 kB]
    Get:18 http://mirror-eu.oneandone.net trusty-security/main amd64 Packages [350 kB]
    Get:19 http://mirror-eu.oneandone.net trusty-security/restricted amd64 Packages [12.4 kB]
    Get:20 http://mirror-eu.oneandone.net trusty-security/universe amd64 Packages [117 kB]
    Get:21 http://mirror-eu.oneandone.net trusty-security/main i386 Packages [333 kB]
    Get:22 http://mirror-eu.oneandone.net trusty-security/restricted i386 Packages [12.2 kB]
    Get:23 http://mirror-eu.oneandone.net trusty-security/universe i386 Packages [117 kB]
    Ign http://mirror-eu.oneandone.net trusty/main Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty/restricted Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty/universe Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-updates/main Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-updates/restricted Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-updates/universe Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-security/main Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-security/restricted Translation-en_US
    Ign http://mirror-eu.oneandone.net trusty-security/universe Translation-en_US
    Fetched 3,716 kB in 1s (1,949 kB/s)
    Reading package lists...
    W: GPG error: http://mirror-eu.oneandone.net trusty Release: The following signatures couldn't be veri                                                       fied because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
    W: GPG error: http://mirror-eu.oneandone.net trusty-updates Release: The following signatures couldn't                                                        be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B                                                       21F32
    W: GPG error: http://mirror-eu.oneandone.net trusty-security Release: The following signatures couldn'                                                       t be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0                                                       B21F32
    + apt-get -y dist-upgrade
    Reading package lists...
    Building dependency tree...
    Reading state information...
    The following NEW packages will be installed:
      e2fsprogs libss2
    The following packages will be upgraded:
      apache2 apache2-bin apache2-data apache2-doc apache2-mpm-prefork
      apache2-utils apt apt-utils base-files bash bind9 bind9-host bind9utils
      binutils bsd-mailx bsdutils ca-certificates coreutils cpio dh-python dpkg
      dselect e2fslibs expat file fontconfig fontconfig-config gcc-4.8-base
      gcc-4.9-base gnupg gpgv initramfs-tools initramfs-tools-bin initscripts
      iproute2 isc-dhcp-client isc-dhcp-common ldap-utils libapt-inst1.5
      libapt-pkg4.12 libasn1-8-heimdal libbind9-90 libblkid1
      libboost-iostreams1.54.0 libc-bin libc6 libcgmanager0 libcomerr2 libcups2
      libdbus-1-3 libdns100 libdrm-intel1 libdrm-radeon1 libdrm2 libexpat1
      libfontconfig1 libfreetype6 libgcc1 libgcrypt11 libglib2.0-0
      libgnutls-openssl27 libgnutls26 libgomp1 libgssapi-krb5-2 libgssapi3-heimdal
      libhcrypto4-heimdal libhdb9-heimdal libheimbase1-heimdal
      libheimntlm0-heimdal libhx509-5-heimdal libisc95 libisccc90 libisccfg90
      libjson-c2 libjson0 libk5crypto3 libkdc2-heimdal libkrb5-26-heimdal
      libkrb5-3 libkrb5support0 libldap-2.4-2 liblwres90 libmagic1 libmount1
      libpcre3 libplymouth2 libprocps3 libpython2.7 libpython2.7-minimal
      libpython2.7-stdlib libpython3.4-minimal libpython3.4-stdlib
      libroken18-heimdal libsepol1 libsnmp-base libsnmp30 libsqlite3-0 libssl1.0.0
      libstdc++6 libtasn1-6 libudev1 libuuid1 libwbclient0 libwind0-heimdal
      libxml2 locales login man-db mime-support mktemp mount multiarch-support
      net-tools openssh-client openssh-server openssh-sftp-server passwd plymouth
      postfix procmail procps python-samba python2.7 python2.7-minimal python3.4
      python3.4-minimal rpcbind rsyslog samba samba-common samba-common-bin
      samba-dsdb-modules samba-libs snmp sudo sysv-rc sysvinit-utils tcpdump
      traceroute tzdata udev unzip upstart util-linux uuid-runtime wget
    146 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
    Need to get 57.3 MB of archives.
    After this operation, 2,471 kB of additional disk space will be used.
    WARNING: The following packages cannot be authenticated!
      base-files bash coreutils dpkg sysv-rc sysvinit-utils mount passwd
      initscripts libdbus-1-3 libjson-c2 libuuid1 libblkid1 libcgmanager0 tzdata
      util-linux libprocps3 procps udev libudev1 libjson0 upstart libc-bin
      gcc-4.9-base libgcc1 libc6 e2fslibs libcomerr2 libss2 e2fsprogs login
      libgomp1 gcc-4.8-base libstdc++6 libapt-pkg4.12 gpgv gnupg apt bsdutils
      libmount1 libpcre3 libsepol1 libapt-inst1.5 libexpat1 libgcrypt11 libtasn1-6
      libgnutls-openssl27 libgnutls26 file libmagic1 mime-support libsqlite3-0
      python3.4 libpython3.4-stdlib python3.4-minimal libssl1.0.0
      libpython3.4-minimal libdrm2 initramfs-tools initramfs-tools-bin cpio
      plymouth libplymouth2 libroken18-heimdal libasn1-8-heimdal libglib2.0-0
      libk5crypto3 libgssapi-krb5-2 libkrb5-3 libkrb5support0 libhcrypto4-heimdal
      libheimbase1-heimdal libwind0-heimdal libhx509-5-heimdal libkrb5-26-heimdal
      libheimntlm0-heimdal libgssapi3-heimdal ldap-utils libldap-2.4-2 libxml2
      man-db libboost-iostreams1.54.0 libcups2 libdrm-intel1 libdrm-radeon1
      libfontconfig1 fontconfig-config libfreetype6 libhdb9-heimdal python2.7
      python2.7-minimal libpython2.7 libpython2.7-stdlib libpython2.7-minimal
      libsnmp-base libsnmp30 libwbclient0 mktemp samba samba-common-bin
      samba-common samba-dsdb-modules python-samba samba-libs libkdc2-heimdal
      multiarch-support apt-utils dh-python isc-dhcp-client isc-dhcp-common
      iproute2 net-tools rsyslog sudo locales bind9-host bind9 libisc95 libdns100
      libisccc90 libisccfg90 liblwres90 bind9utils libbind9-90 ca-certificates
      openssh-sftp-server openssh-server openssh-client tcpdump uuid-runtime wget
      apache2-mpm-prefork apache2 apache2-bin apache2-data apache2-doc
      apache2-utils binutils postfix bsd-mailx dselect expat fontconfig procmail
      rpcbind snmp traceroute unzip
    E: There are problems and -y was used without --force-yes
    

    If I now try to go on with the manual I can't find /etc/zulip/settings.py because there is no zulip folder in /etc/... I also don't know what config I should do there if I would found the file ;) Maybe anyone can help me...

    question 
    opened by sxbxstxxn 64
  • notifications: Do not notify for at-all in muted streams.

    notifications: Do not notify for at-all in muted streams.

    In muted streams, we should

    • notify on an @-mention specifically of you
    • but not notify on @-all.

    Currently, we notify both for @-mention of you and for @-all.

    help wanted area: notifications (messages) 
    opened by rishig 63
  • Add support for using Zulip with Python 3

    Add support for using Zulip with Python 3

    Python 3 enables a bunch of awesome stuff like optional static typing, and I think is actually pretty feasible to add. I've already applied the fast majority of the futurize/modernize fixers to the repository in a way that preserves Python 2+3 support; for future work, we should continue using that approach. Based on some hackish testing, we're about 100 LOC away from passing 90% of backend tests against Python 3 (well not including the #! lines that hardcode Python 2.7). Based on that investigation, the main projects that remain are as follows.

    We have some dependencies that don't support Python 3:

    • python-twitter (https://github.com/bear/python-twitter). It looks like some work has been done for Python 3 support there (https://github.com/bear/python-twitter/issues/155) or we could switch to an alternative library; Zulip primarily uses it to render links to Tweets.
    • python-ldap and django-auth-ldap. It appears there are Python 3 supporting libraries python-ldap3 and django-python3-ldap but they seem to have a different interface; so the challenges are (1) decide whether we want to switch to the python2+3 versions and (2) if so, actually do it.
    • Old django-pipeline. We're using an old version but a newer version that supports Python 3 exists; this upgrade may be somewhat messy since it involves renaming things like "load compressed" and "compressed_css" in our Django templates.

    (We can update this list to add others but those are the main ones where we need to do more than a straightforward version upgrade).

    There are also some changes needed to the Zulip code itself still:

    • Doing a few more Python 3 compatibility migrations (I've already done like 20 of them), in particular the file=>open change, .items() iteration, and several libraries like StringIO, urlparse. For these, we can fix things and then add the fixers to the tests in #252 to avoid regressions.
    • Unicode transition fixes such as adding appropriate encode/decode usage where we use base-64 encoding, hash digests, etc.

    If anyone's interested in working on Python 3 support, feel free to claim one of these pieces on this issue's discussion thread!

    I pushed https://github.com/timabbott/zulip/commits/tabbott-py3k-testing which has some total hack commits I wrote as part of the testing process for Python 3 support; with some library version installation work that branch passes 90% of our tests. That could be helpful for anyone working on this.

    help wanted area: tooling 
    opened by timabbott 61
  • notifications: Allow users to pick which notification sound they hear.

    notifications: Allow users to pick which notification sound they hear.

    This allows users to pick what they want their notification sound to be. It also adds 4 new sounds: boing, ding, knock, and tada (along with zulip, which already existed), which are all Creative-Commons-0-licensed from http://freesound.org.

    The way this works is

    1. Add a new property notification_sound to UserProfile.
    2. Also add available_notification_sounds to state based on audio files in a notification_sounds directory.
    3. Use those properties to add a new option on the settings screen and change the sound that plays when the user gets a notification.

    Fix #8051

    needs more work size: XL 
    opened by marco 56
  • [WIP] Fix uploads being world readable

    [WIP] Fix uploads being world readable

    Fix for #320. Uploaded files now require an active session to download. Works only in development for now.

    help wanted area: uploads 
    opened by rahuldeve 56
  • compose: Fix alignment of close buttons in stream invite banners.

    compose: Fix alignment of close buttons in stream invite banners.

    Fixes #20839. Also I made the space between the close button the subscribe button consistent (in case of one line).

    GIFs or screenshots: other-1line other-2line you-1line you-2lines

    size: XS 
    opened by My-Name-Is-Nabil 0
  • docs: Fix grammar problems found by LanguageTool.

    docs: Fix grammar problems found by LanguageTool.

    The discussion thread can be found at https://chat.zulip.org/#narrow/stream/18-tools/topic/grammar.20checker. I use this shell script:

    # DOUBLE_PUNCTUATION: Use of two consecutive dots or commas
    # EN_REPEATEDWORDS: Suggest synonyms for repeated words.
    # COMMA_COMPOUND_SENTENCE: comma between independent clauses
    # AI_HYDRA_LEO_MISSING_COMMA: This rule identifies whether commas are missing in a sentence.
    # AI_HYDRA_LEO_MISSING_A: This rule identifies whether the article 'a' is missing in a sentence.
    # UNLIKELY_OPENING_PUNCTUATION: Loose punctuation mark
    disabled_rules="DOUBLE_PUNCTUATION,EN_REPEATEDWORDS,COMMA_COMPOUND_SENTENCE,AI_HYDRA_LEO_MISSING_COMMA,AI_HYDRA_LEO_MISSING_A,UNLIKELY_OPENING_PUNCTUATION"
    
    pylanguagetool -l en-US \
        --rules --disabled-rules "$disabled_rules" \
        --disabled-categories "TYPOS,TYPOGRAPHY" \
        "$doc"
    
    size: S 
    opened by rht 0
  • added arabic translation for

    added arabic translation for "Add"

    I tried to translate word into Arabic. Lets see if this works Testing plan: application not ready for locale testing yet GIFs or screenshots:

    size: XS 
    opened by Awawdi 1
  • api_documentation: Update subscriptions parameter in OpenAPI doc.

    api_documentation: Update subscriptions parameter in OpenAPI doc.

    regarding - POST https://yourZulipDomain.zulipchat.com/api/v1/users/me/subscriptions

    image

    The definition of the "subscription" parameter didn't include full information about the parameter. It only said that an array of objects is passed as a parameter, and relied on description of the parameter to explain what the object contained. I edited the definition to contain the full information about the object.

    Fixes #20824.

    size: S 
    opened by raghupalash 2
  • Issues copy x pasting images from desktop app

    Issues copy x pasting images from desktop app

    Congrats on Zulip, great system.

    Copy x pasting imaging doesn't seem to work. Try to copy an image from Zulip chat (desktop app, Windows) to Word or anywhere else, it won't work.

    Can someone pls confirm on your installation?

    Thanks.

    opened by flaviozluca 3
  • Fix-#20844:Styles-Fixed overlapping of text on closing button.

    Fix-#20844:Styles-Fixed overlapping of text on closing button.

    This Pr Resolved the issue of overlapping text on the closing button.There were a lot of style changes which are confined to the search Only. Fixes-#20844

    I have made good amount of css changes, so this has affected a few styles, lookig forward to maintainer reviews, if there any conflicting styles and changes to be made.

    Below is the output after making these changes

    https://user-images.githubusercontent.com/72331432/150157215-5ca109ac-29cc-45e5-bdaa-47739060b293.mp4

    size: L 
    opened by Biki-das 1
  • Fix: Hide 'Remove owner' button when there is no owner assigned to the bot.

    Fix: Hide 'Remove owner' button when there is no owner assigned to the bot.

    Hides 'Remove owner' button when there is no owner assigned to the bot by removing ':enabled' selector from the button.

    Fixes part of #20831.

    Testing plan:

    GIFs or screenshots:

    https://user-images.githubusercontent.com/85362194/150151084-bec817db-65b5-488a-9f34-c458c416716a.mov

    size: S 
    opened by NerdyLucifer 3
  • api_documentation: Update rate limit error description.

    api_documentation: Update rate limit error description.

    Moves details about the rate limit error object and handling to the OpenAPI documentation description for that common error. Previously, this information was on the general rest error handling documentation page without clear connection to the specific rate limit error. See this CZO chat for more context.

    Also, fixes a typo in the change log (feature 36) for that same error and a misplaced colon in the description of the error for missing request parameters.

    Screenshot of updated error description: Screenshot from 2022-01-19 11-58-04

    size: L 
    opened by laurynmm 0
  • added documentation  for saml with authentik

    added documentation for saml with authentik

    Url to authentik documentation regarding zulip integration is waiting to be merged. It should be available soon at the url I provided. (https://goauthentik.io/integrations/services/zulip/)

    I haven't tested signed saml request. I might be able to add that part later.

    size: M 
    opened by xpufx 0
Releases(4.8)
  • 4.8(Dec 1, 2021)

    • CVE-2021-43791: Zulip could fail to enforce expiration dates on confirmation keys, allowing users to potentially use expired invitations, self-registrations, or realm creation links.
    • Began installing Smokescreen to harden Zulip against SSRF attacks by default. Zulip has offered Smokescreen as an option since Zulip 4.0. Existing installs which configured an outgoing proxy which is not on localhost:4750 will continue to use that; all other installations will begin having a Smokescreen installation listening on 127.0.0.1, which Zulip will proxy traffic through. The version of Smokescreen was also upgraded.
    • Replaced the camo image proxy with go-camo, a maintained reimplementation that also protects against SSRF attacks. This server now listens only on 127.0.0.1 when it is deployed as part of a standalone deployment.
    • Began using camo for images displayed in URL previews. This improves privacy and also resolves an issue where an image link to a third party server with an expired or otherwise invalid SSL certificate would trigger a confusing pop-up window for Zulip Desktop users.
    • Fixed a bug which could cause Tornado to shut down improperly (causing an immediate full-page reload for their clients) when restarting a heavily loaded Zulip server.
    • Updated Python dependencies.
    • Truncated large “remove” mobile notification events so that marking hundreds of private messages or other notifiable messages as read at once won’t exceed Apple’s 4 KB notification size limit.
    • Slack importer improvements:
      • Ensured that generated fake email addresses for Slack bots are unique.
      • Added support for importing Slack exports from a directory, not just a .zip file.
      • Provided better error messages with invalid Slack tokens.
      • Added support for non-ASCII Unicode folder names on Windows.
    • Add support for V3 Pagerduty webhook.
    • Updated documentation for Apache SSO, which now requires additional configuration now that Zulip uses a C extension (the re2 module).
    • Fixed a bug where an empty name in a SAML response would raise an error.
    • Ensured that deliver_scheduled_emails and deliver_scheduled_messages did not double-deliver if run on multiple servers at once.
    • Extended Certbot troubleshooting documentation.
    • Fixed a bug in soft deactivation catch-up code, in cases where a race condition had created multiple subscription deactivation entries for a single user and single stream in the audit log.
    • Updated translations, including adding a Sinhala translation.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-4.8.tar.gz(80.67 MB)
  • 4.7(Oct 4, 2021)

  • 4.6(Sep 23, 2021)

    4.6 -- 2021-09-23

    • Documented official support for Debian 11 Bullseye, now that it is officially released by Debian upstream.
    • Fixed installation on Debian 10 Buster. Upstream infrastructure had broken the Python virtualenv tool on this platform, which we've worked around for this release.
    • Zulip releases are now distributed from https://download.zulip.com/server/, replacing the old www.zulip.org server.
    • Added support for LDAP synchronization of the is_realm_owner and is_moderator flags.
    • upgrade-zulip-from-git now uses git fetch --prune; this ensures upgrade-zulip-from-git master with return an error rather than using a stale cached version of the master branch, which was renamed to main this month.
    • Added a new reset_authentication_attempt_count management command to allow sysadmins to manually reset authentication rate limits.
    • Fixed a bug that caused the upgrade-postgresql tool to incorrectly remove supervisord configuration for process-fts-updates.
    • Fixed a rare migration bug when upgrading from Zulip versions 2.1 and older.
    • Fixed a subtle bug where the left sidebar would show both old and new names for some topics that had been renamed.
    • Fixed incoming email gateway support for configurations with the http_only setting enabled.
    • Fixed issues where Zulip's outgoing webhook, with the Slack-compatible interface, had a different format from Slack's documented interface.
    • The installation and upgrade documentations now show the latest release's version number.
    • Backported many improvements to the ReadTheDocs documentation.
    • Updated translation data from Transifex.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-4.6.tar.gz(80.53 MB)
  • 2.1.8(Aug 12, 2021)

    Fixed possible 0257_fix_has_link_attribute.py database migration failure, which would cause errors during the upgrade process.

    Note: Although this is marked as a “pre-release” on GitHub to avoid displacing 4.5 as the latest release, this is really a full release from the 2.1.x branch. We recommend that most users install or upgrade to the latest release, but users who need to stay on the 2.1.x branch can upgrade to 2.1.8.

    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.8.tar.gz(69.28 MB)
  • 4.5(Jul 25, 2021)

  • 4.4(Jul 22, 2021)

    4.4 -- 2021-07-22

    • Added a tool to fix potential database corruption caused by host OS upgrades.
    • Fixed a possible denial-of-service attack in Markdown fenced code block parsing.
    • Smokescreen, if installed, now defaults to only listening on 127.0.0.1; this prevents it from being used as an open HTTP proxy if it did not have other firewalls protecting incoming port 4750.
    • Fixed a performance/scalability issue for installations using the S3 file uploads backend.
    • Fixed a bug where users could turn other users’ messages they could read into widgets (e.g. polls).
    • Fixed a bug where emoji and avatar image requests were sent through Camo; doing so does not add any security benefit, and broke custom emoji that had been imported from Slack in Zulip 1.8.1 or earlier.
    • Changed to log just a warning, instead of an exception, in the case that the embed_links worker cannot fetch previews for all links in a message within the 30-second timeout. Each preview request within a message already has a 15-second timeout.
    • Ensured psycopg2 is installed before starting process_fts_updates; otherwise, it might fail to start several times before the package was installed.
    • Worked around a bug in supervisor where, when using SysV init, /etc/init.d/supervisor restart would only have stopped, not restarted, the process.
    • Modified upgrade scripts to better handle failure, and suggest next steps and point to logs.
    • Zulip now hides the “show password” eye icon that IE and Edge browsers place in password inputs; this duplicated the already-present JavaScript-based functionality.
    • Fixed “OR” glitch on login page if SAML authentication is enabled but not configured.
    • The send_test_email management command now shows the full SMTP conversation on failure.
    • Provided a change_password management command which takes a --realm option.
    • Fixed upgrade-zulip-from-git crashing in CSS source map generation on 1-CPU systems.
    • Added an auto_signup field in SAML configuration to auto-create accounts upon first login attempt by users which are authenticated by SAML.
    • Provided better error messages when puppet_classes in zulip.conf are mistakenly space-separated instead of comma-separated.
    • Updated translations for many languages.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-4.4.tar.gz(80.43 MB)
  • 4.3(Jun 2, 2021)

    4.3 -- 2021-06-02

    • Fixed exception when upgrading older servers with the JITSI_SERVER_URL setting set to None to disable Jitsi.
    • Fixed GIPHY integration dropdown appearing when the server doesn't have a GIPHY API key configured.
    • The GIPHY API library is no longer loaded for users who are not actively using the GIPHY integration.
    • Improved formatting for Grafana integration.
    • Fixed previews of Dropbox image links.
    • Fixed support for storing avatars/emoji in non-S3 upload backends.
    • Fixed an overly strict database constaint for code playgrounds.
    • Tagged user status strings for translation.
    • Updated translation data from Transifex.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-4.3.tar.gz(80.40 MB)
  • 4.2(May 14, 2021)

  • 4.1(May 14, 2021)

  • 4.0(May 13, 2021)

    4.0 -- 2021-05-13

    Highlights

    • Code blocks now have a copy-to-clipboard button and can be integrated with external code playgrounds, making it convenient to work with code while discussing it in Zulip.
    • Added a new organization Moderator role. Many permissions settings for sensitive features now support only allowing moderators and above to use the feature.
    • Added a native Giphy integration for sending animated GIFs.
    • Added support for muting another user.
    • Recent topics is no longer beta, no longer an overlay, supports composing messages, and is now the default view. The previous default view, "All messages", is still available, and the default view can now be configured via "Display settings".
    • Completed API documentation for Zulip's real-time events system. It is now possible to write a decent Zulip client with minimal interaction with the Zulip server development team.
    • Added new organization settings: wildcard mention policy.
    • Integrated Smokescreen, an outgoing proxy designed to help protect against SSRF attacks; outgoing HTTP requests that can be triggered by end users are routed through this service. We recommend that self-hosted installations configure it.
    • This release contains more than 30 independent changes to the Zulip API, largely to support new features or make the API (and thus its documentation) clearer and easier for clients to implement. Other new API features support better error handling for the mobile and terminal apps.
    • The frontend internationalization library was switched from i18next to FormatJS.
    • The button for replying was redesigned to show the reply recipient and be more obvious to users coming from other chat apps.
    • Added support for moving topics to private streams, and for configuring which roles can move topics between streams.

    Upgrade notes for 4.0

    • Changed the Tornado service to use 127.0.0.1:9800 instead of 127.0.0.1:9993 as its default network address, to simplify support for multiple Tornado processes. Since Tornado only listens on localhost, this change should have no visible effect unless another service is using port 9800.
    • Zulip's top-level puppet classes have been renamed, largely from zulip::foo to zulip::profile::foo. Configuration referencing these /etc/zulip/zulip.conf will be automatically updated during the upgrade process, but if you have a complex deployment or you maintain zulip.conf is another system (E.g. with the manual configuration option for docker-zulip), you'll want to manually update the puppet_classes variable.
    • Zulip's supervisord configuration now lives in /etc/supervisor/conf.d/zulip/
    • Consider enabling Smokescreen
    • Private streams can no longer be default streams (i.e. the ones new users are automatically added to).
    • New scripts/start-server and scripts/stop-server mean that one no longer needs to use supervisorctl directly for these tasks.
    • As this is a major release, we recommend carefully updating the inline documentation in your /etc/zulip/settings.py. Notably, we rewrote the template to be better organized and more readable in this release.
    • The webapp will now display a warning in the UI if the Zulip server has not been upgraded in more than 18 months. template to be better organized and more readable.
    • The next time users log in to Zulip with their password after upgrading to this release, they will be logged out of all active browser sessions (i.e. the web and desktop apps). This is a side effect of improved security settings (increasing the minimum entropy used when salting passwords from 71 bits to 128 bits).
    • We've removed the partial Thumbor integration from Zulip. The Thumbor project appears to be dead upstream, and we no longer feel comfortable including it in Zulip from a security perspective. We hope to introduce a fully supported thumbnailing integration in our next major release.

    Full feature changelog

    • Added new release lifecycle documentation.
    • Added support for subscribing another stream's membership to a stream.
    • Added RealmAuditLog for most settings state changes in Zulip; this data will fascilitate future features showing a log of activity by a given user or changes to an organization's settings.
    • Added support for using Sentry for processing backend exceptions.
    • Added documentation for using wal-g for continuous PostgreSQL backups.
    • Added loading spinners for message editing widgets.
    • Added live update of compose placeholder text when recipients change.
    • Added keyboard navigation for popover menus that were missing it.
    • Added documentation for all zulip.conf settings.
    • Added dozens of new notification sound options.
    • Added menu option to unstar all messages in a topic.
    • Added confirmation dialog before unsubscribing from a private stream.
    • Added confirmation dialog before deleting your profile picture.
    • Added types for all parameters in the API documentation.
    • Added API endpoint to fetch user details by email address.
    • Added API endpoint to fetch presence details by user ID.
    • Added new LDAP configuration options for servers hosting multiple organizations.
    • Added new @**|user_id** mention syntax intended for use in bots.
    • Added preliminary support for Zulip on Debian Bullseye; this release is expected to support Bullseye without any further changes.
    • Added several useful new management commands, including change_realm_subdomain and delete_user.
    • Added support for subscribing all members of a user group to a stream.
    • Added support for sms: and tel: links.
    • Community topic editing time limit increased to 3 days for members.
    • New integrations: Freshping, JotForm, Uptime Robot, and a JSON formatter (which is particularly useful when developing a new integration).
    • Updated integrations: ClubHouse, NewRelic, Bitbucket, Zabbix.
    • Improved formatting of GitHub and GitLab integrations.
    • Improved the user experience for multi-user invitations.
    • Improved several rendered-message styling details.
    • Improved design of <time> widgets.
    • Improved format of nginx logs to include hostname and request time.
    • Redesigned the left sidebar menu icons (now \vdots, not a chevron).
    • The Zoom integration is now stable (no longer beta).
    • Favicon unread counts are more attractive and support large numbers.
    • Zulip now displays the total number of starred messages in the left sidebar by default; over 20% of users had enabled this setting manually.
    • Presence circles for users are now shown in mention typeahead.
    • Email notifications for new messages are now referred to as a "Message notification email", not a "Missed message email".
    • Zulip now sets List-Unsubscribe headers in outgoing emails with unsubscribe links.
    • Password forms now have a "Show password" widget.
    • Fixed performance issues when creating hundreds of new users in quick succession (E.g. at the start of a conference or event).
    • Fixed performance issues in organizations with thousands of online users.
    • Fixed numerous rare exceptions when running Zulip at scale.
    • Fixed several subtle installer bugs.
    • Fixed various UI and accessibility issues in the registration and new user invitation flows.
    • Fixed live update and UI bugs with streams being deactivated or renamed.
    • Fixed a subtle Firefox bug with Esc breaking keyboard accessibility.
    • Fixed name not being populated currently with Apple authentication.
    • Fixed several subtle bugs in the "Stream settings" UI.
    • Fixed error handling for incoming emails that fail to send.
    • Fixed a subtle bug with timestamps for messages that take a long time to send.
    • Fixed missing horizontal scrollbar for overflowing rendered LaTeX.
    • Fixed visual issues with bottoms areas of both sidebars.
    • Fixed several error handling bugs with outgoing webhooks.
    • Fixed bugs with recipient bar UI for muting and topic editing.
    • Fixed highlighting of adjacent alert words.
    • Fixed many settings API endpoints with unusual string encoding.
    • Fixed wildcard mentions in blockquotes not being treated as silent.
    • Increased size of typeahead box for mentions from 5 to 8.
    • Typeahead now always ranks exact string matches first.
    • Tooltips have been migrated from Bootstrap to TippyJS, and added in many places that previously just had title attributes.
    • Zulip now consistently uses the Source Code Pro font for code blocks, rather than varying by operating system.
    • Redesigned "Alert words" settings UI.
    • Linkifiers can now be edited in their settings page.
    • Tables in settings UI now have sticky headers.
    • Confirmation dialogs now consistently use Confirm/Cancel as button labels.
    • Refactored typeahead and emoji components to be shareable with the mobile codebase.
    • Switched to orjson for JSON serialization, resulting in better performance and more standards-compliant validation.
    • Outgoing webhooks now enforce a 10 second timeout.
    • Image previews in a Zulip message are now unconditionally proxied by Camo to improve privacy, rather than only when the URL was not HTTPS.
    • Replaced the old CasperJS frontend test suite with Puppeteer.
    • Split the previous api_super_user permission into can_create_user and can_forge_sender (used for mirroring).
    • Various API endpoints creating objects now return the ID of the created object.
    • Fixed screenreader accessibility of many components, including the compose box, message editing, popovers, and many more.
    • Fixed transparency issues uploading some animated GIFs as custom emoji.
    • Improved positioning logic for inline YouTube previews.
    • Improved performance of several high-throughput queue processors.
    • Improved performance of queries that fetch all active subscribers to a stream or set of streams.
    • Improved performance of sending messages to streams with thousands of subscribers.
    • Upgraded our ancient forked version of bootstrap, on a path towards removing the last forked dependencies from the codebase.
    • Upgraded Django to 3.1 (as well as essentially every other dependency).
    • Updated webapp codebase to use many modern ES6 patterns.
    • Upgraded Zulip's core font to Source Sans 3, which supports more languages.
    • Relabeled :smile: and :stuck_out_tongue: emoji to use better codepoints.
    • Reduced the size of Zulip's main JavaScript bundle by removing moment.js.
    • Server logs now display the version number for Zulip clients.
    • Simplified logic for responsive UI with different browser sizes.
    • Fixed several subtle bugs in the compose and message-edit UIs.
    • Reduced the steady-state load for an idle Zulip server.
    • Removed HipChat import tool, because HipChat has been long EOL.
    • Reformatted the Python codebase with Black, and the frontend codebase with Prettier.
    • Migrated testing from CircleCI to GitHub Actions.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-4.0.tar.gz(80.36 MB)
  • 4.0-rc1(May 4, 2021)

  • 3.4(Apr 14, 2021)

    • CVE-2021-30487: Prevent administrators from moving topics to disallowed streams.
    • CVE-2021-30479: Prevent guest user access to all_public_streams API.
    • CVE-2021-30478: Prevent API super users from forging messages to other organizations.
    • CVE-2021-30477: Prevent outgoing webhook bots from sending arbitrary messages to any stream.
    • Fixed a potential HTML injection bug in outgoing emails.
    • Fixed Postfix configuration error which would prevent outgoing email to any email address containing ., +, or starting with mm, when configured to use the local Postfix to deliver outgoing email.
    • Fixed a backporting error which caused the manage.py change_user_role tool to not work for admin, member, or guest roles.
    • Add support for logout events sent from modern versions of the desktop application.
    • Upgraded minor python dependencies.
    • Minor documentation fixes.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-3.4.tar.gz(73.94 MB)
  • 3.3(Dec 1, 2020)

    • Guest users should not be allowed to post to streams marked “Only organization full members can post.” This flaw has existed since the feature was added in Zulip Server 3.0.
    • Permit outgoing mail from postfix; this resolves a bug introduced in Zulip Server 3.2 which prevented Zulip from sending outgoing mail if the local mail server (used mostly for incoming mail) was also used for outgoing email (MAIL_HOST='localhost').
    • Ensure that the upgrade-postgres tool upgrades the cluster’s data to the specific PostgreSQL version requested; this resolves a bug where, now that PostgreSQL 13 has been released, upgrade-postgres would attempt to upgrade to that version and not PostgreSQL 12.
    • Replace the impenetrably-named ./manage.py knight with ./manage.py change_user_role, and extend it to support “Organization owner” roles.
    • Handle realm emojis that have been manually deleted more gracefully.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-3.3.tar.gz(73.93 MB)
  • 3.2(Sep 15, 2020)

    3.2 -- September 15, 2020

    • Switched from libmemcached to python-binary-memcached, a pure-Python implementation; this should eliminate memcached connection problems affecting some installations.
    • Removed unnecessary django-cookies-samesite dependency, which had its latest release removed from PyPI (breaking installation of Zulip 3.1).
    • Limited which local email addresses Postfix accepts when the incoming email integration is enabled; this prevents the enumeration of local users via the email system.
    • Fixed incorrectly case-sensitive email validation in REMOTE_USER authentication.
    • Fixed search results for has:image.
    • Fixed ability to adjust "Who can post on the stream" configuration.
    • Fixed display of "Permission [to post] will be granted in n days" for n > 365.
    • Support providing nginx_listen_port setting in conjunction with http_only in zulip.conf.
    • Improved upgrade documentation.
    • Removed internal ID lists which could leak into the events API.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-3.2.tar.gz(73.92 MB)
  • 3.1(Jul 30, 2020)

    3.1 -- July 30, 2020

    • Removed unused short_name field from the User model. This field had no purpose and could leak the local part of email addresses when email address visiblity was restricted.
    • Fixed a bug where loading spinners would sometimes not be displayed.
    • Fixed incoming email gateway exception with unstructured headers.
    • Fixed AlertWords not being included in data import/export.
    • Fixed Twitter previews not including a clear link to the tweet.
    • Fixed compose box incorrectly opening after uploading a file in a message edit widget.
    • Fixed exception in SAML integration with encrypted assertions.
    • Fixed an analytics migration bug that could cause upgrading from 2.x releases to fail.
    • Added a Thinkst Canary integration (and renamed the old one, which was actually an integration for canarytokens.org).
    • Reformatted the frontend codebase using prettier. This change was included in this maintenance release to ensure backporting patches from master remains easy.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-3.1.tar.gz(73.92 MB)
  • 3.0(Jul 16, 2020)

    3.0 -- July 16, 2020

    Highlights

    • Added support for Ubuntu 20.04 Focal. This release drops support for Ubuntu 16.04 Xenial and Debian 9 Stretch.
    • Redesigned the top navbar/search area to be much cleaner and show useful data like subscriber counts and stream descriptions in default views.
    • Added a new "Recent Topics" widget, which lets one browse recent and ongoing conversations at a glance. We expect this widget to replace "All messages" as the default view in Zulip in the next major release.
    • Redesigned "Notification settings" to have an intuitive table format and display any individual streams with non-default settings.
    • Added support for moving topics between streams. This was by far Zulip's most-requested feature.
    • Added automatic theme detection using prefers-color-scheme.
    • Added support for GitLab and Sign in with Apple authentication.
    • Added an organization setting controlling who can use private messages.
    • Added support for default stream groups, which allow organizations to offer options of sets of streams when new users sign up. Currently can only be managed via the Zulip API.
    • The Zulip server now sets badge counts for the iOS mobile app.
    • Quote-and-reply now generates a handy link to the quoted message.
    • Upgraded Django from 1.11.x to the latest LTS series, 2.2.x.
    • Added integrations for ErrBit, Grafana, Thinkst Canary, and AlertManager.
    • Extended API documentation to have detailed data on most responses, validated against the API's actual implementation and against all tests in our extensive automated test suite.
    • Added support for programmable message retention policies, both a global/default policy and policies for specific streams.
    • Added a new incoming webhook API that accepts messages in the format used by Slack's incoming webhooks API.
    • Introduced the Zulip API Feature Level, a concept that will greatly simplify the implementation of mobile, terminal, and desktop clients that need to talk to a wide range of supported Zulip server versions, as well as the Zulip API changelog.
    • Our primary official domain is now zulip.com, not zulipchat.com.

    Upgrade notes for 3.0

    • Logged in users will be logged out during this one-time upgrade to transition them to more secure session cookies.
    • This release contains dozens of database migrations, but we don't anticipate any of them being particularly expensive compared to those in past major releases.
    • Previous versions had a rare bug that made it possible to create two user accounts with the same email address, preventing either from logging in. A migration in this release adds a database constraint that will fix this bug. The new migration will fail if any such duplicate accounts already exist; you can check whether this will happen be running the following in a management shell:
      from django.db.models.functions import Lower
      UserProfile.objects.all().annotate(email_lower=Lower("delivery_email"))
          .values('realm_id', 'email_lower').annotate(Count('id')).filter(id__count__gte=2)
      

      If the command returns any accounts, you need to address the duplicate accounts before upgrading. Zulip Cloud only had two accounts affected by this bug, so we expect the vast majority of installations will have none.

    • This release switches Zulip to install Postgres 12 from the upstream postgres repository by default, rather than using the default Postgres version included with the operating system. Existing Zulip installations will continue to work with Postgres 10; this detail is configured in /etc/zulip/zulip.conf. We have no concrete plans to start requiring Postgres 12, though we do expect it to improve performance. Installations that would like to upgrade can follow [our new postgres upgrade guide][postgres upgrade].
    • The format of the JWT_AUTH_KEYS setting has changed to include an algorithms list: {"subdomain": "key"} becomes {"subdomain": {"key": "key", "algorithms": ["HS256"]}}.
    • Added a new Organization Owner permission above the previous Organization Administrator. All existing organization administrators are automatically converted into organization owners. Certain sensitive administrative settings are now only editable by Organization Owners.
    • The changelog now has a section that makes it easy to find the Upgrade notes for all releases one is upgrading across.

    Full feature changelog

    • Added new options in "Manage streams" to sort by stream activity or number of subscribers.
    • Added new options to control whether the incoming email integration prefers converting the plain text or HTML content of an email.
    • Added server support for creating an account from mobile/terminal apps.
    • The Zulip desktop apps now do social authentication (Google, GitHub, etc.) via an external browser.
    • Added support for BigBlueButton as video chat provider.
    • Added support for setting an organization-wide default language for code blocks.
    • Added an API endpoint for fetching a single user.
    • Added built-in rate limiting for password authentication attempts.
    • Added data export/import support for organization logo and icon.
    • Added documentation for several more API endpoints.
    • Added new email address visibility option hiding real email addresses from organization administrators in the Zulip UI.
    • Added new "Mention time" markdown feature to communicate about times in a timezone-aware fashion.
    • Added new "Spoiler" markdown feature to hide text until interaction.
    • Added a new API that allows the mobile/desktop/terminal apps to open uploaded files in an external browser that may not be logged in.
    • Added several database indexes that significantly improve performance of common queries.
    • Added an organization setting to disable the compose box video call feature.
    • Added a user setting to disable sharing one's presence information with other users.
    • Added support for IdP-initiated SSO in the SAML authentication backend.
    • Added new "messages sent over time" graph on /stats.
    • Added support for restricting SAML authentication to only some Zulip organizations.
    • Added List-Id header to outgoing emails for simpler client filtering.
    • Changed how avatar URLs are sent to clients to dramatically improve network performance in organizations with 10,000s of user accounts.
    • Redesigned all of our avatar/image upload widgets to have a cleaner, simpler interface.
    • Normal users can now see invitations they sent via organization settings.
    • Rewrote the Zoom video call integration.
    • Polished numerous subtle elements of Zulip's visual design.
    • Dramatically improved the scalability of Zulip's server-to-client push system, improving throughput by a factor of ~4.
    • Improved handling of GitHub accounts with several email addresses.
    • Improved "Manage streams" UI to clearly identify personal settings and use pills for adding new subscribers.
    • Improved Sentry, Taiga, GitHub, GitLab, Semaphore, and many other integrations.
    • Improved "Muted topics" UI to show when a topic was muted.
    • Improved the UI for "Drafts" and "Message edit history" widgets.
    • Improved left sidebar popovers to clearly identify administrative actions.
    • Rewrote substantial parts of the Zulip installer to be more robust.
    • Replaced the chevron menu indicators in sidebars with vertical ellipses.
    • Removed the right sidebar "Group PMs" widget. It's functionality is available in the left sidebar "Private messages" widget.
    • Removed the Google Hangouts integration, due to Google's support for it being discontinued.
    • Removed a limitation on editing topics of messages more than a week old.
    • The Gitter data import tool now supports importing multiple Gitter rooms into a single Zulip organization.
    • Missed-message emails and various onboarding content are now tagged for translation.
    • Redesigned the notice about large numbers of unread messages to be a banner (no longer a modal) and to use a better trigger.
    • Cleaned up dozens of irregularities in how the Zulip API formats data when returning it to clients.
    • Extended stream-level settings for who can post to a stream.
    • Extended GET /messages API to support a more intuitive way to request the first unread or latest message as the anchor.
    • Muted topics will now only appear behind "more topics".
    • Improved UI for picking which streams to invite new users to.
    • Improved UI for reviewing one's muted topics.
    • Improved UI for message edit history.
    • Fixed many minor issues with Zulip's markdown processors.
    • Fixed many subtle issues with the message editing UI.
    • Fixed several subtle issues with the default nginx configuration.
    • Fixed minor issues with various keyboard shortcuts.
    • Fixed UI bugs with Zulip's image lightbox.
    • Specifying latex or text as the language for a code block now does LaTeX syntax highlighting (math remains the recommended code block language to render LaTeX syntax into display math).
    • Fixed performance problems when adding subscribers in organizations with thousands of streams.
    • Fixed performance issues with typeahead and presence in organizations with 10,000s of total users.
    • Fixed guest users being added to the notifications stream unconditionally.
    • Fixed inconsistencies in the APIs for fetching users and streams.
    • Fixed several subtle bugs with local echo in rare race conditions.
    • Fixed a subtle race that could result in semi-duplicate emoji reactions.
    • Fixed subtle click-handler bugs with the mobile web UI.
    • Improved defaults to avoid OOM kills on low RAM servers when running expensive tools like webpack or Slack import.
    • Added loading indicators for scrolling downwards and fixed several subtle bugs with the message feed discovered as a result.
    • Added a migration to fix invalid analytics data resulting from a missing unique constraint (and then add the constraint).
    • Dramatically simplified the process for adding a new authentication backend.
    • Added webhook support for AnsibleTower 9.x.y.
    • Essentially rewrote our API documentation using the OpenAPI format, with extensive validation to ensure its accuracy as we modify the API.
    • Removed New User Bot and Feedback Bot. Messages they had sent are migrated to have been sent by Notification Bot.
    • Removed the "pointer" message ID from Zulip, a legacy concept dating to 2012 that predated tracking unread messages in Zulip and has largely resulted in unexpected behavior for the last few years.
    • Reduced visual size of emoji in message bodies for a cleaner look.
    • Replaced file upload frontend with one supporting chunked upload. We expect this to enable uploading much larger files using Zulip in future releases.
    • Improved error messages when trying to invite a user with an existing, deactivated, account.
    • Improved server logging format to refer to users with [email protected] rather than referencing email addresses.
    • Improved warnings when sending wildcard mentions to large streams.
    • Migrated the frontend codebase to use native ES6 data structures.
    • Migrated settings for notifications streams to our standard UX model.
    • Various security hardening changes suggested by the PySA static analyzer.
    • Modernized the codebase to use many Python 3.6 and ES6 patterns.
    • Integrated isort, a tool which ensures that our Python codebase has clean, sorted import statements.
    • Integrated PySA, a tool for detecting security bugs in Python codebases using the type-checker.
    • Integrated semgrep, and migrated several regular expression based linter rules to use its Python syntax-aware parser.
    • Added tooling to automatically generate all screenshots in integration docs.
    • Restructured the backend for Zulip's system administrator level settings system to be more maintainable.
    • This release largely completes the SCSS refactoring of the codebase.
    • Replaced our CasperJS frontend integration test system with Puppeteer.
    • Extracted the typeahead and markdown libraries for reuse in the mobile apps.
    • Removed the legacy websockets-based system for sending messages. This system was always a hack, was only ever used for one endpoint, and did not provide a measureable latency benefit over HTTP/2.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-3.0.tar.gz(73.92 MB)
  • 2.1.7(Jun 26, 2020)

  • 2.1.6(Jun 17, 2020)

  • 2.1.5(Jun 17, 2020)

    2.1.5 -- 2020-06-16

    • CVE-2020-12759: Fix reflected XSS vulnerability in Dropbox webhook.
    • CVE-2020-14194: Prevent reverse tabnapping via topic header links.
    • CVE-2020-14215: Fixed use of invitation role data from expired invitations on signup via external authentication methods.
    • CVE-2020-14215: Fixed buggy 0198_preregistrationuser_invited_as database migration from the 2.0.0-rc1 release, which incorrectly added the administrator role to invitations.
    • CVE-2020-14215: Added migration to clear the administrator role from any invitation objects already corrupted by the buggy version of the 0198_preregistrationuser_invited_as migration.
    • Fixed missing quoting of certain attributes in HTML templates.
    • Allow /etc/zulip to be a symlink (for docker-zulip).
    • Disabled access from insecure Zulip Desktop releases below version 5.2.0.
    • Adjusted Slack import documentation to help administrators avoid OOM kills when doing Slack import on low-RAM systems.
    • Fixed a race condition fetching users' personal API keys.
    • Fixed a few bugs with Slack data import.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.5.tar.gz(69.31 MB)
  • 2.1.4(Apr 16, 2020)

    • Fixed a regression in 2.1.3 that impacted creating the very first organization via our data import tools.
    • Remove the old tsearch_extras postgres extension, which was causing an exception restoring backups on fresh Zulip servers that had been generated on systems that had been upgraded from older Zulip releases.
    • Removed fetching GitHub contributor data from static asset build process. This makes upgrade-zulip-from-git much more reliable.
    • Updated translation data from Transifex.
    • Support for Ubuntu 16.04 Xenial and Debian 9 Stretch is now deprecated.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.4.tar.gz(69.31 MB)
  • 2.1.3(Apr 1, 2020)

    2.1.3 -- 2020-04-01

    • CVE-2020-9444: Prevent reverse tabnapping attacks.
    • CVE-2020-9445: Remove unused and insecure modal_link feature.
    • CVE-2020-10935: Fix XSS vulnerability in local link rewriting.
    • Blocked access from Zulip Desktop versions below 5.0.0. This
      behavior can be adjusted by editing DESKTOP_*_VERSION
      in /home/zulip/deployments/current/version.py.
    • Restructured server initialization to simplify initialization of
      Docker containers (eliminating common classes of user error).
    • Removed buggy feedback bot (ENABLE_FEEDBACK).
    • Migrated GitHub authentication to use the current encoding.
    • Fixed support for restoring a backup on a different minor release
      (in the common case they have the same database schema).
    • Fixed restoring backups with memcached authentication enabled.
    • Fixed preview content (preheaders) for many emails.
    • Fixed buggy text in missed-message emails with PM content disabled.
    • Fixed buggy loading spinner in "emoji format" widget.
    • Fixed sorting and filtering users in organization settings.
    • Fixed handling of links to deleted streams.
    • Fixed check-rabbitmq-consumers monitoring.
    • Fixed copy-to-clipboard button for outgoing webhook bots.
    • Fixed logging spam from soft_deactivation cron job.
    • Fixed email integration handling of emails with nested MIME structure.
    • Fixed unicode bugs in incoming email integration.
    • Fixed error handling for Slack data import.
    • Fixed incoming webhook support for AWX 9.x.y.
    • Fixed a couple missing translation tags.
    • Fixed "User groups" settings UI bug for administrators.
    • Fixed data import tool to reset resource limits after importing
      data from a free plan organization on zulipchat.com.
    • Changed the SAML default signature algorithm to SHA-256, overriding
      the SHA-1 default used by python3-saml.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.3.tar.gz(69.29 MB)
  • 2.1.2(Jan 16, 2020)

    2.1.2 -- 2020-01-16

    • Corrected fix for CVE-2019-19775 (the original fix was affected by an unfixed security bug in Python's urllib, CVE-2015-2104).
    • Migrated data for handling replies to missed-message emails from semi-persistent redis to the fully persistent database.
    • Added authentication for redis and memcached even in configurations where these are running on localhost, for add hardening against attacks from malicious processes running on the Zulip server.
    • Improved logging for misconfigurations of LDAP authentication.
    • Improved error handling for invalid LDAP configurations.
    • Improved error tracebacks for invalid memcached keys.
    • Fixed support for using LDAP with email address visibility limited to administrators.
    • Fixed styling of complex markup within /me messages.
    • Fixed left sidebar duplicating some group private message threads.
    • Fixed the "Mentions" narrow being unable to mark messages as read.
    • Fixed error handling bug preventing rerunning the installer.
    • Fixed a few minor issues with migrations for upgrading from 2.0.x.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.2.tar.gz(69.23 MB)
  • 2.1.1(Dec 14, 2019)

    2.1.1 -- 2019-12-13

    • Fixed upgrading to 2.1.x with the LDAP integration enabled in a configuration where AUTH_LDAP_REVERSE_EMAIL_SEARCH is newly required, but is not yet set.
    • Reimplemented --postgres-missing-dictionaries installer option, used with our new support for a DBaaS managed database.
    • Improved documentation for AUTH_LDAP_REVERSE_EMAIL_SEARCH.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.1.tar.gz(69.19 MB)
  • 2.1.0(Dec 13, 2019)

    2.1.0 -- 2019-12-12

    Highlights:

    • Added support for Debian buster. Removed support for EOL Ubuntu Trusty.
    • Added support for SAML authentication.
    • Removed our dependency on tsearch_extras, making it possible to run a production Zulip server against any postgres database (including those where one cannot install extensions, like Amazon RDS).
    • Significantly improved the email->Zulip gateway, and added nice setup documentation. It now should be possible to subscribe a Zulip stream to an email list and have a good experience.
    • Added an option for hiding access to user email addresses from other users. While counterproductive for most corporate communities, for open source projects and other volunteer organizations, this can be a critical anti-spam feature.
    • Added a new setting controlling which unread messages are counted in the favicon, title, and desktop app.
    • Support for showing inline previews of linked webpages has moved from alpha to beta. See the upgrade notes below for some changes in how it is configured.
    • Added support for importing an organization from Mattermost (similar to existing Slack/HipChat/Gitter import tools). Slack import now supports importing data only included in corporate exports, including private messages and shared channels.
    • Added markdown support and typeahead for mentioning topics.
    • Email notifications have been completely redesigned with a minimal, readable style inspired by GitHub's email notifications.
    • We merged significant preparatory work for supporting RHEL/CentOS in production. We're now interested in beta testers for this feature.
    • Reorganized Zulip's documentation for sysadmins, and added new documentation on maintaining a fork of Zulip.
    • Added new streams:public search operator that searches the public history of all streams in the organization (even before you joined).
    • Added support for sending email and mobile push notifications for wildcard mentions (@all and @everyone). Previously, they only triggered desktop notifications; now, that's configurable.

    Upgrade notes:

    • The defaults for Zulip's now beta inline URL preview setting have changed. Previously, the server-level INLINE_URL_EMBED_PREVIEW setting was disabled, and organization-level setting was enabled. Now, the server-level setting is enabled by default, and the organization-level setting is disabled. As a result, organization administrators can configure this feature entirely in the UI. However, servers that had previously enabled previews of linked websites will lose the setting and need to re-enable it.

    • We rewrote the Google Authentication backend to use the python-social-auth system we use for other third-party authentication systems. For this release, the old variable names still work, but users should update the following setting names in their configuration as we will desupport the old names in a future release:

      • In /etc/zulip/zulip-secrets.conf, google_oauth2_client_secret is now called with social_auth_google_secret.
      • In /etc/zulip/settings.py, GOOGLE_OAUTH2_CLIENT_ID should be replaced with SOCIAL_AUTH_GOOGLE_KEY.
      • In /etc/zulip/settings.py, GoogleMobileOauth2Backend should be replaced with called GoogleAuthBackend.
    • Installations using Zulip's LDAP integration without LDAP_APPEND_DOMAIN will need to configure two new settings telling Zulip how to look up a user in LDAP given their email address: AUTH_LDAP_REVERSE_EMAIL_SEARCH and AUTH_LDAP_USERNAME_ATTR. See the LDAP configuration instructions for details. You can use the usual manage.py query_ldap method to verify whether your configuration is working correctly.

    • The Zulip web and desktop apps have been converted to directly count all unread messages, replacing an old system that just counted the (recent) messages fully fetched by the webapp. This one-time transition may cause some users to notice old messages that were sent months or years ago "just became unread". What actually happened is the user never read these messages, and the Zulip webapp was not displaying that. Generally, the fix is for users to simply mark those messages as read as usual.

    • Previous versions of Zulip's installer would generate the secrets local_database_password and initial_password_salt. These secrets don't do anything, as they only modify behavior of a Zulip development environment. We recommend deleting those lines from /etc/zulip/zulip-secrets.conf when you upgrade to avoid confusion.

    • This release has a particularly expensive database migration, changing the UserMessage.id field from an int to a bigint to support more than 2 billion message deliveries on a Zulip server. It runs in 2 phases: A first migration that doesn't require the server to be down (which took about 4 hours to process the 250M rows on chat.zulip.org, and a second migration that does require downtime (which took about 60 seconds for chat.zulip.org). You can check the number of rows for your server with UserMessage.objects.count().

      We expect that most Zulip servers can happily just use the normal upgrade process with a few minutes of downtime. Zulip servers with over 1M messages may want to first upgrade to this commit using upgrade-zulip-from-git, following the instructions to avoid downtime, and then upgrade to the new release.

    Full feature changelog:

    • Added sortable columns to all tables in settings pages.
    • Added webapp support for self-service public data exports.
    • Added 'e' keyboard shortcut for editing currently selected message.
    • Added support for unstarring all starred messages.
    • Added support for using | as an OR operator in sidebar search features.
    • Added direct download links for Android APKs to our /apps page.
    • Added a responsive design for our /integrations/ pages.
    • Added typeahead for slash commands.
    • Added more expansive moderation settings for who can create streams, edit user groups, or invite other users to join streams.
    • Added new Bitbucket Server, Buildbot, Harbor, Gitea and Redmine integrations.
    • Added proper open graph tags for linking to a Zulip organization.
    • Added organization setting to disable users uploading new avatars (for use with LDAP synchronization).
    • Added support for completely disabling the file upload feature.
    • Added a new "external account" custom profile field type, making it convenient to link to profiles on GitHub, Twitter, and other tools.
    • Added support for choosing which email address to use in GitHub auth.
    • Added a new setting to control whether inactive streams are demoted.
    • Added webapp support for new desktop app features: inline reply from notifications, and detecting user presence from OS APIs.
    • Added markdown support for headings, implemented using # heading, and removed several other unnecessary differences from CommonMark.
    • Added local echo when editing messages for a more responsive experience.
    • Changes to global notification settings for stream messages now affect existing subscriptions where the user had not explicitly changed the notification settings, as expected.
    • The default setting value is now to send mobile push notifications if the user was recently online.
    • Fixed issues with positioning and marking messages as read when doing a search where some results are unread messages.
    • The private messages widget shows much deeper history of private message conversations in a scrollable widget (1K PMs of history).
    • When there are dozens of unread topics, topic lists in the left sidebar now show at most 8 topics, with the rest behind "more topics".
    • New users now see their most recent 20 messages as unread, to provide a better onboarding experience.
    • Redesigned the in-app "keyboard shortcuts" popover to be more usable.
    • Redesigned the interactions on several settings pages.
    • Significantly improved the visual spacing around bulleted lists, blockquotes, and code blocks in Zulip's message feed.
    • Extended buttons to visit links in topics to all URLs, not just URLs added by a linkifier.
    • Extended several integrations to cover more events and fix bugs, and rewrote formatting for dozens of integraitons for cleaner punctuation.
    • The beta "weekly digest emails" feature is again available as an organization-level configuration option, after several improvements.
    • The administrative UI for managing bots now nicely links to the bot's owner.
    • Restructured "private messages" widget to have a cleaner design.
    • Significantly improved performance of the backend markdown processor.
    • Significantly improved Help Center documentation of dozens of features.
    • Simplified and internationalized some notification bot messages.
    • The compose box placeholder now shows users active status.
    • Clicking the "EDITED" text on a message now pops message edit history.
    • Adjusted the default streams in new realms to be easier to understand for new users.
    • Improved default nginx TLS settings for stronger security.
    • Improved UI of administrative user management UI.
    • Improved error messages for various classes of invalid searches.
    • Improved styling of both markdown unordered and numbered lists.
    • Compose typeahead now autofills stream field if only subscribed to one stream.
    • Bot users can now post to announcement-only streams if their owners can (this preserves the pre-existing security model).
    • User full names now must use characters valid in an email from line.
    • Settings pages that normal users cannot modify are now hidden by default.
    • The has:link, has:attachment, and has:image search keywords have been redesigned to correctly handle corner cases like links in code blocks.
    • Replaced title attributes with nice tooltips in the message feed and buddy list.
    • Fixed incorrect caching settings for the Zulip API, which could result in browers appearing to display old content or remark messages unread.
    • Fixed a bug that prevented sending mobile push notifications when the user was recently online via the mobile app.
    • Fixed buggy handling of LaTeX in quote-and-reply.
    • Fixed buggy rendering of bulleted lists inside blockquotes.
    • Fixed several bugs with CORS in the nginx configuration.
    • Fixed error message for GitHub login attempts with a deactivated account.
    • Fixed email gateway issues with non-latin characters in stream names.
    • Fixed endless re-synchronization of LDAP user avatars (which could cause user-visible performance issues for desktop/web clients).
    • Fixed all known bugs with advanced LDAP data synchronization.
    • Fixed numbered list handling of blank lines between blocks.
    • Fixed performance issues that made users soft-deactivated for over a year unable to return to the app.
    • Fixed missing -X GET/POST parameters in API docs curl examples. The API documentation for curl examples is now automatically generated with automated tests for the examples to prevent future similar bugs.
    • Fixed multi-line /me messages only working for the sender.
    • Fixed password strength meter not updating on paste.
    • Fixed numerous errors and omissions in the API documentation. Added a test suite comparing the API documentation to the implementation.
    • Fixed copy/paste of blocks of messages in Firefox.
    • Fixed problems with exception reporting when memcached is down.
    • Fixed pinned streams being incorrectly displayed as inactive.
    • Fixed password reset page CSS for desktop app.
    • Fixed "more topics" appearing for new streams, where we can be confident we already have all the topics cached in the browser.
    • Fixed some subtle bugs with event queues and message editing.
    • Fixed real-time sync for reactions and message edits on a message sent to a private stream with shared history before the current user joined that stream.
    • Fixed several subtle real-time sync issues with "stream settings".
    • Fixed a few subtle markdown processor bugs involving emoji.
    • Fixed several issues where Linkifiers validation was overly restrictive.
    • Fixed several rare/minor UI consistency issues in the left sidebar.
    • Fixed issues involving saving a message edit before file upload completes.
    • Fixed issues with pasting images into the compose box from Safari.
    • Fixed email gateway bot being created with incorrectly cached permissions.
    • Fixed guest users seeing UI widgets they can't use.
    • Fixed several issues with click handlers incorrectly closing compose.
    • Fixed buggy behavior of /me messages not ending with a paragraph.
    • Fixed several major UI issues with the mobile webapp.
    • Fixed HTML styling when copy-pasting content out of Zulip's night theme.
    • Fixed obscure traceback with Virtualenv 16.0.0 unexpectedly installed.
    • Added a new visual tool for testing webhook integrations.
    • Rewrote the Google authentication backend to use python-social-auth, removing Zulip's original 2013-era SSO authentication backend.
    • The /server_settings API now advertises supported authentication methods alongside details on how to render login/registration buttons.
    • Rewrote HTML/CSS markup for various core components to be more easily modified.
    • Removed the legacy static asset pipeline; everything now uses webpack.
    • Renamed the system bot Zulip realm to "zulipinternal" (was "zulip").
    • Switched our scrollbars to use simplebar, fixing many subtle scrollbar-related bugs in the process.
    • Enabled webpack code splitting and deduplication.
    • Started migrating our frontend codebase to TypeScript.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.1.0.tar.gz(69.19 MB)
  • 2.0.8(Dec 13, 2019)

  • 2.1.0-rc1(Nov 22, 2019)

  • 2.0.7(Nov 21, 2019)

  • 2.0.6(Sep 23, 2019)

    2.0.6 -- 2019-09-23

    • Updated signing keys for the PGroonga repository for Debian Stretch.
    • Fixed creation of linkifiers with URLs containing &.
    • Fixed a subtle bug that could cause the message list to suddenly
      scroll up in certain rare race conditions.
    Source code(tar.gz)
    Source code(zip)
  • 2.0.5(Sep 23, 2019)

    2.0.5 -- 2019-09-11

    • CVE-2019-16215: Fix DoS vulnerability in Markdown LINK_RE.
    • CVE-2019-16216: Fix MIME type validation.
    • Fixed email gateway postfix configuration for Ubuntu Bionic.
    • Fixed support for hidden_by_limit messages in Slack import.
    • Fixed confusing output from the knight management command.
    Source code(tar.gz)
    Source code(zip)
    zulip-server-2.0.5.tar.gz(76.97 MB)
Owner
Zulip
Zulip open source project
Zulip
Easy-to-use and powerful offline translation tool

Introduction Virtaal is a graphical program for doing translation. It is meant to be easy to use and powerful at the same time. Although the initial f

Translate 260 Jan 6, 2022
GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

GlobaLeaks is free, open souce software enabling anyone to easily set up and maintain a secure whistleblowing platform. Continous Integration and Test

GlobaLeaks 906 Jan 20, 2022
Insular email distribution - mail server as Docker images

Mailu is a simple yet full-featured mail server as a set of Docker images. It is free software (both as in free beer and as in free speech), open to s

Mailu 3.2k Jan 14, 2022
A free & open modern, fast email client with user-friendly encryption and privacy features

Welcome to Mailpile! Introduction Mailpile (https://www.mailpile.is/) is a modern, fast web-mail client with user-friendly encryption and privacy feat

mailpile 8.5k Jan 15, 2022
ProPublica's collaborative tip-gathering framework. Import and manage CSV, Google Sheets and Screendoor data with ease.

Collaborate This is a web application for managing and building stories based on tips solicited from the public. This project is meant to be easy to s

ProPublica 81 Dec 28, 2021
Askbot is a Django/Python Q&A forum. **Contributors README**: https://github.com/ASKBOT/askbot-devel#how-to-contribute. Commercial hosting of Askbot and support are available at https://askbot.com

ATTENTION: master branch is experimental, please read below Askbot - a Django Q&A forum platform This is Askbot project - open source Q&A system, like

ASKBOT 1.5k Jan 23, 2022
A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.

django-wiki Django support The below table explains which Django versions are supported. Release Django Upgrade from 0.7.x 2.2, 3.0, 3.1 0.5 or 0.6 0.

django-wiki 1.5k Jan 14, 2022
WebApp Maker make web apps (Duh). It is open source and make with python and shell.

WebApp Maker make web apps (Duh). It is open source and make with python and shell. This app can take any website and turn it into an app. I highly recommend turning these few websites into webapps: - Krunker.io (Fps Game) - play.fancade.com (Minigame Arcade) - Your Own Website If You Have One Apart from that enjoy my app By 220735540 (a.k.a RP400)

null 2 Jan 9, 2022
An open source movie recommendation WebApp build by movie buffs and mathematicians that uses cosine similarity on the backend.

Movie Pundit Find your next flick by asking the (almost) all-knowing Movie Pundit Jump to Project Source » View Demo · Report Bug · Request Feature Ta

Kapil Pramod Deshmukh 7 Dec 15, 2021
A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other.

A TCP Chatroom built with python and TCP/IP sockets, consisting of a server and multiple clients which can connect with the server and chat with each other. It also provides an Admin role with features including kicking and baning of users.

null 2 Dec 19, 2021
A powerful bot to copy your google drive data to your team drive

⚛️ Clonebot - Heroku version ⚡ CloneBot is a telegram bot that allows you to copy folder/team drive to team drives. One of the main advantage of this

MsGsuite 142 Jan 12, 2022
A powerful discord bot for forming team.

Discord_SquadBot A powerful discord bot for forming team. Pre-requirement Python 3.7 and latest Discord.py module is required. Installation guideline

Jacky Yu 1 Jan 17, 2022
A Advanced Powerful, Smart And Intelligent Group Management Bot With New And Powerful Features

Vegeta Robot A Advanced Powerful, Smart And Intelligent Group Management Bot With New And Powerful Features ... Written with Pyrogram and Telethon...

⚡ CT_PRO ⚡ 16 Dec 22, 2021
Stevan KZ 1 Oct 27, 2021
Free and Open Source Channel/Group Voice chat music player for telegram ❤️ with button support Heroku Commands

ZeusMusic Requirements ?? FFmpeg NodeJS nodesource.com Python 3.7 or higher PyTgCalls MongoDB 2nd Telegram Account (needed for userbot) ?? Get SESSION

ZeusNetwork 4 Jan 3, 2022
Free and Open Source Group Voice chat music player for telegram ❤️ with button support youtube playback support

Free and Open Source Group Voice chat music player for telegram ❤️ with button support youtube playback support

Sehath Perera 1 Jan 8, 2022
Latest Open Source Code for Playing Music in Telegram Video Chat. Made with Pyrogram and Pytgcalls 💖

MusicPlayer_TG Latest Open Source Code for Playing Music in Telegram Video Chat. Made with Pyrogram and Pytgcalls ?? Requirements ?? FFmpeg NodeJS nod

Abhijith Sudhakaran 2 Jan 1, 2022
Jarvide - A powerful AI mixed with a powerful IDE.

Jarvide About Jarvide Welcome to Jarvide. A powerful AI mixed with a powerful ID

Caeden 17 Jan 19, 2022
📢 Video Chat Stream Telegram Bot. Can ⏳ Stream Live Videos, Radios, YouTube Videos & Telegram Video Files On Your Video Chat Of Channels & Groups !

Telegram Video Chat Bot (Beta) ?? Video Chat Stream Telegram Bot ?? Can Stream Live Videos, Radios, YouTube Videos & Telegram Video Files On Your Vide

brut✘⁶⁹ // ユスフ 10 Jan 10, 2022
PaddleRobotics is an open-source algorithm library for robots based on Paddle, including open-source parts such as human-robot interaction, complex motion control, environment perception, SLAM positioning, and navigation.

简体中文 | English PaddleRobotics paddleRobotics是基于paddle的机器人开源算法库集,包括人机交互、复杂运动控制、环境感知、slam定位导航等开源算法部分。 人机交互 主动多模交互技术TFVT-HRI 主动多模交互技术是通过视觉、语音、触摸传感器等输入机器人

null 135 Jan 14, 2022
This is a Innexia Chat Bot Open Source Code 🤬

⚡ Innexia ⚡ A Powerful, Smart And Simple Chat Bot ... Written with Python... Available on Telegram as @InnexiaChatBot ❤️ Support ⭐️ Thanks to everyone

Dark Cyber 5 Sep 19, 2021
Open-Source bot to play songs in your Telegram's Group Voice Chat. Powered by @Akki_ThePro

VcPlayer Telegram Voice-Chat Bot [PyTGCalls] ⇝ Requirements ⇜ Account requirements A Telegram account to use as the music bot, You cannot use regular

Akki ThePro 2 Dec 25, 2021
A Cobalt Strike Scanner that retrieves detected Team Server beacons into a JSON object

melting-cobalt ?? A tool to hunt/mine for Cobalt Strike beacons and "reduce" their beacon configuration for later indexing. Hunts can either be expans

Splunk GitHub 112 Jan 13, 2022
API & Webapp to answer questions about COVID-19. Using NLP (Question Answering) and trusted data sources.

This open source project serves two purposes. Collection and evaluation of a Question Answering dataset to improve existing QA/search methods - COVID-

deepset 309 Dec 17, 2021
A webapp for taking fast notes, designed for business, school, and collaboration with groups.

JOTS Journal of the Session A webapp for taking fast notes, designed for business, school, and collaboration with groups.

Zebadiah S. Taylor 1 Dec 7, 2021
Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially maintained by the Tuya Developer Team.

Tuya Home Assistant Integration Home Assistant custom integration for controlling Powered by Tuya (PBT) devices using Tuya Open API, officially mainta

Tuya 535 Jan 21, 2022
Rubik's cube assistant on Flask webapp

webcube Rubik's cube assistant on Flask webapp. This webapp accepts the six faces of your cube and gives you the voice instructions as a response. Req

Yash Indane 43 Nov 27, 2021