We host Alexandria and our other projects on a private git server using OneDev.

Would other #nostrdevs be interested if we began providing a public git server as a (probably paid) service for others to host their projects?

Our goal is to break dependency on GitHub, and this would be a step in that direction.

nostr:nevent1qvzqqqqqqypzpprwhau6p2ypxf6we9e8fyrzrt2z8ut28er56l7kde4f30lyuwdyqydhwumn8ghj7argv4nx7un9wd6zumn0wd68yvfwvdhk6tcpypmhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjj7qpqftwjpecs4nylpepttu8d6v39gtsxjwsh9hg8nsdtp5l687lwhj9q02cch8

Reply to this note

Please Login to reply.

Discussion

We can already do code collaboration via Nostr using ngit, but ngit still requires you to use a git server, and most people use GitHub.

If we start hosting a public git server, we'll use it as a platform to start developing and testing new Nostr/git integrations.

Something to consider is we only need the git part... Onedev GitLab and whatever else you can think of are WAY too much.

Maybe we shouldn't even bother considering those extra features since we prioritize and encourage the use of nostr. We can do this literally with HTTP servers. Sure I can get more complicated but lets keep in mind what we need for a simple git remote server to work

Good point. Ngit can already handle a good deal of the collaboration, and our team will build more collaboration tools as we work more on git stuff. We just need a place to stash code that's not GitHub and that doesn't require reinventing git in the form of Nostr events.

So like gists?

Thanks for reminding me. I should prolly work on that a bit tonight when I get home...

I need to figure out how to include propose edits like amethyst, and maybe some kind of community voting system to approve edits. 🤔

the point of this conversation was to share code for a single developer even raw code parts

Polls like on https://pollerama.fun/ can be an option

or functionality like changing the relay, towards your own or one relay that the user has access to, in that case it is the community relay

I think posting and commenting with nip 22 is fine, what kind is the post, can I try to post?

For those who don't know, we host a gitstuff client here, with issues and PRs:

https://gitcitadel.com/repos

Here is the Alexandria repo event:

https://gitcitadel.com/r/naddr1qvzqqqrhnypzplfq3m5v3u5r0q9f255fdeyz8nyac6lagssx8zy4wugxjs8ajf7pqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uqsuamnwvaz7tmwdaejumr0dshsqzjpd3jhsctwv3exjcgzqk5dt

You can see the problem we want to solve here:

You can list multiple gitservers there, but most repo events just have GitHub listed. We want to offer a second "low-friction" gitserver.

I think this is an important thing to do, to aid the migration of Nostr repos to Nostr.

We could host a OS gitserver of our choice (like Gitea) in the cloud and build APIs to make it more Nostr-y, and then tie it into the GitStuff NIP-34 clients.

Some individual devs have their stuff hosted on their own webservers, but smaller projects are stuck on GitHub. Leaving them open to censorship. Codeberg and etc. are just differently bad. And spreading everything out hinders collaboration.

I don't think we'll ever get off GitHub unless we have someplace to escape to, and our name is nostr:npub1s3ht77dq4zqnya8vjun5jp3p44pr794ru36d0ltxu65chljw8xjqd975wz .

One of the "quiet struggles", on here, is

WHERE DO I PUT MY CODE?

The answer is almost always GITHUB, for 5 reasons:

1) It's free-to-use, which means you can stay anonymous and you don't have high financial overhead for small projects.

2) It's managed. You don't have to rent a server, buy a domain, update and monitor the server, renew certificates, blah blah blah.

3) Lots of other Nostriches are there, so if you leave a comment or PR, someone might see it and respond.

4) It gets lots of web traffic, so people can find your repo with a search engine.

5) The green blocks 🟩🟩🟩 stack up, when you interact with other repos, and grant committees and employers like that. That's why it's important that you contribute in a way that can be visualized with a contribution heat map.

If we did this, it would at least give you 2 different servers to use, the second one would be payable in Lightning, and it would keep you from being rugged or being forced to use GitHub.

It's "Where do I put my code where I get the convenience of SEO and Social media without trying"

One of the things we need is a Nostr repo contribution graph.... on Nostr.

yeah, when it's available i will host my stuff on github for visibility and push to it in parallel but use the other place for kanbans, issues and CI/CD

Well, you're part of the Elite OneDev Incrowd. 😉 That's staying and is free for you and comes with all of the whistles and bells, activated.

This would be a a public-facing mirror to GitHub and/or OneDev.

yes... i was very pleased when i found that there is a way to set git config to push to both at once, and i don't use issues because nobody has bugged me about issues so i guess nobody uses it lol

