Fix https config
[reddit.git] / r2 / example.ini
blobdfe40136c891c23670db71cf22d92b3b28901df4
1 # DO NOT EDIT THIS FILE
2 # This is a base template. To apply changes to your
3 # reddit instance, create a "myreddit.update" config
4 # file, then run 'make ini'. 'make ini' will combine
5 # this template with the myreddit.update file and create a
6 # 'myreddit.ini'. ('myreddit.update' is just an example;
7 # any name will do - e.g., 'foo.update' will create
8 # 'foo.ini')
10 [secrets]
11 # the tokens in this section are base64 encoded
12 # general purpose secret
13 SECRET = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
14 # secret for /prefs/feeds
15 FEEDSECRET = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
16 # used for authenticating admin API calls w/o cookie
17 ADMINSECRET = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
18 # used to securely authenticate websocket requests to sutro
19 websocket = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
20 # secret for validating the cdn-provided client ip
21 cdn_ip_verification =
22 # secret for authenticating private media embeds
23 media_embed = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
24 # secret for authenticating controller#action name
25 action_name = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
26 # secret for email notification one-click unsubscribe links
27 email_notifications = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
28 # secrets for communicating with Stripe (optional payment processor)
29 stripe_webhook =
30 stripe_public_key =
31 stripe_secret_key =
32 # secrets for communicating with Authorize.net (optional payment processor--
33 # must also set authorizenetapi to enable)
34 authorizenetname =
35 authorizenetkey =
36 # secret for communicating with Paypal (optional payment processor)
37 paypal_webhook =
38 # secret for communicating with Coinbase (optional payment processor)
39 coinbase_webhook =
40 # secret for communicating with RedditGifts (optional payment processor)
41 redditgifts_webhook =
42 # The campaign monitor API key for the newsletter
43 newsletter_api_key =
44 # event-collector key and secret
45 events_collector_key =
46 events_collector_secret =
47 events_collector_js_key =
48 events_collector_js_secret =
49 events_collector_test_js_key =
50 events_collector_test_js_secret =
51 # The API key for managing tickets on ZenDesk
52 zendesk_api_key =
53 # the user to use for managing tickets on ZenDesk
54 zendesk_user =
55 # The API key for submitting takedown notices to lumendatabase.org
56 lumendatabase_org_api_key =
57 # Facebook sharing app id
58 facebook_app_id =
59 # The API key for making calls to CloudFlare
60 cloudflare_api_key =
61 # The email address linked to the API key for CloudFlare
62 cloudflare_email_address =
63 # The API url to call to purge content from CloudFlare
64 cloudflare_email_address =
65 # The imgix-provided secret url-signing token
66 imgix_signing_token =
67 # secret for cache poisoning report MACs
68 cache_poisoning = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
69 # secret for hashing ad click urls
70 adserver_click_url_secret = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
71 # secret for generating hmac encoding the modmail email reply info
72 modmail_email_secret = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
73 # mailgun api key
74 mailgun_api_key =
75 # request signing
76 request_signature_secret = YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
78 [DEFAULT]
79 ############################################ SITE-SPECIFIC OPTIONS
80 #### Appearance
81 # the site's tagline, used in the title and description
82 short_description = open source is awesome
83 # default site interface language (two letter character code)
84 site_lang = en
85 # default header image url
86 default_header_url = reddit.com.header.png
88 #### Domains
89 # the domain that this app expects to be accessed on
90 domain = reddit.local
91 # where third party media (embeds etc.) are hosted
92 # this should be different from `domain` for security
93 media_domain = %(domain)s
94 # the short domain (like redd.it)
95 shortdomain =
96 # if you use www for the old-timey feel, put it here
97 domain_prefix =
98 # subdomains that don't need special processing
99 reserved_subdomains = www, ssl, oauth
100 # subdomains that don't need special processing, and can't be part of `c.domain_prefix`.
101 # should be a subset of `reserved_subdomains`
102 ignored_subdomains = www, ssl, oauth
103 # subdomains that are not reddit instances
104 offsite_subdomains =
105 # https api endpoint (must be g.domain or a subdomain of g.domain)
106 https_endpoint = https://reddit.local
107 # the domain for oauth-orized requests
108 oauth_domain =
109 # (secure) payment domain for self-serve ads
110 payment_domain = https://pay.reddit.local/
111 # base url where 300x250 ad units (sidebar) are hosted
112 ad_domain = http://reddit.local
113 # domain where sutro websocket server is hosted
114 websocket_host = %(domain)s
115 # domain to send stats to
116 stats_domain =
117 # URL to send event-collector events to
118 events_collector_url =
119 # URL to send test event-collector events to
120 events_collector_test_url =
122 #### Accounts and Subreddits
123 # the user used for "system" operations and private messages
124 system_user = reddit
125 # the default subreddit for submissions
126 default_sr = frontpage
127 # account used for default feedback messaging (can be /r/subreddit)
128 admin_message_acct = reddit
129 # subreddit used for DMCA takedowns
130 takedown_sr = takedowns
131 # subreddit used for trending subreddits postings. Ignored if blank.
132 trending_sr =
133 # list of subreddits to always include in a user's front page (unless they unsubscribe)
134 automatic_reddits =
135 # special subreddit that only reddit gold subscribers can use
136 lounge_reddit =
137 # subreddits that have subscribers hidden
138 hide_subscribers_srs =
139 # subreddit to use for beta testing
140 beta_sr = beta
141 # name of the promos subreddit.
142 promo_sr_name = promos
143 gold_servername_sr =
145 multi_icons = art and design, ask, books, business, cars, comics, cute animals, diy, entertainment, food and drink, funny, games, grooming, health, life advice, military, models pinup, music, news, philosophy, pictures and gifs, science, shopping, sports, style, tech, travel, unusual stories, video
147 #### Static Files
148 # if set, this is the domain used for static files served over http and https
149 # if not set, no domain will be specified and relative local URLs will be used instead
150 static_domain =
152 #### Ops
153 # if your webserver is a proxy and on a different instance on the same 10.0.0.0/8 network
154 # set X-forwarded-for and set this to true
155 trust_local_proxies = false
156 # Location (directory) for temp files for diff3 merging
157 # Empty will use python default for temp files
158 diff3_temp_location =
159 # which cdn provider to use; right now this is just used for getting an
160 # accurate client IP. options are:
161 # null - no cdn
162 # cloudflare - use cloudflare as configured for reddit.com
163 # or write your own!
164 cdn_provider = null
166 #### Analytics
167 # image to render to track pageviews
168 tracker_url = /pixel/of_destiny.png
169 # images to render to track sponsored links
170 adtracker_url = /pixel/of_doom.png
171 # image to render to track the ad frame
172 adframetracker_url = /pixel/of_defenestration.png
173 # image to render to track HTTPS cert compatibility (needs to be protocol-relative)
174 httpstracker_url =
175 # redirector to bounce clicks off of on sponsored links for tracking
176 clicktracker_url = /click
177 event_clicktracker_url = /event_click
178 # url to request to track interaction statistics
179 uitracker_url = /pixel/of_discovery.png
180 # embeds pixel tracking url
181 eventtracker_url = /pixel/of_delight.png
182 anon_eventtracker_url = /pixel/of_diversity.png
183 # google analytics token
184 googleanalytics =
185 # google analytics events sampling rate. Valid values are 1-100.
186 # See https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration#_gat.GA_Tracker_._setSampleRate
187 googleanalytics_sample_rate = 50
188 # google analytics token for gold
189 googleanalytics_gold =
190 # google analytics events sampling rate for gold. Valid values are 1-100.
191 googleanalytics_sample_rate_gold = 100
192 # secret used for signing information on the above tracking pixels
193 tracking_secret = abcdefghijklmnopqrstuvwxyz0123456789
194 # google tag manager container id
195 googletagmanager =
197 #### Wiki Pages
198 wiki_page_content_policy = contentpolicy
199 wiki_page_privacy_policy = privacypolicy
200 wiki_page_user_agreement = useragreement
201 wiki_page_registration_info = registration_info
202 wiki_page_gold_bottlecaps = gold_bottlecaps
203 wiki_page_stylesheets_everywhere =
205 #### ads
206 az_selfserve_priorities =
207 az_selfserve_network_id = 0
209 #### Feature toggles
210 disable_ads = false
211 disable_captcha = false
212 disable_ratelimit = false
213 disable_require_admin_otp = false
214 disable_wiki = false
215 # global kill switch for loggedout experiments
216 enable_loggedout_experiments = false
219 ############################################ DEBUG
220 # global debug flag -- displays pylons stacktrace rather than 500 page on error when true
221 # NOTE: a pylons stacktrace allows remote code execution. make sure this is false in prod.
222 debug = false
223 # enables/disables whitespace removal in rendered html
224 template_debug = false
225 # enables/disables compiled template caching and template file mtime checking
226 reload_templates = true
227 # use uncompressed static files (out of /static/js and /static/css)
228 # rather than compressed files out of /static (for development if true)
229 uncompressedJS = true
230 # enable/disable verbose logging of SQL queries
231 sqlprinting = false
232 # directory to write cProfile stats dumps to (disabled if not set)
233 profile_directory =
236 ############################################ PLUGINS
237 # which plugins are enabled (they must be installed via setup.py first)
238 plugins =
240 ###### about
241 # set which subreddits the about page pulls its source data from
242 # make sure you create the subreddits as well, otherwise you'll get an error
243 about_sr_quotes = about_quotes
244 about_sr_images = about_images
245 # size limit on the about page slideshow
246 about_images_count = 50
247 about_images_min_score = 1
249 advertising_links_sr = advertising_links
250 wiki_page_selfserve_advertisers = advertising/advertisers
251 wiki_page_selfserve_content = advertising/content
252 wiki_page_selfserve_blurbs = advertising/blurbs
253 wiki_page_selfserve_quotes = advertising/quotes
254 wiki_page_selfserve_help = advertising/help
256 ###### liveupdate
257 # the domain the activity pixel is hosted on
258 liveupdate_pixel_domain = %(domain)s
259 # maximum number of outstanding invites an event can have
260 liveupdate_invite_quota = 5
262 mobile_auth_gild_clients = android123, ios123
263 # days
264 mobile_auth_gild_time = 90
265 mobile_auth_gild_message = 3 months
267 ############################################ LOGGING
268 # whether to print a "reddit app started" message at start
269 log_start = true
270 # enable/disable logging of exceptions and events via amqp/rabbitmq
271 amqp_logging = false
272 # exception reporter objects to give to ErrorMiddleware (see log.py)
273 error_reporters =
276 ############################################ METRICS
277 # where to send metrics
278 statsd_addr =
279 # how often to send them [0.0 - 1.0]
280 statsd_sample_rate = 1.0
281 # percentage of stats for sampling (0-100)
282 stats_sample_rate = 1
284 ############################################ TRACING
285 # where to send traces (leave blank for debug mode, traces will be logged)
286 tracing_endpoint =
287 tracing_sample_rate = 1
289 ############################################ EMAIL
290 # which email provider to use
291 # options are:
292 # null - no email
293 # mailgun - use mailgun as configured for reddit.com
294 # or write your own!
295 email_provider = null
296 mailgun_domains =
297 mailgun_api_base_url =
299 # modmails as emails feature
300 modmail_sender_email =
301 modmail_system_email =
302 modmail_email_domain =
304 ############################################ SITEMAPS
305 # path of the subreddit sitemap index
306 sitemap_subreddit_keyname =
307 # s3 information related to where the sitemaps are statically stored
308 sitemap_upload_s3_bucket =
309 sitemap_s3_static_host =
310 sitemap_subreddit_static_url =
311 # the SQS queue that we use to receive messages to modify our sitemaps
312 sitemap_sqs_queue =
315 ############################################ MEDIA STORAGE
316 # which backend provider to use for media (thumbnails, subreddit stylesheets,
317 # subreddit images, app icons). options are:
318 # s3 - use amazon s3
319 # filesystem - write to local filesystem
320 # or write your own!
321 media_provider = s3
323 # s3 provider
324 # your s3 credentials -- if these are left blank, we'll pass None to
325 # boto which will trigger it to look in various places, including instance
326 # metadata if on ec2, for credentials.
327 S3KEY_ID =
328 S3SECRET_KEY =
329 # May be one bucket, or many buckets seperated by commas
330 s3_media_buckets =
331 s3_image_buckets =
332 # Store direct urls for images, rather than buckets
333 # For the bucket mybucket with the image helloworld.jpg the stored url would be:
334 # true: http://{s3_media_domain}/mybucket/helloworld.jpg
335 # false: http://mybucket/helloworld.jpg
336 s3_media_direct = true
337 # Which S3 region to use
338 # If using the US region, the default is correct. Otherwise, use a region-specific
339 # endpoint as in http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
340 s3_media_domain = s3.amazonaws.com
342 # filesystem provider configuration
343 media_fs_root =
344 media_fs_base_url_http =
346 thumbnail_size = 70, 70
347 thumbnail_hidpi_scaling = 2
349 preview_image_max_size = 1024, 768
350 preview_image_min_size = 100, 100
351 media_preview_domain_whitelist =
353 # The provider that handles on-the-fly resizing of images. Options:
354 # imgix
355 # no_op
356 image_resizing_provider = no_op
358 # Which domain to use to request imgix-processed files.
359 imgix_domain = imgix.example.com
360 # Whether to sign imgix urls.
361 imgix_signing = false
362 # registration captcha
363 captcha_provider = no_op
366 ############################################ EMERGENCY MODES
367 # emergency measures: makes the site read only
368 read_only_mode = false
369 # a modified read only mode used for cache shown during heavy load 503s
370 heavy_load_mode = false
371 # override default site language for things like pirate day
372 lang_override =
373 # enable/disable automatic creation of database tables/column families
374 db_create_tables = True
375 # are we allowed to write to databases at all?
376 disallow_db_writes = False
377 # disable custom subreddit stylesheets
378 css_killswitch = False
381 ############################################ SCRAPER
382 # user agent for the scraper
383 useragent = Mozilla/5.0 (compatible; redditbot/1.0; +http://www.reddit.com/feedback)
384 # Embedly API Key. if no key is provided, the scraper will only fetch thumbnails.
385 embedly_api_key =
386 # A tuple of what media_object types will automatically be displayed on comments view.
387 # Ex: liveupdate, custom
388 autoexpand_media_types = liveupdate
391 ############################################ NEWSLETTER
392 # The list ID within campaign monitor to be altering
393 newsletter_list_id =
395 ############################################ QUOTAS
396 # quota for various types of relations creatable in subreddits
397 sr_banned_quota = 10000
398 sr_muted_quota = 10000
399 sr_moderator_invite_quota = 10000
400 sr_contributor_quota = 10000
401 sr_wikibanned_quota = 10000
402 sr_wikicontributor_quota = 10000
403 sr_quota_time = 7200
404 sr_invite_limit = 25
405 # delay before allowing a link to be shared
406 new_link_share_delay = 30 seconds
407 # max number of uploaded images per subreddit
408 max_sr_images = 50
411 ############################################ RATELIMITS
412 # If true, send 429 responses on exceeded ratelimits
413 # If false, send headers only, but don't abort
414 # Only applies if tracking is enabled below
415 ENFORCE_RATELIMIT = false
417 # If true, store per-user request counts in ratelimits cache
418 RL_SITEWIDE_ENABLED = true
419 # How large of a burst window will users be allowed?
420 RL_RESET_MINUTES = 10
421 # What is the average request rate over the above time period?
422 RL_AVG_REQ_PER_SEC = 0.5
424 # Same as above, but configured separately for connections via OAuth
425 RL_OAUTH_SITEWIDE_ENABLED = true
426 RL_OAUTH_RESET_MINUTES = 10
427 RL_OAUTH_AVG_REQ_PER_SEC = 0.5
429 # same as above, but for failed login attempts per account
430 RL_LOGIN_AVG_PER_SEC = .1
431 # same as above, but for failed login attempts per unfamiliar ip address
432 RL_LOGIN_IP_AVG_PER_SEC = .1
433 # and email/PM shares
434 RL_SHARE_AVG_PER_SEC = .1
436 # user agent regexps to hard-ratelimit to a number of requests per ten second period
437 # example: user_agent_ratelimit_regexes = (?i)googlebot:10, (?i)appengine:2
438 user_agent_ratelimit_regexes =
440 # karma needed to avoid per-subreddit submission ratelimits
441 MIN_RATE_LIMIT_KARMA = 10
442 MIN_RATE_LIMIT_COMMENT_KARMA = 1
445 ############################################ THRESHOLDS
446 # if the user has positive total karma, their per-subreddit karma will default to this, else 0
447 MIN_UP_KARMA = 1
449 # minimum user karma total values to show to non-admins
450 link_karma_display_floor = 1
451 comment_karma_display_floor = -100
453 # age at which links/comments become "archived" and can no longer be voted on, replied to, or reported
454 ARCHIVE_AGE = 180 days
456 # the maximum amount of time we use memcache to hide that a vote hasn't been
457 # asynchronously processed yet.
458 vote_queue_grace_period = 1 hour
460 # minimum age of an account (in days) for the "create a subreddit" button to show
461 min_membership_create_community = 30
462 # maximum age (in days) of items eligible for display on normalized hot pages (frontpage, multis, etc.)
463 HOT_PAGE_AGE = 1000
464 # how long to consider links eligible for the rising page
465 rising_period = 12 hours
466 # default number of comments shown
467 num_comments = 100
468 # max number of comments to show at once
469 max_comments = 500
470 max_comments_gold = 2500
471 # max number of parents to walk up the tree while uncollapsing replies in Q&A
472 # sort mode
473 max_comment_parent_walk = 20
474 # how deep do we go into the top listing when fetching /random
475 num_serendipity = 250
476 # Conflate visits to a comment page that happen within this many
477 # seconds of each other (gold "new comments" feature)
478 comment_visits_period = 600
479 # Max number of mentions to extract per comment
480 butler_max_mentions = 3
481 # Number of days to keep recent wiki revisions for
482 wiki_keep_recent_days = 7
483 # Max number of bytes for wiki pages
484 wiki_max_page_length_bytes = 262144
485 # Max wiki page name length
486 wiki_max_page_name_length = 128
487 # Max number of separators in a wiki page name
488 wiki_max_page_separators = 3
491 ############################################ SEARCH
492 # search provider name
493 search_provider = cloudsearch
495 # endpoint for link search
496 CLOUDSEARCH_SEARCH_API =
497 # endpoint for link upload
498 CLOUDSEARCH_DOC_API =
499 # endpoint for subreddit search
500 CLOUDSEARCH_SUBREDDIT_SEARCH_API =
501 # endpoint for subreddit upload
502 CLOUDSEARCH_SUBREDDIT_DOC_API =
504 ############################################ MEMCACHE
505 num_mc_clients = 5
506 # hosts to store memcache-based locks on
507 lockcaches = 127.0.0.1:11211
508 # hosts that cache permacache cassandra data
509 permacache_memcaches = 127.0.0.1:11211
510 # a local cache that's not globally consistent and can have stale data (optional)
511 stalecaches =
512 # hosts to store hardcache data
513 hardcache_memcaches = 127.0.0.1:11211
516 ############################################ MCROUTER
517 mcrouter_addr = 127.0.0.1:5050
520 ############################################ MISCELLANEOUS
521 # default localization for strings (when using python's locale.format)
522 # (mostly replaced by babel, this shouldn't be necessary to change)
523 locale = C
524 # storage timezone, should probably not be changed from UTC
525 timezone = UTC
526 # timezone for display of some data, deprecated
527 display_timezone = MST
528 # location of the static directory
529 static_path = /static/
530 # domains that we consider URLs case sensitive for repost detection purposes
531 case_sensitive_domains = i.imgur.com, youtube.com
532 # Domains that we know are friendly and host raw image files
533 known_image_domains = i.imgur.com, giant.gfycat.com, pbs.twimg.com, upload.wikimedia.org
534 # whether to load reddit private code (a hack until we structure it better)
535 import_private = false
536 # location of geoip service
537 geoip_location = http://127.0.0.1:5000
538 # account name that AutoModerator actions will be done by
539 automoderator_account =
540 # Which scheme to use for URLs when the current protocol isn't known
541 default_scheme = http
544 ############################################ AUTHENTICATION
545 # how to authenticate users. options are:
546 # cookie: standard cookie-based auth
547 # http: http basic authentication
548 # or write your own!
549 authentication_provider = cookie
550 # the work factor for bcrypt, increment this every time computers double in
551 # speed. don't worry, changing this won't break old passwords
552 bcrypt_work_factor = 12
553 # name of the cookie to drop with login information
554 login_cookie = reddit_session
555 # name of the admin cookie
556 admin_cookie = reddit_admin
557 # name of the otp cookie
558 otp_cookie = reddit_otp
559 # the maximum life of an admin cookie (seconds)
560 ADMIN_COOKIE_TTL = 32400
561 # the maximum amount of idle time for an admin cookie (seconds)
562 ADMIN_COOKIE_MAX_IDLE = 900
563 # the maximum life of an otp cookie
564 OTP_COOKIE_TTL = 604800
565 # funky app user agents exempt from the login CSRF prevention
566 exempt_login_user_agents =
567 # for the http provider:
568 # should we trust the authorization header and auto-register accounts?
569 auth_trust_http_authorization = false
572 ############################################ CASSANDRA
573 # cassandra hosts
574 cassandra_seeds = 127.0.0.1:9160
575 # number of connections to keep open to the cassandra ring
576 cassandra_pool_size = 5
577 # default read/write consistency levels for Cassandra
578 cassandra_rcl = ONE
579 cassandra_wcl = ONE
580 # name of default connection pool to use when _connection_pool not specified
581 cassandra_default_pool = main
584 ############################################ AMQP
585 amqp_host = localhost:5672
586 amqp_user = reddit
587 amqp_pass = reddit
588 amqp_virtual_host = /
591 ############################################ ZOOKEEPER
592 # zookeeper is optional at the moment
593 zookeeper_connection_string = localhost:2181
594 zookeeper_username = reddit
595 zookeeper_password = reddit
597 # these should be one of "config" or "zookeeper"
598 # - config: read from the local ini file
599 # - zookeeper: read from the zookeeper cluster
600 liveconfig_source = config
601 secrets_source = config
604 ############################################ EMAIL
605 smtp_server = localhost
606 # the "from" address for link share emails
607 share_reply = noreply@reddit.com
608 # where to send feedback comments
609 feedback_email = reddit@gmail.com
610 # the "from" address for orangered notifications
611 notification_email = notifications@example.com
612 # email to ads team
613 ads_email = ad-ops@reddit.com
615 ############################################ POSTGRES
616 db_user = reddit
617 db_pass = password
618 db_port = 5432
619 db_pool_size = 3
620 db_pool_overflow_size = 3
622 # list of all databases named in the subsequent table
623 databases = main, comment, email, authorize, award, hc, traffic
625 #db name db host user, pass, port, conn, overflow_conn
626 main_db = reddit, 127.0.0.1, *, *, *, *, *
627 comment_db = reddit, 127.0.0.1, *, *, *, *, *
628 comment2_db = reddit, 127.0.0.1, *, *, *, *, *
629 email_db = reddit, 127.0.0.1, *, *, *, *, *
630 authorize_db = reddit, 127.0.0.1, *, *, *, *, *
631 award_db = reddit, 127.0.0.1, *, *, *, *, *
632 hc_db = reddit, 127.0.0.1, *, *, *, *, *
633 traffic_db = reddit, 127.0.0.1, *, *, *, *, *
635 hardcache_categories = *:hc:hc
637 # this setting will prefix all of the table names
638 db_app_name = reddit
640 type_db = main
641 rel_type_db = main
642 hardcache_db = main
644 # definitions of what each table is (probably shouldn't change in .update files)
645 # things require no extra info. relation is followed by the names of the related tables
646 # a !typeid=# flag allows overriding of the type id for a thing/rel to avoid the db
647 # hit on app startup.
648 db_table_link = thing
649 db_table_account = thing
650 db_table_message = thing
651 db_table_comment = thing
652 db_table_subreddit = thing
653 db_table_srmember = relation, subreddit, account
654 db_table_friend = relation, account, account
655 db_table_inbox_account_comment = relation, account, comment
656 db_table_inbox_account_message = relation, account, message
657 db_table_moderatorinbox = relation, subreddit, message
658 db_table_report_account_link = relation, account, link
659 db_table_report_account_comment = relation, account, comment
660 db_table_report_account_message = relation, account, message
661 db_table_report_account_subreddit = relation, account, subreddit
662 db_table_award = thing
663 db_table_trophy = relation, account, award
664 db_table_flair = relation, subreddit, account
665 db_table_promocampaign = thing
667 # which servers to find each table on (likely to change in .update files)
668 # first server listed is assumed to be the master, all others are read-only slaves
669 # additionally, a "!avoid_master" flag may be added to specify that reads should use the slaves
670 db_servers_link = main, main
671 db_servers_account = main
672 db_servers_message = main
673 db_servers_comment = comment
674 db_servers_subreddit = comment
675 db_servers_srmember = comment
676 db_servers_friend = comment
677 db_servers_inbox_account_comment = main
678 db_servers_inbox_account_message = main
679 db_servers_moderatorinbox = main
680 db_servers_report_account_link = main
681 db_servers_report_account_comment = comment
682 db_servers_report_account_message = main
683 db_servers_report_account_subreddit = main
684 db_servers_award = award
685 db_servers_trophy = award
686 db_servers_flair = main
687 db_servers_promocampaign = main
690 ############################################ GOLD
691 goldpayment_email =
692 # "thanks for subscribing to reddit gold" return address
693 goldsupport_email =
695 gold_month_price = 3.99
696 gold_year_price = 29.99
698 PAYPAL_BUTTONID_ONETIME_BYMONTH =
699 PAYPAL_BUTTONID_ONETIME_BYYEAR =
700 PAYPAL_BUTTONID_AUTORENEW_BYMONTH =
701 PAYPAL_BUTTONID_AUTORENEW_BYYEAR =
702 PAYPAL_BUTTONID_CREDDITS_BYMONTH =
703 PAYPAL_BUTTONID_CREDDITS_BYYEAR =
704 PAYPAL_BUTTONID_GIFTCODE_BYMONTH =
705 PAYPAL_BUTTONID_GIFTCODE_BYYEAR =
706 STRIPE_MONTHLY_GOLD_PLAN =
707 STRIPE_YEARLY_GOLD_PLAN =
708 COINBASE_BUTTONID_ONETIME_1MO =
709 COINBASE_BUTTONID_ONETIME_3MO =
710 COINBASE_BUTTONID_ONETIME_1YR =
711 COINBASE_BUTTONID_ONETIME_2YR =
712 COINBASE_BUTTONID_ONETIME_3YR =
714 adzerk_url =
715 gold_hostname_file =
717 ############################################ SELF-SERVE ADS
718 selfserve_support_email = selfservesupport@mydomain.com
719 MAX_CAMPAIGNS_PER_LINK = 100
720 cpm_selfserve = 1.50
721 cpm_selfserve_geotarget_metro = 5.00
722 cpm_selfserve_geotarget_country = 2.00
723 cpm_selfserve_collection = 1.50
724 authorizenetapi =
725 default_total_budget_pennies = 10000
726 min_total_budget_pennies = 500
727 max_total_budget_pennies = 999900
728 default_bid_pennies = 150
729 min_bid_pennies = 75
730 max_bid_pennies = 1000
731 adserver_click_domain =
732 authnet_validate = true
733 # Define versions for mobile OS platform
734 ios_versions = 2.0, 2.1, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 4.3, 5.0, 5.1, 6.0, 6.1, 7.0, 7.1, 8.0, 8.1, 8.2, 8.3, 8.4
735 android_versions = 1.5, 1.6, 2.1, 2.2, 2.3, 3.0, 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.1
736 frequency_cap_min = 3
737 frequency_cap_default = 3
740 ############################################ TRAFFIC
741 TRAFFIC_ACCESS_KEY =
742 TRAFFIC_SECRET_KEY =
743 RAW_LOG_DIR =
744 PROCESSED_DIR =
745 AGGREGATE_DIR =
746 AWS_LOG_DIR =
747 TRAFFIC_SRC_DIR =
748 TRAFFIC_LOG_HOSTS =
750 ############################################ TRAFFIC EMR ROLE
751 emr_trafic_job_flow_role = EMR_EC2_DefaultRole
752 emr_traffic_service_role = EMR_DefaultRole
753 emr_traffic_tags =
755 ############################################ PERFORMANCE / SCALING
756 # should we split comment tree processing into shards based on the link id?
757 # this helps with lock contention but isn't necessary on smaller sites
758 shard_commentstree_queues = false
759 # should we split links by author query processing into shards by author id?
760 shard_author_query_queues = false
761 # should we split links by subreddit query processing into shards by sr id?
762 shard_subreddit_query_queues = false
763 # should we split links by domain query processing into shards by domain?
764 shard_domain_query_queues = false
765 # chance of a write to the query cache triggering pruning. increasing this will
766 # potentially slow down writes, but will keep the size of cached queries in check better
767 querycache_prune_chance = 0.05
768 # time for the comment pane cache (for a subset of logged in users, see pages.py:CommentPane)
769 commentpane_cache_time = 120
772 ############################################ SERVICES
773 ###### activity
774 activity_endpoint = localhost:9002
777 [server:main]
778 use = egg:Paste#http
779 host = 0.0.0.0
780 port = %(http_port)s
782 [filter:gzip]
783 use = egg:r2#gzip
784 compress_level = 6
785 min_size = 800
787 [app:main]
788 use = egg:r2
789 cache_dir = %(here)s/data
791 [loggers]
792 keys = root, tracing
794 [logger_root]
795 level = WARNING
796 handlers = console
798 [logger_tracing]
799 level = DEBUG
800 qualname = NullRecorder
801 # propagate up to root
802 handlers =
804 [handlers]
805 keys = console
807 [handler_console]
808 class = StreamHandler
809 args = (sys.stdout,)
811 [formatters]
812 keys = reddit
814 [formatter_reddit]
815 format = %(message)s
817 # the following configuration section makes up the "live" config. if zookeeper
818 # is enabled, then this configuration will be found by the app in zookeeper. to
819 # write it to zookeeper, use the writer script: scripts/write_live_config.
820 [live_config]
821 # permissions! each user should have one of admin, sponsor, or employee as their permission level
822 employees = reddit:admin
823 # links that get their own infrastructure (comma-delimited list of id36s)
824 fastlane_links =
825 # a message placed in the infobar
826 announcement_message =
827 # an info message placed in the sidebar
828 sidebar_message =
829 # an info message placed in the sidebar for gold users
830 gold_sidebar_message =
831 # probability of the subreddit suggester showing up in the spotlight box
832 # for users that have at some point edited their subscriptions:
833 spotlight_interest_sub_p = .05
834 # and for users that have not ever subscribed:
835 spotlight_interest_nosub_p = .1
836 # enables/disables client side logging POSTs to /web/log/...
837 frontend_logging = true
838 # daily gold revenue goal (in pennies) for progress bar thing
839 gold_revenue_goal = 0
840 # messages to display in the "you're new here" welcome bar
841 # space-delimited list of strings with / to indicate newlines
842 welcomebar_messages =
843 # sample multireddits (displayed when a user has no multis)
844 listing_chooser_sample_multis = /user/reddit/m/hello, /user/reddit/m/world
845 # multi of subreddits to share with gold users
846 listing_chooser_gold_multi = /user/reddit/m/gold
847 # subreddit showcasing new multireddits
848 listing_chooser_explore_sr =
849 # subreddits that help people discover more subreddits (used in explore tab)
850 discovery_srs =
851 # historical cost to run a reddit server
852 pennies_per_server_second = 1970/1/1:1
853 # lowercased names of accounts that API clients use as "proxies" for gilding
854 proxy_gilding_accounts =
855 # Controversial item determination
856 # Criteria for an item to meet to be determined as controversial
857 cflag_min_votes = 7
858 cflag_lower_bound = 0.4
859 cflag_upper_bound = 0.6
860 # Karma requirements to disable captchas - must meet at least one
861 captcha_exempt_link_karma = 1
862 captcha_exempt_comment_karma = 1
863 # Requirements to allow creating a subreddit - must meet age req + at least one karma req
864 create_sr_account_age_days = 0
865 create_sr_link_karma = 0
866 create_sr_comment_karma = 0
867 # class name to style goldvertisement for special events
868 goldvertisement_class =
869 # Event-collector sample rate for vote events
870 events_collector_vote_sample_rate = 0.0
871 # Event-collector sample rate for submit (new link) events
872 events_collector_submit_sample_rate = 0.0
873 # Event-collector sample rate for new comment events
874 events_collector_comment_sample_rate = 0.0
875 # Event-collector sample rate for cache poisoning events
876 events_collector_poison_sample_rate = 0.0
877 # Event-collector sample rate for moderator events
878 events_collector_mod_sample_rate = 0.0
879 # Event-collector sample rate for quarantine events
880 events_collector_quarantine_sample_rate = 0.0
881 # Event-collector sample rate for modmail events
882 events_collector_modmail_sample_rate = 0.0
883 # Event-collector sample rate for message events
884 events_collector_message_sample_rate = 0.0
885 # Event-collector sample rate for report events
886 events_collector_report_sample_rate = 0.0
887 # Event-collector gzip chance
888 events_collector_use_gzip_chance = 0.5
889 # Pages that are not yet supported by mobile web, and therefore should not
890 # receive the switch-to-mobile banner
891 mweb_blacklist_expressions = ^/prefs/?, ^/live/?, /message/, /wiki/?, /m/, ^/subreddits/create, /submit, ^/r/[^/]+/about/, ^/gold, ^/advertising, ^/promoted, ^/rules, ^/buttons
893 ads_popularity_threshold = 0
894 # Ads: determines probability to try to show ad for logged in user
895 ad_probability = .75
897 # How often (0.0 being never, 1.0 being always) to run the HTTPS cert test
898 https_cert_testing_probability = 0.01
899 # A descriptive name for this test run (change whenever one of the URLs or certs changes)
900 https_cert_testing_run_name = default
901 # A URL to a known-good image resource to compare against `https_testing_img_test`
902 # needs to be protocol-relative so we can tell how many HTTP clients don't support HTTPS at all
903 # It should be served with an HTTPS cert that you know works everywhere.
904 https_cert_testing_img_control =
905 # A URL to an image served with an HTTPS cert of unknown client support. This should
906 # have the same path and base domain (taking into account effective TLDs https://publicsuffix.org/list/effective_tld_names.dat)
907 # as `https_cert_testing_img_control` to rule out load failures due to ad blockers
908 # and things like RequestPolicy. A different subdomain is required, though, and you
909 # should use a different subdomain for every cert.
910 https_cert_testing_img_test =
913 # Manage ZenDesk content from reddit
914 ticket_provider =
915 # the domain of your support ticket provider
916 ticket_base_url =
917 # the user ID to create the contact tickets under
918 ticket_contact_user_id = 0
919 # the group name to ID for the groups defined in zendesk (comma separated list of label:numeric_ID)
920 ticket_groups =
921 # the custom fields to ID for fields created in zendesk (comma separated list of label:numeric_ID)
922 ticket_user_fields =
924 # Posting to lumendatabase.org
925 lumendatabase_org_api_base_url = https://lumendatabase.org/
926 # Facebook sharing app id
927 facebook_app_id =
929 # Client IDs of OAuth2 apps that employees may link their accounts to
930 # `client_name:client_id` pairs are used for readability.
931 employee_approved_clients =
933 # modmail email mapping from subreddit name to forwarding email address
934 modmail_forwarding_email =
936 # modmail email mapping from sender name to reddit account name
937 modmail_account_map =
939 # experiments that require the page cache to always be varied
940 global_loid_experiments =
942 # precomputed comment orders
943 precomputed_comment_sorts =
944 precomputed_comment_sort_min_comments = 0
945 precomputed_comment_suggested_sort = false
947 # once a comment has more than `comment_vote_update_threshold` votes only update
948 # scores every `comment_vote_update_period` votes.
949 # e.g. if comment_vote_update_threshold = 100 and comment_vote_update_period = 5
950 # when a comment has over 100 votes its score will be updated every 5th vote
951 comment_vote_update_threshold = 100
952 comment_vote_update_period = 1
954 #### Features
956 ## HTTPS
957 # Used to gradually redirect users to HTTPS (without HSTS or secure cookies)
958 feature_https_redirect = off
959 # Force the use of HTTPS (tell apps we want HTTPS connections only, use `Secure` cookies)
960 # effectively means `https_redirect = on` as well.
961 feature_force_https = off
962 # Take existing cookies and make them HTTPS-only (requires `force_https`)
963 feature_upgrade_cookies = off
966 feature_multireddit_customizations = off
967 # Test if `https_testing_img_test` is loaded with an acceptable HTTPS cert according to users' browsers
968 feature_test_https_certs = off
969 feature_mobile_web_targeting = {"employee": true}
970 feature_mobile_native_targeting = {"employee": true}
971 feature_pause_ads = on
972 feature_ads_auction = {"employee": true}
973 feature_cpc_pricing = off
974 feature_utm_comment_links = off