gitness - セルフホスティングできるGithub, PR, Commit, Pipelineなどを機能搭載

![Screenshot 2023-09-24 at 1.31.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/fe1bf0ce-2ed6-a7e6-a99d-0629e1b6a6be.png)



近年、プロジェクトのコードをホスティングする場として、Githubが非常に人気となっています。しかし、様々な理由からセルフホスティングしたいと考える企業や個人も少なくありません。そんなニーズに応えるのが、新しく登場した「gitness」です。

海外のtwitterで話題になっていたので紹介します。

<blockquote class="twitter-tweet"><p lang="en" dir="ltr">~600 hours, 7 weeks of teamwork<br><br>- Logo design<br>- Visual identity<br>- Web design<br>- Development<br>- Motion<br>- 3D<br><br>I think it would be fair to say that the site is made in <a href="https://twitter.com/rive_app?ref_src=twsrc%5Etfw">@rive_app</a>. For the rest, <a href="https://twitter.com/nextjs?ref_src=twsrc%5Etfw">@nextjs</a>, <a href="https://twitter.com/tailwindcss?ref_src=twsrc%5Etfw">@tailwindcss</a>, and <a href="https://twitter.com/docusaurus?ref_src=twsrc%5Etfw">@docusaurus</a> were used.<br><br>Meet <a href="https://t.co/EQ6xv3d3z0">https://t.co/EQ6xv3d3z0</a> <a href="https://t.co/V5R83cL0mZ">pic.twitter.com/V5R83cL0mZ</a></p>&mdash; Alex Barashkov (@alex_barashkov) <a href="https://twitter.com/alex_barashkov/status/1705118860444147782?ref_src=twsrc%5Etfw">September 22, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

#### **1. gitnessとは?**
gitnessは、オープンソースのコードホスティングプラットフォームで、継続的インテグレーションサービスも提供しています。GithubのようなPR, Commitの管理、Pipelineの実行など、開発のフローを効率的に管理する機能を持っています。

https://gitness.com/

#### **2. 主な機能**

- **コードホスティング:** プロジェクトのコードをセキュアにホスティング。リモートとローカルの同期もスムーズ。
  
- **PR管理:** コードの変更を確認し、チームとのコミュニケーションを促進。品質を保ちながら開発を進める。
  
- **Commitのトラッキング:** 変更履歴をクリアに追跡。バージョン管理が簡単に。
  
- **Pipelineの実行:** コードのテストやビルド、デプロイを自動化。開発の効率を高める。

#### **3. セルフホスティングのメリット**

gitnessの最大の魅力は、自分たちのサーバーでホスティングできる点です。これにより、以下のようなメリットが得られます。

- **データのプライバシー:** 自社のサーバーにデータが保管されるため、セキュリティ上のリスクを最小限に抑えられる。
  
- **カスタマイズの自由度:** オープンソースであるため、独自の機能追加や改修が可能。
  
- **コスト削減:** 大量のデータを持つ企業やプロジェクトにとって、クラウドサービスの費用を削減できる。

#### **4. 使い始める**

gitnessは、Dockerを使用して簡単にセットアップ可能。また、NodeやGoなどの必要なツールのインストールもシンプル。Webベースのユーザーインターフェースを備えており、ブラウザから直感的に操作できます。

こちらのdockerコマンドだけでローカルで環境ができます。

```sh
docker run \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/gitness:/data \
  harness/gitness
```

リポジトリの作成やクローンなどのやり方は公式ドキュメントに書いてあります。

https://docs.gitness.com/

#### 各画面の紹介

Repository
![Screenshot 2023-09-24 at 1.18.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/26c0f89f-e123-ebf2-bcdb-33fddb2bd53a.png)

Commit history
![Screenshot 2023-09-24 at 1.18.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/46a6956c-4cbf-29c2-252f-13188c498b3e.png)

Pipeline
![Screenshot 2023-09-24 at 1.19.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/bef570df-cb13-c63a-8b69-35dad25e9929.png)

Member management
![Screenshot 2023-09-24 at 1.19.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/bb475b73-15c2-3098-f38b-0c86190f0ff7.png)

#### Gitlabとの違い
GitlabもGitLab CE (Community Edition) として、セルフホスティングが可能なオープンソース版も提供しています。ですが、機能が多すぎることにより以下のようなデメリットがあります。

- セルフホストした時のサーバーコストがかかる。
- ローカルで立ち上げる時にコンピューターリソースが多く取られる。

その点Gitnessは軽量で良いです。

#### **結論**

gitnessは、セルフホスティング可能なコードホスティングプラットフォームとして、多くの開発者や企業にとって魅力的な選択肢となるでしょう。データのプライバシーを重視する現代において、このようなツールはますますの注目を集めることが予想されます。