lila/conf/base.conf

529 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2021-11-06 01:27:02 -06:00
# The "secret" keys in here are for development purposes.
# None of them have ever been used in production.
# This also applies to former versions of this file, and to all other config files.
2020-07-31 03:12:57 -06:00
http.port = 9663
2020-08-13 04:20:37 -06:00
https.port = disabled
2015-10-28 05:53:22 -06:00
mongodb {
2021-09-15 01:41:10 -06:00
uri = "mongodb://127.0.0.1:27017?appName=lila"
2019-12-07 09:02:21 -07:00
mongo-async-driver = ${akka}
2021-09-16 01:37:04 -06:00
yolo {
2021-09-15 03:05:29 -06:00
uri = ${mongodb.uri}
# uri = "mongodb://127.0.0.1:27010?appName=lila&connectTimeoutMS=800&rm.maxNonQueryableHeartbeats=9999"
2021-09-15 00:37:33 -06:00
}
2015-10-28 05:53:22 -06:00
}
net {
2021-11-15 11:37:23 -07:00
domain = "deepcrayon.fish"
socket.domains = [ "deepcrayon.fish" ]
asset.domain = ${net.domain}
2021-11-15 11:37:23 -07:00
asset.base_url = "https://"${net.asset.domain}
asset.minified = false
2021-11-15 11:37:23 -07:00
base_url = "https://"${net.domain}
email = "y@deepcrayon.fish"
2016-09-25 15:48:52 -06:00
crawlable = false
2019-12-04 16:39:16 -07:00
ratelimit = true
2021-11-15 11:37:23 -07:00
prodDomain = "deepcrayon.fish"
2020-05-16 11:22:36 -06:00
http.log = true
stage.banner = false
2015-10-28 05:53:22 -06:00
}
play {
2019-12-06 09:39:42 -07:00
application.loader = "lila.app.AppLoader"
2015-10-28 05:53:22 -06:00
http {
2019-12-05 22:35:55 -07:00
requestHandler = "play.api.http.DefaultHttpRequestHandler"
2019-12-06 09:39:42 -07:00
errorHandler = provided
filters = provided
parser.maxMemoryBuffer=512KiB
2019-12-05 11:47:03 -07:00
session {
cookieName = "lila2"
maxAge = 3650 days
}
secret.key = "CiebwjgIM9cHQ;I?Xk:sfqDJ;BhIe:jsL?r=?IPF[saf>s^r0]?0grUq4>q?5mP^" # public (lila does not rely on cookie signing)
}
ws {
2021-11-15 11:37:23 -07:00
useragent = "deepcrayon.fish"
compressionEnabled = true
timeout {
connection = 5 seconds
idle = 5 minutes
request = 5 minutes
}
}
server {
2019-12-07 21:34:09 -07:00
# The maximum length of the HTTP headers. The most common effect of this is a restriction in cookie length, including
# number of cookies and size of cookie values.
max-header-size = 4096 # 8192
netty {
2019-12-07 21:34:09 -07:00
transport = "native"
# The maximum length of the initial line. This effectively restricts the maximum length of a URL that the server will
# accept, the initial line consists of the method (3-7 characters), the URL, and the HTTP version (8 characters),
# including typical whitespace, the maximum URL length will be this number - 18.
maxInitialLineLength = 2048 # 4096
}
}
2019-12-13 20:41:26 -07:00
akka {
actor-system = lila
}
}
akka {
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = INFO
# stdout-loglevel = INFO
log-dead-letters-during-shutdown = off
akka.log-dead-letters = off
2019-12-26 18:28:17 -07:00
coordinated-shutdown {
phases {
actor-system-terminate {
timeout = 5s
}
}
}
blocking-smtp-dispatcher {
executor = "thread-pool-executor"
thread-pool-executor {
2021-04-08 02:45:54 -06:00
core-pool-size-min = 8
core-pool-size-max = 64
}
}
2019-12-04 16:39:16 -07:00
}
2019-12-28 08:16:14 -07:00
app {
renderer.name = "renderer"
stage = false
}
2015-10-28 05:53:22 -06:00
api {
token = secret
2016-12-05 03:34:43 -07:00
influx_event = {
2021-11-15 11:37:23 -07:00
endpoint = "http://127.0.0.1:8086/write?db=events"
2016-12-05 03:34:43 -07:00
env = "dev"
}
2015-10-28 05:53:22 -06:00
}
accessibility {
blind {
cookie {
name = "mBzamRgfXgRBSnXB"
salt = "WWcTbz5xxaHU4d96"
}
}
}
pagerDuty {
serviceId = ""
apiKey = ""
}
prismic.api_url = "https://lichess-clone.cdn.prismic.io/api"
2015-10-28 05:53:22 -06:00
blog {
prismic = ${prismic}
2019-12-19 20:34:38 -07:00
collection = blog
2016-03-23 23:14:25 -06:00
last_post_cache.ttl = 5 minutes
2015-10-28 05:53:22 -06:00
}
chat {
2016-06-10 09:15:00 -06:00
collection {
chat = chat
timeout = chat_timeout
}
2015-10-28 05:53:22 -06:00
actor.name = chat
2016-06-10 12:20:56 -06:00
timeout {
2017-01-14 05:17:37 -07:00
duration = 15 minutes
check_every = 15 seconds
2016-06-10 12:20:56 -06:00
}
2015-10-28 05:53:22 -06:00
}
2021-02-02 13:30:36 -07:00
study.mongodb.uri = ${mongodb.uri}
2015-10-28 05:53:22 -06:00
puzzle {
mongodb {
2021-02-02 13:30:36 -07:00
uri = ${mongodb.uri}
}
2015-10-28 05:53:22 -06:00
collection {
2020-11-14 11:02:07 -07:00
puzzle = puzzle2_puzzle
round = puzzle2_round
path = puzzle2_path
2015-10-28 05:53:22 -06:00
}
}
2021-11-15 11:37:23 -07:00
storm.secret = "ph7odAw3odJalni7ewI24pNa"
2015-10-28 05:53:22 -06:00
coordinate {
collection {
score = coordinate_score
}
}
2016-08-22 16:05:10 -06:00
event {
collection {
event = event
}
}
2015-10-28 05:53:22 -06:00
video {
collection {
video = video
view = video_view
}
sheet {
2021-11-15 11:37:23 -07:00
url = "https://127.0.0.1/spreadsheets/d/e/2PACX-1vSSaZYC5lUe0o5CVydmi6imP7QIrIHB1lKGL7xlke68IjlfslOdwRr3Xs_69cwmZxn9Tkuea3MGOHXx/pub?gid=0&single=true&output=csv"
delay = 6 hours
2015-10-28 05:53:22 -06:00
}
youtube {
2021-11-15 11:37:23 -07:00
url = "https://127.0.0.1/youtube/v3/videos"
2015-10-28 05:53:22 -06:00
api_key = ""
max = 50
delay = 20 minutes
}
}
search {
enabled = false
writeable = true
endpoint = "http://localhost:9673"
}
teamSearch {
index = team
actor.name = team-search
}
relation {
collection {
relation = relation
}
limit {
2020-04-06 12:15:25 -06:00
follow = 400
2015-10-28 05:53:22 -06:00
block = 500
}
}
bookmark {
collection.bookmark = bookmark
actor.name = bookmark
}
geoip {
2020-07-23 03:43:08 -06:00
file = ""
cache_ttl = 20 minutes
2015-10-28 05:53:22 -06:00
}
security {
collection.security = security
2019-08-08 10:39:09 -06:00
collection.print_ban = print_ban
2019-11-30 00:34:21 -07:00
collection.firewall = firewall
2015-10-28 05:53:22 -06:00
flood.duration = 60 seconds
geoip = ${geoip}
password_reset {
secret = "???"
}
email_confirm {
enabled = false
2021-11-15 11:37:23 -07:00
secret = "vimm5Eab1ud9Ho3d6ouh29owAp"
2018-03-29 13:59:31 -06:00
cookie = "email_confirm"
}
email_change {
2021-11-15 11:37:23 -07:00
secret = "K2ri74bogyeipEatsh6Ir1"
2015-10-28 05:53:22 -06:00
}
login_token {
2021-11-15 11:37:23 -07:00
secret = "Slese3fevOadTy6nvac3G"
}
2015-10-28 05:53:22 -06:00
tor {
2021-11-15 11:37:23 -07:00
enabled = false
provider_url = "https://127.0.0.1/torbulkexitlist"
2016-01-05 18:27:32 -07:00
refresh_delay = 1 hour
2015-10-28 05:53:22 -06:00
}
disposable_email {
2021-10-07 03:54:08 -06:00
enabled = false
2021-11-15 11:37:23 -07:00
provider_url = "https://127.0.0.1/ornicar/disposable/publish/domains.txt"
2018-02-06 08:41:03 -07:00
refresh_delay = 10 minutes
2015-10-28 05:53:22 -06:00
}
dns_api {
2021-11-15 11:37:23 -07:00
url = "https://127.0.0.1/dns-query"
timeout = 1 seconds
}
2019-08-09 08:02:29 -06:00
check_mail_api {
2021-11-15 11:37:23 -07:00
url = "https://127.0.0.1/"
2019-08-09 08:02:29 -06:00
key = ""
}
2020-09-18 15:36:45 -06:00
ip2proxy {
enabled = false
2020-09-18 15:36:45 -06:00
url = "http://ip2proxy.lichess.ovh:1929"
}
hcaptcha = ${hcaptcha}
2019-12-10 17:44:12 -07:00
lame_name_check = true
2015-10-28 05:53:22 -06:00
}
2021-05-27 03:04:06 -06:00
mailer {
primary {
mock = true
host = "localhost"
port = 587
tls = true
user = "login@"${net.domain}
password = "???"
sender = ${net.domain}" <login@"${net.domain}">"
2021-05-27 03:04:06 -06:00
}
secondary = ${mailer.primary}
2021-05-27 03:04:06 -06:00
}
oauth {
mongodb {
uri = ${mongodb.uri}
}
}
hcaptcha {
2021-11-15 11:37:23 -07:00
endpoint = "https://127.0.0.1/siteverify"
public_key = "f91a151d-73e5-4a95-9d4e-74bfa19bec9d"
2015-10-28 05:53:22 -06:00
private_key = ""
enabled = false
2015-10-28 05:53:22 -06:00
}
shutup {
collection.shutup = shutup
actor.name = shutup
}
playban {
collection.playban = playban
}
2015-12-07 05:04:22 -07:00
push {
collection {
device = push_device
subscription = push_subscription
}
web {
2020-02-01 06:51:20 -07:00
vapid_public_key = "BGr5CL0QlEYa7qW7HLqe7DFkCeTsYMLsi1Db+5Vwt1QBIs6+WxN8066AjtP8S9u+w+CbleE8xWY+qQaNEMs7sAs="
2021-11-15 11:37:23 -07:00
url = "http://127.0.0.1:9054"
}
firebase {
2021-11-15 11:37:23 -07:00
url = "https://127.0.0.1/v1/projects/lichess-1366/messages:send"
json = ""
}
2015-10-28 05:53:22 -06:00
}
report {
2017-12-01 09:56:54 -07:00
collection.report = report2
2015-10-28 05:53:22 -06:00
actor.name = report
2017-12-04 13:56:31 -07:00
score.threshold = 50
2015-10-28 05:53:22 -06:00
}
i18n {
2019-12-28 08:17:06 -07:00
web_path.relative = public/trans
2015-10-28 05:53:22 -06:00
}
detectlanguage.api {
2019-05-22 06:57:23 -06:00
url = "https://ws.detectlanguage.com/0.2/detect"
2018-05-03 15:43:33 -06:00
key = ""
2015-10-28 05:53:22 -06:00
}
timeline {
collection {
unsub = timeline_unsub
entry = timeline_entry
}
user {
2019-12-21 22:22:26 -07:00
display_max = 10
2015-10-28 05:53:22 -06:00
actor.name = user-timeline
}
}
game {
collection {
game = game5
2016-07-12 17:27:32 -06:00
crosstable = crosstable2
matchup = matchup
2015-10-28 05:53:22 -06:00
}
captcher {
name = captcher
2018-12-13 20:01:34 -07:00
duration = 15 seconds
2015-10-28 05:53:22 -06:00
}
2020-03-05 11:40:33 -07:00
gifUrl = "http://gif.lichess.ovh:6175"
2015-10-28 05:53:22 -06:00
}
2017-12-27 21:56:36 -07:00
streamer {
collection.streamer = "streamer"
2017-12-28 14:56:58 -07:00
paginator.max_per_page = 12
2017-12-31 10:18:08 -07:00
streaming {
2021-03-02 01:19:59 -07:00
twitch {
client_id = ""
secret = ""
}
2017-12-31 10:18:08 -07:00
google.api_key = ""
2018-01-02 10:17:01 -07:00
keyword = "lichess.org"
2017-12-31 10:18:08 -07:00
}
2017-12-27 21:56:36 -07:00
}
2016-02-08 08:42:33 -07:00
explorer {
endpoint = "https://explorer.lichess.ovh"
internal_endpoint = "http://explorer.lichess.ovh"
2016-04-25 14:31:34 -06:00
tablebase = {
endpoint = "https://tablebase.lichess.ovh"
2016-04-25 14:31:34 -06:00
}
2016-02-08 08:42:33 -07:00
}
2015-10-28 05:53:22 -06:00
gameSearch {
index = game
2016-08-18 03:56:11 -06:00
paginator.max_per_page = 12
2015-10-28 05:53:22 -06:00
actor.name = game-search
}
round {
collection {
note = game_note
forecast = forecast
alarm = round_alarm
2015-10-28 05:53:22 -06:00
}
}
tournament {
collection {
tournament = tournament2
player = tournament_player
pairing = tournament_pairing
leaderboard = tournament_leaderboard
2015-10-28 05:53:22 -06:00
}
history.message.ttl = 20 seconds
2019-07-13 12:02:50 -06:00
sri.timeout = 7 seconds # small to avoid missed events
api_actor.name = tournament-api
2015-10-28 05:53:22 -06:00
pairing.delay = 3.1 seconds
}
2020-05-04 01:38:24 -06:00
swiss {
bbpairing = "/path/to/bbpPairings.exe"
}
2015-10-28 05:53:22 -06:00
simul {
2019-12-23 18:01:45 -07:00
collection.simul = simul
feature.views = 10000 # max frontpage views of simul per host per day
2015-10-28 05:53:22 -06:00
}
forum {
topic.max_per_page = 10
post.max_per_page = 10
}
forumSearch {
index = forum
paginator.max_per_page = 10
actor.name = forum-search
}
message {
thread.max_per_page = 30
collection.thread = m_thread
}
2016-08-21 01:16:41 -06:00
coach {
collection.coach = coach
2016-08-31 08:06:21 -06:00
collection.review = coach_review
2016-08-21 01:16:41 -06:00
}
2015-10-28 05:53:22 -06:00
memo {
collection {
cache = cache
config = flag
}
2021-08-30 04:32:06 -06:00
picfit {
collection = picfit_image
2021-09-01 04:57:19 -06:00
secretKey = "qix8rozsRE6Rsw5uvBjwJUCFfQhyaKbR" # request signature
2021-08-30 11:55:15 -06:00
endpointGet = "http://127.0.0.1:3001"
endpointPost = "http://127.0.0.1:3001"
2021-08-30 04:32:06 -06:00
}
}
redis {
uri = "redis://127.0.0.1"
# uri = "redis-socket:///var/run/redis/redis-server.sock"
}
socket {
redis = ${redis}
}
2019-12-03 07:41:29 -07:00
setup.max_playing = 200
2017-01-31 06:39:57 -07:00
evalCache {
2019-11-30 09:11:25 -07:00
collection.evalCache = eval_cache
2017-01-30 17:42:17 -07:00
}
2015-10-28 05:53:22 -06:00
user {
online.ttl = 7 seconds
collection {
user = user4
note = note
trophy = trophy
trophyKind = trophyKind
2016-02-20 22:03:26 -07:00
ranking = ranking
2015-10-28 05:53:22 -06:00
}
}
2016-03-11 08:23:06 -07:00
fishnet {
redis = ${redis}
2016-03-11 08:23:06 -07:00
collection {
analysis = fishnet_analysis
client = fishnet_client
}
offline_mode = true # any client can provide moves and analysis
2017-08-08 17:35:16 -06:00
actor.name = fishnet
analysis.nodes = 1500000 # sf 15 dev
2016-09-05 08:15:24 -06:00
move.plies = 300
client_min_version = "2.1.3"
2015-10-28 05:53:22 -06:00
}
2015-11-26 21:05:59 -07:00
insight {
mongodb {
2021-09-15 01:41:10 -06:00
uri = "mongodb://127.0.0.1:27017/lichess-insight?appName=lila"
}
2015-10-28 05:53:22 -06:00
}
notify {
collection.notify = notify
actor.name = notify
}
2016-06-22 15:07:38 -06:00
learn {
collection.progress = learn_progress
}
2015-10-28 05:53:22 -06:00
simulation {
enabled = false
players = 300
watchers = 200
}
2021-06-10 03:03:47 -06:00
zulip {
domain = ""
user = ""
pass = ""
}
2016-07-12 11:19:30 -06:00
plan {
stripe {
2021-11-15 11:37:23 -07:00
endpoint="https://127.0.0.1/v1"
2016-07-12 11:19:30 -06:00
keys {
2021-06-04 01:51:26 -06:00
public=""
secret=""
2016-07-12 11:19:30 -06:00
}
2021-05-31 00:17:52 -06:00
products {
monthly = "prod_JZswNwe0eLPJIU"
onetime = "prod_JZuNrVAZSUieAd"
2021-06-04 05:25:26 -06:00
gift = "prod_JboaVzGqSWzVGI"
2021-05-31 00:17:52 -06:00
}
2016-06-06 03:36:21 -06:00
}
2016-07-14 15:11:42 -06:00
paypal {
ipn_key=""
}
2016-07-12 10:33:22 -06:00
collection {
2016-07-12 11:19:30 -06:00
patron = plan_patron
charge = plan_charge
2016-07-12 10:33:22 -06:00
}
2021-06-03 01:24:15 -06:00
# https://openexchangerates.org
oer.appId = ""
2016-06-06 03:36:21 -06:00
}
2015-10-28 05:53:22 -06:00
hub {
actor {
game {
search = ${gameSearch.actor.name}
}
2019-12-28 08:16:14 -07:00
renderer = ${app.renderer.name}
2015-10-28 05:53:22 -06:00
captcher = ${game.captcher.name}
forum {
search = ${forumSearch.actor.name}
}
2016-07-25 14:34:15 -06:00
team.search = ${teamSearch.actor.name}
fishnet = ${fishnet.actor.name}
tournament.api = ${tournament.api_actor.name}
2015-10-28 05:53:22 -06:00
timeline {
user = ${timeline.user.actor.name}
}
bookmark = ${bookmark.actor.name}
report = ${report.actor.name}
shutup = ${shutup.actor.name}
chat = ${chat.actor.name}
notify = ${notify.actor.name}
2015-10-28 05:53:22 -06:00
}
}
2016-03-08 05:28:34 -07:00
kamon {
2019-12-19 20:07:28 -07:00
enabled = false
2019-12-05 20:01:24 -07:00
environment.service = "lila"
2019-12-11 10:14:01 -07:00
metric.tick-interval = 60 seconds
2016-11-17 03:41:45 -07:00
influxdb {
2019-12-20 16:30:45 -07:00
hostname = ""
2016-11-17 03:41:45 -07:00
port = 8086
2019-12-05 20:01:24 -07:00
database = "kamon"
percentiles = [50.0, 75.0, 90.0, 95.0, 99.0, 99.9]
protocol = "http"
post-empty-distributions = false
2019-12-05 20:01:24 -07:00
precision = "s"
environment-tags {
2019-12-09 18:41:55 -07:00
include-service = no
2019-12-05 20:01:24 -07:00
include-host = no
2019-12-09 18:41:55 -07:00
include-instance = yes
2016-11-17 03:41:45 -07:00
}
}
2020-03-08 21:17:46 -06:00
prometheus {
2020-03-08 21:22:09 -06:00
buckets {
default-buckets = [ 10, 100, 1000, 10000, 100000 ]
time-buckets = [ 0.01, 0.05, 0.1, 0.5, 1, 5, 10 ]
information-buckets = [ 512, 2048, 16384, 524288, ]
}
2020-03-08 21:17:46 -06:00
}
2016-03-10 05:59:03 -07:00
modules {
2019-12-05 20:01:24 -07:00
jvm-metrics.enabled = yes
process-metrics.enabled = yes
host-metrics.enabled = no
2020-03-08 21:17:46 -06:00
prometheus-reporter.enabled = yes
2016-03-08 05:28:34 -07:00
}
}
2020-01-05 09:00:50 -07:00
# Don't let play manage its own PID file
pidfile.path = "/dev/null"