Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time
name: "Gomods"
state: "beta" # unstable, beta, stable are supported
image: ""
website: ""
oneLiner: "Caddy plugin that provides a caching Go modules proxy with your own domain."
description: |
Gomods is a Caddy plugin that provides a caching Go modules proxy with your own domain.
It supports all the hosting services and VCS` that are supported by Go tools. It also provides local caching
and parallel workers to fetch and store Go modules.
version: "v0.2.0"
mainLicense: "Apachev2"
docsLicense: "CCBySa"
type: ""
overview: |
Provide an easy to use but full featured proxy server for Go modules with Caddy's features.
- "Easy to setup and use"
- "Local caching, which can optionally be backed by mounting persistent volumes"
- "Parallel workers for fetching and storing modules"
concept: "Gomods' core concept is to make setting up a Go modules proxy server easier and faster."
aim: "Gomods accelerates starting a Go modules proxy process with its easy to understand config and features like parallel workers and caching"
usageExample: |
Note: The `master` branch is using [Caddy v2](, if you want to use Gomods with previous Caddy versions, check the caddy-v1 branch.
Gomods uses Go tools in the background for fetching the modules so there needs to be an installed version of Go on your machine.
For installing Gomods run the following command:
go get
Then you should create a config file like this example:
gomods.test {
The example above uses the default values for Go binary and number of parallel workers.
To customize these values add these fields to your config file:
gomods.test {
gomods {
gobinary /usr/bin/go
workers 2
To enable caching you should also add the `cache` field to the config:
gomods.test {
gomods {
Just like `gomods` itself, cache also uses its default values when not provided.
You can specify fields like `type` and `path` to customize caching:
gomods.test {
gomods {
cache {
type local
path /home/user/gomods_cache
For more information about the configuration options and the JSON config
example, check the [Configuration](/docs/ page.
To run Gomods run the following command in the same directory that the config file is located:
$ gomods start
issueTemplate: "/.github/"
starterIssues: ""
commercialSupport: ""
security: ""
coc: ""
owner: "The Gomods authors"
year: "2019"
copyrightHolder: " GmbH"
mail: ""
- name: "Michael Grosser"
nick: "stp-ip"
link: ""
type: "Github"
- image: ""
alt: "state"
- image: ""
link: ""
alt: "release"
- image: ""
link: "LICENSE"
alt: "license"
configVersion: "v1"