eejit 0.2.1

A self-hosted Git server that's easy to set up, use, and maintain.
# Eejit

Eejit is self-hosted Git server that's easy to set up, use, and maintain.

## Getting Started

- Install via cargo || source.
- Create an empty directory, and create a starting `server.toml` file (minimal example below).
- Run Eejit.
- Done!

## Server Config

Eejit is configured via the `server.toml` file inside the `/config.git` repo, which is only accessible to admin users.
When starting Eejit for the first time, it will copy an adjacent config file into the newly created config repo.
Here's a minimal example:

```toml
name = "Eejit Server"
port = 2222

hostname = "example.com"

[users.claudia]
is_admin = true
public_key = "ssh-rsa AAAAj74s..."

[users.alex]
can_create_repos = true
public_key = "ssh-rsa AAAAm8fd..."

# Optional.
welcome_message = "Welcome, %!"
```

## Repositories

You can create a new repository on an Eejit server by simply pushing an existing one. Non-admin users can only create
repos under their personal subdirectory (so for example, the user Alex above could push to `ssh://127.0.0.1:2222/alex/repo.git`
to create it).

When a new repository is created, Eejit will insert an `eejit.toml` config file into it. There, the user can specify if the repo
is public, and which other members can write to it. Here's a minimal example:

```toml
name = "Example Repo"

# Anyone can read...
public = true

# But only Alex can write...
members = ["alex"]

# Anyone else will see this message (OPTIONAL)
failed_push_message = "Patches can be emailed to alex@alex.alex"
```

## Static Site Generator

Eejit comes with a simple static site generator, which generates a webpage out of any public repository with a `README.md` file.
The generated pages are saved to the `static` directory, and reflect the repo path/name. There's a default Tera template, or
you can define your own with the `web_template` option in the repo config.