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/test@v1.0.0: verifying module: code.mydomainname.com/tapdattl/test@v1.0.0: reading https://sum.golang.org/lookup/code.mydomainname.com/tapdattl/test@v1.0.0: 404 Not Found
        server response: not found: code.mydomainname.com/tapdattl/test@v1.0.0: 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!!

  • tapdattlOP
    link
    fedilink
    arrow-up
    2
    ·
    9 days ago

    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?

    • who@feddit.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      9 days ago

      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.)