eyedeekay / epoccipital

Headscale server with WebUI for I2P
Other
1 stars 0 forks source link

Unable To Compile: `replacement directory ../../eyedeekay/headscale does not exist` #1

Open bonedaddy opened 1 year ago

bonedaddy commented 1 year ago

Overview

Unable to compile due to a go modules error replacing the headscale dependency with a local one.

Error

go build epoccipital/headscale.go                                                     04:03:08
go: downloading github.com/oauth2-proxy/mockoidc v0.0.0-20220308204021-b9169deeb282
go: downloading github.com/efekarakus/termcolor v1.0.1
go: downloading google.golang.org/grpc v1.51.0
go: downloading github.com/eyedeekay/onramp v0.0.0-20221229205637-59c4ed7e7355
go: downloading github.com/eyedeekay/sam3 v0.33.4
go: downloading github.com/AlecAivazis/survey/v2 v2.3.6
go: downloading github.com/pterm/pterm v0.12.51
go: downloading github.com/tcnksm/go-latest v0.0.0-20170313132115-e3007ae9052e
go: downloading github.com/spf13/viper v1.14.0
go: downloading github.com/spf13/cobra v1.6.1
go: downloading github.com/rs/zerolog v1.28.0
go: downloading github.com/prometheus/common v0.39.0
go: downloading tailscale.com v1.34.1
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/golang-jwt/jwt v3.2.2+incompatible
go: downloading github.com/fsnotify/fsnotify v1.6.0
go: downloading github.com/mitchellh/mapstructure v1.5.0
go: downloading github.com/spf13/afero v1.9.3
go: downloading github.com/spf13/cast v1.5.0
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading github.com/hashicorp/go-version v1.6.0
go: downloading github.com/mattn/go-isatty v0.0.16
go: downloading github.com/subosito/gotenv v1.4.1
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading gopkg.in/ini.v1 v1.67.0
go: downloading github.com/magiconair/properties v1.8.6
go: downloading github.com/pelletier/go-toml/v2 v2.0.6
go: downloading atomicgo.dev/cursor v0.1.1
go: downloading atomicgo.dev/keyboard v0.2.8
go: downloading github.com/gookit/color v1.5.2
go: downloading github.com/lithammer/fuzzysearch v1.1.5
go: downloading github.com/cretz/bine v0.2.0
go: downloading github.com/eyedeekay/i2pkeys v0.0.0-20220804220722-1048b5ce6ba7
go: downloading google.golang.org/genproto v0.0.0-20221202195650-67e5cbc046fd
go: downloading github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e
go: downloading go4.org/mem v0.0.0-20220726221520-4f986261bf13
go: downloading github.com/containerd/console v1.0.3
go: downloading github.com/pelletier/go-toml v1.9.5
epoccipital/cli/api_key.go:8:2: github.com/juanfont/headscale@v0.18.0-beta2.0.20221227220834-549b82df1192: replacement directory ../../eyedeekay/headscale does not exist
epoccipital/cli/api_key.go:9:2: github.com/juanfont/headscale@v0.18.0-beta2.0.20221227220834-549b82df1192: replacement directory ../../eyedeekay/headscale does not exist
eyedeekay commented 1 year ago

Wow you picked up on this fast lol. There isn't even a tailscale client to use it with yet. Just a sec...

eyedeekay commented 1 year ago

https://github.com/eyedeekay/epoccipital/commit/d01878d4d8c8ea541f1f474edb7d5f252cee8c14#diff-33ef32bf6c23acb95f5902d7097b7a1d5128ca061167ec0716715b0b9eeaa5f6

eyedeekay commented 1 year ago

I don't know how much work you're actually going to want to put into this, the Headscale side is way easier than the Tailscale side as far as I can tell. BUT if you can tell better than me, I'd appreciate help putting together a tailscale client which works over I2P.

bonedaddy commented 1 year ago

hey sorry for the late reply.

I don't know how much work you're actually going to want to put into this, the Headscale side is way easier than the Tailscale side as far as I can tell. BUT if you can tell better than me, I'd appreciate help putting together a tailscale client which works over I2P.

Potentially a good amount, this seems like it's basically creating a wireguard overlay network, but connecting through I2P? If that's the case, this is basically mission critical to a hobby project of mien.

eyedeekay commented 1 year ago

hey sorry for the late reply.

I don't know how much work you're actually going to want to put into this, the Headscale side is way easier than the Tailscale side as far as I can tell. BUT if you can tell better than me, I'd appreciate help putting together a tailscale client which works over I2P.

Potentially a good amount, this seems like it's basically creating a wireguard overlay network, but connecting through I2P? If that's the case, this is basically mission critical to a hobby project of mien.

That's what I'm doing here yeah, headscale is a provisioning server and it's apparently the easy part, you can examine the diff between my fork and the upstream to see what that takes. The tailscaled part is harder though, because the interfaces aren't exposed as far as I can tell. Therefore the really important thing it to figure out a plan of attack for the tailscaled part, one which allows you to plug in SAMv3 dialers and listeners in lieu of the standard ones. Essentially, add I2P support to upstream tailscale. That's the reason I stopped at this phase of my experiment, that seemed like it would consume time I did not have. That said, it's probably 90% figuring out how, 10% actual implementation.

bonedaddy commented 1 year ago

Makes sense, thanks for taking the time to explain, and I agree the figuring out is going to be the difficult part. I took a look through the tailscale codebase, and found files that are likely relevant to figuring out an implementation strategy. Notably the wgengine package.

eyedeekay commented 1 year ago

That's a good start, I also think those are probably the most important places to look at integration. If I get some time this week I'll try and help you figure out how to substitute SAMv3 connections for regular connections.