├── .github ├── actions │ ├── archive-plugins │ │ └── action.yml │ ├── build-all-plugins │ │ └── action.yml │ ├── build │ │ └── action.yml │ ├── docker │ │ └── action.yml │ ├── lint │ │ └── action.yml │ └── test │ │ └── action.yml ├── dependabot.yml └── workflows │ ├── main.yml │ └── release.yml ├── .gitignore ├── .golangci.yaml ├── CLAUDE.md ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── contrib ├── Makefile ├── README.md ├── cloudflare-shell │ ├── .gitignore │ ├── Makefile │ ├── README.md │ └── cloudflare-shell.sh └── cloudflare │ ├── .gitignore │ ├── Makefile │ ├── README.md │ ├── go.mod │ ├── go.sum │ └── main.go ├── go.mod ├── go.sum ├── internal ├── config │ ├── config.go │ └── device.go ├── crypto │ ├── crypto.go │ ├── endpoint.go │ └── endpoint_test.go ├── ctrl │ ├── api.go │ ├── bootstrap.go │ ├── bootstrap_test.go │ ├── ctrl.go │ ├── endpoint.go │ ├── establish.go │ ├── establish_darwin.go │ ├── establish_freebsd.go │ ├── establish_linux.go │ ├── mock │ │ ├── mock_api.go │ │ ├── mock_queue.go │ │ └── mock_repository.go │ ├── ping_monitor.go │ ├── ping_monitor_darwinbsd.go │ ├── ping_monitor_linux.go │ ├── publish.go │ ├── queue.go │ ├── refresh.go │ ├── refresh_test.go │ ├── repository.go │ └── stun.go ├── daemon │ └── daemon.go ├── entity │ ├── device.go │ ├── entity.go │ ├── filter_peer.go │ ├── mock │ │ └── mock_peer.go │ ├── peer.go │ ├── peer_id.go │ ├── peer_id_test.go │ └── value.go ├── logger │ └── logger.go ├── queue │ ├── queue.go │ └── queue_test.go ├── repo │ ├── api.go │ ├── devices.go │ ├── devices_test.go │ ├── mock │ │ └── mock_api.go │ ├── peers.go │ ├── peers_test.go │ └── repo.go └── stun │ ├── helper.go │ ├── resolver.go │ ├── stun.go │ ├── stun_darwinbsd.go │ └── stun_linux.go ├── main.go ├── plugin ├── exec.go ├── manager.go ├── shell.go └── store.go ├── scripts ├── build-for-erx.sh └── build-for-vyos.sh ├── start.sh ├── wire.go └── wire_gen.go /.github/actions/archive-plugins/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/archive-plugins/action.yml -------------------------------------------------------------------------------- /.github/actions/build-all-plugins/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/build-all-plugins/action.yml -------------------------------------------------------------------------------- /.github/actions/build/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/build/action.yml -------------------------------------------------------------------------------- /.github/actions/docker/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/docker/action.yml -------------------------------------------------------------------------------- /.github/actions/lint/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/lint/action.yml -------------------------------------------------------------------------------- /.github/actions/test/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/actions/test/action.yml -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/.golangci.yaml -------------------------------------------------------------------------------- /CLAUDE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/CLAUDE.md -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/README.md -------------------------------------------------------------------------------- /contrib/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/Makefile -------------------------------------------------------------------------------- /contrib/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/README.md -------------------------------------------------------------------------------- /contrib/cloudflare-shell/.gitignore: -------------------------------------------------------------------------------- 1 | # Build output 2 | stunmesh-cloudflare-shell 3 | -------------------------------------------------------------------------------- /contrib/cloudflare-shell/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare-shell/Makefile -------------------------------------------------------------------------------- /contrib/cloudflare-shell/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare-shell/README.md -------------------------------------------------------------------------------- /contrib/cloudflare-shell/cloudflare-shell.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare-shell/cloudflare-shell.sh -------------------------------------------------------------------------------- /contrib/cloudflare/.gitignore: -------------------------------------------------------------------------------- 1 | stunmesh-cloudflare 2 | -------------------------------------------------------------------------------- /contrib/cloudflare/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare/Makefile -------------------------------------------------------------------------------- /contrib/cloudflare/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare/README.md -------------------------------------------------------------------------------- /contrib/cloudflare/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare/go.mod -------------------------------------------------------------------------------- /contrib/cloudflare/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare/go.sum -------------------------------------------------------------------------------- /contrib/cloudflare/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/contrib/cloudflare/main.go -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/go.sum -------------------------------------------------------------------------------- /internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/config/config.go -------------------------------------------------------------------------------- /internal/config/device.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/config/device.go -------------------------------------------------------------------------------- /internal/crypto/crypto.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/crypto/crypto.go -------------------------------------------------------------------------------- /internal/crypto/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/crypto/endpoint.go -------------------------------------------------------------------------------- /internal/crypto/endpoint_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/crypto/endpoint_test.go -------------------------------------------------------------------------------- /internal/ctrl/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/api.go -------------------------------------------------------------------------------- /internal/ctrl/bootstrap.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/bootstrap.go -------------------------------------------------------------------------------- /internal/ctrl/bootstrap_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/bootstrap_test.go -------------------------------------------------------------------------------- /internal/ctrl/ctrl.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/ctrl.go -------------------------------------------------------------------------------- /internal/ctrl/endpoint.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/endpoint.go -------------------------------------------------------------------------------- /internal/ctrl/establish.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/establish.go -------------------------------------------------------------------------------- /internal/ctrl/establish_darwin.go: -------------------------------------------------------------------------------- 1 | //go:build darwin 2 | 3 | package ctrl 4 | 5 | const ( 6 | UpdateOnly = true 7 | ) 8 | -------------------------------------------------------------------------------- /internal/ctrl/establish_freebsd.go: -------------------------------------------------------------------------------- 1 | //go:build freebsd 2 | 3 | package ctrl 4 | 5 | const ( 6 | UpdateOnly = false 7 | ) 8 | -------------------------------------------------------------------------------- /internal/ctrl/establish_linux.go: -------------------------------------------------------------------------------- 1 | //go:build linux 2 | 3 | package ctrl 4 | 5 | const ( 6 | UpdateOnly = true 7 | ) 8 | -------------------------------------------------------------------------------- /internal/ctrl/mock/mock_api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/mock/mock_api.go -------------------------------------------------------------------------------- /internal/ctrl/mock/mock_queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/mock/mock_queue.go -------------------------------------------------------------------------------- /internal/ctrl/mock/mock_repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/mock/mock_repository.go -------------------------------------------------------------------------------- /internal/ctrl/ping_monitor.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/ping_monitor.go -------------------------------------------------------------------------------- /internal/ctrl/ping_monitor_darwinbsd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/ping_monitor_darwinbsd.go -------------------------------------------------------------------------------- /internal/ctrl/ping_monitor_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/ping_monitor_linux.go -------------------------------------------------------------------------------- /internal/ctrl/publish.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/publish.go -------------------------------------------------------------------------------- /internal/ctrl/queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/queue.go -------------------------------------------------------------------------------- /internal/ctrl/refresh.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/refresh.go -------------------------------------------------------------------------------- /internal/ctrl/refresh_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/refresh_test.go -------------------------------------------------------------------------------- /internal/ctrl/repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/repository.go -------------------------------------------------------------------------------- /internal/ctrl/stun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/ctrl/stun.go -------------------------------------------------------------------------------- /internal/daemon/daemon.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/daemon/daemon.go -------------------------------------------------------------------------------- /internal/entity/device.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/device.go -------------------------------------------------------------------------------- /internal/entity/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/entity.go -------------------------------------------------------------------------------- /internal/entity/filter_peer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/filter_peer.go -------------------------------------------------------------------------------- /internal/entity/mock/mock_peer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/mock/mock_peer.go -------------------------------------------------------------------------------- /internal/entity/peer.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/peer.go -------------------------------------------------------------------------------- /internal/entity/peer_id.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/peer_id.go -------------------------------------------------------------------------------- /internal/entity/peer_id_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/peer_id_test.go -------------------------------------------------------------------------------- /internal/entity/value.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/entity/value.go -------------------------------------------------------------------------------- /internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/logger/logger.go -------------------------------------------------------------------------------- /internal/queue/queue.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/queue/queue.go -------------------------------------------------------------------------------- /internal/queue/queue_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/queue/queue_test.go -------------------------------------------------------------------------------- /internal/repo/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/api.go -------------------------------------------------------------------------------- /internal/repo/devices.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/devices.go -------------------------------------------------------------------------------- /internal/repo/devices_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/devices_test.go -------------------------------------------------------------------------------- /internal/repo/mock/mock_api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/mock/mock_api.go -------------------------------------------------------------------------------- /internal/repo/peers.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/peers.go -------------------------------------------------------------------------------- /internal/repo/peers_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/peers_test.go -------------------------------------------------------------------------------- /internal/repo/repo.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/repo/repo.go -------------------------------------------------------------------------------- /internal/stun/helper.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/stun/helper.go -------------------------------------------------------------------------------- /internal/stun/resolver.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/stun/resolver.go -------------------------------------------------------------------------------- /internal/stun/stun.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/stun/stun.go -------------------------------------------------------------------------------- /internal/stun/stun_darwinbsd.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/stun/stun_darwinbsd.go -------------------------------------------------------------------------------- /internal/stun/stun_linux.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/internal/stun/stun_linux.go -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/main.go -------------------------------------------------------------------------------- /plugin/exec.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/plugin/exec.go -------------------------------------------------------------------------------- /plugin/manager.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/plugin/manager.go -------------------------------------------------------------------------------- /plugin/shell.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/plugin/shell.go -------------------------------------------------------------------------------- /plugin/store.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/plugin/store.go -------------------------------------------------------------------------------- /scripts/build-for-erx.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GOOS=linux GOARCH=mipsle go build -ldflags "-s -w" . 4 | -------------------------------------------------------------------------------- /scripts/build-for-vyos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GOOS=linux GOARCH=amd64 go build . 4 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/start.sh -------------------------------------------------------------------------------- /wire.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/wire.go -------------------------------------------------------------------------------- /wire_gen.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tjjh89017/stunmesh-go/HEAD/wire_gen.go --------------------------------------------------------------------------------