Fossil Forum

ragelink 4 days, 12 hours ago

Post: FossilRepo — a self-hosted forge layer for Fossil SCM

Hi everyone,

I wanted to share a project I've been working on called FossilRepo — a web-based management layer that wraps Fossil SCM to provide a forge-style experience for self-hosted teams.

The idea is simple: Fossil is the source of truth for everything (code, tickets, wiki, forums), and FossilRepo adds a Django+HTMX UI layer on top for project management, team access control, and integration with external systems.

What it does: - Forge UI — Timeline, code browser with blame/history, ticket management, wiki editor, branch/tag views, releases with asset uploads, full-text search. All server-rendered with HTMX, no JS framework. - Multi-repo management — Create and manage multiple Fossil repositories from a single dashboard. Each repo is a standard .fossil SQLite file on disk. - Team access control — Organizations, teams, role-based permissions (read/write/admin), project-scoped API tokens. - Git sync bridge — mirror from Fossil to GitHub/GitLab. Fossil stays primary, Git remotes are downstream mirrors. - Agent APIs — JSON API with workspace isolation, ticket claiming, code review workflow, and SSE event streaming. Designed for AI-assisted development workflows where agents work on branches in parallel.
- Infrastructure — Caddy for SSL/routing, Litestream for continuous SQLite-to-S3 replication, Celery for background jobs. Ships as Docker or bare-metal install.

Current state: v0.1.0, MIT licensed. 161 checkins, 1600+ tests at 90% coverage. Running public demo at fossilrepo.io.

The project itself is hosted on Fossil (of course) and mirrored to GitHub: https://github.com/ConflictHQ/fossilrepo

Documentation: https://fossilrepo.dev

I'd appreciate any feedback, especially from folks who have thought about multi-repo Fossil hosting or team workflows. Happy to answer questions.

Thanks,
Leo Z 7012ff89143

stephan 4 days, 6 hours ago

FossilRepo — a self-hosted forge layer for Fossil SCM

That looks pretty amazing.

Infrastructure — Caddy for SSL/routing, Litestream for continuous SQLite-to-S3 replication, Celery for background jobs. Ships as Docker or bare-metal install.

If i had any idea what a Caddy or a Celery were, or had any use for S3, i would already be trying this out as an alternative for fossil.wanderinghorse.net.

The docs seem to imply that S3/replication is required. Is that the case? Z 7

florian.balmer 4 days, 1 hour ago

So this is basically a reimplementation of the Fossil web UI?

Impressive, but also slightly creepy!

And somehow, the diffs look "different" from the original ...

ragelink 4 days, 1 hour ago

That looks pretty amazing.

Thanks!

Infrastructure — Caddy for SSL/routing, Litestream for continuous SQLite-to-S3 replication, Celery for background jobs. Ships as Docker or bare-metal install.

Caddy is a lightweight http/reverse proxy web server written in golang. It basically helps set up each Fossil repo with its own subdomain (e.g. myproject.fossilrepos.io). Caddy maps *.fossilrepos.io to the single Fossil server process on localhost:8080

S3 (and compatible backends) is an optional layer, mostly there if you want to cloud host it. Celery is a task queue for python, helps with background sync/replication tasks, mostly there if you want to have your fossilrepo kept in sync with a git* remote. Z

ragelink 4 days, 1 hour ago

So this is basically a reimplementation of the Fossil web UI?

Indeed

Impressive, but also slightly creepy!

¯\_(ツ)_/¯

And somehow, the diffs look "different" from the original ...

its an early release, thanks for the feedback, i'll look into it. Z a

ragelink 3 days, 23 hours ago

Found the bug, i think diffs are now working properly, LMK if you spot anything else, thanks for the bug report!

chungy 3 days, 23 hours ago

If this makes user account management simpler across repositories (Fossil's login groups can be nice, but it's also... not the easiest thing to wrestle), I would already consider it a win. Does it likewise provide GitHub/Gitea style global notifications (tickets, wiki changes), from the aggregate of repositories a user is a member in?

ragelink 3 days, 19 hours ago

If this makes user account management simpler across repositories (Fossil's login groups can be nice, but it's also... not the easiest thing to wrestle), I would already consider it a win.

