~poldi1405/gomod-recter

cdafcbacc3f8dc025edb1276464db616678ac4e0 — Moritz Poldrack 2 years ago 83c12bf
added documentation for config keys
3 files changed, 161 insertions(+), 0 deletions(-)

A config.md
M deployment.md
M index.md
A config.md => config.md +155 -0
@@ 0,0 1,155 @@
---
title: "Configuration"
---

# Configuration

The config for recter is split into multiple chapters. The configuration format
is TOML and it is automatically reloaded and applied on the fly (with a few
exceptions).

# Chapters

## Root

The root chapter is the highest level. It does not have to be specified.

### Domain

The domain you wish to use for the import path. This must be the same as the
Reverse Proxy is available at.

### VersionRefreshInterval

Default: `5m`

How often to query for new versions.

## Directories

### DataDir

*not yet relevant*

This is where recter might save runtime and cache data in the future. Currently
this setting has no effect.

### TemplateDir

This indicates where recter is looking for templates used for generating the
html pages.

### AssetDir

This indicates where assets for the HTML page can be found. You can access the
directory structure by requesting it with the prefix `/assets/`.

#### Example

Your asset is
`/home/user/recter-test/themes/my-theme/assetfiles/css/my-style.css`. You can
set `AssetDir` to `/home/user/recter-test/themes/my-theme/assetfiles` and
request your file by requesting `/assets/css/my-style.css`.

## Network

### Type

Possible Values: `tcp`, `unix`

Type allows setting the network type to either TCP or UNIX-Socket.

### SocketPath

The path to where the UNIX-Socket will be generated. It will take the
permissions of the parent directory and there is no way to specify permissions
another way.

### ListenAddr

Format: `Address:Port`

Default: `127.0.0.1:25000`

Indicates interface and Port to listen on.

## Proxy

### Address

Default: `https://proxy.golang.org`

The GOPROXY to use for querying new versions.

### IgnoreCert

Do not validate SSL-Certificates. This is currently implemented until the
container is built with the CA Certs.

## Projects

### *

Every subkey is the path of a project. The Project Settings are defined in the
subkeys.

#### Name¹

The human readable name of the project, shown on the HTML page.

#### Redirect

Whether to directly redirect to the Projects repository. If `Redirect` is set
to `true`, Keys marked with ¹ are not used.

#### Description¹

A description of what the project is about.

#### VCS

The kind of VCS that is used. This is usually `git` but `svn`, `hg`, `fossil`,
and `bzr` are also officially supported.

#### Repo

The actual repo where your code lives.

#### License¹

This is the license of the project.

#### DefaultBranch

This setting is used to allow Documentation renderers to link to the
sourcecode. If this is not set, the instructions on where to find the code is
omitted.

#### GoSourceFmt

Some popular sourcehosting sites are automatically detected through the Repo-Host. If your favourite site is not automatically detected, feel free to send a patch.

Common formats for Gitea, Gitlab, and more can be found
[here](https://git.sr.ht/~poldi1405/gomod-recter/tree/master/item/internal/data/get-data.go#L107-127,135-155)
and can be added as "[dirstring] [filestring]".

#### Note¹

Note can be used to display a notice (for example regarding an announcement) on
the project page.

##### Show

Whether or not to display the notice.

##### Text

The text of the notice.

##### Style

The style of the notice.

# Footnotes

¹) This option does not apply if Redirect is set to true for the project.

M deployment.md => deployment.md +2 -0
@@ 4,6 4,8 @@ title: "How to deploy recter"

# How to deploy recter

see also: [configuration](./config.md)

## Using Docker

A docker container is provided as

M index.md => index.md +4 -0
@@ 28,6 28,10 @@ without breaking the importpath.
  exposed somewhere else
	- versions can be retrieved from Go Proxies, so these are easy.
	  Reimplementing `git ls-remote` is considered out of scope.
- generate SSL certificates
	- nginx and caddy are very mature reverse proxies and can be configured
	  way better and more detailed. This is to encourage the use of a
	  reverse proxy.

## How to deploy it