summaryrefslogtreecommitdiffstats
path: root/readme.md
blob: abf9829a69d0e756f80f4a293246df6c3c3aeb13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# cgit

[Docker image](https://hub.docker.com/r/tvanbesi/cgit)

This project is a [cgit](https://git.zx2c4.com/cgit/about/) docker image.

It aims to be as simple as possible. No authentication, no SSH, just browsing repositories on a web page. The container doesn't write to the repositories so they can be read-only.

# Build

```
docker build --tag cgit .
```

# Run

## cgit configuration and runtime

Examples are provided in the `examples` directory.

* `CGITRC`: Host directory containing a `cgitrc` configuration, see [cgitrc manual](https://manpages.debian.org/trixie/cgit/cgitrc.5.en.html).
* `COMMIT_FILTER`: Host directory containing an executable `commit-filter.sh`  script to format Git commit messages. See the `commit-filter` section of the [cgitrc manual](https://manpages.debian.org/trixie/cgit/cgitrc.5.en.html).
* `ABOUT`: Host directory containing `about.md` for the front page "about" section.
* `REPOSITORIES`: Host directory containing your Git repositories.

## Run with `docker`

```
docker run \
    --rm \
    --name cgit \
    --publish 8080:80 \
    --mount type=bind,src=CGITRC,dst=/etc/cgit,ro \
    --mount type=bind,src=COMMIT_FILTER,dst=/usr/local/lib/cgit/filters/commit \
    --mount type=bind,src=ABOUT,dst=/srv/cgit,ro \
    --mount type=bind,src=REPOSITORIES,dst=/srv/git,ro \
    cgit
```

Browse the website [here](http://localhost:8080).

## Run with `docker compose`

*Example `compose.yaml`:*

```
services:
  cgit:
    build: .
    image: cgit
    container_name: cgit
    ports:
      - 8080:80
    volumes:
      - CGITRC:/etc/cgit:ro
      - COMMIT_FILTER:/usr/local/lib/cgit/filters/commit
      - ABOUT:/srv/cgit:ro
      - REPOSITORIES:/srv/git:ro
```

Browse the website [here](http://localhost:8080).

# Configuration

## Repository specific `cgitrc`

Add a `cgitrc` file at the root of a repository to configure it for cgit. Note that this only works with the `scan-path` setting.

*Example `cgitrc`:*

```
desc=Repository description
owner=Repository owner
section=Repository section
```