Git Product home page Git Product logo

zulip / zulip Goto Github PK

View Code? Open in Web Editor NEW
20.1K 380.0 7.4K 434.24 MB

Zulip server and web application. Open-source team chat that helps teams stay productive and focused.

Home Page: https://zulip.com

License: Apache License 2.0

Python 61.67% Shell 0.73% Ruby 0.02% Puppet 0.65% HTML 4.49% Perl 0.05% JavaScript 16.18% CSS 3.86% Emacs Lisp 0.01% TypeScript 9.80% Dockerfile 0.02% Handlebars 2.55%
zulip python python3 chat javascript collaboration slack foss free apache

zulip's Introduction

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: black code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.

zulip's People

Contributors

adnrs96 avatar aero31aero avatar alexmv avatar alya avatar amanagr avatar andersk avatar drrosa avatar eeshangarg avatar evykassirer avatar gnprice avatar hackerkid avatar harshitongithub avatar jesstess avatar karlstolley avatar laurynmm avatar lfaraone avatar lfranchi avatar mateuszmandera avatar pig208 avatar rht avatar rishig avatar sahil839 avatar sharmaeklavya2 avatar showell avatar synicalsyntax avatar timabbott avatar umairwaheed avatar wdaher avatar yjdave avatar zbenjamin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zulip's Issues

Trouble starting VM

So, I get clone of this repo (revision 0d12dfd) and started VM by vargant up.
But not all processes inside VM are finished correctly and here the last lines of long log.

==> default: [email protected] /usr/lib/node_modules/cssstyle
==> default: ��������� [email protected]
==> default: /bin/sh: 0:
==> default: Illegal option -
==> default: /bin/sh: 0:
==> default: Illegal option -
==> default: /usr/bin/env:
==> default: python
==> default: : No such file or directory
==> default: /bin/sh: 0:
==> default: Illegal option -
==> default: Traceback (most recent call last):
==> default:   File "/srv/zulip/provision.py", line 169, in <module>
==> default:
==> default: sys.exit(main())
==> default:   File "/srv/zulip/provision.py", line 162, in main
==> default:
==> default: sh.configure_rabbitmq(**LOUD)
==> default:   File "/usr/lib/python2.7/dist-packages/pbs.py", line 424, in __call__
==> default:
==> default: return RunningCommand(command_ran, process, call_args, actual_stdin)
==> default:   File "/usr/lib/python2.7/dist-packages/pbs.py", line 137, in __init__
==> default:
==> default: if rc != 0: raise get_rc_exc(rc)(self.command_ran, self._stdout, self._stderr)
==> default: pbs
==> default: .
==> default: ErrorReturnCode_2
==> default: :
==> default:
==> default:
==> default: Ran: '/srv/zulip/scripts/setup/configure-rabbitmq'
==> default:
==> default: STDOUT:
==> default:
==> default:   <redirected>
==> default:
==> default: STDERR:
==> default:
==> default:   <redirected>
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

And the several similar errors in the middle.

local_settings_template.py should not have `EMAIL_GATEWAY_PASSWORD` variable

I followed installation from guide on the main site of the project. After installing server I couldn't create account, because I hadn't got confirmation emails. I use smtp.gmail.com. In the logs the servers response was:

