2023-10-01 23:14:58 +05:30
<!DOCTYPE HTML>
< html >
< head >
< meta charset = "UTF-8" >
< link rel = "stylesheet" href = "https://docs.forgeflux.org/main.css" >
2023-10-01 23:33:42 +05:30
< link rel = "icon" href = "https://forgeflux.org/favicon.ico" >
2023-10-01 23:14:58 +05:30
< meta name = "viewport" content = "width=device-width, initial-scale=1.0, maximum-scale=1" >
< title > Docs< / title >
< / head >
< body >
< main >
< nav >
< img src = "/logo.svg" alt = "" / >
< a href = "javascript:void(0);" onclick = "burger()" id = "mobile" class = "ms-Icon--GlobalNavButton" > < / a >
< div id = "trees" >
2023-10-02 00:28:03 +05:30
< input class = "tree-toggle" type = "checkbox" id = "ftest"
/>
< label class = "tree-toggle-label" for = "ftest" > ftest< / label >
< ul class = "subtree" >
< li >
2023-10-05 02:48:19 +05:30
< a href = "https://docs.forgeflux.org/ftest/introduction/" > Introducing ftest< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/cli/" > Using ftest CLI< / a >
2023-10-02 00:28:03 +05:30
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/terminology/" > Terminology< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/quick-links/" > Quick Links< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/ftest-toml/" > ftest.toml< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/tests/" > Tests< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/ftest/tutorial-new-specimen/" > [Tutorial] Add new specimen< / a >
< / li >
< / ul >
2023-10-01 23:33:42 +05:30
< input class = "tree-toggle" type = "checkbox" id = "interface"
2023-10-01 23:14:58 +05:30
/>
2023-10-01 23:33:42 +05:30
< label class = "tree-toggle-label" for = "interface" > Interface< / label >
2023-10-01 23:14:58 +05:30
< ul class = "subtree" >
2023-10-01 23:36:07 +05:30
< li >
< a href = "https://docs.forgeflux.org/Interface/about/" > About Interface< / a >
< / li >
2023-10-01 23:14:58 +05:30
< / ul >
2023-10-01 23:33:42 +05:30
< input class = "tree-toggle" type = "checkbox" id = "northstar"
2023-10-01 23:14:58 +05:30
/>
2023-10-01 23:33:42 +05:30
< label class = "tree-toggle-label" for = "northstar" > Northstar< / label >
2023-10-01 23:14:58 +05:30
< ul class = "subtree" >
2023-10-01 23:36:07 +05:30
< li >
< a href = "https://docs.forgeflux.org/Northstar/about/" > About Northstar< / a >
< / li >
2023-10-01 23:14:58 +05:30
< / ul >
< input class = "tree-toggle" type = "checkbox" id = "updates"
/>
< label class = "tree-toggle-label" for = "updates" > Updates< / label >
< ul class = "subtree" >
< li >
< a href = "https://docs.forgeflux.org/updates/december2020/" > December 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/november2020/" > November 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/october2020/" > October 2020< / a >
< / li >
< li >
< a href = "https://docs.forgeflux.org/updates/september2020/" > September 2020< / a >
< / li >
< / ul >
< / div >
< / nav >
< article >
< div id = "on_right" >
< span id = "search-ico" class = "ms-Icon--Search" > < / span >
< / div >
< div class = "search-container" >
< input id = "search" type = "search" placeholder = "Search as you type..." >
< div class = "search-results" >
< div class = "search-results__header" > < / div >
< ul class = "search-results__items" > < / ul >
< / div >
< / div >
< div id = "wrap" >
< h2 id = "status" > Status < a class = "anchor" href = "#status" >  < / a > < / h2 >
< p > This site is Work-in-Progress, and as such, everything is in an
incomplete-state.< / p >
< h2 id = "source-code" > Source code < a class = "anchor" href = "#source-code" >  < / a > < / h2 >
< p > Split between two forges, slowly migrating to self-hosted
< a href = "https://forgejo.org" > Forgejo< / a > instance at
< a href = "https://git.batsense.net" > git.batsense.net< / a > < / p >
< ol >
< li > < a href = "https://git.batsense.net/ForgeFlux" > git.batsense.net< / a > < / li >
< li > < a href = "https://github.com/forgeflux-org" > GitHub< / a > < / li >
< / ol >
< h2 id = "projects-overview" > Projects Overview < a class = "anchor" href = "#projects-overview" >  < / a > < / h2 >
< h3 id = "project-status-what-does-it-mean" > Project Status: what does it mean? < a class = "anchor" href = "#project-status-what-does-it-mean" >  < / a > < / h3 >
< ol >
< li > WIP: Code isn't usable.< / li >
< li > Usable: Code works, but user experience isn't polished. Can be used
with a bit of patience ;)< / li >
< li > Production: Ready for use< / li >
< / ol >
< h3 id = "1-interface" > 1. Interface < a class = "anchor" href = "#1-interface" >  < / a > < / h3 >
< ul >
< li > < a href = "https://github.com/forgeflux-org/interface" > Source code< / a > < / li >
< li > Status: WIP< / li >
< li > Description: API-space software forge federation implementation.< / li >
< / ul >
< p > Federation will take time to implement in most, popular software forge
implementations. Interface aims to use the forge's REST API or similar
and create a federation layer on top of it.< / p >
< p > Currently, implementation has minimal support for Forgejo and Gitea. A
Forgejo user can be exposed to Fediverse through WebFinger using
Interface.< / p >
< h3 id = "2-northstar" > 2. Northstar < a class = "anchor" href = "#2-northstar" >  < / a > < / h3 >
< ul >
< li > < a href = "https://github.com/forgeflux-org/northstar" > Source code< / a > < / li >
< li > Status: Production< / li >
< li > Description: A lookup service for federating software forges< / li >
< li > Flagship instance: < a href = "https://northstar.forgeflux.org" > northstar.forgeflux.org< / a > < / li >
< / ul >
< p > Interface's API-based, external, third-party approach introduces a
unique problem: how to locate the internet address (hostname) of the
Interface that services a forgege? Enter Northstar. It is a simple
Key-Value search server that maps forges and internfaces< / p >
< h3 id = "3-starchart" > 3. Starchart < a class = "anchor" href = "#3-starchart" >  < / a > < / h3 >
< ul >
< li > < a href = "https://github.com/forgeflux-org/starchart" > Source code< / a > < / li >
< li > Status: Usable< / li >
< li > Description: Spider and search engine for federating forges< / li >
< li > Flagship instance:
< a href = "https://starchart.forgeflux.org" > starchart.forgeflux.org< / a > < / li >
< / ul >
< p > Projects on centralized forges like GitHub and GitLab enjoy good
visibility through network effect, good search engine indexing and
through third-party tools like
< a href = "https://awesomeopensource.com/" > awesomeopensource.com/< / a > .< / p >
< p > Starchart aims to provide high-visibility for projects on independently
hosted forges by indexing them and exposing the index with a searchable
index. The index is designed to be replicated, so that new Starchart
instances can be bootstrapped from an existing Starchart instance's
data.< / p >
< h3 id = "4-f3-rs" > 4. f3-rs < a class = "anchor" href = "#4-f3-rs" >  < / a > < / h3 >
< ul >
< li > < a href = "https://git.batsense.net/ForgeFlux/f3-rs" > Source code< / a > < / li >
< li > Status: WIP< / li >
< li > Description: Rust port of the < a href = "https://f3.forgefriends.org/" > Friendly Forge Format< / a > library< / li >
< li > Documentation link: < a href = "https://forgeflux.org" > f3.forgeflux.org< / a > < / li >
< / ul >
< h3 id = "4-ftest" > 4. ftest < a class = "anchor" href = "#4-ftest" >  < / a > < / h3 >
< ul >
< li > < a href = "https://git.batsense.net/ForgeFlux/ftest" > Source code< / a > < / li >
< li > Status: Usable< / li >
< li > Description: Compliance checker/test runner for < a href = "https://activitypub.rocks" > ActivityPub< / a > and by
extension, < a href = "https://forgefed.org" > ForgeFed< / a > < / li >
< / ul >
< p > The idea is to create something similar to
< a href = "https://github.com/matrix-org/sytest" > matrix-org/sytest< / a > , but for
ActivityPub and ForgeFed. This way, we'll be able to measure how
compliant an implementation is to the specifications, which we hope will
improve interoperability between instances.< / p >
< / div >
< / article >
< / main >
< script type = "text/javascript" src = "https://docs.forgeflux.org/elasticlunr.min.js" defer > < / script >
< script type = "text/javascript" src = "https://docs.forgeflux.org/search_index.en.js" defer > < / script >
< script type = "text/javascript" src = "https://docs.forgeflux.org/js.js" defer > < / script >
< / body >
< / html >