Git forge
3

Configure Feed

Select the types of activity you want to include in your feed.

321 3 0

Clone this repository

https://tangled.org/poy.ooo/farga https://tangled.org/did:plc:lyynpumfj4og3xhe5krl3qrb
git@tangled.org:poy.ooo/farga git@tangled.org:did:plc:lyynpumfj4og3xhe5krl3qrb

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Farga#

Farga is a lightweight and easily self-hostable Git forge built with Go. It's meant for personal use.

Farga is a work in progress.

Features#

  • Easily self-hostable. Uses Sqlite and stores all repos on-disk.
  • All features work without Javascript. It ships very little JS to the frontend.
  • It's small and cool. (Your computer won't overheat because of it)
  • A useful web view that allows you to browse different branches.
    • tree, blob and raw modes let you view directories, files and raw files.
  • It has a Hackatime integration. Show how much time you've spent coding, on the repo page itself!

Running Farga#

Prerequisites#

  • Go 1.26 or higher.
  • Git knowledge.

Setup#

  1. Copy example.env and rename it to .env.
  2. Modify any ENV vars you need. It is MANDATORY to set CSRF_KEY to a random string at least 32 characters in length.
  3. (Optional) Setup Hackatime OAuth: If you want to enable the hackatime integration, go to Hackatime's OAuth2 Applications page, create a new application, and put the resulting App ID and Secret to the the .env.
  4. go run .

TODO:#

As mentioned before, Farga is a work-in-progress. Here's a list of what's implemented and what's not.

Items with a ? prefix are "possible future features".

  • TESTS.
  • Auth:
    • Registration, login, logout.
    • Auth Middleware.
    • Hackatime OAuth2.
    • Account deletion.
  • Repos:
    • Repo creation.
    • Repo log:
      • Per-branch list
      • Commit view
    • Different branches.
    • Issues:
      • Issue creation.
      • Issue deletion.
      • Replies and comments.
        • Reply creation.
        • Reply deletion?
        • Polling.
      • Tags.
    • Raw, Blob and Tree views.
    • SSH:
      • Private repos.
      • Cloning.
        • Public repos.
        • Private repos.
      • Pubkeys.
    • Hackatime:
      • "Time spent" badge on repos.
      • Link Hackatime.
  • Frontend:
    • Make it responsive.
    • Error and Message middleware.
  • ? CI:
    • ? Lua config files.
    • ? CI is just running .sh scripts.
    • Debug errors in CI.

Contributing#

Contributions are welcome and greatly appreciated. Read DEVELOPMENT.md for reference.

Don't hesitate to contact me if you have any questions or want to talk about the project itself.

License#

Farga is free open source software. This project is licensed under the GNU AGPLv3 license. See the LICENSE.txt file for details.