mugit
-----
A cgit/gitweb-like server that your cow will love.
FEATURES
- Web interface - browse repositories, view commits, files, and diffs
- Git Smart HTTP - clone over https (use ssh for pushing)
- Git over SSH - push and clone over ssh
- Private repositories - repositories that are only accessible via ssh
- Mirroring - Automatically mirror repositories (supports github auth)
- CLI - for managing your repos
INSTALL
Clone it, `go build` it.
You can also you nix flake if you're on nixos.
CONFIG
Uses yaml for configuration, look for a 'config.yaml' in:
1. `/var/lib/mugit/config.yaml`
2. `$XDG_CONFIG_HOME/mugit/config.yaml` (or `~/.config/mugit/config.yaml`)
3. `/etc/mugit/config.yaml`
Pass `--config` flag to point it elsewhere
Example config:
server:
host: 0.0.0.0
port: 5555
meta:
# title and description you see on the index page
title: My Git Server
description: A place for my projects
# used for clone urls and go-import meta tag
host: git.example.com
repo:
# where all your repo live (maybe die too). mugit doesn't traverse subdirs
dir: /var/lib/mugit
# readme files to look for
readmes:
- README.md
- readme.md
# master branches name to look for
masters:
- main
- master
ssh:
enable: true
port: 2222
# path to ssh private key for ssh server to use
# you can generate it with: ssh-keygen -f key/path
host_key: /var/lib/mugit/ssh_host_key
# list of keys that are allowed to access private repos
keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPLLJdkVYKZgsayw+sHanKPKZbI0RMS2CakqBCEi5Trz
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMPQ0Qz0DFB+rGrD8ScUqbUTZ1/O8FHrOBF5bIAGQgMj
mirror:
enable: true
# with which interval sync repo
interval: 1h
# github token for avoiding github rate limiting
github_token: "ghp_xxxxxxxxxxxx"
CLI
# start server
mugit serve
# run with custom config
mugit -c /path/to/config.yml serve
# create new repository
mugit repo new myproject
# create new private repository
mugit repo new --private myproject
# create new mirror
mugit repo new myproject --mirror https://github.com/user/repo
mugit repo new myproject --mirror https://codeberg.org/user/repo
# toggle repository private status
mugit repo private myproject
# get repository description
mugit repo description myproject
# set new description
mugit repo description myproject "My awesome project"
LICENSE
mugit is licensed under MIT.
|