Skip to content
Static hosting service intended to centralize private documentation across multiple languages
Go Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.dockerignore
.gitignore
.tool-versions
Dockerfile
README.md
go.mod
go.sum
main.go

README.md

arcade

Docker Cloud Build Status

arcade is a basic web service written in Go for publishing static software documentation (sphinx, exdoc, cratedocs) from multiple projects with multiple versions across multiple languages. The service is meant to be used by private teams and is secured by basic auth.

To launch the service locally, clone the repo and run

docker build -t arcade .
docker run -p 6060:6060 -it arcade

or using the Dockerhub image

docker pull crflynn/arcade
docker run -p 6060:6060 -it crflynn/arcade

To see the home page visit

http://localhost:6060/

You will be prompted for a username and password. These are specified by environment variables along with the docs root directory and port. To override the default environment variables use:

docker run -p 6060:6060 \
    -e ARCADE_PORT='6060' \
    -e ARCADE_DOCROOT='/tmp/docs' \
    -e ARCADE_USERNAME='admin' \
    -e ARCADE_PASSWORD='password' \
    -it crflynn/arcade

To push new documentation, tar the docs contents and submit a PUT request:

# Navigate into the docs build directory (where index.html is).
# This will differ depending on language
# but the point is that we want the static docs built.
# The example here uses the sphinx build dir for html
cd docs/_build/html
# create a tar file of the contents excluding the top folder
tar -czf ../myproject.tar.gz .
cd ..
curl -u username:password -X PUT 'http://localhost:6060/docs/myproject/latest' --upload-file myproject.tar.gz
curl -u username:password -X PUT 'http://localhost:6060/docs/myproject/v1.2.3' --upload-file myproject.tar.gz

To delete documentation

# delete a single version
curl -u username:password -X DELETE 'http://localhost:6060/docs/myproject/v1.2.3'
# delete an entire project
curl -u username:password -X DELETE 'http://localhost:6060/docs/myproject'
You can’t perform that action at this time.