[530-5.5.1 Authentication Required. Learn more at 530 5.5.1 http://mail.google.com/support/bin/answer.py?answer=14257 ffa3y7ap9sgytsh1] 

After small research I did one small dirty hack: I placed my login and password from smtp in the confimations/models.py:

Before https://github.com/zulip/zulip/blob/master/confirmation/models.py#L95:

        send_mail(subject, body, settings.DEFAULT_FROM_EMAIL, [email_address])

After:

        send_mail(subject, body, settings.DEFAULT_FROM_EMAIL, [email_address],
                auth_user='user_name', auth_password='password')

After my fix sending via smtp.gmail.com works fine.

Offtopic. I had to turn option Allow less secure apps in my google-account to be able to send emails. Maybe this information will be useful to someone:

Integrate with travis CI so the tests run nice and automatic

./tools/test-all will run all the tests and takes just a few minutes to run; the tricky part will be getting all the Zulip dependencies running in the Travis CI environment. http://docs.travis-ci.com/user/installing-dependencies/ suggests they only support Ubuntu 12.04; so it'll take a bit of work to get the packages available there. If someone's interested in working on this I can provide some info and hackishly built packages for precise we could use for this.

"New messages" indicators

For @ mentions a number is shown on stream, but it gives no indication that there are other unread messages on a stream. Is there a way to get that?

Puppet tries to connect to remote server

There are some issues with how you are using Puppet.

The /etc/puppet/puppet.conf you are dropping on the system contains:

[main]
server = puppet.zulip.com

As Ubuntu automatically starts the puppet agent after the package is installed (via your install script) all servers will try to connect to puppet.zulip.com.
Thankfully that server does not exist but it is a serious security risk.
If someone were to setup a server at that address he could control all servers which installed via that install script.

Also, it is nowhere mentioned that you shouldn't run the installer on a system which is already running Puppet.
The installer will overwrite your /etc/puppet/puppet.conf and break your setup.

In my opinion you shouldn't replace the puppet.conf at all.
As far as I can tell you are using puppet apply ... and you should be able to specify all options directly there.

Please provide GitLab integration

Zulip looks awesome, and it's great that it's joining the leagues of FOSS software, but it kind of sucks that there's no super-slick GitLab integration. Lots of projects and companies use GitLab, and GitLab continues to be full of win. So now, it'd be awesome if Zulip worked well with it.

Create Zulip installation process for Ubuntu precise

This should be relatively doable since we used to support it as recently as a couple weeks ago.

The main challenges here if we want to use the scripts/setup/install process are:
(1) Need to put the backported dependency packages (e.g. Django 1.8) into a PPA or otherwise make them available
(2) There are a couple differences in what configuration works between the two, e.g. the redis.conf options are not compatible, so we'll need to make
(3) Some testing and new conditionals around the debian/ubuntu version (at the very least we need to not hardcode trusty in the sources.list.d config).

On fresh trusty server, installation fails because there's no /usr/bin/python

+ /root/zulip/scripts/zulip-puppet-apply -f
./scripts/lib/install: /root/zulip/scripts/zulip-puppet-apply: /usr/bin/python: bad interpreter: No such file or directory

Here's a Dockerfile to reproduce:

FROM ubuntu:trusty

ENV DEBIAN_FRONTEND noninteractive
# Bump when you want to re-run apt-get upgrade
ENV LAST_UPDATE 2

RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install wget

ENV ZULIP_VERSION "1.3.4"

RUN wget https://www.zulip.com/dist/releases/zulip-server-$ZULIP_VERSION.tar.gz
RUN tar -xvf zulip-server-$ZULIP_VERSION.tar.gz
RUN rm zulip-server-$ZULIP_VERSION.tar.gz
RUN mv zulip-server-$ZULIP_VERSION /root/zulip

WORKDIR /root/zulip
RUN ./scripts/setup/install

Organization for users

I'm having trouble figuring out how to register a user. It seems to want me to be from a specific organization, but it's never explained in the setup what that is.

How do I enable registration for me (gmail email), and others (not-gmail emails)?

Error installing python-django-gaurdian

When running ./scripts/setup/install:

+ dpkg -i ./python-django-guardian_1.3-1~zulip4_all.deb
Selecting previously unselected package python-django-guardian.
(Reading database ... 22158 files and directories currently installed.)
Preparing to unpack .../python-django-guardian_1.3-1~zulip4_all.deb ...
Unpacking python-django-guardian (1.3-1~zulip4) ...
dpkg: dependency problems prevent configuration of python-django-guardian:
 python-django-guardian depends on python-six; however:
  Package python-six is not installed.

dpkg: error processing package python-django-guardian (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 python-django-guardian

this was on a totally vanilla ubuntu trusty; all that had happened was install wget, wget the zulip tarball, and execute the install script.

Installation script breaks other sites

I was running owncloud using nginx on the same server I installed zulip and it broke the own could installation. For example, nginx main configuration is overridden to use "zulip" user rather than the default "www-data" user.

Please make sure that installation doesn't override any other configuration files. Unless these issues are addressed, it'd be wise to put a warning on the README file and the installation guide indicating the list of files that's going to change.

Ideally, there should be an uninstallation script as well.

Better describe Zulip in README.md

Can you add a description and a link to the website? I used google to find out. But I would have profited from the descripion and the link.

Attempting to create Dockerfile, running into issues

FROM ubuntu:14.04
MAINTAINER Steven Smith <[email protected]>
RUN apt-get update && apt-get install -y git python-pbs wget
RUN git clone https://github.com/zulip/zulip /srv/zulip
WORKDIR /srv/zulip
RUN python provision.py
EXPOSE 9991

This installs all dependencies, but services (e.g rabbitmq) don't appear to start, so later parts of provision.py (i.e sh.configure_rabbitmq(**LOUD)) fail. Also emoji generation seems to be failing too, due to a missing dependency. I'm burned out from working on this, if anyone else can offer a suggestion it would be appreciated.

Google authentication backend not working

2015-09-25 21:35:34,092 ERROR    Internal Server Error: /register/
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/zulip/deployments/2015-09-26-01-18-40/zerver/views/__init__.py", line 855, in accounts_home
context_instance=RequestContext(request))
  File "/usr/lib/python2.7/dist-packages/django/shortcuts.py", line 45, in render_to_response
using=using)
  File "/usr/lib/python2.7/dist-packages/django/template/loader.py", line 116, in render_to_string
