On 03/29/2013 03:34 PM, Richard Hipp wrote:
> What if we were to extend Fossil itself so that it was capable of
> hosting multiple projects after the fashion of chiselapp?
> 
> Fossil already has the feature of being able to host multiple projects
> using a single CGI script or single stand-alone server instance. (...)

I currently have this set up on a server (http://fossil.2of4.net): one
directory full of fossil repositories, and a (hand-crafted) index page
listing all the repositories starting with a lowercase letter (as a poor
man's version of public repositories).  A script, running every 15
minutes, updates the index page if the max(mtime) of all the repository
files is more recent than last time it ran.

This works fine for hosting my own repositories, but not for providing
a hosting platform for other people's repositories.

> I'm wondering if this capability can be extended in modest ways to
> provide a full-blown chiselapp replacement.  The idea is that anybody
> who wants to host something like chiselapp simply has to obtain a
> low-cost internet host, copy the fossil executable into /usr/bin, create
> a single CGI script that is less than 10 lines long, and they are up and
> running.
> 
> I'm still a little fuzzy on the details of how this would all work,
> though.  Feature suggestions from readers and chiselapp users are
> appreciated.

Chisel is set up so that your Chisel username becomes the admin-username
for each of your hosted repositories.

After logging in on Chisel, your personal dashboard page provides the
following options:
* a list of _your_ repositories (both public and private);
* option to create a new repository, by either
  - creating a new repo, or
  - cloning an existing repo;
* manually sync an existing repository;
* remove a repository.
* for each  repository, you can edit the following properties:
  - your password
  - the remote URL for the repo
  - whether or not to periodically sync the repo
  - make the repo public or private

Apart from changing your password and the remote URL, none of this is
possible through Fossil's current web interface, AFAIK.


One thing you could do, is add a CGI parameter to indicate one
repository to rule them all, I mean a repo to provide the skin and store
the users' information for the 'hosting' website.  That way, perhaps you
could re-use the current functionality for logging in, and generating
skinned webpages.

You'd still need a web interface listing all public repos; and also a
list of public and private personal repos once a user has logged in.

For that, you'd need a way to keep track of which repo belongs to which
user, and whether it's public or private; then provide a web interface
for editing these properties.

You'd also need webpages for adding and removing repos from the server,
and manually syncing a repo.
-- 
Martijn Coppoolse
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to