mirror of
https://github.com/zulip/zulip.git
synced 2025-10-24 16:43:57 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aeb6a5df7c | ||
|
|
94c35d8fb0 | ||
|
|
1d40b2291c | ||
|
|
d6a41b4fe3 | ||
|
|
5bf6f05f60 |
86
README.md
86
README.md
@@ -17,16 +17,19 @@ Once that's done, simply change to your zulip directory and run
|
||||
server inside a Vagrant guest.
|
||||
|
||||
Once that finishes, you can run the development server as follows:
|
||||
vagrant ssh -- -L9991:localhost:9991
|
||||
# Now inside the container
|
||||
cd /srv/zulip
|
||||
source /srv/zulip-venv/bin/activate
|
||||
./tools/run-dev.py --interface=''
|
||||
|
||||
```
|
||||
vagrant ssh -- -L9991:localhost:9991
|
||||
# Now inside the container
|
||||
cd /srv/zulip
|
||||
source /srv/zulip-venv/bin/activate
|
||||
./tools/run-dev.py --interface=''
|
||||
```
|
||||
|
||||
You can now visit <http://localhost:9991/> in your browser. To get
|
||||
shell access to the virtual machine running the server, use `vagrant ssh`.
|
||||
|
||||
(A small note on tools/run-dev.py: the --interface='' option will make
|
||||
(A small note on tools/run-dev.py: the `--interface=''` option will make
|
||||
the development server listen on all network interfaces. While this
|
||||
is correct for the Vagrant guest sitting behind a NAT, you probably
|
||||
don't want to use that option when using run-dev.py in other environments).
|
||||
@@ -51,32 +54,38 @@ Install the following non-Python dependencies:
|
||||
* tsearch-extras — better text search
|
||||
|
||||
On Debian or Ubuntu systems:
|
||||
sudo apt-get install libffi-dev memcached rabbitmq-server libldap2-dev redis-server postgresql-server-dev-all libmemcached-dev
|
||||
|
||||
# If on 12.04 or wheezy:
|
||||
sudo apt-get install postgresql-9.1
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.1-tsearch-extras_0.1.2_amd64.deb
|
||||
sudo dpkg -i postgresql-9.1-tsearch-extras_0.1.2_amd64.deb
|
||||
```
|
||||
sudo apt-get install libffi-dev memcached rabbitmq-server libldap2-dev redis-server postgresql-server-dev-all libmemcached-dev
|
||||
|
||||
# If on 14.04:
|
||||
sudo apt-get install postgresql-9.3
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.3-tsearch-extras_0.1.2_amd64.deb
|
||||
sudo dpkg -i postgresql-9.3-tsearch-extras_0.1.2_amd64.deb
|
||||
# If on 12.04 or wheezy:
|
||||
sudo apt-get install postgresql-9.1
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.1-tsearch-extras_0.1.2_amd64.deb
|
||||
sudo dpkg -i postgresql-9.1-tsearch-extras_0.1.2_amd64.deb
|
||||
|
||||
# If on 15.04 or jessie:
|
||||
sudo apt-get install postgresql-9.4
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.4-tsearch-extras_0.1_amd64.deb
|
||||
sudo dpkg -i postgresql-9.4-tsearch-extras_0.1_amd64.deb
|
||||
# If on 14.04:
|
||||
sudo apt-get install postgresql-9.3
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.3-tsearch-extras_0.1.2_amd64.deb
|
||||
sudo dpkg -i postgresql-9.3-tsearch-extras_0.1.2_amd64.deb
|
||||
|
||||
# Then, all versions:
|
||||
pip install -r requirements.txt
|
||||
./scripts/setup/configure-rabbitmq
|
||||
./tools/postgres-init-db
|
||||
./tools/do-destroy-rebuild-database
|
||||
./tools/emoji_dump/build_emoji
|
||||
# If on 15.04 or jessie:
|
||||
sudo apt-get install postgresql-9.4
|
||||
wget https://dl.dropboxusercontent.com/u/283158365/zuliposs/postgresql-9.4-tsearch-extras_0.1_amd64.deb
|
||||
sudo dpkg -i postgresql-9.4-tsearch-extras_0.1_amd64.deb
|
||||
|
||||
# Then, all versions:
|
||||
pip install -r requirements.txt
|
||||
./scripts/setup/configure-rabbitmq
|
||||
./tools/postgres-init-db
|
||||
./tools/do-destroy-rebuild-database
|
||||
./tools/emoji_dump/build_emoji
|
||||
```
|
||||
|
||||
To start the development server:
|
||||
./tools/run-dev.py
|
||||
|
||||
```
|
||||
./tools/run-dev.py
|
||||
```
|
||||
|
||||
… and hit http://localhost:9991/.
|
||||
|
||||
@@ -85,17 +94,26 @@ Running the test suite
|
||||
======================
|
||||
|
||||
One-time setup of test databases:
|
||||
./tools/postgres-init-test-db
|
||||
./tools/do-destroy-rebuild-test-database
|
||||
|
||||
```
|
||||
./tools/postgres-init-test-db
|
||||
./tools/do-destroy-rebuild-test-database
|
||||
```
|
||||
|
||||
Run all tests:
|
||||
./tools/test-all
|
||||
|
||||
```
|
||||
./tools/test-all
|
||||
```
|
||||
|
||||
This runs the linter plus all of our test suites; they can all be run
|
||||
separately (just read `tools/test-all` to see them). You can also run
|
||||
individual tests, e.g.:
|
||||
./tools/test-backend zerver.test_bugdown.BugdownTest.test_inline_youtube
|
||||
./tools/test-js-with-casper 10-navigation.js
|
||||
|
||||
```
|
||||
./tools/test-backend zerver.test_bugdown.BugdownTest.test_inline_youtube
|
||||
./tools/test-js-with-casper 10-navigation.js
|
||||
```
|
||||
|
||||
Possible issues
|
||||
===============
|
||||
@@ -105,10 +123,14 @@ to some performance-sensitive races). Until this issue is debugged,
|
||||
you may need to rerun them to get them to pass.
|
||||
|
||||
When running the test suite, if you get an error like this:
|
||||
|
||||
```
|
||||
sqlalchemy.exc.ProgrammingError: (ProgrammingError) function ts_match_locs_array(unknown, text, tsquery) does not exist
|
||||
LINE 2: ...ECT message_id, flags, subject, rendered_content, ts_match_l...
|
||||
^
|
||||
… then you need to install tsearch-extras, described above. Afterwards, re-run the init*-db and the do-destroy-rebuild*-database scripts.
|
||||
```
|
||||
|
||||
… then you need to install tsearch-extras, described above. Afterwards, re-run the `init*-db` and the `do-destroy-rebuild*-database` scripts.
|
||||
|
||||
Contributing to Zulip
|
||||
=====================
|
||||
|
||||
1
docs/requirements.readthedocs.txt
Normal file
1
docs/requirements.readthedocs.txt
Normal file
@@ -0,0 +1 @@
|
||||
# Empty requirements.txt to avoid readthedocs installing all our dependencies.
|
||||
@@ -18,7 +18,7 @@ cp -a /root/zulip/puppet/zulip/files/puppet.conf /etc/puppet/
|
||||
# Hack to get required python-django-guardian while the PPA build of django-guardian isn't working :(
|
||||
apt-get -y install python-django
|
||||
wget https://zulip.com/dist/packages/python-django-guardian_1.3-1~zulip4_all.deb
|
||||
dpkg -i /root/python-django-guardian_1.3-1~zulip4_all.deb
|
||||
dpkg -i ./python-django-guardian_1.3-1~zulip4_all.deb
|
||||
|
||||
mkdir -p /etc/zulip
|
||||
echo -e "[machine]\npuppet_classes = zulip::voyager\ndeploy_type = voyager" > /etc/zulip/zulip.conf
|
||||
|
||||
BIN
static/images/logo/zballoon.png
Normal file
BIN
static/images/logo/zballoon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
@@ -261,6 +261,11 @@ input.text-error {
|
||||
padding: 6px 0px 6px 0px;
|
||||
}
|
||||
|
||||
.header-main .portico-simple-logo {
|
||||
height: 40px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.app {
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
@@ -697,12 +702,50 @@ a.bottom-signup-button {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.main-headline-container {
|
||||
.main-headline-container,
|
||||
.os-headline-container {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
padding-top: 40px !important;
|
||||
}
|
||||
|
||||
.os-headline-container {
|
||||
padding: 20px;
|
||||
background: #1e5799;
|
||||
background: linear-gradient(to bottom, #1e5799 0%,#2989d8 52%,#7db9e8 100%);
|
||||
padding-bottom: 40px !important;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.os-tagline,
|
||||
.os-footnote {
|
||||
color: #eeeeee !important;
|
||||
}
|
||||
|
||||
.os-footnote a:link,
|
||||
.os-footnote a:visited,
|
||||
.os-footnote a:active {
|
||||
color: #eeeeee;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #dddddd;
|
||||
}
|
||||
|
||||
.os-footnote a:hover {
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
border-bottom: 1px solid #ffffff;
|
||||
}
|
||||
|
||||
.os-illustration {
|
||||
height: 200px;
|
||||
width: auto;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.portico-os-announcement {
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.main-headline-logo {
|
||||
display: block;
|
||||
width: 200px;
|
||||
@@ -759,7 +802,7 @@ a.bottom-signup-button {
|
||||
.hello-main {
|
||||
max-width: none;
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.footer-padder {
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
{% extends "zerver/portico.html" %}
|
||||
{% block hello_page_container %} hello-main{% endblock %}
|
||||
{% block hello_page_footer %} hello-footer{% endblock %}
|
||||
{% block os_announcement %}
|
||||
{% if zulip_com %}
|
||||
<div class="os-headline-container">
|
||||
<img src="/static/images/logo/zballoon.png" class="os-illustration" alt="Zulip balloon" />
|
||||
<div class="main-headline-text">
|
||||
<span class="tagline os-tagline">
|
||||
Zulip has been released as open source software!
|
||||
</span>
|
||||
<span class="footnote os-footnote">
|
||||
Read the <a href="https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a-dropbox-hack-week-project" target="_blank">announcement</a> or go to <a href="https://www.zulip.org" target="_blank">the Zulip open source project website</a>.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block portico_content %}
|
||||
<div class="app main-headline">
|
||||
<div class="app-main main-headline-container">
|
||||
|
||||
@@ -2,6 +2,22 @@
|
||||
|
||||
{# API information page #}
|
||||
|
||||
{% block os_announcement %}
|
||||
{% if zulip_com %}
|
||||
<div class="os-headline-container">
|
||||
<img src="/static/images/logo/zballoon.png" class="os-illustration" alt="Zulip balloon" />
|
||||
<div class="main-headline-text">
|
||||
<span class="tagline os-tagline">
|
||||
Zulip has been released as open source software!
|
||||
</span>
|
||||
<span class="footnote os-footnote">
|
||||
Read the <a href="https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a-dropbox-hack-week-project" target="_blank">announcement</a> or go to <a href="https://www.zulip.org" target="_blank">the Zulip open source project website</a>.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block portico_content %}
|
||||
|
||||
<div class="portico-page-header"><a href="#"><i class="icon-vector-gears portico-page-header-icon"></i>Integrations</a></div>
|
||||
|
||||
@@ -9,6 +9,22 @@
|
||||
{% minified_js 'signup' %}
|
||||
{% endblock %}
|
||||
|
||||
{% block os_announcement %}
|
||||
{% if zulip_com %}
|
||||
<div class="os-headline-container">
|
||||
<img src="/static/images/logo/zballoon.png" class="os-illustration" alt="Zulip balloon" />
|
||||
<div class="main-headline-text">
|
||||
<span class="tagline os-tagline">
|
||||
Zulip has been released as open source software!
|
||||
</span>
|
||||
<span class="footnote os-footnote">
|
||||
Read the <a href="https://blogs.dropbox.com/tech/2015/09/open-sourcing-zulip-a-dropbox-hack-week-project" target="_blank">announcement</a> or go to <a href="https://www.zulip.org" target="_blank">the Zulip open source project website</a>.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block portico_content %}
|
||||
|
||||
{% if password_auth_enabled %}
|
||||
|
||||
@@ -21,7 +21,7 @@ hence the name.
|
||||
{% if zulip_com %}
|
||||
<a class="brand logo" href="/"><img src="/static/images/logo/zulip-dropbox.png" class="portico-logo" alt="Zulip" content="Zulip" /></a>
|
||||
{% else %}
|
||||
<a class="brand logo" href="/"><img src="/static/images/logo/zulipwlogo@2x.png" class="portico-logo" alt="Zulip" content="Zulip" /></a>
|
||||
<a class="brand logo" href="/"><img src="/static/images/logo/zulipcornerlogo@2x.png" class="portico-simple-logo" alt="Zulip" content="Zulip" /></a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
@@ -41,6 +41,10 @@ hence the name.
|
||||
</div>
|
||||
|
||||
<div class="app portico-page">
|
||||
<div class="portico-os-announcement">
|
||||
{% block os_announcement %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
<div class="app-main portico-page-container{% block hello_page_container %}{% endblock %}">
|
||||
{% block portico_content %}
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user