template_name, context, context_instance, dirs, dictionary)
  File "/usr/lib/python2.7/dist-packages/django/template/engine.py", line 221, in render_to_string
return t.render(context_instance)
  File "/usr/lib/python2.7/dist-packages/django/template/base.py", line 208, in render
with context.bind_template(self):
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
  File "/usr/lib/python2.7/dist-packages/django/template/context.py", line 241, in bind_template
updates.update(processor(self.request))
  File "/home/zulip/deployments/2015-09-26-01-18-40/zerver/context_processors.py", line 24, in add_settings
'password_auth_enabled':     password_auth_enabled(realm),
  File "/home/zulip/deployments/2015-09-26-01-18-40/zproject/backends.py", line 22, in password_auth_enabled
for backend in django.contrib.auth.get_backends():
  File "/usr/lib/python2.7/dist-packages/django/contrib/auth/__init__.py", line 38, in get_backends
return _get_backends(return_tuples=False)
  File "/usr/lib/python2.7/dist-packages/django/contrib/auth/__init__.py", line 27, in _get_backends
backend = load_backend(backend_path)
  File "/usr/lib/python2.7/dist-packages/django/contrib/auth/__init__.py", line 21, in load_backend
return import_string(path)()
  File "/usr/lib/python2.7/dist-packages/django/utils/module_loading.py", line 33, in import_string
six.reraise(ImportError, ImportError(msg), sys.exc_info()[2])
  File "/usr/lib/python2.7/dist-packages/django/utils/module_loading.py", line 29, in import_string
return getattr(module, class_name)
ImportError: Module "zproject.backends" does not define a "GoogleBackend" attribute/class

if I set the backend by uncommenting the GoogleBackend in settings.py

Better support for running services (pq, redis, rabbitmq) in a separate environment

The current zulip installation, Install anything in the host. What if I want to use external Rabbitmq, redis, memcache or postgresql. If just there is an option to disable this.

I want to create a container for this (Docker) to run it on the CoreOS, but this is a huge container, and I think, its a good idea to break it to multile linked container.

