mirror of
https://github.com/zulip/zulip.git
synced 2025-11-15 19:31:58 +00:00
Various pieces of our thumbor-based thumbnailing system were already merged; this adds the remaining pieces required for it to work: * a THUMBOR_URL Django setting that controls whether thumbor is enabled on the Zulip server (and if so, where thumbor is hosted). * Replaces the overly complicated prototype cryptography logic * Adds a /thumbnail endpoint (supported both on web and mobile) for accessing thumbnails in messages, designed to support hosting both external URLs as well as uploaded files (and applying Zulip's security model for access to thumbnails of uploaded files). * Modifies bugdown to, when THUMBOR_URL is set, render images with the `src` attribute pointing /thumbnail (to provide a small thumbnail for the image), along with adding a "data-original" attribute that can be used to access the "original/full" size version of the image. There are a few things that don't work quite yet: * The S3 backend support is incomplete and doesn't work yet. * The error pages for unauthorized access are ugly. * We might want to rename data-original and /thumbnail?size=original to use some other name, like "full", that better reflects the fact that we're potentially not serving the original image URL.
92 lines
2.9 KiB
Python
92 lines
2.9 KiB
Python
|
|
# For the Dev VM environment, we use the same settings as the
|
|
# sample prod_settings.py file, with a few exceptions.
|
|
from .prod_settings_template import *
|
|
import os
|
|
import pwd
|
|
from typing import Set
|
|
|
|
LOCAL_UPLOADS_DIR = 'var/uploads'
|
|
EMAIL_LOG_DIR = "/var/log/zulip/email.log"
|
|
FORWARD_ADDRESS_CONFIG_FILE = "var/forward_address.ini"
|
|
# Check if test_settings.py set EXTERNAL_HOST.
|
|
EXTERNAL_HOST = os.getenv('EXTERNAL_HOST')
|
|
if EXTERNAL_HOST is None:
|
|
user_id = os.getuid()
|
|
user_name = pwd.getpwuid(user_id).pw_name
|
|
if user_name == "zulipdev":
|
|
# For our droplets, we use the external hostname by default.
|
|
EXTERNAL_HOST = os.uname()[1].lower() + ":9991"
|
|
else:
|
|
# For local development environments, we use localhost by
|
|
# default, via the "zulipdev.com" hostname.
|
|
EXTERNAL_HOST = 'zulipdev.com:9991'
|
|
# Serve the main dev realm at the literal name "localhost",
|
|
# so it works out of the box even when not on the Internet.
|
|
REALM_HOSTS = {
|
|
'zulip': 'localhost:9991'
|
|
}
|
|
else:
|
|
REALM_HOSTS = {
|
|
'zulip': EXTERNAL_HOST,
|
|
}
|
|
|
|
ALLOWED_HOSTS = ['*']
|
|
|
|
# Uncomment extra backends if you want to test with them. Note that
|
|
# for Google and GitHub auth you'll need to do some pre-setup.
|
|
AUTHENTICATION_BACKENDS = (
|
|
'zproject.backends.DevAuthBackend',
|
|
'zproject.backends.EmailAuthBackend',
|
|
'zproject.backends.GitHubAuthBackend',
|
|
'zproject.backends.GoogleMobileOauth2Backend',
|
|
)
|
|
|
|
EXTERNAL_URI_SCHEME = "http://"
|
|
EMAIL_GATEWAY_PATTERN = "%s@" + EXTERNAL_HOST
|
|
NOTIFICATION_BOT = "notification-bot@zulip.com"
|
|
ERROR_BOT = "error-bot@zulip.com"
|
|
EMAIL_GATEWAY_BOT = "emailgateway@zulip.com"
|
|
PHYSICAL_ADDRESS = "Zulip Headquarters, 123 Octo Stream, South Pacific Ocean"
|
|
EXTRA_INSTALLED_APPS = ["zilencer", "analytics"]
|
|
# Disable Camo in development
|
|
CAMO_URI = ''
|
|
|
|
OPEN_REALM_CREATION = True
|
|
INVITES_MIN_USER_AGE_DAYS = 0
|
|
|
|
EMBEDDED_BOTS_ENABLED = True
|
|
|
|
SAVE_FRONTEND_STACKTRACES = True
|
|
EVENT_LOGS_ENABLED = True
|
|
STAGING_ERROR_NOTIFICATIONS = True
|
|
|
|
SYSTEM_ONLY_REALMS = set() # type: Set[str]
|
|
USING_PGROONGA = True
|
|
# Flush cache after migration.
|
|
POST_MIGRATION_CACHE_FLUSHING = True # type: bool
|
|
|
|
# Enable inline open graph preview in development for now
|
|
INLINE_URL_EMBED_PREVIEW = True
|
|
|
|
# Don't require anything about password strength in development
|
|
PASSWORD_MIN_LENGTH = 0
|
|
PASSWORD_MIN_GUESSES = 0
|
|
|
|
# SMTP settings for forwarding emails sent in development
|
|
# environment to an email account.
|
|
EMAIL_HOST = ""
|
|
EMAIL_HOST_USER = ""
|
|
|
|
# Two factor authentication: Use the fake backend for development.
|
|
TWO_FACTOR_CALL_GATEWAY = 'two_factor.gateways.fake.Fake'
|
|
TWO_FACTOR_SMS_GATEWAY = 'two_factor.gateways.fake.Fake'
|
|
|
|
# Make sendfile use django to serve files in development
|
|
SENDFILE_BACKEND = 'sendfile.backends.development'
|
|
|
|
# Set this True to send all hotspots in development
|
|
ALWAYS_SEND_ALL_HOTSPOTS = False # type: bool
|
|
|
|
THUMBOR_URL = 'http://127.0.0.1:9995'
|