Awesome
GitArena
GitArena is a software development platform with built-in vcs, issue tracking and code review. It is meant as a lightweight and performant alternative to the likes of GitLab and Gitea, built with self-hosting and cross-platform/cross-architecture support in mind.
Progress
Currently, GitArena is work in progress and is not yet fully featured. The basics such as repositories and pushing/pulling as well as accounts work. Please see the issues tab for features that are still work in progress.
Building
Requirements:
- Latest Rust stable toolchain
libmagic
- Windows: Please install
libmagic
viavcpkg
(tripletx64-windows-static-md
) and set the environment variableVCPKG_ROOT
to your vcpkg directory (more information) - macOS: Please install
libmagic
using Homebrew - Linux: Please install
libmagic
with your system package manager
- Windows: Please install
Compiling:
$ cargo build --release
Cargo will build all required dependencies as well as GitArena itself.
The resulting binary can be found in ./target/release
.
Usage
In order to run GitArena, the following environment variable needs to be set:
BIND_ADDRESS
: Socket address to bind to, for examplelocalhost:8080
or127.0.0.1:80
(Port is required)- Specify either of these two environment variables:
DATABASE_URL_FILE
: Path to a file containing the Postgres connection stringDATABASE_URL
: Raw Postgres connection string
After start GitArena will automatically create the required tables. Please edit the settings
table to configure your
GitArena instance and restart GitArena. In the future this will be do-able in the web ui.
Afterwards your GitArena instance will be fully set up and you can register
your account. In order to access the admin panel (/admin
), please set
admin
on your user account in the users
table to true
.
Logs
By default, GitArena will write logs to a file (instead of the console) when built with --release
. In order
to view the logs, look for a file in the logs
directory ending with the current date.
Optional environment variables
MAX_POOL_CONNECTIONS
: Max amount of connections the Postgres connection pool should keep open and ready to use.DATABASE_PASSWORD_FILE
: This environment variable may contain a path to a file containing the Postgres database password. In that case, the password does not need to be specified in the Postgres connection string. This is for usage with Docker secrets.SERVE_STATIC_FILES
: If this environment variable is set, GitArena will serve/static
resources. This is experimental. It is instead recommended configuring your reverse proxy to serve them.MAGIC
: Path to a libmagic file database. If not specified, GitArena will fall back to the generic one shipped with this program.
Screenshots
Repository:
Repository commits:
File view:
Directory view:
Create repository:
Import repository:
Login:
Sign up:
Explore:
Admin panel:
Thank you
Jetbrains | Instatus |
---|---|
Product subscriptions provided by JetBrains | Status page provided by Instatus |