aboutsummaryrefslogtreecommitdiffstatshomepage

cgitize in Docker

cgitize is executed as a cron job inside the container. The SCHEDULE environment variable controls how often it gets run (see below).

  • Image: egortensin/cgitize
  • Volumes:
    • /etc/cgitize/cgitize.toml: configuration file path.
    • /mnt/cgitize: by default, cloned repositories will be written here.
    • /ssh-agent.sock: if you use SSH, map the agent socket here.
  • Environment variables:
    • SCHEDULE: defaults to "once", which makes the container exit after the first run. You can also set it to "minutely", "15min", "hourly", "daily", "weekly", "monthly" or a custom 5-part cron schedule like "*/5 * * * *".

Frontend

There's a web server image with a working cgit installation.

  • Image: egortensin/cgitize-frontend
  • Volumes:
    • /etc/cgitrc: if you use a custom cgit configuration, map it here. It could look like this:

       # Generally useful and opionated settings, included in the image.
       include=/etc/cgit/common
      
       # If you serve from a subdirectory.
       virtual-root=/custom/
      
       root-title=Custom title
       root-desc=Custom description
      
    • /mnt/cgitize: map cgitize's output directory here.

Compose

Here's an example docker-compose.yml file:

version: '3'

services:
  cgitize:
    environment:
      # Every 3 hours:
      SCHEDULE: '0 */3 * * *'
      # Set CGITIZE_{GITHUB,BITBUCKET,GITLAB}_{USERNAME,TOKEN} variables
      # here or in the config file.
    image: egortensin/cgitize:5
    restart: unless-stopped
    volumes:
      - ./example.toml:/etc/cgitize/cgitize.toml:ro
      - /srv/volumes/cgitize:/mnt/cgitize
  frontend:
    image: egortensin/cgitize-frontend:5
    ports:
      - '127.0.0.1:80:80'
    restart: unless-stopped
    volumes:
      - /srv/volumes/cgitize:/mnt/cgitize:ro

In this configuration, cgitize pulls repositories defined in example.toml every 3 hours and puts them to /srv/volumes/cgitize on the host.

To launch containers, run:

docker-compose up -d

To inspect the repositories, visit http://localhost:80/.