cool, thank you!

Does it likewise provide GitHub/Gitea style global notifications (tickets, wiki changes), from the aggregate of repositories a user is a member in?

we have some basic notifications via email, and can be aggregated (daily digest), not super well tested, so certainly some room for improvement, I'll file a ticket to beef this up on the upcoming days as it seems useful.

chungy 3 days, 17 hours ago

You do say the project itself is hosted on Fossil, and Florian (somehow) found a link to your fossilrepo.io server that hosts it, but the home page links to GitHub in both the header and footer, and directs the user to do a git clone https://github... to start using it. With all due respect, it's hard to say that this conveys confidence in the software itself, especially as Fossil is already a mature VCS. Using Git+GitHub seems like a vote against itself.

PS: you might want to edit your opening post and change the formatting style to Markdown, and surround the URLs with angle brackets so they turn into clickable links, eg <https://fossilrepo.dev/> becomes https://fossilrepo.dev/.

ragelink 3 days, 9 hours ago

You're absolutely right. I setup a GitHub mirror and am keeping both in sync, however, the fossilrepo.io is the live server, working version. The homepage does needs updating, I initially thought the GitHub stuff would be an easier entry point for folks less familiar with fossil but maybe that was a wrong assumption.

ragelink 3 days, 9 hours ago

Hi everyone,

I wanted to share a project I've been working on called FossilRepo — a web-based management layer that wraps Fossil SCM to provide a forge-style experience for self-hosted teams.

The idea is simple: Fossil is the source of truth for everything (code, tickets, wiki, forums), and FossilRepo adds a Django+HTMX UI layer on top for project management, team access control, and integration with external systems.

What it does: - Forge UI — Timeline, code browser with blame/history, ticket management, wiki editor, branch/tag views, releases with asset uploads, full-text search. All server-rendered with HTMX, no JS framework. - Multi-repo management — Create and manage multiple Fossil repositories from a single dashboard. Each repo is a standard .fossil SQLite file on disk. - Team access control — Organizations, teams, role-based permissions (read/write/admin), project-scoped API tokens. - Git sync bridge — mirror from Fossil to GitHub/GitLab. Fossil stays primary, Git remotes are downstream mirrors. - Agent APIs — JSON API with workspace isolation, ticket claiming, code review workflow, and SSE event streaming. Designed for AI-assisted development workflows where agents work on branches in parallel.
- Infrastructure — Caddy for SSL/routing, Litestream for continuous SQLite-to-S3 replication, Celery for background jobs. Ships as Docker or bare-metal install.

Current state: v0.1.0, MIT licensed. 161 checkins, 1600+ tests at 90% coverage. Running public demo at fossilrepo.io.

The project itself is hosted on Fossil (of course) and mirrored to GitHub: https://github.com/ConflictHQ/fossilrepo

Documentation: https://fossilrepo.dev/

I'd appreciate any feedback, especially from folks who have thought about multi-repo Fossil hosting or team workflows. Happy to answer questions.

Thanks,
Leo Z df9ade0d4c2

ragelink 3 days, 9 hours ago

Edit: FossilRepo — a self-hosted forge layer for Fossil SCM

ragelink 3 days, 8 hours ago

You're absolutely right. I setup a GitHub mirror and am keeping both in sync, however, the fossilrepo.io is the live server, working version. The homepage did need updating, I initially thought the GitHub stuff would be an easier entry point for folks less familiar with fossil but maybe that was a wrong assumption. Updated both.

ragelink 3 days, 8 hours ago

Edit reply: FossilRepo — a self-hosted forge layer for Fossil SCM

brickviking 2 days, 9 hours ago

I've noticed something additional - in the list of links you have right here on the "About" page, they don't link to the correct place, although the links on the right hand side of the page do exist and go to the right place. Each of the links in that document are missing /page/ in the link.

An example:

https://fossilrepo.io/projects/fossilrepo/fossil/wiki/Architecture

The correct link would be instead:

https://fossilrepo.io/projects/fossilrepo/fossil/wiki/page/Architecture

Hope that helps.


Regards, RTDoc brickviking (in training)
(Post 71)

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button