This repository has been archived on 2022-10-14. You can view files and clone it, but cannot push or open issues/pull-requests.
gulag-dockerized/config-template/gulag.py

142 lines
4.3 KiB
Python

# -*- coding: utf-8 -*-
# this file should generally become
# less useful as you scroll down.
# except for the bottom one :P <3
""" server settings """
# the domain you'd like gulag to be hosted on.
domain = 'example.com' # cmyui.xyz
# the address which the server runs on, unix or inet4.
## Configured for docker compose; do not change. ##
server_addr = "/var/run/gulag.sock" # /tmp/gulag.sock,
# ('127.0.0.1', 1234)
# your mysql authentication info.
## Configured for docker compose; do not change. ##
mysql = {
'db': 'gulag',
'host': 'localhost',
'unix_socket': '/var/run/mysqld/mysqld.sock',
'user': 'root',
'maxsize': 16
}
# your osu!api key, required for beatmap info.
osu_api_key = ''
# url of the mirror to use, for beatmap downloads.
mirror = 'https://api.chimu.moe/v1' # https://api.chimu.moe/v1
# in-game bot command prefix.
command_prefix = '!'
# the max amount of concurrent
# connections gulag will hold.
max_conns = 16 # likely ~8-16, depending on playercount & api usage
# the console gets a whole lot louder.
# devs can also toggle ingame w/ !debug.
debug = False
# the menu icon displayed on
# the main menu of osu! in-game.
menu_icon = (
'https://akatsuki.pw/static/logos/logo_ingame.png', # image url
'https://akatsuki.pw' # onclick url
)
# seasonal backgrounds to be displayed ingame.
seasonal_bgs = ('https://akatsuki.pw/static/flower.png',)
# max amount of multiplayer matches
# that can be created simultaneously
max_multi_matches = 64
# high ceiling values for autoban as a very simple form
# of "anticheat", simply ban a user if they are not
# whitelisted, and submit a score of too high caliber.
# Values below are in form (non_fl, fl), as fl has custom
# vals as it finds quite a few additional cheaters on the side.
autoban_pp = (
(700, 600), # vn!std
(9999, 9999), # vn!taiko
(9999, 9999), # vn!catch
(9999, 9999), # vn!mania
(1200, 800), # rx!std
(9999, 9999), # rx!taiko
(9999, 9999), # rx!catch
(9999, 9999) # ap!std
)
# hardcoded names & passwords users will not be able to use.
# TODO: retrieve the names of the top ~100 (configurable)?
# TODO: add more defaults; servers deserve better than this lol..
disallowed_names = {
'cookiezi', 'rrtyui',
'hvick225', 'qsc20010'
}
disallowed_passwords = {
'password', 'minilamp'
}
# gulag provides connectivity to
# discord via a few simple webhooks.
# simply add urls to start receiving.
webhooks = {
# general logging information
'audit-log': '',
''' (currently unused)
# notifications of sketchy plays
# & unusual activity auto-detected;
# described in more detail below.
'surveillance': '',
'''
# XXX: not a webhook, but the thumbnail used in them.
'thumbnail': 'https://akatsuki.pw/static/logos/logo.png'
}
# https://datadoghq.com
# support (stats tracking)
datadog = {
'api_key': '',
'app_key': ''
}
# the pp values which should be cached & displayed when
# a user requests the general pp values for a beatmap.
pp_cached_accs = (90, 95, 98, 99, 100) # std & taiko
pp_cached_scores = (8e5, 8.5e5, 9e5, 9.5e5, 10e5) # mania
# whether osu! client urls such as https://osu.your.domain/beatmaps/123
# should be redirected to osu.ppy.sh (https://osu.ppy.sh/beatmaps/123).
redirect_osu_urls = False
# the max duration to cache osu-checkupdates requests for.
# NOTE: this is only required for switchers and will be removed.
updates_cache_timeout = 3600 # ~3600
# the level of gzip compression to use for different tasks.
# when we want to quickly compress something and send it to
# the client immediately, we'd want to focus on optimizing
# both ends (server & client) for overall speed improvement.
# when we are sent data from the client to store long-term and
# serve in the distant future, we want to focus on size &
# decompression speed on the client-side. remember that higher
# levels will result in diminishing returns; more info below.
# https://www.rootusers.com/gzip-vs-bzip2-vs-xz-performance-comparison/
gzip = {'web': 4, 'disk': 9}
# allow for use of advanced (and potentially dangerous)
# features. i recommend checking where this config value
# is used throughout the code before enabling it.. :P
advanced = False
# additional info: https://pastebin.com/u4u14bAb
automatically_report_problems = False