4chan/config/global_config.ini
2025-04-17 14:46:47 -05:00

664 lines
18 KiB
INI

[Config - Global]
; Version suffix for production JS
; JS_VERSION is for mod.js and janitor.js
JS_VERSION = 1057
JS_VERSION_CORE = 1123
JS_VERSION_EXT = 1178
JS_VERSION_CATALOG = 1024
JS_VERSION_PAINTER = 1050
; Version suffix for production CSS
CSS_VERSION = 715
CSS_VERSION_CATALOG = 705
CSS_VERSION_FLAGS = 690
CSS_VERSION_PAINTER = 619
; This should be overriden on a per-board basis
CSS_VERSION_BOARD_FLAGS = 1
; Version suffix for /test/ CSS and JS
CSS_VERSION_TEST = 100595
JS_VERSION_TEST = 100876
; Divs where we can embed stuff
EMBEDEARLY =
EMBEDLATE =
EMBED_INDEX =
; Lockdown
LOCKDOWN = no
LOCKDOWN_MSG = Performing site maintenance. Try again in a little while.
; Temporary setting to toggle mobile adglare ads
AD_ADGLARE_MOBILE = yes
; Enable archiving of expired posts?
ENABLE_ARCHIVE = yes
; Archived threads max age in hours for archive trimming. 0 disables trimming.
ARCHIVE_MAX_AGE = 276
; Minimum delay between archive list rebuilds, in seconds
ARCHIVE_REBUILD_DELAY = 600
; Enable CAPTCHA?
CAPTCHA = yes
CAPTCHA_TWISTER = yes
; Allow credit allocation for captcha bypassing.
CAPTCHA_ALLOW_BYPASS = yes
; Cap and delete old replies in undead stickies
; Has to be > 1
STICKY_CAP = 1000
; Auto-archive threads after X replies, 0 to disable
AUTOARCHIVE_CAP = 0
; Enable pre-upload CAPTCHA?
PREUPLOAD_CAPTCHA = no
NOSCRIPT_CAPTCHA_ONLY = no
; Memcached
MEMCACHED_HOST = localhost
MEMCACHED_PORT = 11211
; Pre-upload captcha token expiration (seconds)
CAPTCHA_TOKEN_TTL = 240
; CloudFlare API
CLOUDFLARE_PURGE_ON_DEL = yes
CLOUDFLARE_EMAIL = cloudflare@4chan.org
CLOUDFLARE_ZONE = 4chan.org
CLOUDFLARE_ZONE_2 = 4cdn.org
; Detect and handle embedded data in file uploads:
; - Rejects PNGs and JPGs.
; - Removes embedded data from GIFs, modifying the original file.
CLEANUP_UPLOADS = yes
; Stats logging
STATS_USER_JS = no
; Various enhancements
NEW_HTML = yes
CODE_TAGS = no
SJIS_TAGS = no
NEW_CAPTCHA = no
META_BOARD = no
CAN_REPORT_POSTS = yes
ENABLE_CATALOG = yes
; TRIPCODE_CHARSET = CP932
; Upload board like /f/
UPLOAD_BOARD = no
; rebuildd stuff
STATIC_REBUILD = no
IS_REBUILDD = no
; how many rebuilds before we also rebuild the catalog
CATALOG_DAEMON_REBUILD_INTERVAL = 6
; JSON Stuff
ENABLE_JSON = yes
ENABLE_JSON_INDEXES = yes
ENABLE_JSON_CATALOG = yes
ENABLE_JSON_THREADS = yes
; number of posts to include in partial JSON files. 0 to disable.
JSON_TAIL_SIZE = 0
; rebuildd timers
MAX_REBUILD_TIMER = 8
MIN_REBUILD_TIMER = 2
; admin and janitor JS extension filenames
ADMIN_JS_PATH = 9a9f422e4fc10c549b9e2c6519433d76
JANITOR_JS_PATH = dbb7da08ac5a75139c3cd257870ae466
; Block posting if ban request pending?
; BR Detection (huehuehuehue)
BLOCK_ON_BR = yes
; MYSQL DATE_SUB(NOW(), --> BLOCK_ON_BR_LEN <-- )
BLOCK_ON_BR_LEN = INTERVAL 15 MINUTE
; 4chan pass stuff
; pass timeout in seconds
PASS_TIMEOUT = 1800
; Text-only mode
TEXT_ONLY = no
; Allow thread OPs to have files when in TEXT_ONLY mode
TEXT_ONLY_ALLOW_OP = no
; Permasage threads after X hours. 0 to disable.
PERMASAGE_HOURS = 0
; Regex for comment validation.
COM_REGEX = no
; Use inference server to detect NSFW content.
; 0 = disabled, 1 = OPs only, 2 = All posts
TENSORCHAN_MODE = 0
; Input image dimensions
TENSORCHAN_DIM = 300
; Threshold for blocking (float 0.5 to 1.0)
TENSORCHAN_THRES = 0.92
; Don't block, only log
TENSORCHAN_LOG_ONLY = yes
[Limits]
; Maximum number of entries before oldest thread is pruned
LOG_MAX = 700
; Maximum number of pages (overrides LOG_MAX; 0 = disable)
PAGE_MAX = 10
; Threads per page
DEF_PAGES = 15
; Number of bumps
MAX_RES = 300
; Maximum number of replies shown to a thread on index pages
REPLIES_SHOWN = 5
; Maximum number of lines shown on index pages
MAX_LINES_SHOWN = 15
; Maximum number of lines allowed in a post
MAX_LINES = 70
; Maximum comment length
MAX_COM_CHARS = 2000
; For mods+
MAX_COM_CHARS_AUTHED = 10000
; Maximum amount of image replies in a thread
MAX_IMGRES = 150
; Maximum upload size in KB
MAX_KB = 4096
; Minimum dimensions of an image
MIN_W = 1
MIN_H = 1
; Maximum width or height of an image (MUST be 11000 or less)
MAX_DIMENSION = 10000
; Only allow gifs
GIF_ONLY = no
; Resize images for mobile
MOBILE_IMG_RESIZE = no
; Enable webm support
ENABLE_WEBM = yes
; Allow audio streams in webm
ENABLE_WEBM_AUDIO = no
; Maximum width or height of a video stream
MAX_WEBM_DIMENSION = 2048
; Maximum duration of a video stream in seconds
MAX_WEBM_DURATION = 120
; Maximum filesize for webm files. Must be <= MAX_KB
MAX_WEBM_FILESIZE = 4096
; maximum number of threads per user, per board
MAX_USER_THREADS = 5
; period for user thread limit, in hours
MAX_USER_THREADS_PERIOD = 24
; maximum number of reposted live reply images, 0 for no limit
MAX_IMG_REPOST_COUNT = 0
; Seconds between posts
RENZOKU = 60
; Seconds between image posts
RENZOKU2 = 60
; Seconds between intra thread posts
RENZOKU_INTRA = 60
; Seconds between intra thread image posts
RENZOKU2_INTRA = 60
; Seconds between new threads
RENZOKU3 = 600
; Seconds between duplicate comments and images
; (for shared IPs)
RENZOKU_DUPE = 300
; Seconds between sage posts
RENZOKU_SAGE = 120
; Seconds before you can delete a new post
RENZOKU_DEL = 60
; Seconds after which you cannot delete a post
RENZOKU_DEL_CANT_AFTER = 1800
; Number of posts you can delete per hour
RENZOKU_DEL_HOURLY = 2
; Number of posts you can delete per day
RENZOKU_DEL_DAILY = 10
; Number of reports you can make per hour (was 30 then 50)
RENZOKU_REP_HOURLY = 30
; Number of reports you can make per day (was 80 then 100)
RENZOKU_REP_DAILY = 80
; FIXME: unused
RENZOKU_REP_DAILY_SOFT = 15
; Sage OPs replies if the length since their last post is too short
RENZOKU_OP = yes
; Time in seconds after thread creation during which the OP cannot bump his thread
RENZOKU_OP_TIME = 900
; OP can only bump his thread every RENZOKU_OP_TIME2 seconds
RENZOKU_OP_TIME2 = 300
; Seconds between any request from the same IP (currently unused)
RENZOKU_REQ = 5
; Anti flood interval in minutes for thread creation
ANTI_FLOOD_INTERVAL = 5
; Anti flood threshold for threads. If the number of recent suspicous threads is >= this value, the post will be blocked
ANTI_FLOOD_THRES = 3
; Same as above but for replies, per thread. FIXME: ALT no longer used
ANTI_FLOOD_INTERVAL_REP = 6
ANTI_FLOOD_THRES_REP = 3
ANTI_FLOOD_INTERVAL_REP_ALT = 10
ANTI_FLOOD_THRES_REP_ALT = 6
; Same as above but for the whole board
ANTI_FLOOD_INTERVAL_GLOBAL = 5
ANTI_FLOOD_THRES_GLOBAL = 7
; Same as above but for the whole site
ANTI_FLOOD_INTERVAL_SITE = 3
ANTI_FLOOD_THRES_SITE = 30
; Secondary anti flood interval and threshold for threads (only the IP's posting history and cookie used here)
ANTI_FLOOD_INTERVAL_RAW = 3
ANTI_FLOOD_THRES_RAW = 5
; Anti flood interval in minutes and threshold for replies per thread
ANTIFLOOD_INTERVAL_REPLY = 5
ANTIFLOOD_THRES_REPLY = 6
; Anti flood interval in minutes and threshold for thread creation
ANTIFLOOD_INTERVAL_OP = 5
ANTIFLOOD_THRES_OP = 4
; reCAPTCHA failures
;CAPTCHA_FAIL_HOURLY = 15
;CAPTCHA_FAIL_DAILY = 45
CAPTCHA_FAIL_HOURLY = 60
CAPTCHA_FAIL_DAILY = 120
; number of times a person can fail login AND FLOOD CHECKS before being banned
LOGIN_FAIL_HOURLY = 10
; Refuse text only posts (yes = refuse them, no = allow them!)
NO_TEXTONLY = yes
; Remove the threads least recently replied to
EXPIRE_NEGLECTED = yes
; New threads require subject lines
REQUIRE_SUBJECT = no
; Reduce occurrence of doubles by re-inserting once
SKIP_DOUBLES = no
; Don't allow user deletion of threads
NO_DELETE_OP = no
; Don't allow user deletion of replies
NO_DELETE_REPLY = no
[General Locations]
; The default value for BOARD_DIR is automatically set by config.php.
; it can be overridden, but it can't be defined as any useful value in this file.
; Directory name of this board relative to DOCUMENT_ROOT
; e.g. "b", "e", "hr"
BOARD_DIR =
; The title of the image board
TITLE = Yotsuba Image Board
; The board's category
CATEGORY =
; Table for this board's posts
SQLLOG = {{BOARD_DIR}}
; Where is yotsuba/?
YOTSUBA_DIR = /www/global/yotsuba/
; Paths of header and fooder
NAV_TXT = /www/global/yotsuba/header.txt
NAV2_TXT = /www/global/yotsuba/footer.txt
NAV3_TXT = /www/global/yotsuba/header-sys.txt
; Text to be shown at the top of each board
GLOBAL_MSG_FILE = /www/global/yotsuba/globalmsg.txt
; Text to be shown to the right of board rules
DONATE =
; Text to be shown to the right of board rules, on index pages and catalog only
DONATE_INDEX =
; Paths of saltfile for secure tripcodes
SALTFILE = /www/keys/legacy.salt
; Main domain used for linking to non-board pages
MAIN_DOMAIN = 4chan.org
; Server locations
STATIC_SERVER = //s.4cdn.org/
DATA_SERVER = //boards.4chan.org/
PHP_SERVER = https://sys.4chan.org/
IMG_SERVER = //i.4cdn.org/
; internal folder locations
BOARDS_ROOT = /www/4chan.org/web/boards/
DATA_ROOT = /www/4chan.org/web/boards/{{BOARD_DIR}}/
IMG_ROOT = /www/4chan.org/web/images/{{BOARD_DIR}}/
THUMB_ROOT = /www/4chan.org/web/thumbs/{{BOARD_DIR}}/
SYS_ROOT = /www/4chan.org/web/sys
BANTHUMB_ROOT = /www/4chan.org/web/images/bans/thumb/
BANIMG_ROOT = /www/4chan.org/web/images/bans/src/
INDEX_DIR = {{DATA_ROOT}}
IMG_DIR = {{IMG_ROOT}}
IMG_DIR2 = {{IMG_SERVER}}{{BOARD_DIR}}/
THUMB_DIR = {{THUMB_ROOT}}
RES_DIR = {{DATA_ROOT}}thread/
BANTHUMB_DIR = {{BANTHUMB_ROOT}}{{BOARD_DIR}}/
; link to /image/ (for closed.gif, filedeleted, etc)
STATIC_IMG_DIR2 = {{STATIC_SERVER}}image/
; image URLs, note RES_DIR2 is not an absolute URL atm
THUMB_DIR2_PART = i.4cdn.org/{{BOARD_DIR}}/
THUMB_DIR2 = //{{THUMB_DIR2_PART}}
RES_DIR2 = thread/
; Name of the script
SELF_PATH = imgboard.php
; Name of the first index page in a url
SELF_PATH2 = ./
; the extension of saved HTML files
PHP_EXT = .html
; the suffix of HTML files in the URLs
; might be nothing if there's rewrites
PHP_EXT2 =
; Path to first index page
SELF_PATH2_FILE = {{DATA_ROOT}}imgboard.html
; Path to URL for posting
SELF_PATH_POST = {{PHP_SERVER}}{{BOARD_DIR}}/post
SELF_PATH_DEL = {{PHP_SERVER}}{{BOARD_DIR}}/delete
; URL to imgboard.php
SELF_PATH_ABS = {{PHP_SERVER}}{{BOARD_DIR}}/{{SELF_PATH}}
SELF_PATH_DEL = {{PHP_SERVER}}{{BOARD_DIR}}/delete
; URL to index.html
SELF_PATH2_ABS = {{DATA_SERVER}}{{BOARD_DIR}}/{{SELF_PATH2}}
; URL to /catalog
PHP_CATA_ABS = {{DATA_SERVER}}{{BOARD_DIR}}/catalog
; link to Home
HOME = ../
[Features and related config]
; Moderator pass
ADMIN_PASS = DISHSIS
; Janitor pass
ADMIN_PASS2 = BISCUITS
; Display title (0: no image, 1: random image from sql, 2: random image via TITLEIMG, click for different image)
TITLE_IMAGE_TYPE = 1
; URL of title image
TITLEIMG = //sys.4chan.org/image/title/rid.php
; Show blotter (including show/hide controls)
SHOW_BLOTTER = yes
; Enable spoilers
SPOILERS = no
; URL of thumbnail for spoilers
SPOILER_THUMB = {{STATIC_IMG_DIR2}}spoiler.png
; How many custom spoilers?
SPOILER_NUM = 0
; Enable thumbnailing
USE_THUMB = yes
; Images bigger than these dimensions will be thumbnailed
MAX_W = 250
MAX_H = 250
; Reply images bigger than these dimensions will be thumbnailed
MAXR_W = 125
MAXR_H = 125
; Enable wordfilters
WORD_FILT = yes
; HTML Purifier whitelist string. See HTML Purifier doc.
HTML_WHITELIST = a[href|target],video[autoplay|controls|height|loop|muted|src|width],div,br,p,s,strong,em,span,b,u,i,li,ul,ol,img[src|alt|width|height],iframe[width|height|src|frameborder|allowfullscreen|scrolling],*[style|title|class]
; HTML Purifier iframe src whitelist. Regex. See HTML Purifier doc.
HTML_IFRAME_WHITELIST = %^(https?:)?//www\.youtube(-nocookie)?\.com/embed/%
; Pass-only boards
PASS_POST_ONLY = no
; Enable recording of seconds in the date (changing this does not affect old posts)
SHOW_SECONDS = yes
; Show number of unique IPs in the post log
SHOW_UNIQUES = no
; Show number of unique posters inside threads
SHOW_THREAD_UNIQUES = no
; Enable fortune-teller (use #fortune as tripcode)
FORTUNE_TRIP = no
; Hide name and subject field
FORCED_ANON = no
; Enable EXIF parsing during post (needs /www/global/bin/exiftags)
ENABLE_EXIF = no
; Allow PDF upload and thumbnailing (needs /usr/local/bin/gs)
ENABLE_PDF = no
; Show poster's unique ID based on IP and date, if Options field is blank
DISP_ID = no
; If DISP_ID is enabled, stop ID from being Heaven when sage is used
DISP_ID_NO_HEAVEN = no
; If DISP_ID is enabled, make IDs per-thread instead of per-board?
DISP_ID_PER_THREAD = yes
; Show random IDs instead of ones based on IP
DISP_ID_RANDOM = no
; Save X-Forwarded-For proxies in xff table
SAVE_XFF = no
; Trick people who post 'sage' in every field by removing it from the Options
SAGE_FILTER = no
; Default to burichan.css (for worksafe boards)
DEFAULT_BURICHAN = no
; Plugin system (testing)
PLUGIN_DIR = /www/global/yotsuba/plugins/
; Log rapidshare links
;PLUGINS = filedumpidx
; Save index.rss file
USE_RSS = yes
; Put party hats on images :)
PARTY = no
;PARTY_IMAGE = partyhat.gif
PARTY_IMAGE = xmashat.gif
; Event CSS. Name must correspond to a stylesheet file.
;CSS_EVENT_NAME = tomorrow
CSS_EVENT_VERSION = 1
; April 2016 cfg
;CSS_FORCE = //s.4cdn.org/css/yotsubluenew.647.css
;CSS_MATERIAL = yes
; Force comment text
FORCE_COM = no
FORCE_COM_TEXT =
; Show country flags next to names
SHOW_COUNTRY_FLAGS = no
; Alternate trolling flags for above
; Only works on /pol/, will break other boards. Requires SHOW_COUNTRY_FLAGS.
USE_TROLL_FLAGS = no
; User selectable flags. Will break boards without the board_flag table column.
ENABLE_BOARD_FLAGS = no
; Enable janitor board features
JANITOR_BOARD = no
; Enable JS oekaki app
ENABLE_PAINTERJS = no
; Default dimensions in pixels for JS oekaki app
PAINTERJS_DIMS = 400
; Allow oekaki replays
ENABLE_OEKAKI_REPLAYS = no
; Enable "Ban entire thread" feature in the ban panel
THREAD_BANNING = yes
; Prevent redundant updating of imgboard.html
; ('no' or number of seconds to let imgboard.html get out of date during a flood)
UPDATE_THROTTLING = no
; Auto-deletion limits
REPORTS_AUTODELETE_ENABLED = no
; Delete a post after this many reports
REPORTS_AUTODELETE = 50
; Delete a post after this many illegal reports
REPORTS_AUTODELETE_ILLEGAL = 25
; Maximum number of illegal reports one IP can make (FIXME: unused)
REPORTS_MAX_ILLEGAL = 25
; Maximum number of reports an IP can make (FIXME: unused)
REPORTS_MAX = 100
; Note there is a hardcoded limit of 1 minute between reports
; Text to go inside of the meta-robots tag
META_ROBOTS = noarchive
; Text to go inside of the meta-description tag
META_DESCRIPTION =
; Text to go inside of the meta-keywords tag
META_KEYWORDS =
; log rapidshare links to rapidsearch queue
RAPIDSEARCH_LOGGING = no
; Generatic static gzipped HTML files
USE_GZIP = yes
; URL of the favicon to link to
; No rel=icon is emitted if not defined
;FAVICON = /favicon.ico
; whether to forward HTML deletion/rebuild
; to a php process on the static server
; 'no' if not, the hostname of the server if yes
REMOTE_HTML_HOST = no
; whether to load jsMath
JSMATH = no
; Shouldn't this be in the database config file and not here?
; RS database details
;RS_HOST = db2.int
;RS_USER = rs
;RS_PASS = f00n3rs1
;RS_DB = rs
; Record posts to post_log
RECORD_POSTS = no
; is test
TEST_BOARD = no
; where xhprof is
XHPROF_ROOT = /www/php_xhprof
; Strip EXIF tags from images
; for privacy, but changes MD5s!
STRIP_EXIF = yes
; Strip EXIF tags from images when capcode is active
STRIP_EXIF_ON_CAPCODE = yes
; Strip tripcodes from names
STRIP_TRIPCODE = no
; Strip email addresses (sage still works)
STRIP_EMAILS = no
; le reddit mode XD
UPVOTES = no
USE_SRC_CGI = no
SORT_NATURAL = no
PROFILING = no
; show last digit of no twice
FAKE_DOUBLES = no
; Allow rolling of dice
DICE_ROLL = no
; Allow text markup for OPs
OP_MARKUP = no
[Advertisements]
; Show plea if ads are blocked?
AD_PLEA = yes
AD_PLEA_TEXT = Please <a class="aplnk" href="//www.4chan.org/news?all#109" target="_blank">support 4chan</a> by disabling your ad blocker on *.4chan.org/*, <a class="aplnk" href="https://www.4chan.org/advertise?selfserve" target="_blank">purchasing a self-serve ad</a>, or <a class="aplnk" href="https://www.4chan.org/pass" target="_blank">buying a 4chan Pass</a>.
; Ad tag for archives
ARCHIVE_AD_TAG = <!-- BEGIN TAG - HEAD --> <script type="text/javascript"> /*<![CDATA[*/ if(!(window.EpmadsConfig && window.EpmadsConfig.ads)) window.EpmadsConfig = {ads:[]}; EpmadsConfig.ads.push({ epmads_key:"db1dd151ba547f5217d4ab86336c88b8", epmads_channel: "", epmads_code_format:"ads-async.js", epmads_click:"", epmads_custom_params:{}, epmads_target_id:"epmads-db1dd151ba547f5217d4ab86336c88b8" }); (function () { var sc = document.createElement("script"); sc.type = "text/javascript"; sc.async = true; sc.src = (location.protocol == "https:" ? "https:" : "http:") + "//www.adspleen.com\/js\/show_ads_epmads.js?pubId=26899"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(sc, s); })(); /*]]>*/ </script> <!-- END TAG - HEAD --> <!-- BEGIN TAG - BODY --> <div id="epmads-db1dd151ba547f5217d4ab86336c88b8"></div> <!-- END TAG - BODY -->
; Div to embed ad code in head (JavaScript)
AD_EMBEDEARLY =
; Location of file for anti adblock js tag
AD_ADBLOCK_TEXT =
;AD_ADBLOCK_TEXT =
; Inter thread ads on index pages
AD_INTERTHREAD_ENABLED = no
AD_INTERTHREAD_TAG = <div class="jla-it"><script type="text/javascript" src="//v.4chan.org/bbs.php"></script><div class="jla-it-p">Advertisement</div></div>
; Show top ad (728x90)
AD_TOP_ENABLED = no
; Table name for top ad
AD_TOP_TABLE =
; Location of file for top ad (overrides table)
AD_TOP_TEXT =
; Plea for top ad
;AD_TOP_PLEA = <div class="ad-plea ad-plea-top jlist-link">[Ads] <a href="https://jlist.com/4chan" target="_blank" title="Ads">Huge black Friday sale at daily list, Oniichan!</a></div>
AD_TOP_PLEA =
; Show middle ad (468x60)
AD_MIDDLE_ENABLED = no
; Table name for middle ad
AD_MIDDLE_TABLE =
; Location of file for middle ad (overrides table)
AD_MIDDLE_TEXT =
; Plea for middle ad
AD_MIDDLE_PLEA =
; Show top ad (728x90)
AD_BOTTOM_ENABLED = no
; Table name for bottom ad
AD_BOTTOM_TABLE =
; Location of file for bottom ad (overrides table)
AD_BOTTOM_TEXT =
; Plea for bottom ad
AD_BOTTOM_PLEA = <div class="ad-plea ad-plea-bottom">[<a href="https://www.4chan.org/advertise?selfserve" target="_blank" title="4chan Self-Serve Ads">Advertise on 4chan</a>]</div>
FIXED_LEFT_AD = no
FIXED_RIGHT_AD = no
THREAD_AD = no
RTA = no