This new script attempts to generate some subreddits that are more like
production data. It first pulls down data from reddit.com, then uses
markov chains to generate new data for insertion into the databases.
Since we have an HTTPS-capable CDN in front of our S3 static domains
now, it's far faster for clients to use the CDN on HTTPS as well rather
than going straight to (high-latency) S3.
This patch makes it so that we continue to store URLs with explicit HTTP
schemes but instead of conditionally converting to HTTPS, we render
protocol-relative URLs. This should be safe for systems using the
filesystem media provider as we've installed an SSL cert there all
along.
The intent is to further provide simple commands for common tasks in a
way consistent with staging and production as well.
reddit-start: start all reddit code
reddit-stop: stop all reddit code
reddit-restart: restart one or all reddit service(s)
reddit-flush: flush all memcached keys
Increase max connections for backend reddit in haproxy.cfg. We have not
nailed down the cause of these timeouts yet, but this definitely solves
it in a VM environment.
This patch is super simple :) Basically, the first command of the
install-reddit.sh file is "set -e". Therefore, we don't have to invoke bash
with "#!/bin/bash -e". We can either remove the -e from the "#!/bin/bash -e" or
we can remove "set -e". I prefer keeping "set -e" because it's more explicit.
Fixes#1033.
These changes make it so the install-reddit script is mostly self
healing and can be run many times in a row on the same machine. This
allows for more rapid iteration on development of the build process and
also easier updates for end users.
This variable is used to tell the build system what plugins to clone and
register with the make process. It also works when the plugins are
already cloned and have local modifications.
Uglify is 2x faster than Closure Compiler at minifying our JS. The
resultant output is slightly larger than CC's when ungzipped, but
slightly smaller when gzipped.
Ok, now I'm getting some angst in my commit messages like my
predecessors had. I understand now. It's a terrible burden. Why must
the calendar progress? Why must numbers increment? The world is
forever turning.
The future is here.
It is 2014.
The aim of this patch is to allow a mostly equivalent subset of CSS
through as the cssutils-based parser did.
The subset of valid properties represented in this are the entirety of
CSS2.1 plus a handful of newer ones that are already in active use on
reddit.
Several IE hacks like the "filter" property, "_height", etc. are no
longer allowed.
Production installs should work pretty differently and I have a few
plans for that. In the meantime, this simplifies away a few of the bits
that were ill advisedly trying to help production installs and changes
the installer to be better suited to the modern environment with plugins
etc. by putting all code in a src/ directory.
Previously, the subreddit/domain and account precomputers were separate.
This merges the two and improves their portability in the process.
Because of the increased portability, the precomputer can now be added
to the install script by default.
This media provider is for simple single-server installations where an
HTTP server running on the same machine handles serving of the static
media files.
An appropriate setup with nginx is now the default in the new install
script.
This is primarily to show how to set up reddit with HTTPS as well as to
make it possible to test HTTPS content. The default installation uses
the snakeoil cert and is therefore unauthenticated. A properly signed
certificate must be used for actual security.
Previously, c.secure status was determined based on the domain used.
This allows for the status to vary independently of domain for greater
flexibility.
Note: it is critical that the load balancer strips any X-Forwarded-Proto
headers that may've been sent by the client.