FossilRepo

fossilrepo / docs / index.md
Source Blame History 65 lines
2eca4eb… ragelink 1 # Fossilrepo
2eca4eb… ragelink 2
2eca4eb… ragelink 3 **Self-hosted Fossil forge. One command, full-stack code hosting.**
4c57c6e… ragelink 4
4c57c6e… ragelink 5 ![FossilRepo Tour](fossilrepo-tour.gif)
2eca4eb… ragelink 6
2eca4eb… ragelink 7 Fossilrepo is an omnibus-style installer for a production Fossil SCM server. It packages Fossil, Caddy (SSL/routing), Litestream (S3 backups), and a Django management layer into a single deployable unit.
2eca4eb… ragelink 8
2eca4eb… ragelink 9 Think GitLab Omnibus, but for Fossil.
2eca4eb… ragelink 10
2eca4eb… ragelink 11 ## Why Fossil?
2eca4eb… ragelink 12
2eca4eb… ragelink 13 A Fossil repository is a single SQLite file containing the full VCS history, issue tracker, wiki, forum, and timeline. No external services. No rate limits. Portable -- hand the file to someone and they have everything.
2eca4eb… ragelink 14
2eca4eb… ragelink 15 - **Single-file repos** -- each `.fossil` file is the entire project
2eca4eb… ragelink 16 - **Built-in everything** -- issues, wiki, forum, timeline, web UI
2eca4eb… ragelink 17 - **No API rate limits** -- ideal for CI agents and automation
2eca4eb… ragelink 18 - **Litestream replication** -- continuous backup to S3 for free
2eca4eb… ragelink 19
2eca4eb… ragelink 20 ## What You Get
2eca4eb… ragelink 21
2eca4eb… ragelink 22 | Component | Role |
2eca4eb… ragelink 23 |---|---|
2eca4eb… ragelink 24 | **Fossil server** | Serves all repos from a single process |
2eca4eb… ragelink 25 | **Caddy** | SSL termination, subdomain-per-repo routing |
2eca4eb… ragelink 26 | **Litestream** | Continuous SQLite replication to S3/MinIO |
2eca4eb… ragelink 27 | **Django management UI** | Repository lifecycle, user management, dashboards |
2eca4eb… ragelink 28 | **Sync bridge** | Mirror Fossil repos to GitHub/GitLab (read-only) |
2eca4eb… ragelink 29 | **Celery workers** | Background sync, scheduled tasks |
2eca4eb… ragelink 30
2eca4eb… ragelink 31 ## Quick Start
2eca4eb… ragelink 32
2eca4eb… ragelink 33 ```bash
2eca4eb… ragelink 34 # Clone the repo
2eca4eb… ragelink 35 git clone https://github.com/ConflictHQ/fossilrepo.git
2eca4eb… ragelink 36 cd fossilrepo
2eca4eb… ragelink 37
2eca4eb… ragelink 38 # Start the full stack
2eca4eb… ragelink 39 make build
2eca4eb… ragelink 40
2eca4eb… ragelink 41 # Seed development data
2eca4eb… ragelink 42 make seed
2eca4eb… ragelink 43
2eca4eb… ragelink 44 # Open the dashboard
2eca4eb… ragelink 45 open http://localhost:8000
2eca4eb… ragelink 46 ```
2eca4eb… ragelink 47
2eca4eb… ragelink 48 ## Architecture
2eca4eb… ragelink 49
2eca4eb… ragelink 50 ```
2eca4eb… ragelink 51 Caddy (SSL termination, routing, subdomain per repo)
2eca4eb… ragelink 52 +-- fossil server --repolist /data/repos/
2eca4eb… ragelink 53 +-- /data/repos/
2eca4eb… ragelink 54 |-- projecta.fossil
2eca4eb… ragelink 55 |-- projectb.fossil
2eca4eb… ragelink 56 +-- ...
2eca4eb… ragelink 57
2eca4eb… ragelink 58 Litestream -> S3/MinIO (continuous replication, point-in-time recovery)
2eca4eb… ragelink 59 ```
2eca4eb… ragelink 60
2eca4eb… ragelink 61 New project = `fossil init`. No restart, no config change. Litestream picks it up automatically.
2eca4eb… ragelink 62
2eca4eb… ragelink 63 ## License
2eca4eb… ragelink 64
2eca4eb… ragelink 65 MIT License -- Copyright (c) 2026 CONFLICT LLC.

Keyboard Shortcuts

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