but #thoon they will i'm sure, damn... this http stuff is driving me batty tho

The issues will primarily be coming through us, probably.

ooh, i need to pin this interface haha, too many things, i really don't cope with complexity, no-prioritisation is one of my anti-talents

oh it was there, among the bazillions of tabs ... i now have tab groups

i can't comprehend how people deal with the level of complexity i see them apparently dealing with... how do you bastids not get sensory overload?

What interface are you referring to?

that's my point

the escalating complexity for interacting is water to most fish but i'm a cat, i don't like water, i don't like complexity, i want to fight it

Ah, just saw your other note. You mean, Alexandria!

no, i meant computers in general, the web browser is an abominable replacement for the good ol desktop, and that's what it really is

Well, GitRepublic will be Linux desktop, and it'll have it's own library implementation (it'll be called the "knowledge base" and focus on the "documentation" type). That's for software teams, tho.

Most people are accessing Alexandria on mobile.

i'm very pleased to hear that, though i know the UI library choice is also a shitshow

the xkcd comic about standards comes to mind

btw this is why i'm not fighting any more against using swagger, just gonna use the one that is more greasy for my machineries

The bit of research I did suggested Slint would be a good GUI framework for Linux desktop.

https://slint.dev/

Could you guys give the five-year-old explanation on how I could get 📁 Repos on a #communikeys Blossom server or Relay?

It's not even clear to me what parts would go where: Server vs Relay.

The code file = blob on server ?

The PR = ????

The relay holds the repo announcement (that tells you which gitserver to interact with and which npub controls the repo), the issues/bug-reports, and the patches/code-change-requests, and the convos under the issues and patches.

You can use blossom to track git blobs, but it's a bit redundant. Mostly necessary, if your commits are really big.

Yeah code is on the gitserver, PRs are on the relays.

Our options are only as independent as our cloud provider(s)... Most cloud is supported by the same big tech. CDNs and other backend tools inside data-centers are often the same big tech subject to the same policies.

Then we should host it on our own cloud?

Define "own cloud"

You ready to buy some hardware ????? :)

Hey, you always tell me that your rack is bigger than mine. Pics, or it didn't happen.

Bad opsec to be sharing the new setup publicly :)

Server modesty

Would you need any reverse proxy? Can sponsor a VPS if needed

Sorry, didn't know, if you'd seen it.

All good thank you!

It's always worth holding onto VPS providers especially ones that claim to own their hardware!

💯

I appreciate the offer! I already have a VPS to mask my IP I use stream tunneling so my user's don't have to break SSL in the cloud. So my internal load balancer is the only one who holds the keys.

The main reason I don't offer hosting is because I can't guarantee the uptime people are looking for, even though I usually do %99.9 or better. That and I only have a 100mb connection at the moment so that's fairly restrictive.

Someone else's server. 😂

XD

😁

I've been keeping an eye on this one as an alternative to some of the big-name cloud providers: https://patmos.tech/

Have you looked at git.fiatjaf.com/song ? It seems an ideal fit for your usecase.

I briefly started a simpler project to put https://git-scm.com/docs/git-http-backend behind a reverse proxy and only let through push requests when the match the state in a nostr event but I've been distracted by other stuff.

Yes, we have! We were just talking about it. nostr:npub1qdjn8j4gwgmkj3k5un775nq6q3q7mguv5tvajstmkdsqdja2havq03fqm7 has something similar in mind, I think.

Yeah that's effectively what I was thinking yes! It's a shame you're all crusty rusty nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr these days.

Song just popped back into my head today. We have to be careful with "self hosted" projects. Few developers put effort into the sysadmin side of things, which is the man power and most expensive part of running a business. It needs to be capable of easily scaling to handle multiple projects. I recall it was built for developers mostly. That, and our only Go developer is quite busy and has disgust for fiatjaf and his projects which makes this difficult for a company pet project.

We need nostr but we can't afford it to cost good man hours.

Since were on cloud services already, I don't see the point in adding overhead managing big git-project (lets be honest its not even git anymore) servers on VPS (which are the most expensive options) when we don't need or want all of the other features that make it difficult to integrate it with nostr.

We literally need git, we have everything else.

I support the idea, because Github is Microsoft, so yep (I am not a dev)

The best case, of course, is to make it easier for people to self-host code in some capacity, but many will want managed services. It's important to provide some competition to the big, established players.

Well, it would also affect people who report bugs.

