Commit Graph

184 Commits

Author SHA1 Message Date
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
v1.1.0-rc.2
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
Renovate-Clanker 8b0e08c629 fix(deps): update module github.com/caddyserver/certmagic to v0.25.1 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
Renovate-Clanker 32ac9c1749 fix(deps): update module github.com/caddyserver/certmagic to v0.25.1
# Conflicts:
#	go.mod
2026-01-14 16:51:30 +07:00
Renovate-Clanker e051a5b742 Merge pull request 'fix(deps): update module golang.org/x/crypto to v0.47.0' (#64) 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 9m51s
renovate / renovate (push) Successful in 55s
2026-01-12 18:20:57 +00:00
Renovate-Clanker d35228759c fix(deps): update module golang.org/x/crypto to v0.47.0 2026-01-12 18:20:53 +00: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
v1.0.6
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
v1.0.5
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
v1.0.4
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
v1.0.3
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
v1.0.1
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
v1.0.0
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
Renovate-Clanker 64e0d5805e chore(config): migrate config renovate.json 2025-12-29 14:57:09 +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
Renovate-Clanker e5b5cc3ae5 chore(deps): update actions/checkout action to v6 2025-12-29 10:03:19 +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
Renovate-Clanker 653517f5be chore(config): migrate config renovate.json 2025-12-29 09:48:12 +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