A Go module datastore and proxy
Clone or download
carolynvs and arschles Document our docker tags (#911)
* Document our docker tags

* Fix links on install page
Latest commit f39b013 Nov 12, 2018
Failed to load latest commit information.
.github Adding docs on PR triaging (#803) Oct 26, 2018
charts/proxy Rename docker image (#909) Nov 12, 2018
cmd/proxy Fix CI build (#903) Nov 11, 2018
docs Document our docker tags (#911) Nov 12, 2018
pkg Checking the number of bytes written to Mongo GridFS (#889) Nov 12, 2018
scripts Fix remaining docker image names (#910) Nov 12, 2018
vendor Do not download modules during CI build (#815) Oct 24, 2018
.dockerignore Cleanup Dockerfiles (#437) Aug 13, 2018
.gitattributes normalize all line endings for the repo (#269) Jul 14, 2018
.gitignore Remove Olympus code (#779) Oct 22, 2018
.goreleaser.yml change go releaser to create draft releases (#621) Sep 2, 2018
.travis.yml Fix CI build (#903) Nov 11, 2018
CODE_OF_CONDUCT.md Add Code of Conduct (#707) Oct 3, 2018
CONTRIBUTING.md link to first-contributions docs (#833) Oct 30, 2018
DEVELOPMENT.md Update docs for those struggling to set up buffalo (#871) Nov 7, 2018
LICENSE Updating the license author (#387) Aug 3, 2018
Makefile Rename docker image (#909) Nov 12, 2018
PHILOSOPHY.md Update PHILOSOPHY.md (#582) Aug 28, 2018
README.md Add more prominent area to advertise our meetings (#881) Nov 9, 2018
REVIEWS.md Adding comments on when to use each review type (#661) Sep 28, 2018
SHOULDERS.md use buffalo/shoulders to generate SHOULDERS.md (#479) Aug 16, 2018
config.dev.toml Add docs for the filter file (#864) Nov 8, 2018
docker-compose.yml Remove redis from toml file (#845) Nov 1, 2018
go.mod Do not download modules during CI build (#815) Oct 24, 2018
go.sum Upgrade Buffalo (#789) Oct 23, 2018
init.ps1 Rename docker image (#909) Nov 12, 2018
netlify.toml redirect other domain requests to docs.gomods.io (#663) Sep 14, 2018


Welcome To Athens, Gophers!

Athens Banner

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

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

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

Project Status

Project Athens is in alpha. Things might change, so we recommend that you don't run it for production workloads. We have organizations that are testing it internally, and there is an experimental public proxy server running.

We encourage you to test it out and contribute when you can!

More Details Please!

Although the project is alpha, here's where we're going:

The proxy implements the Go modules download protocol.

There is currently an experimental public proxy, and we have plans to host a more stable public proxy with more guarantees. We also have a community of folks who are testing Athens inside their organizations, as an "internal proxy." In either deployment, users set their GOPROXY environment variable to point to the Athens proxy of their choice. At that point, go get, go build, and go builds 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, public proxies can store code in cloud databases and CDNs, while internal "enterprise" deployments can use disk-based (i.e. NFS) storage.


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

Speaking of contributing, read on!


Developer MeetingsDeveloper Meetings
We hold weekly developer meetings on a Thursday, to join them, watch previous meeting recordings or find more information, please see the docs. Absolutely everyone is invited to attend these, suggest topics, and participate!

This project is early and there's plenty of interesting and challenging work to do.

If you find a bug or want to fix a bug, we ❤️ 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 😄), 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 contributing or otherwise getting involved, 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 😄), 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 Guidlines

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 to me, Aaron Schlesinger on the Gophers Slack. My username is arschles. Note that in the future, we will be expanding the ways that you can contact us regarding the code of conduct.

Athens banner attributed to Golda Manuel