
Show HN: Gitern is a Git host for hackers - k00b
https://gitern.com
======
k00b
Hello! I'm Keyan and I'm building [https://gitern.com](https://gitern.com)

Perhaps I'm an odd duck (I am) but I think current git hosts are no longer
meant for hackers and I really wanted a git host that is and that's why I'm
building gitern.

Gitern is just getting started and only has essential features today but we
already have a few differentiators: \- all auth is done with ssh keys (no
password or email required) \- arbitrary repository paths allowing for (1)
familiar namespacing and (2) access control (eventually) \- a cli-first ui \-
private repos are default

I think better tools make for better hackers and I think git hosts can be a
lot better.

I'll be in the comments if anyone wants to ask questions or scold me or
something :). Very very open to feedback!

Cheers everyone

~~~
deeblering4
Hey, I know gitern is cli based, but I wanted to compliment you on the design
of the gitern.com site. Love the colors, artwork, everything. Very
minimalistic and tasteful.

~~~
k00b
Thank you! That makes me feel so good, thank you

------
vemv
Funny, just a while ago was pondering on what a "github for hackers" would
look like.

My personal answer would be: it should be a _hackable_ webapp, where users can
implement or tweak features at will.

The ingredients being the usual:

\- a plugin system

\- a function hooks system

\- many, many available options that are _never_ taken away (i.e. breaking API
changes).

When was the last time you used a webapp even remotely like that?

~~~
k00b
Yep, we're thinking about this alike! My answer _will_ be: an emacs-like git
hosting experience.

~~~
tikej
> emacs-like git hosting experience

Sounds like git heaven for hackers ;)

------
agambrahma
Any reason I'd use this instead of Sourcehut [1] ?

