sqlitebrowser / dbhub.io

A "Cloud" for SQLite databases. Collaborative development for your data. 😊
https://dbhub.io
GNU Affero General Public License v3.0
370 stars 39 forks source link

Fossil SCM hosting would be awesome! #191

Closed bobhairgrove closed 1 year ago

bobhairgrove commented 1 year ago

Are there any plans for hosting Fossil remote repositories on DBHub.io?

Since you are already hosting SQLite databases, it seems only logical that you might also put Fossil support into the mix.

justinclift commented 1 year ago

I've not personally really looked at Fossil, though I'm aware of it.

Any idea what it would take?

justinclift commented 1 year ago

Looking over the Fossil code here, it seems to be C based and needs to run it's own server.

Pretty much all the server software on DBHub.io is written in Go, because it's easy to reason with, stable (as languages go), and (almost totally) avoids lots of memory safety issues. C doesn't. Well, C as a language probably is pretty stable, but that's about it.

I guess the answer is "Fossil hosting is unlikely in the short or medium term", as it's not really the direction the project is going in. :smile:

bobhairgrove commented 1 year ago

Looking over the Fossil code here, it seems to be C based and needs to run it's own server.

Although Fossil CAN run as a (local) server with its built-in server software, it doesn't HAVE to:

https://fossil-scm.org/home/doc/trunk/www/server/

The easiest way (IMHO) would be to run it as a CGI script. Fossil is built as a stand-alone executable and only needs to be callable by the user running the CGI script.

Pretty much all the server software on DBHub.io is written in Go, because it's easy to reason with, stable (as languages go), and (almost totally) avoids lots of memory safety issues. C doesn't. Well, C as a language probably is pretty stable, but that's about it.

I guess the answer is "Fossil hosting is unlikely in the short or medium term", as it's not really the direction the project is going in. smile

chrisjlocke commented 1 year ago

On that note, I did see https://chiselapp.com/ which does Fossil SCM hosting.

DBHub.io just takes the raw sqlite database. I guess it wouldn't take much to work out if a database is a Fossil repository or not* .. but it would be a bucketful of code to maintain.

*Fossil is just a SQLite database based repository of files .. ala Git.

bobhairgrove commented 1 year ago

On that note, I did see https://chiselapp.com/ which does Fossil SCM hosting.

Sadly, that host seems to be rather dormant these days. There are several issues which were reported two or three years ago which haven't been fixed (look for the "Flint" project over there which powers the whole site). The abundance of cruft under the "Public repositories" listing, along with the unresolved tickets reported by other users, kind of scares me away from using it.

justinclift commented 1 year ago

The easiest way (IMHO) would be to run it as a CGI script. Fossil is built as a stand-alone executable and only needs to be callable by the user running the CGI script.

Again, that's effectively running it as a server. eg Fossil's code gets executed in response to incoming requests over a network.

Whether there's a reverse proxy, CGI gateway, or other alternative mechanism in place in front of it, it's still executing potentially memory unsafe code on the backend in response to network requests.

While that in itself isn't a complete show stopper, we'd need to implement some proper production grade containerization approach to handle that scenario, to be on the safe side.

It'd probably also need to be one-container-per-user (that's using Fossil), which is going to be expensive memory wise.

For now, we're better off keeping focused on improving our core offering (hosting SQLite databases). Though when that's all running super well and we're in a position to consider other stuff, this might be a good thing to investigate properly then.

justinclift commented 1 year ago

Sadly, that host seems to be rather dormant these days.

Ouch. Yeah, looking over that Chiselapp place, it looks pretty dead. :frowning_face: