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.
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.
Requirements:
- Latest Rust stable toolchain
libmagic- Windows: Please install
libmagicviavcpkg(tripletx64-windows-static-md) and set the environment variableVCPKG_ROOTto your vcpkg directory (more information) - macOS: Please install
libmagicusing Homebrew - Linux: Please install
libmagicwith 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.
In order to run GitArena, the following environment variable needs to be set:
BIND_ADDRESS: Socket address to bind to, for examplelocalhost:8080or127.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.
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.
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/staticresources. 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.
Repository:
Repository commits:
File view:
Directory view:
Create repository:
Import repository:
Login:
Sign up:
Explore:
Admin panel:
| Jetbrains | Instatus |
|---|---|
| Product subscriptions provided by JetBrains | Status page provided by Instatus |









