]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - production.ini
Remove Persona since it was shut down. :(
[xonotic/xonstat.git] / production.ini
index 1acf5c82f7e50fbcb880b700e429df732db16441..c68321641e8339219a00085546b90de0cce9b3b0 100644 (file)
@@ -1,52 +1,49 @@
 [app:XonStat]
-use = egg:XonStat
-reload_templates = false
-debug_authorization = false
-debug_notfound = false
-debug_routematch = false
-debug_templates = false
-default_locale_name = en
-sqlalchemy.url = sqlite:///%(here)s/XonStat.db
-mako.directories = xonstat:templates
+use                  =  egg:XonStat
+reload_templates     =  false
+debug_authorization  =  false
+debug_notfound       =  false
+debug_routematch     =  false
+debug_templates      =  false
+default_locale_name  =  en
+sqlalchemy.url       =  postgresql+psycopg2://xonstat:PASSWORD@localhost:5432/xonstatdb
+mako.directories     =  xonstat:templates
 
 # Beaker cache settings
 # Default is to use one region with hourly cache invalidation
-cache.regions = hourly_term
-cache.type = memory
-cache.hourly_term.expire = 3600
+cache.regions             =  hourly_term
+cache.type                =  memory
+cache.hourly_term.expire  =  3600
 
+# XonStat-specific settings
 xonstat.minimum_required_players = 2
-xonstat.leaderboard_lifetime = 7
-xonstat.verify_requests = true
+xonstat.leaderboard_lifetime     = 7
+xonstat.verify_requests          = true
 
 [filter:weberror]
-use = egg:WebError#error_catcher
+use   = egg:WebError#error_catcher
 debug = false
-;error_log = 
-;show_exceptions_in_wsgi_errors = true
-;smtp_server = localhost
-;error_email = janitor@example.com
-;smtp_username = janitor
-;smtp_password = "janitor's password"
-;from_address = paste@localhost
-;error_subject_prefix = "Pyramid Error"
-;smtp_use_tls =
-;error_message =
-
-[filter:tm]
-use = egg:repoze.tm2#tm
-commit_veto = repoze.tm:default_commit_veto
 
 [pipeline:main]
 pipeline =
-    weberror
-    tm
     XonStat
 
 [server:main]
-use = egg:Paste#http
-host = 0.0.0.0
-port = 6543
+# Gunicorn settings. See http://docs.gunicorn.org/en/19.3/configure.html.
+use               =  egg:gunicorn#main
+user              =  xonstat
+group             =  xonstat
+proc_name         =  xonstat
+daemon            =  True
+bind              =  0.0.0.0:6543
+workers           =  4
+max_requests      =  5000
+timeout           =  30
+graceful_timeout  =  30
+pidfile           =  /tmp/xonstat.pid
+loglevel          =  INFO
+accesslog         =  ~/xonstat/xonstat_access.log
+errorlog          =  ~/xonstat/xonstat.log
 
 # Begin logging configuration
 
@@ -60,27 +57,30 @@ keys = console
 keys = generic
 
 [logger_root]
-level = WARN
-handlers = console
+level    = WARN
+handlers = console, error_file
 
 [logger_xonstat]
-level = WARN
+level    = WARN
 handlers =
 qualname = xonstat
 
 [logger_sqlalchemy]
+# INFO logs SQL queries, DEBUG logs queries and results, and WARN logs neither
 level = WARN
 handlers =
 qualname = sqlalchemy.engine
-# "level = INFO" logs SQL queries.
-# "level = DEBUG" logs SQL queries and results.
-# "level = WARN" logs neither.  (Recommended for production systems.)
 
 [handler_console]
-class = StreamHandler
-args = (sys.stderr,)
-level = NOTSET
+class     = StreamHandler
+args      = (sys.stderr,)
+level     = NOTSET
+formatter = generic
+
+[handler_error_file]
+class     = logging.handlers.RotatingFileHandler
 formatter = generic
+args      = ('~/xonstat/xonstat.log', 'a', 50000000, 5)
 
 [formatter_generic]
 format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s