yusing
82f02ea2bf
fix(rules): nil panic when only having default rule
2025-10-12 22:21:01 +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
2025-10-12 16:51:52 +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
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
66043e4a26
refactor!: simplify lego generate script; add and drop some dns provider
2025-10-11 12:44:16 +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
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
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
yusing
c93a460043
refactor(config): add omitempty on some fields
2025-10-10 10:34:49 +08:00
yusing
9bf7a0beef
revert(config): added back pointer for agent and notification config for correct unmarshaling
2025-10-10 10:07:49 +08:00
yusing
c89c737ecd
fix(pool): variable shadowing
2025-10-10 10:01:42 +08:00
yusing
382fc61a9c
chore: update submodules
2025-10-10 09:57:08 +08:00
yusing
c2dcabe144
refactor(rules): remove 'caller' parameter in BuildHandler
2025-10-10 09:53:44 +08:00
yusing
c59ddc1df6
refactor: add ShouldExclude() bool to Route interface
2025-10-10 09:53:08 +08:00
yusing
f4db874fd6
refactor(proxmox): rename checkIPPrivate to privateIPOrNil
2025-10-10 09:52:38 +08:00
yusing
f334f5c13c
feat(config): pretty print active config and routes by provider on load / reload
2025-10-10 09:51:32 +08:00
yusing
5acc4c3894
fix(homepage): logic error in ListAvailableIcons, ensure the cache is ready in GetHomepageMeta
2025-10-10 09:27:23 +08:00
yusing
a8aa82f687
chore: upgrade dependencies
2025-10-10 09:11:29 +08:00
yusing
becb49e864
fix(uptime): set to 0 instead of returning error on overflow check
2025-10-09 22:53:38 +08:00
yusing
3aed41e078
refactor: move version.go to goutils
2025-10-09 01:14:43 +08:00
yusing
8047067b2b
refactor(utils): move utils/atomic to goutils
2025-10-09 01:07:47 +08:00
yusing
c3fa7c66a7
feat(entrypoint): added CatchAll and NotFound rules and handler
2025-10-09 01:03:16 +08:00