Application doesn't work because of AMQP issue

I just wondered around in the application. And it started to say that couldn't connect to the server. At the time cpu usage jump up to 100%. The reloading of the page give only 500 error page. Error log ful of meesages of this kind:

2015-09-26 13:06:47,982 ERROR    Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 85, in wrapper
    return func(request, *args, **kwargs)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 474, in _wrapped_view_func
    return view_func(request, *args, **kwargs)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 301, in _wrapped_view_func
    return authenticate_log_and_execute_json(request, view_func, *args, **kwargs)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 288, in authenticate_log_and_execute_json
    process_client(request, user_profile, True)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 134, in process_client
    update_user_activity(request, user_profile)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/decorator.py", line 69, in update_user_activity
    queue_json_publish("user_activity", event, lambda event: None)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/queue.py", line 259, in queue_json_publish
    get_queue_client().json_publish(queue_name, event)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/queue.py", line 240, in get_queue_client
    queue_client = SimpleQueueClient()
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/queue.py", line 25, in __init__
    self._connect()
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/queue.py", line 29, in _connect
    self.connection = pika.BlockingConnection(self._get_parameters())
  File "/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 107, in __init__
    super(BlockingConnection, self).__init__(parameters, None, False)
  File "/usr/lib/python2.7/dist-packages/pika/adapters/base_connection.py", line 62, in __init__
    on_close_callback)
  File "/usr/lib/python2.7/dist-packages/pika/connection.py", line 590, in __init__
    self.connect()
  File "/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 206, in connect
    if not self._adapter_connect():
  File "/usr/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 275, in _adapter_connect
    raise exceptions.AMQPConnectionError(1)
AMQPConnectionError: 1

The application runs on the clean Ubuntu 14.04 on VM with 2Gb and 2 cpu cores. For installation I followed instructions from here https://zulip.org/server.html

ps output:

root@ubuntu:/var/log/zulip# ps aux | sort -rk 3,3 | head -n 20
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
zulip     2109  9.7  4.9 225748 50168 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue user_activity
zulip     2119  9.2  4.7 221452 47972 ?        S    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue message_sender 2
zulip     2095  9.2  5.0 226124 50792 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue slow_queries
zulip     2088  9.2  5.0 226128 50796 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue message_sender 1
zulip     2144  9.1  4.2 192272 42892 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue invites
zulip     2269  9.0  0.9  44264 10088 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py deliver_email
zulip     2224  9.0  2.2 136548 23308 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue feedback_messages
zulip     2148  9.0  4.1 191760 42564 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue missedmessage_mobile_notifications
zulip     2121  8.6  4.5 220012 46476 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue digest_emails
zulip     2263  8.0  1.0  44264 10176 ?        S    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue error_reports
zulip     2257  8.0  1.0  44264 10180 ?        S    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue user_activity_interval
zulip     2190  8.0  3.1 166184 32168 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py runtornado localhost:9993
zulip     2213  7.8  2.6 149264 27232 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue signups
zulip     2248  7.3  1.5 125404 16160 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue message_sender 0
zulip     2305  7.0  1.2 118128 12544 ?        R    23:23   0:00 python /home/zulip/deployments/current/bin/log-management-command /home/zulip/deployments/current/manage.py process_queue user_activity_interval
zulip     2252  7.0  1.4 122092 14776 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue email_mirror
zulip     2240  6.7  2.0 134140 20768 ?        R    23:23   0:00 python /home/zulip/deployments/current/manage.py process_queue missedmessage_emails
root        97 19.5  0.0      0     0 ?        S    20:05  38:45 [kswapd0]
paralle+ 32502  1.6  2.1 335860 21952 ?        Sl   23:21   0:02 /usr/bin/python3 /usr/share/oneconf/oneconf-service

Some options trouble

The command vargant up is failed (as I wrote here), so I'm trying to start services manually.

