Mirror of github.com/gomods/athens, for those times when the internet at large dies
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Aaron Schlesinger 35799c5f3b
Merge branch 'master' into gh-actions
4 months ago
.circleci run chart install test only if it is needed (#1229) 1 year ago
.github Merge branch 'master' into gh-actions 4 months ago
.sail Add support for Sail development environments (#1248) 11 months ago
charts/athens-proxy Add forcepathstyle config for s3 (#1533) 5 months ago
cmd/proxy Update builds for Go 1.14 (#1558) 4 months ago
docs Updating the sum database documentation (#1494) 4 months ago
e2etests Replace the current e2e script with a test suite running e2e tests. (#1514) 4 months ago
pkg add config options for redis password (#1545) 4 months ago
scripts Update builds for Go 1.14 (#1558) 4 months ago
test add config options for redis password (#1545) 4 months ago
.dockerignore Add .git to .dockerignore (#1429) 8 months ago
.drone.yml Update builds for Go 1.14 (#1558) 4 months ago
.gitattributes normalize all line endings for the repo (#269) 2 years ago
.gitignore SystemD installation (#1445) 7 months ago
CODE_OF_CONDUCT.md Add Code of Conduct (#707) 1 year ago
CONTRIBUTING.md Adding a header to the contributing doc (#1483) 7 months ago
DEVELOPMENT.md SystemD installation (#1445) 7 months ago
Dockerfile.test Update builds for Go 1.14 (#1558) 4 months ago
LICENSE Updating the license author (#387) 1 year ago
Makefile Replace the current e2e script with a test suite running e2e tests. (#1514) 4 months ago
PHILOSOPHY.md Move PHILOSOPHY.md to our docs site (#877) 1 year ago
README.md Adding note about office hours, removing note about developer meetings (#1344) 8 months ago
REVIEWS.md Adding comments on when to use each review type (#661) 1 year ago
SHOULDERS.md Update SHOULDERS.md (#1061) 1 year ago
appveyor.yml Update builds for Go 1.14 (#1558) 4 months ago
azure-pipelines.yml Remove dummy mod dir (#1121) 1 year ago
config.dev.toml add config options for redis password (#1545) 4 months ago
docker-compose.yml add config options for redis password (#1545) 4 months ago
download.example.hcl downloadProtocol: support multi-proxy environments with DownloadFile (#1230) 1 year ago
go.mod always use request logging middleware (#1522) 5 months ago
go.sum always use request logging middleware (#1522) 5 months ago
init.ps1 #1149 Remove references to Buffalo (#1203) 1 year ago
netlify.toml redirect other domain requests to docs.gomods.io (#663) 1 year ago
robots.txt feat: add /robots.txt (#1355) 9 months ago


Welcome To Athens, Gophers!

Athens Banner

Build Status GoDoc Go Report Card codecov Docker Pulls PRs Welcome Open Source Helpers

Welcome to the Athens project! We are a proxy server for the Go Modules download API.

Office HoursOffice Hours
We hold office hours approximately weekly. To find out what they’re all about, join them, watch previous meetings, or just find out more, see the docs. Absolutely everyone is invited to attend these, suggest topics, and participate!

See our documentation site https://docs.gomods.io for more details on the project.

Project Status

Project Athens is in beta. It’s being tested and used on teams and has an experimental deployment for public use.

We encourage you to try it out, let us know what you think, and contribute when you can!

More Details Please!

The proxy implements the Go modules download protocol.

There is currently an experimental public proxy (at https://athens.azurefd.net) that you can use to try out Athens, without installing anything locally. We also have a community of folks using Athens in production inside their organizations as an internal proxy. In either deployment, developers set their GOPROXY environment variable to point to the Athens proxy of their choice. At that point, go get, go build, and more commands will use the proxy to download dependencies as necessary.

Athens proxies are highly configurable, so they can work for lots of different deployments. For example, proxies support a wide variety of storage drivers including:

  • Cloud blob storage services
  • MongoDB
  • Content distribution networks (CDNs)
  • Shared disk
  • In-memory


See DEVELOPMENT.md for details on how to set up your development environment and start contributing code.

Speaking of contributing, read on!


This project has plenty of interesting and challenging work to do and a wonderful community.

If you find a bug or want to fix a bug, we :heart: PRs and issues! If you see an issue in the queue that you’d like to work on, please just post a comment saying that you want to work on it. Something like “I want to work on this” is fine.

If you decide to contribute (we hope you do :smile:), the process is familiar and easy if you’ve used Github before. There are no long documents to read or complex setup. If you haven’t used Github before, the awesome @bketelsen has created a good overview on how to contribute code - see here.

Before you do start getting involved or contributing, we want to let you know that we follow a general philosophy in how we work together, and we’d really appreciate you getting familiar with it before you start.

It’s not too long and it’s ok for you to “skim” it (or even just read the first two sections :smile:), just as long as you understand the spirit of who we are and how we work.

Getting Involved

If you’re not ready to contribute code yet, there are plenty of other great ways to get involved:

  • Come talk to us in the #athens channel in the Gophers slack. We’re a really friendly group, so come say hi and join us! Ping me (@arschles on slack) in the channel and I’ll give you the lowdown
  • Come to our weekly development meetings! They are a great way to meet folks, ask questions, find some stuff to work on, or just hang out if you want to. Just like with this project, absolutely everyone is welcome to join and participate in those
  • Get familiar with the system. There’s lots to read about. Here are some places to start:

Built on the Shoulders of Giants

The Athens project would not be possible without the amazing projects it builds on. Please see SHOULDERS.md to see a list of them.

Coding Guidelines

We all strive to write nice and readable code which can be understood by every person of the team. To achieve that we follow principles described in Brian’s talk Code like the Go team.

Code of Conduct

This project follows the Contributor Covenant (English version here) code of conduct.

If you have concerns, notice a code of conduct violation, or otherwise would like to talk about something related to this code of conduct, please reach out @arschles on the Gophers Slack.

Athens banner attributed to Golda Manuel