# Eejit
Eejit is self-hosted Git server that's easy to set up, use, and maintain.
## Getting Started
- 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.