So apt-get | dpkg section completted successfully.

And the problems are raises with next commands.

(zulip-venv)vagrant@vagrant-ubuntu-trusty-64:/srv/zulip$ ./scripts/setup/configure-rabbitmq
/bin/sh: 0: Illegal option -
(zulip-venv)vagrant@vagrant-ubuntu-trusty-64:/srv/zulip$ ./tools/postgres-init-db
: invalid option
(zulip-venv)vagrant@vagrant-ubuntu-trusty-64:/srv/zulip$ ./tools/do-destroy-rebuild-database
/bin/sh: 0: Illegal option -
(zulip-venv)vagrant@vagrant-ubuntu-trusty-64:/srv/zulip$ ./tools/emoji_dump/build_emoji
/bin/sh: 0: Illegal option -

And because of previous fail that command not working too of course.

(zulip-venv)vagrant@vagrant-ubuntu-trusty-64:/srv/zulip$ ./tools/run-dev.py
: No such file or directory

Optimizing the server installation process

The current server installation instructions are more finicky than they need to be in a few ways:

(1) We tell you to generate an SSL certificate but don't provide a good explanation for how

(2) We don't provide copyable code that does the unpacking properly and it's a bit finicky (e.g. having to rename a directory).

(3) We don't use "sha1sum -c" for checking the hash so you kinda need to do it yourself which is annoying.

It'd be great if someone could fix these in README.prod.md and then I can port over to the zulip.org website...

Improve memory footprint of queue workers

Since it seems there's a good amount of interest in running Zulip in smaller environments, it's worth doing a bit of optimization on the Zulip memory footprint. I think this will also be pretty valuable for running the Zulip development environment on a laptop.

I think probably the simplest version of this implementation would be a way to run all the queue workers in a single process that just watches all the queues; that should be great for development and smaller servers, and easy to make work (no need to even make it multithreaded).

Part 2 would be to make that multithreaded.

RabbitMQ startup process hangs when using Docker

  • I tried to dockerize this puppy and got some py errors, python is not my strong suit ?
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/dist-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 393, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/lib/python2.7/dist-packages/django/core/management/base.py", line 444, in execute
    output = self.handle(*args, **options)
  File "/home/zulip/deployments/2015-09-26-00-25-59/zerver/management/commands/initialize_voyager_db.py", line 39, in handle
    Realm.objects.create(domain="zulip.com")
  File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 348, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 710, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 738, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 822, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 861, in _do_insert
    using=using, raw=raw)
  File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 127, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 922, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 986, in execute_sql
    cursor.execute(sql, params)
  File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 97, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/lib/python2.7/dist-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/home/zulip/deployments/2015-09-26-00-25-59/zerver/lib/db.py", line 23, in execute
    return wrapper_execute(self, super(TimeTrackingCursor, self).execute, query, vars)
  File "/home/zulip/deployments/2015-09-26-00-25-59/zerver/lib/db.py", line 11, in wrapper_execute
    return action(sql, params)
django.db.utils.IntegrityError: duplicate key value violates unique constraint "zerver_realm_domain_key"
DETAIL:  Key (domain)=(zulip.com) already exists.

install fails at trying to setup rabbitmq users

+ sudo rabbitmqctl delete_user zulip
Deleting user "zulip" ...
Error: unable to connect to node rabbit@e611e15f9c9d: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@e611e15f9c9d]

hosts, their running nodes and ports:
- e611e15f9c9d: [{rabbitmqctl7195,42064}]

current node details:
- node name: rabbitmqctl7195@e611e15f9c9d
- home dir: /var/lib/rabbitmq
- cookie hash: xCFdbNsgD1SPwNlmRbq/ZA==

+ true
+ sudo rabbitmqctl delete_user guest
Deleting user "guest" ...
Error: unable to connect to node rabbit@e611e15f9c9d: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@e611e15f9c9d]

hosts, their running nodes and ports:
- e611e15f9c9d: [{rabbitmqctl7240,40403}]