If you report it on some individual-dev's gitserver, it'll usually get ignored, as he is just going to look at GitHub. Also can't log in anywhere, with your Nostr signer.

Or it's just extra work for bug reporters (which can be a good thing) compared to nostr issues. It's public and easy to submit, and not sequestered on the individual dev's server. Bug reporters don't need to make a bunch of email/password accounts to other dev's servers.

nostr:nprofile1qqs2qzx779ted7af5rt04vzw3l2hpzfgtk0a2pw6t2plaz4d2734vngpzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcppemhxue69uhkummn9ekx7mp0qy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7hycrvd has been talking about the need for a solution like this. There's a lot of potential in having nostr-based auth for git servers (that tracks the maintainers of a project and gives them push access)

It would be huge because now you have to manage permissions for each maintainer on all of your gconfigured git servers

Yeah, we agree with him, and we figured out a clean way to do it, without having to write a gitserver.

Yes and make it lightning zappable pls

I was thinking that this could be something tied into the Awesome Nostr page.

i'm not sure i follow what should be tied into awesome nostr? you mean porting the repo to gitcitadel?

I was thinking we could have GitCitadel-repos/GitHub-repos statistics and listings. If we could map repos to commits to gitusers to npubs, then you could see who had worked on what where, for instance, and build a cross-gitserver contribution heat map.

conceptually i'm down for something like that

I'd use it and happily pay, are you planning to host a gitworkshop (or equivalent) instance too?

We already have that here:

https://gitcitadel.com/repos

I was thinking it'd be cool, if nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr could just add a "spin-up a repo" button to his page, and end with producing a repo event, with the GitCitadel repo listed in the event, or something like that.

That is the step where most devs start out, and they all head to GitHub for it. That's where we lose users: right at the beginning.

Excellent point! We'll need to make the onboarding easy and fun, to retain users.

Dan's website is actually pretty good, that's why I forked it, but the first steps to using it are:

1) Go to GitHub.com

2) Open an account with your email

3) Setup your profile

4) Create a repo

And that's it. We just showed the new Nostrich Dev out the door. Wave goodbye. 😂

I think our mentioning that we'd expect users to pay, is what left everyone underwhelmed. GitHub is "free", but we're not a Fortune 500 company.

That's why nostr needs decentralization. Kinda should have been working on P2P infrastructure before building more stuff on the broken infrastructure we already have, making it harder for your creation to be compatible with a P2P network.

But git on nostr is really important so good job anyway I guess

Depends on how much it would cost and what resource allocations would be provided to the average user.

Can't calculate that, until we know approximately how many users it would be, as that would determine the server setup we'd select.

I have 1 project that will probably be in the 10-25gb range. Another that will probably be under 25 mb.

I may be interesed if the costs are affordable.

I think your first number is also MB, right? Alexandria is in the 4 MB range and our website is 16 MB. Njump is 33 MB.

Seems like circa 10-50 MB per repo, would be simplest to measure.

We still need to explore costs further. Right now, we're just trying to gauge interest.

Baseline costs will largely be dictated by the costs of infrastructure. If, for example, we use a cloud provider, then we at least need to cover the hosting costs.

Additionally, different features will cost us more, and thus pricing to end users will vary. Code hosting, for instance, is far less expensive than running continuous integration jobs.

I used to run one at happy tavern. I went back to GitHub when I rebuilt my server because my stuff was all there. I never spun it back up but you're right. We should try to all run our own. Or I can run one again for other people to use.

One advantage of the Git+Nostr integrations that people like nostr:nprofile1qy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uq32amnwvaz7tmjv4kxz7fwv3sk6atn9e5k7tcpzemhxue69uhkuethwvhxummn9eek7cmfv9kz7qgswaehxw309asjumn0wvhxcmmv9uq3wamnwvaz7tmpw3kxzuewdehhxarj9ekxzmny9uq3wamnwvaz7tmxwfjkuuewdehhxarjxyhxxmmd9uq3uamnwvaz7tmwdaehgu3dwp6kytnhv4kxcmmjv3jhytnwv46z7qghwaehxw309a3xjarrda5kuetj9eek7cmfv9kz7qgawaehxw309ahx7um5wgknqv3w09skk6tgdahxuefwvdhk6tcqyzsq3hh327t0h2dq6matqn5064cgj2zanl2stkj6s0lg4t2h5dty6etdsw5 have been building is that it removes what was a single point of failure.

Today, if GitHub were to go down, everyone's work would grind to a halt. With Nostr, we can make it much easier to discover and manage repos across a network of smaller gitservers.

With that in mind, the more the merrier!