Browse Source

New configs

Zed 6 years ago
parent
commit
e1fff6985b
3 changed files with 39 additions and 9 deletions
  1. 17 3
      nitter.conf
  2. 10 3
      src/config.nim
  3. 12 3
      src/types.nim

+ 17 - 3
nitter.conf

@@ -1,17 +1,31 @@
 [Server]
 address = "0.0.0.0"
 port = 8080
-https = true  # disable to enable cookies when not using https
+https = false  # disable to enable cookies when not using https
 staticDir = "./public"
 title = "nitter"
 hostname = "nitter.net"
 
 [Cache]
 directory = "./tmp"
-profileMinutes = 10  # how long to cache profiles
+listMinutes = 240  # how long to cache list info (not the tweets, so keep it high)
+rssMinutes = 10  # how long to cache rss queries
+redisHost = "localhost"
+redisPort = 6379
+redisConnections = 20 # connection pool size
+redisMaxConnections = 30
+# max, new connections are opened when none are available, but if the pool size
+# goes above this, they're closed when released. don't worry about this unless
+# you receive tons of requests per second
 
 [Config]
-hmacKey = "secretkey" # for signing video urls
+hmacKey = "secretkey" # random key for cryptographic signing of video urls
+tokenCount = 10
+# minimum amount of usable tokens. tokens are used to authorize API requests,
+# but they expire after ~1 hour, and have a limit of 187 requests.
+# the limit gets reset every 15 minutes, and the pool is filled up so there's
+# always at least $tokenCount usable tokens. again, only increase this if
+# you receive major bursts all the time
 
 # Change default preferences here, see src/prefs_impl.nim for a complete list
 [Preferences]

+ 10 - 3
src/config.nim

@@ -16,14 +16,21 @@ proc getConfig*(path: string): (Config, parseCfg.Config) =
     address: cfg.get("Server", "address", "0.0.0.0"),
     port: cfg.get("Server", "port", 8080),
     useHttps: cfg.get("Server", "https", true),
-    staticDir: cfg.get("Server", "staticDir", "./public"),
     title: cfg.get("Server", "title", "Nitter"),
     hostname: cfg.get("Server", "hostname", "nitter.net"),
+    staticDir: cfg.get("Server", "staticDir", "./public"),
 
     cacheDir: cfg.get("Cache", "directory", "/tmp/nitter"),
-    profileCacheTime: cfg.get("Cache", "profileMinutes", 10),
+    listCacheTime: cfg.get("Cache", "listMinutes", 120),
+    rssCacheTime: cfg.get("Cache", "rssMinutes", 10),
+
+    redisHost: cfg.get("Cache", "redisHost", "localhost"),
+    redisPort: cfg.get("Cache", "redisPort", 6379),
+    redisConns: cfg.get("Cache", "redisConnections", 20),
+    redisMaxConns: cfg.get("Cache", "redisMaxConnections", 30),
 
-    hmacKey: cfg.get("Config", "hmacKey", "secretkey")
+    hmacKey: cfg.get("Config", "hmacKey", "secretkey"),
+    minTokens: cfg.get("Config", "tokenCount", 10),
   )
 
   return (conf, cfg)

+ 12 - 3
src/types.nim

@@ -187,12 +187,21 @@ type
     address*: string
     port*: int
     useHttps*: bool
-    staticDir*: string
     title*: string
     hostname*: string
-    cacheDir*: string
-    profileCacheTime*: int
+    staticDir*: string
+
     hmacKey*: string
+    minTokens*: int
+
+    cacheDir*: string
+    rssCacheTime*: int
+    listCacheTime*: int
+
+    redisHost*: string
+    redisPort*: int
+    redisConns*: int
+    redisMaxConns*: int
 
 proc contains*(thread: Chain; tweet: Tweet): bool =
   thread.content.anyIt(it.id == tweet.id)