summaryrefslogtreecommitdiff
path: root/internal/config/defaults.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2022-12-11 13:03:15 +0000
committerLibravatar GitHub <noreply@github.com>2022-12-11 13:03:15 +0000
commitcb2b2fd8058a71826f23f60036cb0232eee113c7 (patch)
tree761e6c0acc211c8ca9e8b957cd99d1e93668eebe /internal/config/defaults.go
parent[docs] Caching webfinger with nginx (#1242) (diff)
downloadgotosocial-cb2b2fd8058a71826f23f60036cb0232eee113c7.tar.xz
[feature] support configuring database caches (#1246)
* update config generator to support nested structs, add cache configuration options * update envparsing test * add cache configuration to config parse tests * set cache configuration in testrig * move caches to sub-cache "gts" namespace, update envparsing, add cache config docs to example config Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/config/defaults.go')
-rw-r--r--internal/config/defaults.go59
1 files changed, 54 insertions, 5 deletions
diff --git a/internal/config/defaults.go b/internal/config/defaults.go
index be537a0df..4fd783611 100644
--- a/internal/config/defaults.go
+++ b/internal/config/defaults.go
@@ -18,7 +18,12 @@
package config
-import "github.com/coreos/go-oidc/v3/oidc"
+import (
+ "time"
+
+ "codeberg.org/gruf/go-bytesize"
+ "github.com/coreos/go-oidc/v3/oidc"
+)
// Defaults contains a populated Configuration with reasonable defaults. Note that
// if you use this, you will still need to set Host, and, if desired, ConfigPath.
@@ -56,13 +61,13 @@ var Defaults = Configuration{
AccountsReasonRequired: true,
AccountsAllowCustomCSS: false,
- MediaImageMaxSize: 10485760, // 10mb
- MediaVideoMaxSize: 41943040, // 40mb
+ MediaImageMaxSize: 10 * bytesize.MiB,
+ MediaVideoMaxSize: 40 * bytesize.MiB,
MediaDescriptionMinChars: 0,
MediaDescriptionMaxChars: 500,
MediaRemoteCacheDays: 30,
- MediaEmojiLocalMaxSize: 51200, // 50kb
- MediaEmojiRemoteMaxSize: 102400, // 100kb
+ MediaEmojiLocalMaxSize: 50 * bytesize.KiB,
+ MediaEmojiRemoteMaxSize: 100 * bytesize.KiB,
StorageBackend: "local",
StorageLocalBasePath: "/gotosocial/storage",
@@ -101,4 +106,48 @@ var Defaults = Configuration{
AdvancedCookiesSamesite: "lax",
AdvancedRateLimitRequests: 1000, // per 5 minutes
+
+ Cache: CacheConfiguration{
+ GTS: GTSCacheConfiguration{
+ AccountMaxSize: 100,
+ AccountTTL: time.Minute * 5,
+ AccountSweepFreq: time.Second * 10,
+
+ BlockMaxSize: 100,
+ BlockTTL: time.Minute * 5,
+ BlockSweepFreq: time.Second * 10,
+
+ DomainBlockMaxSize: 1000,
+ DomainBlockTTL: time.Hour * 24,
+ DomainBlockSweepFreq: time.Minute,
+
+ EmojiMaxSize: 500,
+ EmojiTTL: time.Minute * 5,
+ EmojiSweepFreq: time.Second * 10,
+
+ EmojiCategoryMaxSize: 100,
+ EmojiCategoryTTL: time.Minute * 5,
+ EmojiCategorySweepFreq: time.Second * 10,
+
+ MentionMaxSize: 500,
+ MentionTTL: time.Minute * 5,
+ MentionSweepFreq: time.Second * 10,
+
+ NotificationMaxSize: 500,
+ NotificationTTL: time.Minute * 5,
+ NotificationSweepFreq: time.Second * 10,
+
+ StatusMaxSize: 500,
+ StatusTTL: time.Minute * 5,
+ StatusSweepFreq: time.Second * 10,
+
+ TombstoneMaxSize: 100,
+ TombstoneTTL: time.Minute * 5,
+ TombstoneSweepFreq: time.Second * 10,
+
+ UserMaxSize: 100,
+ UserTTL: time.Minute * 5,
+ UserSweepFreq: time.Second * 10,
+ },
+ },
}