current node details:
- node name: rabbitmqctl7240@e611e15f9c9d
- home dir: /var/lib/rabbitmq
- cookie hash: xCFdbNsgD1SPwNlmRbq/ZA==

+ true
+ sudo rabbitmqctl add_user zulip 58cfc28bf881b28310986a8a5d1306c2fab8af5aff63562df93456b5cce3b0b7
Creating user "zulip" ...
Error: unable to connect to node rabbit@e611e15f9c9d: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@e611e15f9c9d]

hosts, their running nodes and ports:
- e611e15f9c9d: [{rabbitmqctl7286,53989}]

current node details:
- node name: rabbitmqctl7286@e611e15f9c9d
- home dir: /var/lib/rabbitmq
- cookie hash: xCFdbNsgD1SPwNlmRbq/ZA==

This occurs with the following Dockerfile:

FROM ubuntu:trusty

ENV DEBIAN_FRONTEND noninteractive
# Bump when you want to re-run apt-get upgrade
ENV LAST_UPDATE 2

RUN apt-get update
RUN apt-get -y upgrade
RUN apt-get -y install wget

ENV ZULIP_VERSION "1.3.5"

RUN wget https://www.zulip.com/dist/releases/zulip-server-$ZULIP_VERSION.tar.gz
RUN tar -xvf zulip-server-$ZULIP_VERSION.tar.gz
RUN rm zulip-server-$ZULIP_VERSION.tar.gz
RUN mv zulip-server-$ZULIP_VERSION /root/zulip

WORKDIR /root/zulip
RUN ./scripts/setup/install

The messaging between several users don't work

When I try to send a message to other user he don't recieve it. In the error-log I've got:

2015-09-26 10:33:29,381 ERROR    WebSocket
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/sockjs/tornado/transports/websocket.py", line 59, in on_message
    self.session.on_messages(msg)
  File "/usr/lib/python2.7/dist-packages/sockjs/tornado/session.py", line 420, in on_messages
    self.conn.on_message(msg)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/socket.py", line 167, in on_message
    self.authenticate_client(msg)
  File "/home/zulip/deployments/2015-09-26-19-22-05/zerver/lib/socket.py", line 139, in authenticate_client
    status = redis_client.hgetall(req_redis_key(inquiry))
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 1228, in hgetall
    return self.execute_command('HGETALL', name)
  File "/usr/lib/python2.7/dist-packages/redis/client.py", line 364, in execute_command
    connection.send_command(*args)
  File "/usr/lib/python2.7/dist-packages/redis/connection.py", line 301, in send_command
    self.send_packed_command(self.pack_command(*args))
  File "/usr/lib/python2.7/dist-packages/redis/connection.py", line 283, in send_packed_command
    self.connect()
  File "/usr/lib/python2.7/dist-packages/redis/connection.py", line 231, in connect
    raise ConnectionError(self._error_message(e))
ConnectionError: Error 111 connecting 127.0.0.1:6379. Connection refused.

I installed server on the virtual machine (Ubuntu 14.04) I followed instructions from here https://zulip.org/server.html. Also I created self-signed ssl-certificate for ip-address of my vm.

Test virtualbox for potentially much better IO performance in dev environment

It'd be great if someone could test a newer version of virtualbox for the Mac development instructions, and see if it works well. Empirically, it appears that virtualbox 4.3 on Mac feels a lot slower than what I'm used it (e.g. it takes 6.6s to run tools/lint-all, in comparison to 2.2s for my 2012 era Linux laptop and even faster for a newer laptop running under LXC).

Should delay asking for notification permission until after the tutorial

Right now the first thing you see when launching Zulip in Firefox is two modal popups stacked on top of each other, one from Firefox asking for permission to show you notifications, and one from Zulip teaching you how to use it. And sometimes if you dismiss the notification popup and start clicking through the tutorial, the notification popup comes back to interrupt your interruption yet again. We should make sure we only show one of these things at a time.

