yusing
82f02ea2bf
fix(rules): nil panic when only having default rule
2025-10-12 22:21:01 +08:00
yusing
046ff8a020
chore: update config example about new not_found rule
2025-10-12 22:02:52 +08:00
yusing
dc9ae32e8f
feat(entrypoint): add not found rule to customize 404 behavior
2025-10-12 21:04:49 +08:00
yusing
5640d5d454
fix(serialization): correctly handle json tag
2025-10-12 20:59:12 +08:00
yusing
c66de99fcb
perf: further optimize http and body buffer handling
2025-10-12 20:57:51 +08:00
yusing
eef994082c
fix(panic): nil panic in IterRoutes
v0.19.0
2025-10-12 16:51:52 +08:00
yusing
8c670ab92e
chore: update README.md and config.example.yml for new changes
2025-10-12 14:25:55 +08:00
yusing
d11ddb7c91
fix(ci): checkout submodules
2025-10-12 14:23:00 +08:00
yusing
78aea4b4d2
fix: gopsutil
2025-10-12 13:04:28 +08:00
yusing
80dd142861
refactor(rules): rename Static and Returning commands into Terminating and NonTerminating commands
2025-10-12 09:38:06 +08:00
yusing
92aa61e732
refactor(log): simplify access logger and disable stdout buffering
...
- Remove MultiWriter complexity and use single writer interface
- Disable buffering for stdout logging to ensure immediate output
- Replace slice-based closer/rotate support with type assertions
- Simplify rotation result handling by passing result pointer
- Update buffer size constants and improve memory management
- Remove redundant stdout_logger.go and multi_writer.go files
- Fix test cases to match new rotation API signature
2025-10-11 19:14:59 +08:00
yusing
848f26aa86
test(list-icon): fix tests regarding previous changes
2025-10-11 19:05:49 +08:00
yusing
81e500fcfc
fix(log): stdout logging format
2025-10-11 18:30:38 +08:00
yusing
f417e0fa25
fix(notif): remove test logging
2025-10-11 18:13:19 +08:00
yusing
cb5a8e7b9d
fix(acl): correct acl log handling and add country to summary
2025-10-11 17:03:08 +08:00
yusing
16cad11e89
fix(notif): format not being applied correctly
2025-10-11 16:54:52 +08:00
yusing
2bfbdbf519
refactor(acl): adjust summary format and add total count
2025-10-11 16:13:52 +08:00
yusing
d5e9a7b3b6
fix(notif): respect Method and empty content-type
2025-10-11 16:02:18 +08:00
yusing
7ea415078f
fix(config): fix error and logging handling
2025-10-11 14:00:04 +08:00
yusing
e67704695b
fix(acl): complete tcp and udp wrapper interface
2025-10-11 13:47:13 +08:00
yusing
804c7eec60
fix: env parsing
2025-10-11 13:37:18 +08:00
yusing
ea8be56bf8
fix(server): race condition on server stop
2025-10-11 13:26:10 +08:00
yusing
20c77edce5
chore: go mod tidy
2025-10-11 13:20:19 +08:00
yusing
4f2f0f58e2
fix(autocert): nil dereference
2025-10-11 13:12:45 +08:00
yusing
ac8ad149b8
fix(icons): list icon logic
2025-10-11 13:07:50 +08:00
yusing
14ec80c883
fix: Dockerfile mod caching
2025-10-11 13:01:52 +08:00
yusing
5de5f854ce
fix: dockerfile
2025-10-11 12:56:55 +08:00
yusing
3d8994b42e
chore: enhance example config
2025-10-11 12:46:54 +08:00
yusing
66043e4a26
refactor!: simplify lego generate script; add and drop some dns provider
2025-10-11 12:44:16 +08:00
yusing
d1e403e16f
fix(docker): correct image in rootless docker compose
2025-10-11 11:27:14 +08:00
yusing
e72e20af69
fix(script): add missing domain input in setup.sh
2025-10-11 11:16:39 +08:00
yusing
ad6201c27a
feat(dev): add parca in dev docker for profiling
2025-10-10 23:24:39 +08:00
yusing
c4c9e9300c
chore: simplify dev docker and update Makefile accordingly
2025-10-10 23:24:14 +08:00
yusing
b23c3f1c3b
refactor(icons): replace mutex-based cache with atomic synk.Value
...
- Remove sync.RWMutex and Cache struct in favor of atomic Value
- Implement background goroutine for periodic icon updates
- Add backward compatibility for old cache format
- Improve concurrent access to icon cache
- Simplify ListAvailableIcons()
2025-10-10 23:21:30 +08:00
yusing
38c0419483
feat(config): add temporary logging for failed reloads
...
- Add tmpLogBuf and tmpLog fields to capture config loading logs
- Flush temporary logs only when reload succeeds
- Extract NewLogger function for creating custom loggers
- Update State interface to include FlushTmpLog method
2025-10-10 22:20:12 +08:00
yusing
357ce38b18
fix(idlewatcher): correctly restart on config reload
2025-10-10 21:57:36 +08:00
yusing
ef34c3ffdd
fix(server): should wait for server to stop
2025-10-10 21:47:03 +08:00
yusing
2e411373a2
fix(config): failed reload should not start providers in new state
2025-10-10 21:46:02 +08:00
yusing
3dedd66ad1
test(rules): add tests for glob and regex, remove old path glob test
2025-10-10 21:39:21 +08:00
yusing
98f047d88a
fix(rules): correct dollar sign handling
2025-10-10 21:37:54 +08:00
yusing
973a58e982
fix(import): remove unused import in rules/validate.go
2025-10-10 20:49:12 +08:00
yusing
4b55d1c607
fix: missing bracket in main.go
2025-10-10 20:46:47 +08:00
yusing
63eff4707c
fix: submodules url
2025-10-10 20:40:33 +08:00
yusing
55a74c36b0
refactor(acl): optimize slice allocation in logNotifyLoop
2025-10-10 20:21:53 +08:00
yusing
fbabb7b7fb
refactor(acl): default not to notify allowed and skip when total is 0
2025-10-10 20:20:09 +08:00
yusing
7a1841e9a5
fix(acl): add json tag for notify
2025-10-10 15:26:08 +08:00
yusing
d82bfd0ebd
feat(acl): add periodic notification system for access summaries
...
- Add Notify configuration with To field and interval
- Track allowed/blocked IP counts per address
- Send periodic summary notifications with access statistics
- Optimize logging with channel-based processing for concurrent safety
2025-10-10 15:24:48 +08:00
yusing
1f41c035ea
feat(notification): add To field to LogMessage
2025-10-10 14:47:20 +08:00
yusing
c2c9f42fb3
feat(rules): glob and regex support, env var substitution
...
- optimized `remote` rule for ip matching
- updated descriptions
2025-10-10 14:43:48 +08:00
yusing
60cfff3435
refactor(idlewatcher): streamline loading screen favicon handling
2025-10-10 12:55:06 +08:00