portico: Add a self-hosting page.

Co-authored-by: Aman Agrawal <amanagr@zulip.com>
This commit is contained in:
Alya Abbott 2021-10-15 16:12:43 -07:00 committed by Tim Abbott
parent eb3ae7c3d9
commit e93320c40d
24 changed files with 599 additions and 63 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

View File

@ -4197,6 +4197,13 @@ nav {
} }
} }
.feature-icon {
img,
div.quote {
width: 100px;
}
}
.topics-image { .topics-image {
border: solid 2px hsl(0, 0%, 60%); border: solid 2px hsl(0, 0%, 60%);
} }
@ -4420,7 +4427,7 @@ nav {
} }
} }
.for-education.pricing-model { .solutions-page .pricing-model {
.padded-content { .padded-content {
padding-bottom: 10px; padding-bottom: 10px;
} }
@ -4429,52 +4436,57 @@ nav {
display: flex; display: flex;
flex-flow: row wrap; flex-flow: row wrap;
justify-content: center; justify-content: center;
}
.pricing-details { .price-box {
color: inherit; margin: 10px;
font-style: inherit; }
} }
.price-box { .for-education.pricing-model {
margin: 10px; .pricing-details {
height: 625px; color: inherit;
font-style: inherit;
}
.bottom { .price-box {
height: 275px; height: 625px;
.standard-register-button { .bottom {
margin-top: 10px; height: 275px;
.standard-register-button {
margin-top: 10px;
}
.free-text {
margin-top: 90px;
.pricing-details {
font-size: 34px;
} }
.free-text { a {
margin-top: 90px; margin-top: 76px;
}
}
.pricing-details { .standard-price-box {
font-size: 34px; flex-flow: row wrap;
} height: 90px;
font-size: 15px;
a { &:first-child {
margin-top: 76px; padding-bottom: 10px;
}
} }
.standard-price-box { p {
flex-flow: row wrap; padding: 0;
height: 90px; margin: 0 0 -10px;
font-size: 15px; width: 100%;
text-align: center;
&:first-child { font-weight: 550;
padding-bottom: 10px; color: hsl(169, 46%, 33%);
}
p {
padding: 0;
margin: 0 0 -10px;
width: 100%;
text-align: center;
font-weight: 550;
color: hsl(169, 46%, 33%);
}
} }
} }
} }
@ -4598,3 +4610,159 @@ nav {
} }
} }
} }
.self-hosting-page {
p {
font-size: 18px !important;
}
.hero-buttons {
margin-top: 30px;
}
.alternative-features {
.feature-container {
padding: 30px;
&:nth-child(even) {
background: hsl(171, 49%, 39%, 0.21);
border-radius: 10px;
}
}
.feature-icon img {
width: 100%;
}
}
.triangle {
position: absolute;
top: 0;
left: 0;
width: 0;
height: 0;
border-style: solid;
border-width: 150px 100vw 0 0;
border-color: hsl(0, 0%, 100%) transparent transparent transparent;
}
.quote {
position: relative;
margin: 0;
margin-top: 50px;
padding: 50px;
padding-top: 200px;
border-radius: 0;
background: linear-gradient(
145deg,
hsl(191, 56%, 55%),
hsl(169, 65%, 42%)
);
blockquote {
max-width: 700px;
margin: auto;
font-size: 24px;
.author {
font-size: 18px;
}
}
}
.feature-grid {
display: flex;
flex-direction: column;
width: 100%;
margin: 0;
background: hsl(171, 49%, 39%, 0.21);
padding: 50px 0;
.feature-row {
display: flex;
flex-direction: row;
max-width: 1000px;
margin: auto;
align-items: center;
justify-content: center;
gap: 20px;
.feature-box {
display: flex;
justify-content: flex-start;
align-items: flex-start;
flex-direction: column;
width: 40vw;
height: 350px;
box-shadow: 0 1px 1px 0 hsla(193, 100%, 7.1%, 0.3),
1px 1px 1px 0 hsla(193, 100%, 7.1%, 0.15),
-1px 1px 1px 0 hsla(193, 100%, 7.1%, 0.15);
background: hsl(0, 0%, 100%);
text-align: left;
margin: 10px 0;
padding: 50px 30px 0;
border-top: 5px solid hsl(171, 49%, 39%);
@media (width < 1000px) {
height: 400px;
}
h1 {
font-weight: 550;
font-size: clamp(24px, 2.5vw, 32px);
}
.feature-icon {
align-self: center;
img {
max-width: 100px;
}
}
}
@media (width < 768px) {
flex-direction: column;
.feature-box {
width: 75vw !important;
height: calc(600px - 35vw);
}
}
}
}
.for-education.pricing-model .pricing-container .price-box {
height: 525px;
.bottom {
height: 150px;
}
}
.feature-end {
margin: 0;
.feature-pricing {
padding: 50px;
background: linear-gradient(
180deg,
hsl(191, 56%, 55%),
hsl(169, 65%, 42%)
);
@media (width <= 540px) {
padding: 50px 0;
.price-box {
padding-bottom: 50px;
}
}
h1 {
color: hsl(0, 0%, 100%);
}
}
}
}