Relatedly, the tutorial ought to be skippable.

notifications-and-tutorial

Fix occasional tracebacks in Google oauth

I'm seeing a lot of tracebacks like these on zulip.com:

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, _callback_args, *_callback_kwargs)
File "/home/zulip/deployments/2015-09-25-22-35-44/zerver/views/init.py", line 695, in finish_google_oauth2
raise Exception('Could not convert google pauth2 code to access_token\r%r' % resp.text)
Exception: Could not convert google pauth2 code to access_token
u'{\n "error": "invalid_grant",\n "error_description": "Code was already redeemed."\n}\n'

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, _callback_args, *_callback_kwargs)
File "/home/zulip/deployments/2015-09-25-22-35-44/zerver/views/init.py", line 695, in finish_google_oauth2
raise Exception('Could not convert google pauth2 code to access_token\r%r' % resp.text)
Exception: Could not convert google pauth2 code to access_token
u'{\n "error": "invalid_grant",\n "error_description": "Bad Request"\n}\n'

Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
response = wrapped_callback(request, _callback_args, *_callback_kwargs)
File "/home/zulip/deployments/2015-09-25-22-35-44/zerver/views/init.py", line 695, in finish_google_oauth2
raise Exception('Could not convert google pauth2 code to access_token\r%r' % resp.text)
Exception: Could not convert google pauth2 code to access_token
u'{\n "error": "invalid_grant",\n "error_description": "Invalid code."\n}\n'

Even if these are user error, they shouldn't be throwing exceptions. Any ideas what's going on?

Use a stable Django release

Looks like Zulip's currently installing a random (non-release) commit of a personal fork of Django:

git+https://github.com/rwbarton/django.git@59f1fc4c7b65d23fceffd5c87e2b6ea350030c56

Does anyone know if there are obstacles to using a release version? Looks like this is from the 1.7alpha period, not sure whether pre- or post-migrations landing. If it's after migrations, maybe 1.7.x would just work?

User registration (email/password) does not work

When i try to register a user acount i get an internal error "500: Internal server error."

i configured the email server in the settings.py and the user password for the smtp connection in the zulip-secrets.conf (email_host_password = #password#)
email clients are working with hat config...

please give me some advice to get it work, thanks

settings.py:

# Enable at least one of the following authentication backends.
AUTHENTICATION_BACKENDS = (
                           'zproject.backends.EmailAuthBackend', # Email and password
#                           'zproject.backends.ZulipRemoteUserBackend', # Local SSO
#                           'zproject.backends.GoogleMobileOauth2Backend', # Google Apps, setup below
    )
# Configure the outgoing SMTP server below. For outgoing email
# via a GMail SMTP server, EMAIL_USE_TLS must be True and the
# outgoing port must be 587. The EMAIL_HOST is prepopulated
# for GMail servers, change it for other hosts, or leave it unset
# or empty to skip sending email.
#
# A common problem you may encounter when trying to get this working
# is many hosting providers block outgoing SMTP traffic.
EMAIL_HOST = 'bsmtp.server.at'
EMAIL_HOST_USER = '[email protected]'
# If you're using password auth, you will need to put the password in
# /etc/zulip/zulip-secrets.conf as email_host_password.
EMAIL_PORT = 587
EMAIL_USE_TLS = True

the error in the error.log:

2015-09-28 10:51:08,762 ERROR    Internal Server Error: /register/
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/zulip/deployments/2015-09-28-16-19-20/zerver/views/__init__.py", line 843, in accounts_home
    send_registration_completion_email(email, request)
  File "/home/zulip/deployments/2015-09-28-16-19-20/zerver/views/__init__.py", line 829, in send_registration_completion_email
    additional_context=context)
  File "/home/zulip/deployments/2015-09-28-16-19-20/confirmation/models.py", line 95, in send_confirmation
    send_mail(subject, body, settings.DEFAULT_FROM_EMAIL, [email_address])
  File "/usr/lib/python2.7/dist-packages/django/core/mail/__init__.py", line 62, in send_mail
    return mail.send()
  File "/usr/lib/python2.7/dist-packages/django/core/mail/message.py", line 303, in send
    return self.get_connection(fail_silently).send_messages([self])
  File "/usr/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 100, in send_messages
    new_conn_created = self.open()
  File "/usr/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 58, in open
    self.connection = connection_class(self.host, self.port, **connection_params)
  File "/usr/lib/python2.7/smtplib.py", line 256, in __init__
    (code, msg) = self.connect(host, port)
  File "/usr/lib/python2.7/smtplib.py", line 316, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/usr/lib/python2.7/smtplib.py", line 291, in _get_socket
    return socket.create_connection((host, port), timeout)
  File "/usr/lib/python2.7/socket.py", line 553, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno -2] Name or service not known

