/gitarena

Software development platform with built-in vcs, issue tracking and code review

Primary LanguageRustMIT LicenseMIT

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 via vcpkg (triplet x64-windows-static-md) and set the environment variable VCPKG_ROOT to your vcpkg directory (more information)
    • macOS: Please install libmagic using Homebrew
    • Linux: Please install libmagic with your system package manager

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:

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

Repository commits:

Commits

File view:

File

Directory view:

Directory

Create repository:

Create

Import repository:

Import

Login:

Login

Sign up:

Sign up

Explore:

Explore

Admin panel:

Admin panel

Thank you

Jetbrains Instatus
Copyright © 2000-2022 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o. Instatus
Product subscriptions provided by JetBrains Status page provided by Instatus