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.
To see a demo, you may browse the source code of GitArena itself on my hosted GitArena instance: https://git.mari.zip/mellowagain/gitarena
Features progress
- Git protocol support
- HTTP(S)
- SSH
- Repository management
- Create
- Fork
- Rename
- Branch listing
- Tag listing
- Releases
- Autogenerated changelogs from merged PRs
- Asset upload
- Semantic version tagging UI
- Archiving
- Download as
.zipand.tar.gz
- Web-based code browser
- Syntax-highlighted file view
- Blame
- View raw
- Commit history with diffs
- User auth
- Username and password auth
- SSH key management
- Org/team model for access control
- Merge requests
- Open, review, approve, merge
- Inline comments on diffs
- Merge strategies (merge commit, squash, rebase)
- Issue tracker
- open/close issues
- Labels
- Milestones
- Assignees
- Kanban
- Webhooks
- REST API
- Protected branches
- Require reviews
- status checks before merge
- Prevent direct pushes to
main
- Woodpecker CI
- Package registry
- Wiki per repository
- Search
- Code
- Commits
- Tags
- Repos
- Issues
- Merge requests
- Users
- Orgs
- OAuth/SSO
- CLI
- MCP
- Email notifications
- Dependency/vulnerability scanning hooks
- Commit/PR cross-linking
- Federation via ForgeFed/AT Proto
- VS Code / JetBrains IDE integration
- Review iteration tracking: show what changed between force-pushed versions of a PR (like Gerrit's patchset model)
- Merge queue
- Commit signing + verification
- Mirror/sync: bi-directional
Requirements:
- Latest Rust stable toolchain
Compiling:
$ cd gitarena
$ cargo build --release
Requirements:
- Node.js 24
- pnpm 10
Building:
$ cd gitarena-frontend
$ pnpm run build
You can either spin up everything via a Docker Compose or the backend and frontend separately.
A docker-compose.yml is provided to spin up all GitArena components:
- Rust backend
- Next.js frontend
- Postgresql
$ docker compose up -d
In order to run the GitArena backend, 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)DATABASE_URL: Raw Postgres connection string
Optional environment variables:
MAX_POOL_CONNECTIONS: Max amount of connections the Postgres connection pool should keep open and ready to use.NO_STDOUT_LOG: Set to any value to only write logs to the log file (and Otel, if configured)OTEL_SERVICE_NAME: Service name to be used for metrics, traces and logs
Observability is provided through Otel and can be optionally enabled by setting:
OTEL_EXPORTER_OTLP_ENDPOINT: URL to a otlp endpoint
Standardized Otel environment variables are supported.
GitArena gets compiled as a normal binary so you can just run it.
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.
The frontend will now be reachable at https://localhost:8080/api or your configured hostname and port.
In order to run the GitArena frontend, the following environment variables need to be set:
NODE_ENV: set toproductionNEXT_PUBLIC_API_URL: URL to the GitArena backend, defaults tohttp://localhost:8080
Optionally you can set:
HOSTNAME: address to bind to, default0.0.0.0PORT: port to bind to, default3030
Then run:
$ cd gitarena-frontend
$ pnpm run start
The frontend will now be reachable at https://localhost:3030 or your configured hostname and port.
Repository:
Repository commits:
File view:
Issues overview:
Issue detail:
Create repository:
Import repository:
Login:
Sign up:
Explore:
Search:
GitArena is part of the Mintlify OSS Program, meaning we receive gracious support from them in the form of a free Mintlify Pro plan (normally $300/month) to host our documentation.










