selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

rgit logo

Self-host rgit

0.1.5

Git repository web UI with RocksDB-powered speed

BetaOpen SourceWTFPL
Updatedlast year
LanguageRust
Setup difficultyModerate
ThemeDark mode
Stars
215
Ports
8000 (HTTP web interface), 3333 (HTTP web interface (default in usage example))
Docker
ghcr.io/w4/rgit
Install with Docker

What is rgit?

rgit provides a gitweb/cgit-like interface for self-hosted Git repositories. It indexes repository metadata into RocksDB for fast loading, renders files and diffs on demand via gitoxide, and includes a dark mode. It runs as a standalone binary, Docker container, or NixOS service, serving bare repositories over HTTP. Configuration is done via repository-level description and config files. The project is licensed under WTFPL.

rgit alternatives

Should you self-host rgit?

rgit scores 46/100 on selfhost.directory (how scoring works) and ranks #11 of 14 in Code Hosting. It has 215 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is WTFPL-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is Gitea (89/100, 58 779 stars). It scores higher overall, so compare the two before you pick. See rgit vs Gitea side by side.

Features

  • Configurable reindex interval
  • Git repository browsing
  • NixOS module
  • On-demand file and diff loading
  • Repository description support
  • Repository owner display
  • RocksDB metadata caching

rgit README

rgit

Introduction

See it in action!

A gitweb/cgit-like interface for the modern age. Written in Rust using Axum, gitoxide, Askama and RocksDB.

Includes a dark mode for late night committing.

Table of Contents

How to install rgit

Install rgit with Docker

Environment variables
REFRESH_INTERVAL

docker run --mount type=bind,source=/path/to/my-bare-repos,target=/git
--user $UID:$GID
-it ghcr.io/w4/rgit:main

Replace $UID and $GID with the UID and GID of the user that owns the repositories directory.

rgit releases & version history

FAQ

Why don't newly initialized bare repositories appear in the list?

Run `git pack-refs --all` inside the repository or push a commit with at least one file to make it appear.

Why do I get 'repository path is not owned by the current user' on launch?

Ensure the user launching rgit or the Docker container has the same permissions as the user that owns the repositories directory.

Why do I get 'Repository not exported' when cloning via HTTPS?

Create a file named `git-daemon-export-ok` in the bare git repository to signal it is exportable.

More in Code Hosting

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…