1. 77

Smithy is a web frontend for git repositories. It’s implemented entirely in Golang, compiles to a single binary, and it’s fast and easy to deploy. Smithy is an alternative to cgit or gitweb, and doesn’t seek to compete with Gitea and the like.

- Golang
- Single binary
- Easy to deploy
- Fast
- Customizable
- Free software
- Javascript-free
  1.  

  2. 11

    That looks very nice indeed.

    It would meet my requirements if it had a clone address coded into the display. Given that you’re already setting details of each repo in the config, this could be an easy fix?

    1. 5

      D’oh, how did I miss that?

      1. 6

        Nice to see, new work in this space. Congrats!

        I’m also working on something similar. I initially launched as a web front-end for Git repositories like CGit. It is written in Go

        Dogfooding it. https://git.nirm.al/r/sorcia

        But now, I’m working on collaboration feature where people doesn’t have to have an account in an instance in order to contribute. This way, I think it will be light-weight without any pull-requests features like Gitea.

        What I’m trying to do here is: Sending patches instead. I’m just doing a brief here:

        1. So, a contributor will generate a patch using ‘git-format-patch’.
        2. Upload it via the web interface or use the CLI utility which I’m going to build.
        3. Verification will be that they will have to confirm their email address.
        4. Contributor’s patch will get into a moderation queue for administrator or repo members who have permissions to check the patch and move it to the review queue for anyone to review the patch and apply it via the web interface.

        I’ve written about this in detail here https://gist.github.com/mysticmode/e07802b949af5985964f25d2cffcae5f

        1. 3

          Sorcia looks really nice. What do you think about forgefed?

          1. 1

            I’ve been looking at forgefed for a while. As well ActivityPub and ActivityStream. But it makes Sorcia a bit complicated. As I said, I need it to be lightweight.

            Maybe for discovery purposes, I might use AP. If I really wanted to make it federated or decentralized per-se - I’d actually stick to IPFS

            I got to know about IPFS through this article.

            It was written 5 years ago but it is still relevant and interesting to me.

          2. 1

            It would be nice if it worked without JS, like cgit typically does.

      2. 6

        Why is this hosted on github? It should be self-hosted!

        edit: I guess it is: https://smithy.honza.ca/smithy

        1. 0

          Because open source =~ GitHub

          1. 3
            $ perl -e 'print "open source" =~ "GitHub" ? "yes" : "no", "\n"'
            no
            

            Checks out.

            1. 1

              And funny part is whatever you get as answer, or how deeply you dislike gh, you can’t ignore what this is true.

        2. 6

          Cool – it’d be nice to support hosting go modules in it

          1. 2

            YES YES YES

            A simple and easily customizable front-end is what I’ve always wanted.

            I would just like a way to easily have private repos while also being able to view them. From my brief foray into cgit, seems like I’d have to set that up myself.

            1. 2

              This is great!

              I would so love to use something simple like this instead of github. Github has become like an Atlassian product lately.

              EDIT: Maybe make it possible to copy code out of diffs without including the +++

              1. 1

                Very nice!

                Took a while to notice, but I find all the content glued to the left side with a small margin very weird, but I guess that simply shows how primed I am towards github/gitlab in how a directory structure for a repo “should” look… and easily fixed with CSS, so nevermind

                2 things I noticed:

                1. When looking at a file, e.g. https://smithy.honza.ca/smithy/tree/master/include/404.html

                in the

                ref: master
                include/404.html
                

                the “include” folder should probably be linked, otherwse all you have is the back button. - https://smithy.honza.ca/smithy/commit/5997e10eade2d7461f217ea752c0a136713c84f0 is even worse as there’s no link back to the log.

                1. When I go to https://smithy.honza.ca/doom-emacs/tree Chrome wants to translate from Welsh…
                1. 1

                  Re 1, yes, totally agree, thanks!

                  Re 2, can’t really help you there :)

                2. 1

                  I can sit this on top of, say, gitolite, using it only for reviewing code! Perfect! Next up is to maybe allow setting it up under a path instead of a dedicated domain, unless it supports that already.