[1] [https://sourcehut.org](https://sourcehut.org)

~~~
k00b
I'm not familiar with sourcehut but thank you for sharing. I'd say if you're
using a git host you're already happy with you should keep using it for sure.

~~~
mst
You seriously want to play with sourcehut.

It has its own very hacker-oriented aesthetic and tries to keep the various
components it provides separated so for things that are "close enough" you
might be able to bootstrap off their tools.

Also, the concept of a CI system where a failed build sticks around for a
while and lets you ssh in to figure out what went wrong is -way- cool.

~~~
k00b
Thank you for the extra push. I definitely will

------
mawalu
I'm not really looking for a new git repository hosting service but this seems
cool. I was a bit disappointed that I had to download a cli tool after signing
up. It would be cool if you could do all the management non-git operations via
ssh and without any additional client software

~~~
k00b
You can actually! The cli is just a really dumb wrapper around ssh execs.

create: ssh git@gitern.com gitern-create <path>

delete: ssh git@gitern.com gitern-delete <path>

list: ssh git@gitern.com gitern-list [<path>]

pubkey add: ssh git@gitern.com gitern-pubkey-add <account> (pubkey on stdin)

pubkey remove: ssh git@gitern.com gitern-pubkey-remove <SHA256 fingerprint>
<account>

pubkey list: ssh git@gitern.com gitern-pubkey-list

Edit: Eventually the cli will provide a lot more (and self document what's
available) so I do recommend using it, but you can happily get along with
these "raw" commands for now.

~~~
hgo
I love it. Would feel more comfortable with a bash source-file I could copy
than an installer tbh.

This reminds me, as I suppose you expect, of a lovely ssh-based chat service i
saw on here a while back:
[https://news.ycombinator.com/item?id=8743374](https://news.ycombinator.com/item?id=8743374)

~~~
k00b
Thanks! I agree. I want to provide more client-side options eventually (e.g. a
static binary or pick your language flavor cli), but had a bunch of tradeoffs
to consider for first pass. I'll likely open source the client side and keep
the ssh api backward compatible, so perhaps this can happen soon.

Re: ssh-based chat. I found that post very very early on while exploring
gitern as just an idea! Very formative of gitern.

~~~
mst
For a hacker's client to github, I'd recommend having a look at ingydotnet's
git-hub which is bash + his json-bash thing.

Interesting prior art and maybe some stealable concepts :D

~~~
k00b
Wonderful!

------
drKarl
Hey, first of all, cool project! Although I certainly see the romantic appeal
of "no email or password, just ssh key" and "the cli is the ui", other than
for solo hackers I think you need a way to visualize the changes of a Pull
Request (or Merge Request like in Gitlab) and do a code review, add comments,
etc. Or at least Patch Review like in sr.ht I actually think that would be
useful even for a solo hacker. Other features would also be welcomed, like
CI/CD and tickets to track new features and bugs, but you can always integrate
with a third party service for that. Also, unless I'm missing a key feature, I
think for the use case you're appealing to you could just have a repo in a VPS
or rsync.net. And the comparison with Dropbox doesn't apply here because
dropbox is for the masses, and gitern ia for hackers, any hacker would know
how to set that up. Finally with keybase you can create encrypted git repos.
You can, manually set encrypted git repos on a VPS but it's difficult, keybase
does it hassle free. You can also self-host something like gitea/gogs or
gitbucket, or even gitlab.

~~~
k00b
This very thorough and great feedback. Thank you!

------
cypres
I was expecting a static binary when I downloaded the CLI, but I got a huge
load of node.js files and modules. Consider packaging your node.js application
up, I haven't tried it but
[https://github.com/nexe/nexe](https://github.com/nexe/nexe) looks promising.

~~~
k00b
Thanks for the link. v0 cli was written in gerbil scheme
([http://cons.io](http://cons.io)) but I couldn't get it to statically link on
linux so I'd still have deps in the form of dynamic libs. Then I found oclif
which while depending on node has a lot of what I need and will allow me to
ship/iterate faster ... If the spec/features/api was fixed, I'd write the
thing in golang if only for the static binaries and cross compiling but it's a
relatively joyless/cumbersome language IME, so node for now at least.

~~~
szek
I was writing a similar cli tool [1] to manage the git repositories on my own
server. If you want portability, it should be fairly easy to write the cli
interface in plain sh or bash, especially when most of the operations could be
done on the server side. I am not sure if there is a reason to use a compiled
language for this.

[1]: [https://0x0.st/8zs0](https://0x0.st/8zs0)

~~~
k00b
Thanks for sharing that's awesome!

Bookmarked. I'll think more about implementing it as a shell script.

------
ydnaclementine
Very cool, I've had this same idea sitting in the back of my head too, instead
of user names there are just ssh keys

Honestly we've seen a ton of cool side projects like this on HN because of
quarantine

------
robotmay
As one of those odd people who actually knows someone who plays a Gittern; I
love the name and the medieval theme to the site :D

~~~
k00b
lol I wasn't expecting anyone to get the reference! I listened to this
approximately a million times during development
[https://www.youtube.com/watch?v=qQbfcTIRFxA](https://www.youtube.com/watch?v=qQbfcTIRFxA)

------
chris_st
What is the fallback if you lose your SSH keys?

~~~
k00b
At the moment, it's left to the user to add other ssh keys, perhaps from
another machine, or back them up.

I'm currently working on a way to optionally add an email address for
recovery.

------
camgunz
I’m so into this. I love the aesthetic and the hacker values. Do you have a
blog or anything?

Edit: scrolled to the bottom, nice Twitter :)

~~~
k00b
Thank you! I have a mostly empty blog
[http://keyankousha.com](http://keyankousha.com) (I have some drafts in the
pipeline but I don't have a good writing habit yet). Twitter is a little more
active @k00bideh

------
mjsir911
This is really nice!

I wonder if some of the cli commands like create can be auto-executed on first
git push.

Is this open source? Would love to hack onto it.

~~~
k00b
I will likely open source the client side. So stay tuned :)

Edit: Meant to add I've had a similar idea but it should probably be optional
and configurable in a git config type way.

------
nurettin
This is soooo comfortable, thank you!

~~~
k00b
Awesome! That's EXACTLY what I'm going for. I kept using github and having
this feeling of "this doesn't feel like it was built for me."

Current git hosts don't feel like they were made for programmers which is
nuts! Even for the most essential and basic actions (all of what gitern
provides at the moment), they feel kludgy. My intent is to carry a programmer-
first approach for all needs programmers have around git hosts. I have SO many
ideas on how to do this.

If you couldn't tell, I'm very happy to hear you had a positive impression
lol. Thank you!

~~~
nurettin
Yes, it is encouraging to see that people are still interested in creating
brutalist interfaces.

I'm not sure how it would fit a professional workflow, since that would
require your server to call a web hook whenever somebody merges to a given
branch, but it would do fine in an amateur workflow where I set up my own
CI/CD using local hooks.

~~~
k00b
Right, not fit for a CI/CD ... yet. Web hooks will be added soon.

~~~
irgeek
Are read-only keys on the roadmap too? CI/CD pipelines don't really need write
access in most cases.

~~~
k00b
Absolutely fine grain access control is a must have

------
eejdoowad
Love the concept and design.

Where are repositories stored and do you use any sort of backup or
replication?

~~~
k00b
Thanks. Repositories are stored on an ext4 filesystem. I do backups every 12
hours currently. No additional replication is performed but it is something I
want to do.

~~~
stevekemp
You'll probably want to look into using CEPH/similar when/if the service
starts to get busy. Partly for redundancy but also if all your repositories
are on a single shared disk you're gonna hit I/O contention if many people are
pushing/pulling at the same time - even more so if you get any CI system wired
up.

------
oxed
Meh, I host my git repos on a vps and use cgit for web ui.

------
techntoke
Is this for script kiddies that just want to be called a hacker? All the
hackers I know realize Git is already decentralized and all you need is an SSH
server.

~~~
k00b
Someone: _opens a dumpling restaurant_

You: Is this for food kiddies that want to be called foodies? All the foodies
I know realize dumplings are just sheets of dough wrapped around a filling.

~~~
account42
Except wrapping dumplings is a pain in the ass while sshd comes pre-installed
on most VPSs and you can just point a git remote at that.

