Colin
a4f41768ba
Optimize WebSocket implementation for millions of connections
...
- Implement sharded client storage (256 shards by default) to eliminate mutex contention
- Replace slice-based storage with map structure for O(1) token lookup
- Increase WebSocket buffer sizes (8192 bytes) and channel buffers (10 messages)
- Optimize Notify method with per-shard locking
- Add configuration options for shard count and buffer sizes
- Add comprehensive benchmarking setup with docker-compose
- Include k6 load testing scripts for WebSocket performance testing
- All existing tests pass with new sharded implementation
2025-11-20 14:43:33 -05:00
饺子w (Yumechi)
9262a24abc
feat: refine AutoCert logic ( #843 )
...
* feat: refine AutoCert logic
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* add a configurable name to the roundtripper
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-09-19 04:43:09 -05:00
Jannis Mattheis
6b3ff77651
fix: panic when setting bool via envvar
...
$ docker run -e GOTIFY_SERVER_SSL_ENABLED=true --rm gotify/server:2.6.0
Starting Gotify version 2.6.0@2024-11-15-19:19:19
panic: reflect.Set: value of type bool is not assignable to type *bool
goroutine 1 [running]:
reflect.Value.assignTo({0xf5e000?, 0x1c375a8?, 0x19?}, {0x108809b, 0xb}, 0xf42960, 0x0)
/usr/local/go/src/reflect/value.go:3358 +0x299
reflect.Value.Set({0xf42960?, 0xc0000cd200?, 0x4?}, {0xf5e000?, 0x1c375a8?, 0xf42960?})
/usr/local/go/src/reflect/value.go:2313 +0xe6
github.com/jinzhu/configor.(*Configor).processTags(0xc0002f0270, {0xc0002eecc0?, 0xc0000cd200?}, {0xc0002ef0c0, 0x3, 0x4})
/go/pkg/mod/github.com/jinzhu/configor@v1.2.2/utils.go:307 +0xc11
github.com/jinzhu/configor.(*Configor).processTags(0xc0002f0270, {0xc0002eec80?, 0xc0000cd1e0?}, {0xc0002ad880, 0x2, 0x2})
/go/pkg/mod/github.com/jinzhu/configor@v1.2.2/utils.go:330 +0xe79
github.com/jinzhu/configor.(*Configor).processTags(0xc0002f0270, {0xf41420?, 0xc0000cd1e0?}, {0xc0002f0610, 0x1, 0x1})
/go/pkg/mod/github.com/jinzhu/configor@v1.2.2/utils.go:330 +0xe79
github.com/jinzhu/configor.(*Configor).load(0xc0002f0270, {0xf41420, 0xc0000cd1e0}, 0x0, {0xc0002ad7a0?, 0x1c7c000?, 0xc0002ad7a0?})
/go/pkg/mod/github.com/jinzhu/configor@v1.2.2/utils.go:415 +0x3f8
github.com/jinzhu/configor.(*Configor).Load(0xc0002f0270, {0xf41420, 0xc0000cd1e0}, {0xc0002ad7a0, 0x2, 0x2})
/go/pkg/mod/github.com/jinzhu/configor@v1.2.2/configor.go:92 +0x13c
github.com/gotify/server/v2/config.Get()
/src/gotify/config/config.go:69 +0xf3
main.main()
/src/gotify/app.go:34 +0x1e5
2024-11-15 22:53:41 +01:00
Jannis Mattheis
5395112667
fix: enable silent mode
...
Hides this log output
Failed to find configuration /etc/gotify/config.yml
Failed to find configuration config.yml, using example file config.example.yml
2024-11-15 18:35:50 +01:00
饺子w (Yumechi)
2d6601747b
Switch to upstream jinzhu/configor ( #727 )
...
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2024-11-07 14:36:11 -06:00
Laurence
c68b2b5a72
Add trusted proxies property and find a solution to unix sockets
2024-02-04 10:33:25 +01:00
pigpig
c172590b92
Add registration
...
Can be enabled via the registration config flag. (disabled per default)
Fixes gotify/server#395
Co-authored-by: pigpig <pigpig@pig.pig>
Co-authored-by: Karmanyaah Malhotra <32671690+karmanyaahm@users.noreply.github.com>
Co-authored-by: Jannis Mattheis <contact@jmattheis.de>
2021-08-04 19:39:43 +02:00
Jannis Mattheis
3454dcd602
Use golangci-lint
2020-11-01 10:47:02 +01:00
Jannis Mattheis
de226ce0cf
Make ws ping interval configurable
2020-09-10 16:22:04 +00:00
Jannis Mattheis
909eeff406
Make keepalive period configurable
2020-09-10 16:22:04 +00:00
Jannis Mattheis
7b90b8a8f5
Use v2 in package path
2020-05-08 10:43:17 +02:00
Stewart Thomson
3f04d50088
Allow multiple CORS origins
2020-04-26 11:27:24 +00:00
Jannis Mattheis
66ae74f830
Skip /etc/gotify/config.yml in tests
...
Our config test ensures that the correct values will be extracted from
the config file and environment variables.
A globally defined config may change settings which are expected to have
default values.
See
https://github.com/gotify/server-aur-git/pull/2#issuecomment-597598574
2020-03-14 09:46:03 +01:00
饺子w
d82a78b8aa
Listen on custom address ( #140 )
...
Co-Authored-By: eternal-flame-AD <ef@eternalflame.info>
2019-03-08 09:40:26 +01:00
eternal-flame-AD
e5b24f4c92
Add plugin feature
...
Fixed database migration
Added a plugin system based on the go plugin package
2019-02-09 12:52:01 +01:00
Jannis Mattheis
68b160997d
Format all go files
2019-01-01 23:34:42 +01:00
Eugene Gavrilov
b5b2f19dc2
[ #23 ] Fix check same origin function
2018-12-12 21:30:59 +01:00
Jannis Mattheis
193dd67f2c
Hide 'failed to find config..'
2018-12-09 11:31:05 +01:00
Eugene Gavrilov
b42beb0371
[ #23 ] add headers to configuration
2018-12-04 19:58:01 +01:00
Jannis Mattheis
0eb4fe0bb0
Change default folder & db path to data/*
2018-05-10 12:34:35 +02:00
Jannis Mattheis
dfe242b0cd
Add UploadedImagesDir config setting
2018-03-31 18:44:49 +02:00
Jannis Mattheis
0f2e7cf5e2
Use gofmt -s
2018-03-25 19:33:29 +02:00
Jannis Mattheis
cda4127551
Make password strength configurable
2018-02-23 19:39:34 +01:00
Jannis Mattheis
7bbe7d374a
Adjust config for SSL support
2018-02-19 17:40:05 +01:00
Jannis Mattheis
1e7e1a71f7
Rename to gotify
2018-02-12 16:48:01 +01:00
Jannis Mattheis
752d190fbc
Add main app
2018-02-12 16:33:03 +01:00
Jannis Mattheis
3bac1ddadc
Add config
2018-02-12 16:33:03 +01:00