Posting here for wider distribution: 9front is fully self-hosting on git, running the git-server for 9front on 9front. So, hg and python are now removed from the distribution, but will be archived here: git://git.9front.org/plan9front/pyhg After a sysupdate, you'll probably want to clean up the remaining bits of python: rm /$objtype/bin/python cd /sys/man && mk Also, in case anyone in the 9legacy world was using git9: look for the most recent version in: /sys/src/cmd/git or on the web at: http://git.9front.org/plan9front/plan9front/HEAD/sys/src/cmd/git/f.html ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-Mec09bfe9555050d9861fd1f8 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
Quick question (or maybe not), but how are these being hosted? Is this done on a cloud provider vm platform? Or is this being done in a traditional DC using real hardware? Just curious to know how this is being done because I would like to do something similar. Cheers! Tony — Tony Mendoza clueelf@tonymendoza.us > On Jun 13, 2021, at 7:48 PM, ori@eigenstate.org wrote: > > Posting here for wider distribution: > > 9front is fully self-hosting on git, running the > git-server for 9front on 9front. So, hg and python > are now removed from the distribution, but will be > archived here: > > git://git.9front.org/plan9front/pyhg > > After a sysupdate, you'll probably want > to clean up the remaining bits of python: > > rm /$objtype/bin/python > cd /sys/man && mk > > Also, in case anyone in the 9legacy world > was using git9: look for the most recent > version in: > > /sys/src/cmd/git > > or on the web at: > > http://git.9front.org/plan9front/plan9front/HEAD/sys/src/cmd/git/f.html > ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-Ma3ff99cd9f31645125d9f0c1 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
On Mon, Jun 14, 2021 at 12:48:35PM -0500, Tony Mendoza wrote: > Quick question (or maybe not), but how are these being hosted? Is this done on a cloud provider vm platform? Or is this being done in a traditional DC using real hardware? > > Just curious to know how this is being done because I would like to do something similar. > > Cheers! 9front's stuff is hosted on a variety of platforms. Some of it, including the code.9front.org repo, consists of VMs that I host on colocated hardware. git.9front.org is elsewhere at the moment, and I'm in the middle of deploying faster hardware to hopefully provide a longer-term home to more of the services. Other pieces live in commercial VM providers like vultr, linode, ramnode, and so forth. A few of these providers either offer 9front as a deployment option or allow you to upload your own iso for provisioning. khm ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-M57e06b7391bc1239b906f010 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
Quoth Tony Mendoza <clueelf@tonymendoza.us>: > Quick question (or maybe not), but how are these being hosted? Is this done on a cloud provider vm platform? Or is this being done in a traditional DC using real hardware? > > Just curious to know how this is being done because I would like to do something similar. Currently, it's hosted on vultr, but there are a number of hosts that you can use. As far as how it's actually done: Git goes over git/serve in /rc/bin/service: cpu% cat /rc/bin/service/tcp9418 #!/bin/rc exec git/serve -r/usr/git the '-r' path is implicitly prepended on to any repositories that are cloned, so eg: git/clone git://host.com/repo/path clones /usr/git/repo/path The authenticated protocol, hjgit, is the same as the unauthenticated git:// protocol, but with 'tlssrv -a' wrapping the connection to handle auth and encryption. The '-w' flag on git/serve enables writing to the repo. cpu% cat /rc/bin/service/tcp17021 #!/bin/rc exec tlssrv -a /bin/git/serve -wr/usr/git Our encrypted 'gits://' extension is the same, but with a cert, and its key in factotum: cpu% cat /rc/bin/service/tcp9419 #!/bin/rc exec tlssrv -c/sys/lib/tls/git/git.cert /bin/git/serve -r/usr/git That gets you a fully functional git server, that hosts its code in /usr/git. The website is served using tcp80 and execfs: cpu% cat /bin/cpurc.local auth/none execfs -s git.execfs /sys/lib/tcp80/gitrules cpu% cat /rc/bin/service/tcp80 #!/bin/rc # some ns trickery to allow serving static data, # we can probably clean this up. bind /usr/web /mnt/static mount /srv/git.execfs /usr/web bind /mnt/static /usr/web/static rfork n exec /bin/tcp80 And the code for the web ui is more or less a modified version of this code: http://shithub.us/ori/shithub/HEAD/files.html There's also a more minimal proof of concept that I did before phil9 ran with it and improved it here: http://shithub.us/ori/git9/HEAD/extra/gitls/f.html It's less complete, but probably easier to read and understand. ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-Ma7f7eac030ace173c4260adc Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
Related question I can't seem to track down an answer to: I have a 9front cluster which was set up back when Mercurial was used, so that is what sysupdate is looking for. I finally realized that I am no longer seeing updates because 9front switched to git. How does one go about upgrading an existing 9front install to pull updates from git instead of hg? When I try running the manual commands to pull from git it (logically) complains that it is not a git repository, but I am not finding any clear instructions on how to go about making this switch on an existing install? On 6/14/21 3:13 PM, ori@eigenstate.org wrote: > Quoth Tony Mendoza <clueelf@tonymendoza.us>: >> Quick question (or maybe not), but how are these being hosted? Is this done on a cloud provider vm platform? Or is this being done in a traditional DC using real hardware? >> >> Just curious to know how this is being done because I would like to do something similar. > Currently, it's hosted on vultr, but there are > a number of hosts that you can use. > > As far as how it's actually done: > > Git goes over git/serve in /rc/bin/service: > > cpu% cat /rc/bin/service/tcp9418 > #!/bin/rc > exec git/serve -r/usr/git > > the '-r' path is implicitly prepended on to > any repositories that are cloned, so eg: > > git/clone git://host.com/repo/path > > clones > > /usr/git/repo/path > > The authenticated protocol, hjgit, is the same > as the unauthenticated git:// protocol, but with > 'tlssrv -a' wrapping the connection to handle auth > and encryption. The '-w' flag on git/serve enables > writing to the repo. > > cpu% cat /rc/bin/service/tcp17021 > #!/bin/rc > exec tlssrv -a /bin/git/serve -wr/usr/git > > Our encrypted 'gits://' extension is the same, > but with a cert, and its key in factotum: > > cpu% cat /rc/bin/service/tcp9419 > #!/bin/rc > exec tlssrv -c/sys/lib/tls/git/git.cert /bin/git/serve -r/usr/git > > That gets you a fully functional git server, > that hosts its code in /usr/git. > > The website is served using tcp80 and execfs: > > cpu% cat /bin/cpurc.local > auth/none execfs -s git.execfs /sys/lib/tcp80/gitrules > > cpu% cat /rc/bin/service/tcp80 > #!/bin/rc > # some ns trickery to allow serving static data, > # we can probably clean this up. > bind /usr/web /mnt/static > mount /srv/git.execfs /usr/web > bind /mnt/static /usr/web/static > rfork n > exec /bin/tcp80 > > And the code for the web ui is more or less a modified > version of this code: > > http://shithub.us/ori/shithub/HEAD/files.html > > There's also a more minimal proof of concept that I > did before phil9 ran with it and improved it here: > > http://shithub.us/ori/git9/HEAD/extra/gitls/f.html > > It's less complete, but probably easier to read and > understand. > ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-M7a7dc8eefad0d619ba65c04a Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
On Wed, May 18, 2022 at 02:12:47PM -0400, Frank D. Engel, Jr. wrote: > Related question I can't seem to track down an answer to: > > I have a 9front cluster which was set up back when Mercurial was used, > so that is what sysupdate is looking for. > > I finally realized that I am no longer seeing updates because 9front > switched to git. > > How does one go about upgrading an existing 9front install to pull > updates from git instead of hg? sysupdate should have seamlessly moved you to git. what mercurial revision is your stuff currently running? this will be a longish debugging session so for the rest of it we should probably move to the 9front mailing list, since 9fans at large might not appreciate the traffic. khm ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-M7580c6a90807ccb1f0c2c555 Delivery options: https://9fans.topicbox.com/groups/9fans/subscription
I didn't even notice until now that there was a dedicated 9front list - I will try to subscribe to that shortly and move the conversation there. Not sure that I understand how to determine which revision I am on - more familiar with svn than either hg or git - if I run "hg log" within /sys/src the first two lines say: changeset: 8493:c8bec6f5ee1e tag: tip Does that answer the question, or how do I go about obtaining that? On 5/18/22 2:30 PM, Kurt H Maier via 9fans wrote: > On Wed, May 18, 2022 at 02:12:47PM -0400, Frank D. Engel, Jr. wrote: >> Related question I can't seem to track down an answer to: >> >> I have a 9front cluster which was set up back when Mercurial was used, >> so that is what sysupdate is looking for. >> >> I finally realized that I am no longer seeing updates because 9front >> switched to git. >> >> How does one go about upgrading an existing 9front install to pull >> updates from git instead of hg? > sysupdate should have seamlessly moved you to git. what mercurial > revision is your stuff currently running? > > this will be a longish debugging session so for the rest of it we should > probably move to the 9front mailing list, since 9fans at large might not > appreciate the traffic. > > khm ------------------------------------------ 9fans: 9fans Permalink: https://9fans.topicbox.com/groups/9fans/T7dfa66085e395bcb-Mb037360ea191ed4fde0a87aa Delivery options: https://9fans.topicbox.com/groups/9fans/subscription