Add gocd integration

Gocd is an continous delivery system. It is similiar to systems like jenkins and teamcity.

It'll be good to have gocd integration.

Document pagerduty integration

Zulip actually has a pagerduty integration with a bunch of tests, but it's not documented in templates/zerver/integrations.

Email and oauth2 registration doesn't work

I've followed the setup instructions to the point and tired 3 different email-addresses.
These errors occur on the Ubuntu 14.04.

These are the errors I've been able to find in the log file:

Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/zulip/deployments/2015-09-28-12-30-58/zerver/views/__init__.py", line 703, in finish_google_oauth2 raise Exception('Google login failed making API call\r%r' % resp.text) Exception: Google login failed making API call^Mu'{\n "error": {\n "errors": [\n {\n "domain": "usageLimits",\n "reason": "accessNotConfigured",\n "message": "Access Not Configured. The API (Google+ API) is not enabled for your project. Please use the Google Developers Console to update your configuration.",\n "extendedHelp": "https://cons ole.developers.google.com"\n }\n ],\n "code": 403,\n "message": "Access Not Configured. The API (Google+ API) is not enabled for your project. Please use the Google Developers Console to update your configuration."\n }\n}\n'

2015-09-28 07:58:40,096 ERROR Internal Server Error: /register/ Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 132, in get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/zulip/deployments/2015-09-28-12-30-58/zerver/views/__init__.py", line 843, in accounts_home send_registration_completion_email(email, request) File "/home/zulip/deployments/2015-09-28-12-30-58/zerver/views/__init__.py", line 829, in send_registration_completion_email additional_context=context) File "/home/zulip/deployments/2015-09-28-12-30-58/confirmation/models.py", line 95, in send_confirmation send_mail(subject, body, settings.DEFAULT_FROM_EMAIL, [email_address]) File "/usr/lib/python2.7/dist-packages/django/core/mail/__init__.py", line 62, in send_mail return mail.send() File "/usr/lib/python2.7/dist-packages/django/core/mail/message.py", line 303, in send return self.get_connection(fail_silently).send_messages([self]) File "/usr/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 100, in send_messages new_conn_created = self.open() File "/usr/lib/python2.7/dist-packages/django/core/mail/backends/smtp.py", line 58, in open self.connection = connection_class(self.host, self.port, **connection_params) File "/usr/lib/python2.7/smtplib.py", line 256, in __init__ (code, msg) = self.connect(host, port) File "/usr/lib/python2.7/smtplib.py", line 317, in connect (code, msg) = self.getreply() File "/usr/lib/python2.7/smtplib.py", line 368, in getreply raise SMTPServerDisconnected("Connection unexpectedly closed") SMTPServerDisconnected: Connection unexpectedly closed 2015-09-28 07:58:40,106 INFO 83.183.210.173 POST 500 156.6s (db: 7ms/5q) /register/ (unauth via ?) 2015-09-28 07:58:40,120 INFO SimpleQueueClient connected (connecting took 0.014s)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.