gianfurrer / docat

Host your docs. Simple. Versioned. Fancy.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

docat

Host your docs. Simple. Versioned. Fancy.

build Gitter

Getting started

The simplest way is to build and run the docker container, you can optionally use volumes to persist state:

# run container in background and persist data (docs, nginx configs and tokens database)
# use 'ghcr.io/docat-org/docat:unstable' to get the latest changes
mkdir -p docat-run/db && touch docat-run/db/db.json
docker run \
  --detach \
  --volume $PWD/docat-run/doc:/var/docat/doc/ \
  --volume $PWD/docat-run/locations:/etc/nginx/locations.d/ \
  --volume $PWD/docat-run/db/db.json:/app/docat/db.json \
  --publish 8000:80 \
  ghcr.io/docat-org/docat

Alternative: Mount a dedicated directory to host db.json :

# run container in background and persist data (docs, nginx configs and tokens database)
# use 'ghcr.io/docat-org/docat:unstable' to get the latest changes
mkdir -p docat-run/db && touch docat-run/db/db.json
docker run \
  --detach \
  --volume $PWD/docat-run/doc:/var/docat/doc/ \
  --volume $PWD/docat-run/locations:/etc/nginx/locations.d/ \
  --volume $PWD/docat-run/db:/var/docat/db/ \
  --env DOCAT_DB_PATH=/var/docat/db/db.json
  --publish 8000:80 \
  ghcr.io/docat-org/docat

Go to localhost:8000 to view your docat instance:

docat screenshot

If you want to run the application different than in a docker container, look at the backend and web docs.

Push documentation to docat

The preferred way to push documentation to a docat server is using the docatl command line application:

docatl push --host http://localhost:8000 /path/to/your/docs PROJECT VERSION

There are also docker images available for CI systems.

Using standard UNIX command line tools

If you have static html documentation or use something like mkdocs, sphinx, ... to generate your documentation, you can push it to docat:

# create a zip of your docs
zip -r docs.zip /path/to/your-docs
# upload them to the docat server (replace PROJECT/VERSION with your projectname and the version of the docs)
curl -X POST -F "file=@docs.zip" http://localhost:8000/api/PROJECT/VERSION

When you have multiple versions you may want to tag some version as latest:

# tag the version VERSION of project PROJECT as latest
curl -X PUT http://localhost:8000/api/PROJECT/VERSION/tags/latest

Advanced config.json

It is possible to configure some things after the fact.

  1. Create a config.json file
  2. Mount it inside your docker container --volume /path/to/config.json:/var/www/html/config.json

Supported config options:

  • headerHTML

About

Host your docs. Simple. Versioned. Fancy.

License:MIT License


Languages

Language:Vue 39.2%Language:Python 35.2%Language:JavaScript 21.1%Language:Dockerfile 3.2%Language:HTML 1.0%Language:Makefile 0.2%