parent
6950c2c689
commit
29cf90750a
|
@ -1,5 +1,4 @@
|
|||
conf/application.conf
|
||||
conf/base.conf
|
||||
logs
|
||||
project/project
|
||||
project/target
|
||||
|
|
|
@ -0,0 +1,630 @@
|
|||
mongodb {
|
||||
uri = "mongodb://127.0.0.1:27017/lichess"
|
||||
mongo-async-driver = {}
|
||||
}
|
||||
net {
|
||||
domain = "lichess.org"
|
||||
protocol = "http://"
|
||||
base_url = ${net.protocol}${net.domain}
|
||||
base_en_url = ${net.protocol}en.${net.domain}
|
||||
ip = "5.196.91.160"
|
||||
asset {
|
||||
domain = ${net.domain}
|
||||
version = 723
|
||||
}
|
||||
}
|
||||
play {
|
||||
server {
|
||||
netty {
|
||||
# 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
|
||||
|
||||
# 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.
|
||||
maxHeaderSize = 4096 # 8192
|
||||
}
|
||||
}
|
||||
i18n {
|
||||
langs=[en,fr,ru,de,tr,sr,lv,bs,da,es,ro,it,fi,uk,pt,pl,nl,vi,sv,cs,sk,hu,ca,sl,az,nn,eo,tp,el,fp,lt,nb,et,hy,af,hi,ar,zh,gl,hr,mk,id,ja,bg,th,fa,he,mr,mn,cy,gd,ga,sq,be,ka,sw,ps,is,kk,io,gu,fo,eu,bn,id,la,jv,ky,pi,as,le,ta,sa,ml,kn,ko,mg,kb,zu,ur,yo,tl,fy,jb]
|
||||
}
|
||||
http {
|
||||
session {
|
||||
cookieName = "lila2"
|
||||
maxAge = 365 days
|
||||
}
|
||||
}
|
||||
ws {
|
||||
useragent = ${net.base_url}
|
||||
compressionEnabled = true
|
||||
timeout {
|
||||
connection = 5 seconds
|
||||
idle = 5 minutes
|
||||
request = 5 minutes
|
||||
}
|
||||
}
|
||||
crypto {
|
||||
secret="CiebwjgIM9cHQ;I?Xk:sfqDJ;BhIe:jsL?r=?IPF[saf>s^r0]?0grUq4>q?5mP^"
|
||||
}
|
||||
}
|
||||
app {
|
||||
scheduler {
|
||||
disabled = ${ai.server-only}
|
||||
debug = false
|
||||
}
|
||||
renderer.name = "renderer"
|
||||
router.name = "router"
|
||||
web_path = "public"
|
||||
casual_only = false
|
||||
}
|
||||
api {
|
||||
token = secret
|
||||
}
|
||||
cli {
|
||||
username = "thibault"
|
||||
}
|
||||
chessground {
|
||||
animation {
|
||||
duration = 250 ms
|
||||
}
|
||||
}
|
||||
editor {
|
||||
animation.duration = ${chessground.animation.duration}
|
||||
}
|
||||
accessibility {
|
||||
blind {
|
||||
cookie {
|
||||
name = "mBzamRgfXgRBSnXB"
|
||||
salt = "WWcTbz5xxaHU4d96"
|
||||
max_age = 31536000 # one year
|
||||
}
|
||||
}
|
||||
}
|
||||
prismic {
|
||||
api_url = "https://lichess.cdn.prismic.io/api"
|
||||
}
|
||||
blog {
|
||||
prismic {
|
||||
api_url = ${prismic.api_url}
|
||||
collection = blog
|
||||
}
|
||||
notify {
|
||||
delay = 20 minutes
|
||||
sender = "lichess-blog"
|
||||
}
|
||||
last_post_cache.ttl = 10 minutes
|
||||
rss {
|
||||
email = "lichess.contact@gmail.com"
|
||||
}
|
||||
}
|
||||
qa {
|
||||
collection {
|
||||
question = qa_question
|
||||
answer = qa_answer
|
||||
}
|
||||
notifier.sender = lichess-qa
|
||||
}
|
||||
donation {
|
||||
collection.donation = donation
|
||||
monthly_goal = 43500
|
||||
server_donors = [ drazak, jaldus, intenex, thibault ]
|
||||
}
|
||||
chat {
|
||||
collection.chat = chat
|
||||
max_lines = 50
|
||||
net.domain = ${net.domain}
|
||||
actor.name = chat
|
||||
}
|
||||
puzzle {
|
||||
collection {
|
||||
puzzle = puzzle
|
||||
attempt = puzzle_attempt
|
||||
}
|
||||
api.token = ${api.token}
|
||||
selector {
|
||||
anon_min_rating = 30
|
||||
max_attempts = 10000
|
||||
}
|
||||
animation.duration = ${chessground.animation.duration}
|
||||
png.exec_path = "submodules/boardcreator"
|
||||
}
|
||||
coordinate {
|
||||
collection {
|
||||
score = coordinate_score
|
||||
}
|
||||
}
|
||||
opening {
|
||||
collection {
|
||||
opening = opening
|
||||
attempt = opening_attempt
|
||||
name = opening_name
|
||||
}
|
||||
selector {
|
||||
tolerance = {
|
||||
step = 160
|
||||
max = 1000
|
||||
}
|
||||
modulo = 20000
|
||||
}
|
||||
animation.duration = ${chessground.animation.duration}
|
||||
api.token = ${api.token}
|
||||
}
|
||||
video {
|
||||
collection {
|
||||
video = video
|
||||
view = video_view
|
||||
}
|
||||
sheet {
|
||||
url = "https://spreadsheets.google.com/feeds/list/1qYU1XhvC8TlBggXEkjI481ieNGyYGmMTy97A9iboyrM/2/public/values?alt=json"
|
||||
delay = 3 hour
|
||||
}
|
||||
youtube {
|
||||
url = "https://www.googleapis.com/youtube/v3/videos"
|
||||
api_key = ""
|
||||
max = 50
|
||||
delay = 20 minutes
|
||||
}
|
||||
}
|
||||
search {
|
||||
enabled = false
|
||||
writeable = true
|
||||
endpoint = "http://localhost:9673"
|
||||
}
|
||||
team {
|
||||
collection{
|
||||
team = team
|
||||
member = team_member
|
||||
request = team_request
|
||||
}
|
||||
notifier.sender = lichess-team
|
||||
paginator.max_per_page = 15
|
||||
paginator.max_user_per_page = 24
|
||||
}
|
||||
teamSearch {
|
||||
index = team
|
||||
paginator.max_per_page = ${team.paginator.max_per_page}
|
||||
actor.name = team-search
|
||||
}
|
||||
relation {
|
||||
collection {
|
||||
relation = relation
|
||||
}
|
||||
actor {
|
||||
name = relation-actor
|
||||
notify_freq = 2 seconds
|
||||
}
|
||||
limit {
|
||||
follow = 300
|
||||
block = 500
|
||||
}
|
||||
}
|
||||
pref {
|
||||
collection.pref = pref
|
||||
cache.ttl = 30 minutes
|
||||
}
|
||||
bookmark {
|
||||
collection.bookmark = bookmark
|
||||
paginator.max_per_page = ${game.paginator.max_per_page}
|
||||
actor.name = bookmark
|
||||
}
|
||||
analyse {
|
||||
collection.analysis = analysis2
|
||||
net.domain = ${net.domain}
|
||||
cached.nb.ttl = ${game.cached.nb.ttl}
|
||||
paginator.max_per_page = ${game.paginator.max_per_page}
|
||||
actor.name = analyser
|
||||
}
|
||||
geoip {
|
||||
file = ""
|
||||
cache_ttl = 1 hour
|
||||
}
|
||||
security {
|
||||
collection.security = security
|
||||
flood.duration = 60 seconds
|
||||
firewall {
|
||||
enabled=true
|
||||
cached.ips.ttl = 10 minutes
|
||||
cookie {
|
||||
enabled = false
|
||||
name=fEKHA4zI74ZrZrom
|
||||
}
|
||||
collection.firewall = firewall
|
||||
}
|
||||
geoip = ${geoip}
|
||||
password_reset {
|
||||
mailgun = ${mailgun}
|
||||
secret = "???"
|
||||
}
|
||||
email_confirm {
|
||||
mailgun = ${mailgun}
|
||||
secret = "???"
|
||||
}
|
||||
tor {
|
||||
provider_url = "https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip="${net.ip}"&port=80"
|
||||
refresh_delay = 2 hour
|
||||
}
|
||||
disposable_email {
|
||||
provider_url = "https://raw.githubusercontent.com/ornicar/disposable-email-domains/master/index.json"
|
||||
refresh_delay = 1 hour
|
||||
}
|
||||
recaptcha = ${recaptcha}
|
||||
whois {
|
||||
key = "matewithknightandbishop"
|
||||
}
|
||||
}
|
||||
recaptcha {
|
||||
endpoint = "https://www.google.com/recaptcha/api/siteverify"
|
||||
public_key = "6LeMhwsTAAAAAElD4KwTo_IUmqIXqx7hkSLLaNSP"
|
||||
private_key = ""
|
||||
}
|
||||
shutup {
|
||||
collection.shutup = shutup
|
||||
actor.name = shutup
|
||||
}
|
||||
playban {
|
||||
collection.playban = playban
|
||||
}
|
||||
worldMap {
|
||||
geoip = ${geoip}
|
||||
players.cache_size = 8192
|
||||
}
|
||||
mod {
|
||||
collection {
|
||||
modlog = modlog
|
||||
player_assessment = player_assessment
|
||||
boosting = boosting
|
||||
}
|
||||
boosting.nb_games_to_mark = 5
|
||||
boosting.ratio_games_to_mark = 0.01
|
||||
actor.name = mod
|
||||
}
|
||||
report {
|
||||
collection.report = report
|
||||
actor.name = report
|
||||
}
|
||||
i18n {
|
||||
web_path.relative = ${app.web_path}/trans
|
||||
file_path.relative = "conf"
|
||||
upstream.url_pattern = "http://en.lichess.org/translation/fetch/%d"
|
||||
hide_calls.cookie {
|
||||
name="hide_i18n_calls"
|
||||
max_age=604800 # one week
|
||||
}
|
||||
collection.translation = translation
|
||||
request_handler.protocol = ${net.protocol}
|
||||
context.git {
|
||||
url = "git://github.com/ornicar/lila.wiki.git"
|
||||
file = "translation_context.md"
|
||||
}
|
||||
cdn_domain = ${net.asset.domain}
|
||||
call.threshold = 4500
|
||||
}
|
||||
detectlanguage.api {
|
||||
url = "http://ws.detectlanguage.com/0.2/detect"
|
||||
key = "???"
|
||||
}
|
||||
mailgun {
|
||||
api {
|
||||
url = "???"
|
||||
key = "???"
|
||||
}
|
||||
sender = "lichess.org <noreply@mail.lichess.org>"
|
||||
base_url = ${net.base_url}
|
||||
}
|
||||
monitor {
|
||||
actor.name = monitor-actor
|
||||
socket.name = monitor-socket
|
||||
socket.uid.ttl = ${site.socket.uid.ttl}
|
||||
channel.move_lat = monitor-move-lat
|
||||
}
|
||||
lobby {
|
||||
message.ttl = 30 seconds
|
||||
orphan_hook.ttl = 5 seconds
|
||||
socket {
|
||||
name = lobby-socket
|
||||
uid.ttl = ${site.socket.uid.ttl}
|
||||
}
|
||||
actor.name = lobby-actor
|
||||
net.domain = ${net.domain}
|
||||
broom_period = 1 second
|
||||
resync_ids_period = 15 seconds
|
||||
collection.seek = seek
|
||||
collection.seek_archive = seek_archive
|
||||
seek {
|
||||
max_per_page = 14
|
||||
max_per_user = 5
|
||||
}
|
||||
}
|
||||
timeline {
|
||||
collection {
|
||||
unsub = timeline_unsub
|
||||
entry = timeline_entry
|
||||
}
|
||||
user {
|
||||
display_max = 12
|
||||
actor.name = user-timeline
|
||||
}
|
||||
}
|
||||
game {
|
||||
cached.nb.ttl = 1 hour
|
||||
paginator.max_per_page = 9
|
||||
collection {
|
||||
game = game5
|
||||
crosstable = crosstable
|
||||
}
|
||||
js_path {
|
||||
raw = public/javascripts/big.js
|
||||
compiled = public/compiled/big.js
|
||||
}
|
||||
actor.name = game-actor
|
||||
captcher {
|
||||
name = captcher
|
||||
duration = 7 seconds
|
||||
}
|
||||
net.base_url = ${net.base_url}
|
||||
uci_memo.ttl = 2 minutes
|
||||
pdf.exec_path = "submodules/pdfexporter"
|
||||
png.exec_path = "submodules/boardcreator"
|
||||
}
|
||||
tv {
|
||||
featured {
|
||||
select = 3 seconds
|
||||
}
|
||||
streaming {
|
||||
search = 15 seconds
|
||||
}
|
||||
}
|
||||
gameSearch {
|
||||
index = game
|
||||
paginator.max_per_page = ${game.paginator.max_per_page}
|
||||
actor.name = game-search
|
||||
}
|
||||
round {
|
||||
active.ttl = 30 seconds
|
||||
uid.timeout = 10 seconds
|
||||
finisher.lock.timeout = 20 seconds
|
||||
animation.duration = ${chessground.animation.duration}
|
||||
moretime = 15 seconds
|
||||
casual_only = ${app.casual_only}
|
||||
player {
|
||||
disconnect.timeout = 90 seconds
|
||||
ragequit.timeout = 10 seconds
|
||||
}
|
||||
socket {
|
||||
name = round-socket
|
||||
timeout = 30 seconds
|
||||
}
|
||||
actor.map.name = round-map
|
||||
collection {
|
||||
note = game_note
|
||||
history = round_history
|
||||
forecast = forecast
|
||||
}
|
||||
net.domain = ${net.domain}
|
||||
}
|
||||
tournament {
|
||||
collection {
|
||||
tournament = tournament2
|
||||
player = tournament_player
|
||||
pairing = tournament_pairing
|
||||
}
|
||||
history.message.ttl = 30 seconds
|
||||
uid.timeout = 7 seconds # small to avoid missed events
|
||||
socket {
|
||||
name = tournament-socket
|
||||
timeout = 2 minutes
|
||||
}
|
||||
organizer.name = tournament-organizer
|
||||
reminder.name = tournament-reminder
|
||||
sequencer {
|
||||
map_name = tournament-sequencers
|
||||
timeout = 10 minutes
|
||||
}
|
||||
pairing.delay = 3.1 seconds
|
||||
created.cache.ttl = 2 seconds
|
||||
leaderboard.cache.ttl = 1 hour
|
||||
ranking.cache.ttl = 1 hour
|
||||
net.domain = ${net.domain}
|
||||
}
|
||||
simul {
|
||||
collection {
|
||||
simul = simul
|
||||
}
|
||||
sequencer {
|
||||
map_name = simul-sequencers
|
||||
timeout = 10 minutes
|
||||
}
|
||||
socket {
|
||||
name = simul-socket
|
||||
timeout = 5 minutes
|
||||
}
|
||||
created.cache.ttl = 2 seconds
|
||||
history.message.ttl = 30 seconds
|
||||
uid.timeout = 7 seconds # small to avoid missed events
|
||||
actor.name = simul
|
||||
}
|
||||
forum {
|
||||
topic.max_per_page = 10
|
||||
post.max_per_page = 10
|
||||
recent {
|
||||
ttl = 1 hour
|
||||
nb = 20
|
||||
}
|
||||
collection {
|
||||
categ = f_categ
|
||||
topic = f_topic
|
||||
post = f_post
|
||||
}
|
||||
public_categ_ids = [
|
||||
general-chess-discussion
|
||||
game-analysis
|
||||
lichess-feedback
|
||||
off-topic-discussion
|
||||
]
|
||||
actor.name = forum
|
||||
}
|
||||
forumSearch {
|
||||
index = forum
|
||||
paginator.max_per_page = 10
|
||||
actor.name = forum-search
|
||||
}
|
||||
message {
|
||||
thread.max_per_page = 30
|
||||
collection.thread = m_thread
|
||||
actor.name = message
|
||||
lichess_senders = [
|
||||
lichess
|
||||
${blog.notify.sender}
|
||||
${qa.notifier.sender}
|
||||
${team.notifier.sender}
|
||||
]
|
||||
}
|
||||
memo {
|
||||
collection {
|
||||
cache = cache
|
||||
}
|
||||
}
|
||||
setup {
|
||||
friend.memo.ttl = 1 day
|
||||
casual_only = ${app.casual_only}
|
||||
collection {
|
||||
user_config = config
|
||||
anon_config = config_anon
|
||||
}
|
||||
challenger.name = "setup-challenger"
|
||||
}
|
||||
site {
|
||||
socket {
|
||||
name = site-socket
|
||||
uid.ttl = 10 seconds
|
||||
}
|
||||
}
|
||||
user {
|
||||
paginator.max_per_page = 40
|
||||
cached.nb.ttl = 10 minutes
|
||||
online.ttl = 7 seconds
|
||||
collection {
|
||||
user = user4
|
||||
note = note
|
||||
trophy = trophy
|
||||
}
|
||||
}
|
||||
history {
|
||||
collection.history = history3
|
||||
cached.rating_chart.ttl = 1 hour
|
||||
}
|
||||
ai {
|
||||
exec_path = "local/Stockfish/src/stockfish"
|
||||
hash_size = 64
|
||||
threads = 1
|
||||
instances = 2
|
||||
debug = false
|
||||
endpoint = ${net.base_url}/ai
|
||||
callback_url = ${net.protocol}en.${net.domain}/%/post-analysis
|
||||
server-only = false
|
||||
play {
|
||||
movetime = 500 ms
|
||||
timeout = 5 seconds
|
||||
}
|
||||
analyse {
|
||||
max_plies = 200
|
||||
movetime = 1500 ms
|
||||
}
|
||||
collection.ai_perf = "ai_perf"
|
||||
ai_perf.cache_ttl = 5 seconds
|
||||
actor.name = ai
|
||||
}
|
||||
application {
|
||||
global="lila.app.Global"
|
||||
}
|
||||
wiki {
|
||||
collection.page = wiki
|
||||
git.url = "git://github.com/ornicar/lichess.wiki.git"
|
||||
markdown_path = "/usr/bin/markdown"
|
||||
}
|
||||
importer {
|
||||
delay = 50 milliseconds
|
||||
}
|
||||
mobile.app.version = "1.3.0"
|
||||
coach {
|
||||
collection {
|
||||
stat = coach_stat
|
||||
}
|
||||
}
|
||||
simulation {
|
||||
enabled = false
|
||||
players = 300
|
||||
watchers = 200
|
||||
}
|
||||
hub {
|
||||
actor {
|
||||
game {
|
||||
actor = ${game.actor.name}
|
||||
search = ${gameSearch.actor.name}
|
||||
}
|
||||
renderer = ${app.renderer.name}
|
||||
captcher = ${game.captcher.name}
|
||||
forum {
|
||||
actor = ${forum.actor.name}
|
||||
search = ${forumSearch.actor.name}
|
||||
}
|
||||
team {
|
||||
search = ${teamSearch.actor.name}
|
||||
}
|
||||
messenger = ${message.actor.name}
|
||||
router = ${app.router.name}
|
||||
ai = ${ai.actor.name}
|
||||
monitor = ${monitor.actor.name}
|
||||
tournament.organizer = ${tournament.organizer.name}
|
||||
timeline {
|
||||
user = ${timeline.user.actor.name}
|
||||
}
|
||||
bookmark = ${bookmark.actor.name}
|
||||
round {
|
||||
map = ${round.actor.map.name}
|
||||
}
|
||||
lobby = ${lobby.actor.name}
|
||||
relation = ${relation.actor.name}
|
||||
challenger = ${setup.challenger.name}
|
||||
report = ${report.actor.name}
|
||||
shutup = ${shutup.actor.name}
|
||||
mod = ${mod.actor.name}
|
||||
chat = ${chat.actor.name}
|
||||
analyser = ${analyse.actor.name}
|
||||
move_broadcast = ${socket.move_broadcast.name}
|
||||
user_register = ${socket.user_register.name}
|
||||
simul = ${simul.actor.name}
|
||||
}
|
||||
socket {
|
||||
lobby = ${lobby.socket.name}
|
||||
monitor = ${monitor.socket.name}
|
||||
site = ${site.socket.name}
|
||||
round = ${round.socket.name}
|
||||
tournament = ${tournament.socket.name}
|
||||
simul = ${simul.socket.name}
|
||||
hub = ${socket.hub.name}
|
||||
}
|
||||
channel {
|
||||
move_lat = ${monitor.channel.move_lat}
|
||||
}
|
||||
}
|
||||
|
||||
socket {
|
||||
hub.name = socket.hub
|
||||
move_broadcast.name = socket.move-broadcast
|
||||
user_register.name = socket.user-register
|
||||
population.name = socket.population
|
||||
}
|
||||
|
||||
dbplugin = disabled
|
||||
ehcacheplugin = disabled
|
||||
|
||||
akka {
|
||||
loggers = ["akka.event.slf4j.Slf4jLogger"]
|
||||
loglevel = INFO
|
||||
stdout-loglevel = INFO
|
||||
log-config-on-start = off
|
||||
log-dead-letters-during-shutdown = off
|
||||
}
|
||||
forcedev = false
|
Loading…
Reference in New Issue