View File

@ -113,7 +113,7 @@ topic to a different stream](/help/move-content-to-another-stream).
Zulip. Zulip.
- [#production help](https://chat.zulip.org/#narrow/stream/31-production-help) is - [#production help](https://chat.zulip.org/#narrow/stream/31-production-help) is
for all questions related to [self-hosting for all questions related to [self-hosting
Zulip](https://zulip.readthedocs.io/en/latest/production/install.html). Zulip](/self-hosting/).
- [#zulip - [#zulip
cloud](https://chat.zulip.org/#narrow/stream/387-zulip-cloud) is for cloud](https://chat.zulip.org/#narrow/stream/387-zulip-cloud) is for
all conversations about the [Zulip Cloud](https://zulip.com/plans/) all conversations about the [Zulip Cloud](https://zulip.com/plans/)

View File

@ -6,6 +6,7 @@
<li><a href="/why-zulip/">{{ _("Why Zulip") }}</a></li> <li><a href="/why-zulip/">{{ _("Why Zulip") }}</a></li>
<li><a href="/features/">{{ _("Features") }}</a></li> <li><a href="/features/">{{ _("Features") }}</a></li>
<li><a href="/plans/">{{ _("Plans &amp; pricing") }}</a></li> <li><a href="/plans/">{{ _("Plans &amp; pricing") }}</a></li>
<li><a href="/self-hosting/">{{ _("Self-hosting") }}</a></li>
<li><a href="/apps/">{{ _("Desktop &amp; mobile apps") }}</a></li> <li><a href="/apps/">{{ _("Desktop &amp; mobile apps") }}</a></li>
<li><a href="/security/">{{ _("Security") }}</a></li> <li><a href="/security/">{{ _("Security") }}</a></li>
<li><a href="/integrations/">{{ _("Integrations") }}</a></li> <li><a href="/integrations/">{{ _("Integrations") }}</a></li>

View File

@ -28,7 +28,7 @@
<a href="/plans/" class="button"> <a href="/plans/" class="button">
{{ _('View pricing') }} {{ _('View pricing') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -33,7 +33,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>
@ -63,7 +63,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -35,7 +35,7 @@
<a href="#feature-pricing" class="button"> <a href="#feature-pricing" class="button">
{{ _('Education pricing') }} {{ _('Education pricing') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -34,7 +34,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>
@ -280,7 +280,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -40,7 +40,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>
@ -699,7 +699,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -39,7 +39,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>
@ -387,7 +387,7 @@
<a href="/accounts/go/?next=/upgrade%23sponsorship" class="button"> <a href="/accounts/go/?next=/upgrade%23sponsorship" class="button">
{{ _('Request sponsorship') }} {{ _('Request sponsorship') }}
</a> </a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button"> <a href="/self-hosting/" class="button">
{{ _('Self-host Zulip') }} {{ _('Self-host Zulip') }}
</a> </a>
</div> </div>

View File

@ -371,7 +371,7 @@
and <a href="https://github.com/matrix-org/synapse/graphs/contributors">matrix.org</a>. and <a href="https://github.com/matrix-org/synapse/graphs/contributors">matrix.org</a>.
</p> </p>
<p> <p>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">Install Zulip {{ latest_release_version }}</a> Learn about <a href="/self-hosting/">self-hosting Zulip</a>
or <a href="{{ latest_release_announcement }}">read the Zulip {{ latest_major_version }} release announcement</a>. or <a href="{{ latest_release_announcement }}">read the Zulip {{ latest_major_version }} release announcement</a>.
</p> </p>
</div> </div>

View File

@ -20,14 +20,13 @@ us know!
## Choosing between Zulip Cloud and self-hosting ## Choosing between Zulip Cloud and self-hosting
Whether [signing up for Zulip Cloud](/new/) or [self-hosting Whether [signing up for Zulip Cloud](/new/) or [self-hosting
Zulip][install-self-hosted] is the right choice for you depends on the Zulip](/self-hosting/) is the right choice for you depends on the
needs of your organization. needs of your organization.
If you arent sure what you need, our high quality export and import If you arent sure what you need, our high quality export and import
tools ([cloud][export-cloud], [self-hosted][export-self-hosted]) tools ([cloud][export-cloud], [self-hosted][export-self-hosted])
ensure you can always move from our hosting to yours (and back). ensure you can always move from our hosting to yours (and back).
[install-self-hosted]: https://zulip.readthedocs.io/en/stable/production/install.html
[export-cloud]: /help/export-your-organization [export-cloud]: /help/export-your-organization
[export-self-hosted]: https://zulip.readthedocs.io/en/latest/production/export-and-import.html [export-self-hosted]: https://zulip.readthedocs.io/en/latest/production/export-and-import.html

View File

@ -1,10 +1,24 @@
* Zulip is [100% open-source software](https://github.com/zulip), with no "open core" catch. * Zulip is [100% open-source software][zulip-github], with no "open core" catch.
* We work hard to make it easy to [set up][install-zulip], When you self-host Zulip, you get the same software as [Zulip Cloud
[back up][back-up-zulip], and [maintain][maintain-zulip] a self-hosted Standard](/plans/) customers.
Zulip installation.
* Retain full control over your data.
* Customize Zulip for all your needs.
* Retain full control over your data and simplify compliance by self-hosting
Zulip behind your firewall.
* We work hard to make it easy to [install][install-zulip], [back
up][back-up-zulip], and [maintain][maintain-zulip] a self-hosted
Zulip server. Self host Zulip directly on Ubuntu or Debian Linux, in
<a href="https://github.com/zulip/docker-zulip">Docker</a>, or with
prebuilt images for <a
href="https://marketplace.digitalocean.com/apps/zulip">Digital
Ocean</a> and <a
href="https://render.com/docs/deploy-zulip">Render</a>.
* Customize Zulip for all your needs. It's easy to develop and maintain [custom
integrations](/api/incoming-webhooks-overview) and [features][modify-zulip].
[zulip-github]: https://github.com/zulip/zulip#readme
[install-zulip]: https://zulip.readthedocs.io/en/latest/production/install.html [install-zulip]: https://zulip.readthedocs.io/en/latest/production/install.html
[back-up-zulip]: https://zulip.readthedocs.io/en/stable/production/export-and-import.html#backups [back-up-zulip]: https://zulip.readthedocs.io/en/stable/production/export-and-import.html#backups
[maintain-zulip]: https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html [maintain-zulip]: https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html
[modify-zulip]: https://zulip.readthedocs.io/en/latest/production/upgrade-or-modify.html#modifying-zulip

View File

@ -6,6 +6,7 @@
* [Zulip Cloud or self-hosting?](/help/zulip-cloud-or-self-hosting) * [Zulip Cloud or self-hosting?](/help/zulip-cloud-or-self-hosting)
* [Trying out Zulip](/help/trying-out-zulip) * [Trying out Zulip](/help/trying-out-zulip)
* [Self-hosting Zulip](/self-hosting)
* [Installing a Zulip server](https://zulip.readthedocs.io/en/stable/production/install.html) * [Installing a Zulip server](https://zulip.readthedocs.io/en/stable/production/install.html)
* [Setting up your organization](/help/getting-your-organization-started-with-zulip) * [Setting up your organization](/help/getting-your-organization-started-with-zulip)
* [Getting started with Zulip](/help/getting-started-with-zulip) * [Getting started with Zulip](/help/getting-started-with-zulip)

View File

@ -19,7 +19,7 @@ ensure you can always move from our hosting to yours (and back).
## Related resources ## Related resources
* [Sign up for Zulip Cloud](/new/) * [Sign up for Zulip Cloud](/new/)
* [Installing a Zulip server](https://zulip.readthedocs.io/en/stable/production/install.html) * [Self-hosting Zulip](/self-hosting/)
* [Trying out Zulip](/help/trying-out-zulip) * [Trying out Zulip](/help/trying-out-zulip)
* [Setting up your organization](/help/getting-your-organization-started-with-zulip) * [Setting up your organization](/help/getting-your-organization-started-with-zulip)
* [Migrating from other chat tools](/help/migrating-from-other-chat-tools) * [Migrating from other chat tools](/help/migrating-from-other-chat-tools)

View File

@ -28,6 +28,9 @@
<li> <li>
<a href="/features/">Features</a> <a href="/features/">Features</a>
</li> </li>
<li>
<a href="/self-hosting/">Self-hosting</a>
</li>
<li> <li>
<a href="/security/">Security</a> <a href="/security/">Security</a>
</li> </li>

View File

@ -112,7 +112,7 @@
<div class="price-box" tabindex="-1"> <div class="price-box" tabindex="-1">
<div class="text-content"> <div class="text-content">
<h2>Self-service</h2> <h2>Free</h2>
<div class="description"> <div class="description">
Retain full control over your data. Retain full control over your data.
</div> </div>
@ -133,8 +133,8 @@
Zulip is 100% free and open Zulip is 100% free and open
source, with no proprietary version. <br /> source, with no proprietary version. <br />
</div> </div>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button green"> <a href="/self-hosting/" class="button green">
Install a Zulip server Self-host Zulip
</a> </a>
</div> </div>
</div> </div>
@ -148,7 +148,7 @@
</div> </div>
<hr /> <hr />
<ul class="feature-list"> <ul class="feature-list">
<li>All self-service features included</li> <li>All Free features included</li>
<li>Professional support with SLAs</li> <li>Professional support with SLAs</li>
<li>High availability</li> <li>High availability</li>
<li>Incident collaboration</li> <li>Incident collaboration</li>

View File

@ -0,0 +1,348 @@
{% extends "zerver/portico.html" %}
{% set entrypoint = "landing-page" %}
{% set OPEN_GRAPH_TITLE = 'Self-host Zulip today.' %}
{% set OPEN_GRAPH_DESCRIPTION = 'Open-source software that provides enterprise-grade reliability and security.' %}
{% block title %}
<title>Self-host Zulip today. Open-source software that provides enterprise-grade reliability and security.</title>
{% endblock %}
{% block customhead %}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{% endblock %}
{% block portico_content %}
{% include 'zerver/landing_nav.html' %}
<div class="portico-landing why-page no-slide solutions-page self-hosting-page">
<div class="hero bg-pycon security">
<div class="bg-dimmer"></div>
<div class="content">
<h1 class="center">Self-host Zulip today.</h1>
<p>Open-source team chat with enterprise-grade reliability and security.</p>
</div>
<div class="hero-buttons center">
<a href="#feature-pricing-self-hosting" class="button">
{{ _('Features & pricing') }}
</a>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button">Install Zulip {{ latest_release_version }}</a>
<a href="/for/business/" class="button">
{{ _('Zulip for business') }}
</a>
</div>
</div>
<div class="alternative-features">
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
100% free and open-source software.
</h1>
<p>
When you self-host Zulip, you get <a href="https://github.com/zulip/zulip#readme">
the same software</a> as our <a href="/plans/">Zulip
Cloud Standard</a> customers.
</p>
<p>
Unlike the competition, you don't pay for
<a href="https://zulip.readthedocs.io/en/stable/production/authentication-methods.html">SAML
authentication</a>, <a href="https://zulip.readthedocs.io/en/stable/production/authentication-methods.html#synchronizing-data">LDAP
sync</a>, or advanced <a href="/help/roles-and-permissions">roles</a> and <a href="/help/stream-permissions">permissions</a>. There
is no “open core” catch — just freely available world-class software.
</p>
</div>
</div>
<div class="feature-half">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/open_source/build_inclusive_communities.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-icon">
<img class="mirror-image" alt="" src="/static/images/landing-page/education/privacy.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Enterprise-grade security and compliance.
</h1>
<p>
Protect your sensitive conversations and simplify
compliance by self-hosting Zulip behind your
firewall.
</p>
<p>
Zulip's <a
href="/help/configure-authentication-methods">authentication</a>
and <a
href="/help/roles-and-permissions">permissions</a>
systems are designed to flexibly support every
organization's security tools and policies.
</p>
<p>Making sure your information stays protected is <a href="https://zulip.com/security/">our highest priority</a>.</p>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-icon">
<img class="mirror-image" alt="" src="/static/images/landing-page/education/privacy.svg" />
</div>
</div>
</div>
<div class="feature-container">
<div class="feature-half">
<div class="feature-text">
<h1>
Take charge of your mission-critical communication platform.
</h1>
<p>
Keep full control of your data and avoid <a
href="https://www.theverge.com/2021/9/30/22702876/slack-is-down-outage-morning-disruption-work-chat">
unpredictable downtime</a>
from <a
href="https://www.theverge.com/2021/4/27/22405300/microsoft-teams-down-outage-worldwide-issues">SaaS
team chat vendors</a> by hosting Zulip on
your own infrastructure.
</p>
<p>
Our extensive <a
href="https://zulip.readthedocs.io/en/stable/production/settings.html">
configuration options</a> let you set up Zulip
to suit the needs of your organization.
Zulip offers <a
href="/integrations/">over one hundred native
integrations</a>, and hundreds more via third-party
extensions.
</p>
</div>
</div>
<div class="feature-half">
<div class="feature-icon">
<img class="mirror-image" alt="" src="/static/images/landing-page/education/mobile.svg" />
</div>
</div>
</div>
<div class="feature-container alternate-grid">
<div class="feature-half md-hide">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
<div class="feature-half">
<div class="feature-text">
<h1>
Installation and upgrades that Just Work.
</h1>
<p>
Our well-documented scripts help you
<a href="https://zulip.readthedocs.io/en/stable/production/install.html">setup</a>,
<a href="https://zulip.readthedocs.io/en/stable/production/export-and-import.html#backups">backup</a>, and
<a href="https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html">upgrade</a>
your self-hosted Zulip installation. Migrate your
<a href="/help/migrating-from-other-chat-tools">data</a>
and <a href="/integrations/doc/slack_incoming">integrations</a>
from other chat tools for a smooth transition.
</p>
<p>
Self-host Zulip directly on Ubuntu or Debian Linux,
in <a href="https://github.com/zulip/docker-zulip">Docker</a>,
or with prebuilt images for <a href="https://marketplace.digitalocean.com/apps/zulip">Digital Ocean</a>
and <a href="https://render.com/docs/deploy-zulip">Render</a>.
</p>
</div>
</div>
<div class="feature-half md-display">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/education/flexible-administration.svg" />
</div>
</div>
</div>
</div>
<div class="quote">
<div class="triangle"></div>
<blockquote>
Zulip has been extremely stable and requires no maintenance beyond installing updates.
<div class="author">
&mdash; Robert Imschweiler, <a href="/case-studies/tum/">Technical University of Munich</a>
</div>
</blockquote>
</div>
<div class="feature-grid">
<div class="feature-row">
<div class="feature-box">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/self-hosting/growth.png" />
</div>
<div class="feature-text">
<h1>
Rock-solid reliability at scale.
</h1>
<p>
Zulip is engineered to make every interaction snappy and
efficient, even for organizations with 10,000s of users,
with a simple deployment on
<a href="https://zulip.readthedocs.io/en/stable/production/requirements.html#scalability">
modest hardware</a>.
</p>
<p>
With a user experience designed to work great at any
size, organizations that send <a
href="/case-studies/rust/">thousands</a> of <a
href="/case-studies/tum/">messages</a> per week <a
href="/case-studies/lean/">thrive on Zulip</a>.
</p>
</div>
</div>
<div class="feature-box">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/self-hosting/database.png" />
</div>
<div class="feature-text">
<h1>
No lock-in.
</h1>
<p>
You can <a href="https://zulip.com/help/zulip-cloud-or-self-hosting">move
freely</a> between <a href="/plans/">Zulip Cloud</a>
hosting and your own servers with our high quality <a
href="/help/export-your-organization">export</a> and
<a href="https://zulip.readthedocs.io/en/stable/production/export-and-import.html">import
</a> tools.
</p>
<p>
Zulip also supports exporting your organization's
message history to a <a
href="https://github.com/zulip/zulip-archive">static
HTML archive</a>.
</p>
</div>
</div>
</div>
<div class="feature-row">
<div class="feature-box">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/self-hosting/fork.png" />
</div>
<div class="feature-text">
<h1>
Yours to customize.
</h1>
<p>
<a href="/api/incoming-webhooks-overview">Creating custom integrations</a> is a breeze with
our well-documented <a href="/api">REST API</a>.
</p>
<p>
Zulip makes it easy to
<a href="https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html#modifying-zulip">
maintain a fork</a> with customized features, with 175,000 words of documentation for
system administrators and developers.
</p>
</div>
</div>
<div class="feature-box">
<div class="feature-icon">
<img alt="" src="/static/images/landing-page/self-hosting/help.png" />
</div>
<div class="feature-text">
<h1>
Amazing support experience.
</h1>
<p>
<a href="mailto:sales@zulip.com">Contact Sales</a> to
discuss Enterprise support offerings.
</p>
<p>
We provide free, interactive support for the vast
majority of questions about running a Zulip server. Stop by <a href="/developer-community/">our friendly
development community</a> to ask for help or suggest
improvements!
</p>
</div>
</div>
</div>
</div>
<div class="feature-end">
<div class="feature-pricing" id="feature-pricing-self-hosting">
<h1 class="center"> Self-hosting plans </h1>
<div class="pricing-model">
<div class="padded-content">
<div class="pricing-container">
<div class="price-box" tabindex="-1">
<div class="text-content">
<h2>Free</h2>
<div class="description">
Retain full control over your data.
</div>
<hr />
<ul class="feature-list">
<li>All Zulip Cloud features included</li>
<li>Friendly community support</li>
<li><a href="https://zulip.readthedocs.io/en/stable/production/authentication-methods.html">SAML, OIDC, Google, social SSO</a></li>
<li><a href="https://zulip.readthedocs.io/en/stable/production/authentication-methods.html#synchronizing-data">LDAP/Active Directory sync</a></li>
<li>Advanced <a href="/help/roles-and-permissions">roles</a> and <a href="/help/stream-permissions">permissions</a></li>
<li>Easy <a href="https://zulip.readthedocs.io/en/stable/production/install.html">installation</a>
and <a href="https://zulip.readthedocs.io/en/stable/production/upgrade-or-modify.html">maintenance</a></li>
</ul>
</div>
<div class="bottom">
<div class="text-content">
<div class="pricing-details multi-line">
Zulip is 100% free and open
source, with no proprietary version. <br />
</div>
<a href="https://zulip.readthedocs.io/en/stable/production/install.html" class="button green">
Install a Zulip server
</a>
</div>
</div>
</div>
<div class="price-box" tabindex="-1">
<div class="text-content">
<h2>Enterprise</h2>
<div class="description">
For mission-critical installations.
</div>
<hr />
<ul class="feature-list">
<li>All self service features included</li>
<li>Professional support with SLAs</li>
<li>High availability</li>
<li>Incident collaboration</li>
<li>Advanced compliance</li>
<li>Funds the Zulip open source project</li>
</ul>
</div>
<div class="bottom">
<div class="text-content">
<div class="pricing-details multi-line">
Affordable pricing depends on support required.
</div>
<a href="mailto:sales@zulip.com" target="_blank" rel="noopener noreferrer" class="no-action button green">
Contact sales
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -167,6 +167,7 @@ class DocPageTest(ZulipTestCase):
self._test("/for/research/", "for research") self._test("/for/research/", "for research")
self._test("/for/business/", "Communication efficiency represents") self._test("/for/business/", "Communication efficiency represents")
self._test("/for/communities/", "Zulip for communities") self._test("/for/communities/", "Zulip for communities")
self._test("/self-hosting/", "Self-host Zulip")
self._test("/security/", "TLS encryption") self._test("/security/", "TLS encryption")
self._test("/attribution/", "Attributions") self._test("/attribution/", "Attributions")
self._test("/devlogin/", "Normal users", landing_page=False) self._test("/devlogin/", "Normal users", landing_page=False)

View File

@ -97,7 +97,7 @@ def team_view(request: HttpRequest) -> HttpResponse:
@add_google_analytics @add_google_analytics
def landing_view(request: HttpRequest, template_name: str) -> HttpResponse: def landing_view(request: HttpRequest, template_name: str) -> HttpResponse:
return TemplateResponse(request, template_name) return TemplateResponse(request, template_name, latest_info_context())
@add_google_analytics @add_google_analytics

View File

@ -642,6 +642,7 @@ i18n_urls = [
"for/working-groups-and-communities/", "for/working-groups-and-communities/",
RedirectView.as_view(url="/for/communities/", permanent=True), RedirectView.as_view(url="/for/communities/", permanent=True),
), ),
path("self-hosting/", landing_view, {"template_name": "zerver/self-hosting.html"}),
path("security/", landing_view, {"template_name": "zerver/security.html"}), path("security/", landing_view, {"template_name": "zerver/security.html"}),
] ]