Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mellowagain/gitarena
Software development platform with built-in vcs, issue tracking and code review
https://github.com/mellowagain/gitarena
code-review git hacktoberfest issue-tracker linux rust vcs
Last synced: 7 days ago
JSON representation
Software development platform with built-in vcs, issue tracking and code review
- Host: GitHub
- URL: https://github.com/mellowagain/gitarena
- Owner: mellowagain
- License: mit
- Created: 2020-07-22T21:39:02.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-05T15:41:58.000Z (7 months ago)
- Last Synced: 2024-10-15T08:28:19.104Z (23 days ago)
- Topics: code-review, git, hacktoberfest, issue-tracker, linux, rust, vcs
- Language: Rust
- Homepage:
- Size: 6.52 MB
- Stars: 85
- Watchers: 6
- Forks: 10
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# 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](https://github.com/robo9k/rust-magic-sys#building))
* macOS: Please install `libmagic` using Homebrew
* Linux: Please install `libmagic` with your system package managerCompiling:
```
$ 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](https://doc.rust-lang.org/nightly/std/net/trait.ToSocketAddrs.html) to bind to, for example `localhost:8080` or `127.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 string][postgres]
* `DATABASE_URL`: Raw [Postgres connection string][postgres]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][postgres]. 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](https://man7.org/linux/man-pages/man3/libmagic.3.html) file database. If not specified, GitArena will fall back to the generic one shipped with this program.## Screenshots
Repository:
![Repository](https://i.cutegirl.tech/vka53i6m9wnv.png)
Repository commits:
![Commits](https://i.cutegirl.tech/ed3qdisinquh.png)
File view:
![File](https://i.cutegirl.tech/cjqzyh1lre07.png)
Directory view:
![Directory](https://i.cutegirl.tech/kxgv64zjneoz.png)
Create repository:
![Create](https://i.cutegirl.tech/2xfz586doi0q.png)
Import repository:
![Import](https://i.cutegirl.tech/ya0rkuv0py0c.png)
Login:
![Login](https://i.cutegirl.tech/8biqtc0a7fhi.png)
Sign up:
![Sign up](https://i.cutegirl.tech/xiuba03gdmkv.png)
Explore:
![Explore](https://i.cutegirl.tech/c6uba7e0os35.png)
Admin panel:
![Admin panel](https://i.cutegirl.tech/b5g9vx54fnae.png)
## Thank you
| Jetbrains | Instatus |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|
| [![Copyright © 2000-2022 JetBrains s.r.o. JetBrains and the JetBrains logo are registered trademarks of JetBrains s.r.o.](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)][jetbrains] | [![Instatus](https://avatars.githubusercontent.com/u/57594402?s=400&v=4)][instatus] |
| Product subscriptions provided by JetBrains | Status page provided by Instatus |[postgres]: https://www.postgresql.org/docs/12/libpq-connect.html#id-1.7.3.8.3.6
[jetbrains]: https://jb.gg/OpenSourceSupport
[instatus]: https://instatus.com/