Spyke
golang·Golangbytapdattl

Go Modules in Local/Private Forgejo Instances

Bit of a newbie question here, but I've set up a local Forgejo server in my homelab that I'm using for personal projects. I've created some modules that I want to be able to reference in other local projects.

Trying to run

go get code.mydomainname.com/tapdattl/test

returns

go: downloading code.mydomainname.com/tapdattl/test v1.0.0
go: code.mydomainname.com/tapdattl/[email protected]: verifying module: code.mydomainname.com/tapdattl/[email protected]: reading https://sum.golang.org/lookup/code.mydomainname.com/tapdattl/[email protected]: 404 Not Found
        server response: not found: code.mydomainname.com/tapdattl/[email protected]: unrecognized import path "code.mydomainname.com/tapdattl/test": https fetch: Get "https://code.mydomainname.com/tapdattl/test?go-get=1": dial tcp <my netbird ip address>:443: connect: connection refused

However I know my Forgejo server is up, and I can push to it and clone from it and do all the normal Git workflows. But Go apparently can't talk to it.

Can anyone explain what's going on?

Thanks!!

View original on lemmy.world
lemmy.world

Looking at it again, I'm guessing the part where sum.golang.org/lookup tries to query my behind-netbird server is why the lookup is failing. But is there a way to gave Go not rely on an external service like that? Or have it run the query locally instead of from the sum.golang.org server?

3
tapdattlreply
lemmy.world

Yup this fixed it -- adding GOPRIVATE=code.mydomain.com as an environment variable allowed go get and go mod tidy to work with my private repos.

Is there a way to set this globally, or to configure Go to always treat any references to code.mydomain.com as a private URL?

2

The go env -w command can make most go environment variable settings persistent for the current user. Alternatively, you could set the environment variable in your shell's login script.

Be sure to read go's docs for individual environment variables, because go doesn't respect all methods of setting them in every case. (For example, it ignores certain approaches to disabling its telemetry. How convenient for Google.)

4

I don't know if this will help, but I documented how to configure my Caddy webserver to serve golang vanity URLs here.

2

You reached the end

Go Modules in Local/Private Forgejo Instances | Spyke