bagas
1a04af8873
Merge branch 'main' into staging
Docker Build and Push / build-and-push-branches (push) Successful in 11m35s
Docker Build and Push / build-and-push-tags (push) Has been skipped
2026-01-16 16:28:39 +07:00
bagas
19135ceb42
refactor: convert structs to interfaces and rename accessors
...
Docker Build and Push / build-and-push-branches (push) Has been skipped
Docker Build and Push / build-and-push-tags (push) Has been cancelled
- Convert struct types to interfaces
- Rename getter and setter methods
- Add Close method to server interface
- Merge handler functionality into session file
- Handle lifecycle.Connection().Wait()
- fix panic on nil connection in SSH server
2026-01-16 15:25:31 +07:00
bagas
a7ebf2c5db
Merge pull request 'fix(deps): update module golang.org/x/crypto to v0.47.0' ( #66 ) from renovate/golang.org-x-crypto-0.x into main
...
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 10m34s
Reviewed-on: #66
2026-01-14 10:42:52 +00:00
bagas
aafea49975
feat: integrate gRPC, session refactor, SSH headless support, and bug fixes
...
Docker Build and Push / build-and-push-tags (push) Successful in 11m34s
Docker Build and Push / build-and-push-branches (push) Has been skipped
- gRPC integration: slug edit handling, get sessions by user, and session requests from gRPC server
- Refactor gRPC client: simplify processEventStream and handle authenticated user info
- Session management improvements: use session key for registry, forwarder session termination, inject SessionRegistry interface
- SSH enhancements: add headless mode support for SSH -N connections
- Bug fixes:
- prevent subdomain changes to already-in-use subdomains
- fix startup order and environment variable keys
- atomic ClaimPort() to prevent race conditions
- Refactors:
- consolidate error handling
- replace Get/Set patterns with idiomatic Go interfaces
- change enums from string to int
- CI cleanup: remove renovate bot
Reviewed-on: #65
2026-01-14 10:16:43 +00:00
bagas
dbdf8094fa
refactor: replace Get/Set patterns with idiomatic Go interfaces
...
Docker Build and Push / build-and-push-branches (push) Has been skipped
Docker Build and Push / build-and-push-tags (push) Successful in 13m4s
- rename constructors to New
- remove Get/Set-style accessors
- replace string-based enums with iota-backed types
2026-01-14 16:54:10 +07:00
bagas
ae3ed52d16
fix(port): add atomic ClaimPort() to prevent race condition
...
- Replace GetPortStatus/SetPortStatus calls with atomic ClaimPort() operation.
- Fixed a logic error when handling headless tunneling.
2026-01-14 16:51:50 +07:00
bagas
fb638636bf
refactor: consolidate error handling with fail() function in session handlers
...
- Replace repetitive error handling code with fail() function in HandleGlobalRequest
- Standardize error response pattern across all handler methods
- Improve code maintainability and reduce duplication
2026-01-14 16:51:50 +07:00
bagas
da29df85b7
feat: add headless mode support for SSH -N connections
...
- use s.lifecycle.GetConnection().Wait() to block until SSH connection closes
- Prevent premature session closure in headless mode
In headless mode (ssh -N), there's no channel interaction to block on,
so the session would immediately return and close. Now blocking on
conn.Wait() keeps the session alive until the client disconnects.
2026-01-14 16:51:50 +07:00
bagas
f0804d6946
ci: remove renovate
2026-01-14 16:51:50 +07:00
bagas
09e526cd1e
feat: add authenticated user info and restructure handleConnection
...
- Display authenticated username in welcome page information box
- Refactor handleConnection function for better structure and clarity
2026-01-14 16:51:50 +07:00
bagas
887ebf78b1
refactor(grpc/client): simplify processEventStream with per-event handlers
...
- Extract eventHandlers dispatch table
- Add per-event handlers: handleSlugChange, handleGetSessions, handleTerminateSession
- Introduce sendNode helper to centralize send/error handling and preserve connection-error propagation
- Add protoToTunnelType for tunnel-type validation
- Map unknown proto.TunnelType to types.UNKNOWN in protoToTunnelType and return a descriptive error
- Reduce boilerplate and improve readability of processEventStream
2026-01-14 16:51:50 +07:00
bagas
bef7a49f88
feat: implement forwarder session termination
2026-01-14 16:51:50 +07:00
bagas
17633b4e3c
refactor: inject SessionRegistry interface instead of individual functions
2026-01-14 16:51:50 +07:00
bagas
f25d61d1d1
update: proto file to v1.3.0
2026-01-14 16:51:50 +07:00
bagas
8782b77b74
feat(session): use session key for registry
2026-01-14 16:51:50 +07:00
bagas
fc3cd886db
fix: use correct environment variable key
2026-01-14 16:51:50 +07:00
bagas
b0da57db0d
fix: startup order
2026-01-14 16:51:50 +07:00
bagas
0bd6eeadf3
feat: implement sessions request from grpc server
2026-01-14 16:51:50 +07:00
bagas
449f546e04
feat: implement sessions request from grpc server
2026-01-14 16:51:50 +07:00
bagas
4644420eee
feat: implement get sessions by user
2026-01-14 16:51:50 +07:00
bagas
c9bf9e62bd
feat(grpc): integrate slug edit handling
2026-01-14 16:51:50 +07:00
bagas
57d2136377
WIP: gRPC integration, initial implementation
2026-01-14 16:51:47 +07:00
bagas
8a34aaba80
WIP: gRPC integration, initial implementation
2026-01-14 16:51:35 +07:00
bagas
ff995a929e
revert 01ddc76f7e
...
revert Merge pull request 'fix(deps): update module github.com/caddyserver/certmagic to v0.25.1' (#58 ) from renovate/github.com-caddyserver-certmagic-0.x into main
2026-01-14 16:51:35 +07:00
bagas
2e8767f17a
chore: upgrade TLS configuration to TLS 1.3
renovate / renovate (push) Successful in 1m34s
Docker Build and Push / build-and-push-tags (push) Has been skipped
Docker Build and Push / build-and-push-branches (push) Successful in 2m49s
2026-01-01 00:57:48 +07:00
bagas
7716eb7f29
perf: optimize header parsing with zero-copy ReadSlice
...
renovate / renovate (push) Successful in 35s
Docker Build and Push / build-and-push-branches (push) Successful in 4m39s
Docker Build and Push / build-and-push-tags (push) Successful in 4m52s
- Replace ReadString with ReadSlice to eliminate allocations
- Use bytes operations instead of strings
- Add FromBytes variant for in-memory parsing
2025-12-31 23:18:53 +07:00
bagas
b115369913
fix: wait for both goroutines before cleanup in HandleConnection
...
renovate / renovate (push) Successful in 1m42s
Docker Build and Push / build-and-push-branches (push) Successful in 4m46s
Docker Build and Push / build-and-push-tags (push) Successful in 4m51s
Only waited for one of two copy goroutines, leaking the second. Now waits
for both to complete before closing connections.
Fixes file descriptor leak causing 'too many open files' under load.
Fixes : #56
2025-12-31 22:22:51 +07:00
bagas
9276430fae
refactor(session): add registry to manage SSH sessions
...
renovate / renovate (push) Successful in 36s
Docker Build and Push / build-and-push-branches (push) Successful in 4m41s
Docker Build and Push / build-and-push-tags (push) Successful in 4m38s
- Implement thread-safe session registry with sync.RWMutex
- Add Registry interface for session management operations
- Support Get, Register, Update, and Remove session operations
- Enable dynamic slug updates for existing sessions
- Fix Connection closed by remote because HandleTCPIPForward run on a goroutine
2025-12-31 18:33:47 +07:00
bagas
f8a6f0bafe
refactor(session): add registry to manage SSH sessions
...
renovate / renovate (push) Successful in 39s
Docker Build and Push / build-and-push-branches (push) Successful in 4m27s
Docker Build and Push / build-and-push-tags (push) Successful in 4m22s
- Implement thread-safe session registry with sync.RWMutex
- Add Registry interface for session management operations
- Support Get, Register, Update, and Remove session operations
- Enable dynamic slug updates for existing sessions
2025-12-31 17:47:35 +07:00
bagas
acd02aadd3
refactor: restructure project architecture
renovate / renovate (push) Successful in 45s
Docker Build and Push / build-and-push-branches (push) Successful in 5m54s
Docker Build and Push / build-and-push-tags (push) Successful in 6m21s
2025-12-31 15:49:37 +07:00
bagas
878664e0ac
update: multi version build
renovate / renovate (push) Successful in 35s
Docker Build and Push / build-and-push-branches (push) Successful in 6m7s
Docker Build and Push / build-and-push-tags (push) Successful in 6m6s
2025-12-31 13:48:36 +07:00
bagas
20a88df330
update: multi version build
Docker Build and Push / build-and-push-tags (push) Has been skipped
renovate / renovate (push) Successful in 38s
Docker Build and Push / build-and-push-branches (push) Successful in 4m45s
2025-12-31 13:32:16 +07:00
bagas
075dd7ecad
feat: add versioning system
renovate / renovate (push) Successful in 38s
Docker Build and Push / build-and-push-branches (push) Has been skipped
Docker Build and Push / build-and-push-tags (push) Has been cancelled
2025-12-31 12:31:31 +07:00
bagas
ab34b34765
fix: prevent subdomain change to already-in-use subdomains
renovate / renovate (push) Successful in 35s
Docker Build and Push / build-and-push (push) Successful in 5m42s
2025-12-30 19:41:33 +07:00
bagas
514c4f9de1
Merge branch 'staging' of https://git.fossy.my.id/bagas/tunnel-please into staging
renovate / renovate (push) Successful in 20s
Docker Build and Push / build-and-push (push) Successful in 3m35s
2025-12-30 00:09:36 +07:00
bagas
d8330c684f
feat: make SSH interaction UI fully responsive
2025-12-30 00:09:18 +07:00
bagas
fbf182025b
Merge pull request 'main' ( #52 ) from main into staging
...
renovate / renovate (push) Successful in 21s
Reviewed-on: #52
2025-12-29 14:58:10 +00:00
bagas
1038c0861e
Merge pull request 'chore(config): migrate Renovate config' ( #51 ) from renovate/migrate-config into main
...
Reviewed-on: #51
2025-12-29 14:57:45 +00:00
bagas
85f21e7698
feat(tui): update interaction layer to Bubble Tea TUI
renovate / renovate (push) Successful in 27s
Docker Build and Push / build-and-push (push) Successful in 3m49s
2025-12-29 21:55:39 +07:00
bagas
08565d845f
Merge pull request 'staging' ( #50 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 3m26s
Reviewed-on: #50
2025-12-29 10:17:00 +00:00
bagas
a7d9b2ab8a
update: renovate target pr to staging branch
renovate / renovate (push) Successful in 20s
2025-12-29 17:15:42 +07:00
bagas
bc8c5127a6
Merge pull request 'main' ( #49 ) from main into staging
...
renovate / renovate (push) Successful in 23s
Docker Build and Push / build-and-push (push) Successful in 3m26s
Reviewed-on: #49
2025-12-29 10:14:30 +00:00
bagas
a49b53e56f
Merge pull request 'chore(deps): update actions/checkout action to v6' ( #48 ) from renovate/actions-checkout-6.x into main
...
Docker Build and Push / build-and-push (push) Successful in 1m23s
Reviewed-on: #48
2025-12-29 10:04:10 +00:00
bagas
b0b00764cf
Update .gitea/workflows/renovate.yml
renovate / renovate (push) Successful in 23s
2025-12-29 10:02:56 +00:00
bagas
8b6cdef2e9
Merge pull request 'chore(config): migrate Renovate config' ( #47 ) from renovate/migrate-config into main
...
Docker Build and Push / build-and-push (push) Successful in 1m25s
Reviewed-on: #47
2025-12-29 09:49:10 +00:00
bagas
f11a92fb3b
ci: configure workflow to ignore non-Go file changes
Docker Build and Push / build-and-push (push) Successful in 3m30s
renovate / renovate (push) Successful in 22s
2025-12-29 15:58:24 +07:00
bagas
ac283626d3
docs: add Docker deployment section
2025-12-29 15:57:31 +07:00
bagas
ad7c5985b1
feat: add docker compose deployment configurations
2025-12-29 15:57:16 +07:00
bagas
2644b4521c
refactor: improve encapsulation
renovate / renovate (push) Successful in 20s
Docker Build and Push / build-and-push (push) Successful in 3m25s
2025-12-29 12:37:03 +07:00
bagas
d23ed27a4a
Merge pull request 'staging' ( #46 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 1m21s
renovate / renovate (push) Successful in 21s
Reviewed-on: #46
2025-12-28 13:19:25 +00:00
bagas
b5862bd7a0
feat: add configurable HTTP port
renovate / renovate (push) Successful in 20s
Docker Build and Push / build-and-push (push) Successful in 1m45s
2025-12-28 20:09:31 +07:00
bagas
bf7f7bd8da
feat: add configurable HTTPS port
renovate / renovate (push) Successful in 19s
Docker Build and Push / build-and-push (push) Successful in 1m24s
2025-12-28 20:03:49 +07:00
bagas
c3a469be64
refactor: use relative paths for certificates instead of absolute paths
renovate / renovate (push) Successful in 19s
Docker Build and Push / build-and-push (push) Successful in 1m32s
2025-12-28 19:53:03 +07:00
bagas
eee04daf80
feat: optimize Docker build for production
renovate / renovate (push) Successful in 19s
Docker Build and Push / build-and-push (push) Successful in 1m30s
2025-12-28 19:29:32 +07:00
bagas
1d918ef2aa
feat(port): disable TCP forwarding by default and refactor port manager
renovate / renovate (push) Successful in 28s
Docker Build and Push / build-and-push (push) Successful in 5m27s
2025-12-28 19:03:26 +07:00
bagas
a2676a4f30
Merge branch 'staging' of https://git.fossy.my.id/bagas/tunnel-please into staging
Docker Build and Push / build-and-push (push) Successful in 3m36s
renovate / renovate (push) Successful in 20s
2025-12-28 18:45:46 +07:00
bagas
83657d3206
refactor: remove unnecessary caching of environment data
2025-12-28 18:45:22 +07:00
bagas
6710aec4bf
Merge pull request 'main' ( #45 ) from main into staging
...
Docker Build and Push / build-and-push (push) Successful in 3m33s
renovate / renovate (push) Successful in 19s
Reviewed-on: #45
2025-12-28 08:08:58 +00:00
bagas
0ca6285ef5
Update .gitea/workflows/renovate.yml
Docker Build and Push / build-and-push (push) Successful in 3m32s
2025-12-28 08:08:10 +00:00
bagas
28cc069fdb
Merge pull request 'chore(deps): update golang docker tag to v1.25.5' ( #42 ) from renovate/golang-1.x into main
...
Docker Build and Push / build-and-push (push) Has been cancelled
renovate / renovate (push) Successful in 21s
Reviewed-on: #42
2025-12-28 08:07:44 +00:00
bagas
fe58e35e91
Merge pull request 'fix(deps): update module golang.org/x/crypto to v0.46.0' ( #43 ) from renovate/golang.org-x-crypto-0.x into main
...
renovate / renovate (push) Has been cancelled
Docker Build and Push / build-and-push (push) Has been cancelled
Reviewed-on: #43
2025-12-28 08:07:31 +00:00
bagas
14fa237027
Merge pull request 'staging' ( #41 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 3m32s
renovate / renovate (push) Successful in 45s
Reviewed-on: #41
2025-12-28 07:55:00 +00:00
bagas
9a2a373eb3
feat: add renovate
Docker Build and Push / build-and-push (push) Successful in 6m3s
2025-12-28 14:51:00 +07:00
bagas
1b248a2957
Merge pull request 'feat/sync' ( #39 ) from feat/sync into staging
...
Docker Build and Push / build-and-push (push) Successful in 3m30s
Reviewed-on: #39
2025-12-28 06:28:02 +00:00
bagas
7348bdafb7
Delete test
2025-12-28 06:24:40 +00:00
bagas
cb8529f13e
Update test
2025-12-28 06:20:21 +00:00
bagas
fa6b097d66
Add test file
2025-12-28 13:19:45 +07:00
bagas
e3c4f59a77
Add GitHub to Gitea sync workflow
2025-12-28 13:15:05 +07:00
bagas
c69cd68820
feat: add certmagic for automatic TLS certificate management
Docker Build and Push / build-and-push (push) Successful in 3m28s
2025-12-26 23:44:50 +07:00
bagas
76d1202b8e
fix: correct logic when checking tcpip-forward request
Docker Build and Push / build-and-push (push) Successful in 5m34s
2025-12-26 23:17:13 +07:00
bagas
6dff735216
fix: prevent OOM by bounding io.Copy buffer usage
Docker Build and Push / build-and-push (push) Successful in 3m47s
2025-12-18 21:09:12 +07:00
bagas
7bc5a01ba7
feat: add pprof for debuging
Docker Build and Push / build-and-push (push) Successful in 3m51s
2025-12-18 18:30:49 +07:00
bagas
2a43f1441c
Merge pull request 'fix: potential resource leak' ( #38 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 4m27s
Reviewed-on: #38
2025-12-17 14:38:40 +00:00
bagas
6451304ed7
fix: potential resource leak
Docker Build and Push / build-and-push (push) Successful in 4m17s
2025-12-17 21:38:00 +07:00
bagas
5c6826fe89
Merge pull request 'fix: add nil check in Forwarder.Close to avoid panic (issue #36 )' ( #37 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 4m9s
Reviewed-on: #37
2025-12-12 08:36:51 +00:00
bagas
2725975d82
fix: add nil check in Forwarder.Close to avoid panic (issue #36 )
Docker Build and Push / build-and-push (push) Successful in 4m8s
2025-12-12 15:36:07 +07:00
bagas
b484981017
Merge pull request 'staging' ( #35 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 4m22s
Reviewed-on: #35
2025-12-09 16:40:44 +00:00
bagas
102c975388
Merge branch 'staging' of https://git.fossy.my.id/bagas/tunnel-please into staging
Docker Build and Push / build-and-push (push) Successful in 4m17s
2025-12-09 23:40:06 +07:00
bagas
ad034ef681
fix: resolve random SSH disconnections caused by 'unexpected bytes remain' errors
2025-12-09 23:39:22 +07:00
bagas
aceecfd14c
Merge pull request 'Update LICENSE.md' ( #34 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 6m44s
Reviewed-on: #34
2025-12-08 16:03:33 +00:00
bagas
a2a688fc4e
Update LICENSE.md
Docker Build and Push / build-and-push (push) Successful in 3m51s
2025-12-08 16:02:51 +00:00
bagas
1de7155771
Merge pull request 'fix: prevent race condition when channel is used before being set' ( #33 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 3m46s
Reviewed-on: #33
2025-12-08 15:47:01 +00:00
bagas
c951c41a9b
fix: prevent race condition when channel is used before being set
Docker Build and Push / build-and-push (push) Successful in 6m24s
2025-12-08 22:46:10 +07:00
bagas
79d77497a0
Merge pull request 'update: readme' ( #32 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 6m22s
Reviewed-on: #32
2025-12-08 14:13:23 +00:00
bagas
cb08bb7673
update: readme
Docker Build and Push / build-and-push (push) Successful in 6m24s
2025-12-08 21:13:16 +07:00
bagas
20b90c1727
Merge pull request 'Update .gitea/workflows/build.yml' ( #31 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 5m9s
Reviewed-on: #31
2025-12-08 13:37:07 +00:00
bagas
5d9f7aee92
Update .gitea/workflows/build.yml
Docker Build and Push / build-and-push (push) Successful in 5m26s
2025-12-08 13:35:46 +00:00
bagas
a1e920f6b5
Merge pull request 'refactor: remove magic numbers and replace with named constants' ( #30 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 6m10s
Reviewed-on: bagas/tunnl_please#30
2025-12-08 12:46:56 +00:00
bagas
dd96c8fe75
refactor: remove magic numbers and replace with named constants
Docker Build and Push / build-and-push (push) Successful in 6m20s
2025-12-08 19:46:04 +07:00
bagas
b5045409cb
Merge pull request 'feat: add droping conn command' ( #29 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 4m30s
Reviewed-on: bagas/tunnl_please#29
2025-12-07 09:30:47 +00:00
bagas
ba5f702e36
feat: add droping conn command
Docker Build and Push / build-and-push (push) Successful in 4m38s
2025-12-07 15:26:37 +07:00
bagas
33e6ad08d7
Merge pull request 'staging' ( #28 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 6m0s
Reviewed-on: bagas/tunnl_please#28
2025-12-06 16:47:20 +00:00
bagas
8c8fdf251d
refactor: remove error shadowing
Docker Build and Push / build-and-push (push) Successful in 6m13s
2025-12-06 23:47:02 +07:00
bagas
03d3c8e4fb
feat: make interaction more interactive
2025-12-06 23:46:09 +07:00
bagas
fd513d7bc9
Merge pull request 'refactor: instantiate new session object once forwarding is approved' ( #27 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 6m2s
Reviewed-on: bagas/tunnl_please#27
2025-12-06 16:14:22 +00:00
bagas
9bd2bead9e
refactor: instantiate new session object once forwarding is approved
Docker Build and Push / build-and-push (push) Successful in 6m6s
2025-12-06 23:14:13 +07:00
bagas
73e7df6a3b
Merge pull request 'fix: correct read/write handling in CustomWriter' ( #26 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 5m14s
Reviewed-on: bagas/tunnl_please#26
2025-12-06 15:20:11 +00:00
bagas
69c3e78728
fix: correct read/write handling in CustomWriter
Docker Build and Push / build-and-push (push) Successful in 5m7s
2025-12-06 22:18:43 +07:00
bagas
d2c5b2a4db
Merge pull request 'staging' ( #25 ) from staging into main
...
Docker Build and Push / build-and-push (push) Successful in 4m21s
Reviewed-on: bagas/tunnl_please#25
2025-12-05 17:09:59 +00:00
bagas
0b8bc1dbba
Merge pull request 'refactor' ( #24 ) from refactor into staging
...
Docker Build and Push / build-and-push (push) Successful in 4m25s
Reviewed-on: bagas/tunnl_please#24
2025-12-05 17:03:36 +00:00