9 releases
0.2.1 | Apr 20, 2023 |
---|---|
0.2.0 | Apr 15, 2023 |
0.1.6 | Apr 15, 2023 |
#35 in #self-hosted
30KB
730 lines
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:
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:
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.
Dependencies
~24–37MB
~623K SLoC