HTML document, Unicode text, UTF-8 text
        
            1
            <!DOCTYPE html> 
        
            2
            <html lang="en"> 
        
            3
            <head> 
        
            4
                <meta charset="UTF-8"> 
        
            5
                <title> 
        
            6
                The roundabout 
        
            7
            </title> 
        
            8
                <link rel="stylesheet" href="/static/style.css"> 
        
            9
                <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
        
            10
            </head> 
        
            11
            <body> 
        
            12
                <header> 
        
            13
                    <a href="#main" id="skip-link">Skip navigation</a> 
        
            14
                    <nav> 
        
            15
                        <ul> 
        
            16
                            <li><a href="/">Home</a></li> 
        
            17
                            <li><a href="/projects">Projects</a></li> 
        
            18
                            <li><a href="/index">Index</a></li> 
        
            19
                            <li><a href="/about">About</a></li> 
        
            20
                            <li><a href="https://roundabout-host.com/roundabout">Roundabout-host</a></li> 
        
            21
                        </ul> 
        
            22
                        <ul> 
        
            23
                            <li><a href="mailto:root@roundabout-host.com" id="mail-link">root@roundabout-host.com</a></li> 
        
            24
                        </ul> 
        
            25
                    </nav> 
        
            26
                </header> 
        
            27
                <main id="main"> 
        
            28
                     
        
            29
                <div class="project-title"> 
        
            30
                    <h1> 
        
            31
                        The roundabout 
        
            32
                    </h1> 
        
            33
                    <a href="https://roundabout-host.com/roundabout/roundabout" class="repository-button">Go to repository</a> 
        
            34
                </div> 
        
            35
                <p class="tags"> 
        
            36
                     
        
            37
                        <a href="/index/web.html" class="tag">web</a> 
        
            38
                     
        
            39
                        <a href="/index/flask.html" class="tag">flask</a> 
        
            40
                     
        
            41
                        <a href="/index/git.html" class="tag">git</a> 
        
            42
                     
        
            43
                        <a href="/index/software.html" class="tag">software</a> 
        
            44
                     
        
            45
                        <a href="/index/python.html" class="tag">python</a> 
        
            46
                     
        
            47
                        <a href="/index/agpl.html" class="tag">agpl</a> 
        
            48
                     
        
            49
                        <a href="/index/roundabout.html" class="tag">roundabout</a> 
        
            50
                     
        
            51
                        <a href="/index/roundabout-host.html" class="tag">roundabout-host</a> 
        
            52
                     
        
            53
                </p> 
        
            54
                <article class="content-area"> 
        
            55
                    <p>The roundabout is a <strong class="emphasis-2">git repository hosting</strong> server software. It is designed to be a complete 
        
            56
            alternative to GitHub, GitLab, BitBucket, Gogs/Gitea/Forgejo, and other similar services. It 
        
            57
            is still in development and not yet ready for production use. As of version 0.3.0 development 
        
            58
            stage, it supports: 
        
            59
            </p><ul><li><p>User registration 
        
            60
            </p></li><li><p>Repository creation 
        
            61
            </p></li><li><p>User access control 
        
            62
            </p></li><li><p>Smart Git over HTTP(S) protocol 
        
            63
            </p></li><li><p>Web interface for repository browsing 
        
            64
            </p></li><li><p>User profiles and social features 
        
            65
            </p></li><li><p>Forum for repositories, useful for issue tracking 
        
            66
            </p></li><li><p>Notifications, including email notifications 
        
            67
            </p></li><li><p>Pull requests 
        
            68
            </p></li><li><p>Favourite repositories (subscriptions) 
        
            69
            </p></li><li><p>Commit views and diffs 
        
            70
            </p></li><li><p>Themeing 
        
            71
            </p></li><li><p>Static site hosting 
        
            72
            </p></li><li><p>Really basic search 
        
            73
            </p></li><li><p>Markdown formatting for comments, Markdown file rendering 
        
            74
            </p></li><li><p>Comments on commit diffs 
        
            75
            </p></li><li><p>Partial XML API, will be expanded 
        
            76
            </p></li><li><p>Decentralised merging 
        
            77
            </p></li><li><p>Forum labels 
        
            78
            </p></li><li><p>Static site hosting 
        
            79
            </p></li><li><p>Organisations by trusting users to take actions on your behalf 
        
            80
            </p></li></ul><p>For now, it doesn't support, but I won't consider it complete without: 
        
            81
            </p><ul><li><p>Decentralised social features (merging is already decentralised) 
        
            82
            </p></li><li><p>CI/CD 
        
            83
            </p></li><li><p>Repository metadata (licence, topics, language, etc.) 
        
            84
            </p></li><li><p>Package distribution 
        
            85
            </p></li><li><p>Code syntax highlighting 
        
            86
            </p></li><li><p>Any kind of statistics 
        
            87
            </p></li><li><p>Web-based code editing 
        
            88
            </p></li><li><p>Users changing passwords 
        
            89
            </p></li><li><p>Admin panel 
        
            90
            </p></li><li><p>User mentions 
        
            91
            </p></li><li><p>Git over SSH 
        
            92
            </p></li></ul><p>It won't support: 
        
            93
            </p><ul><li><p>Wikis (why have another interface just for markdown, when you can use your own repo and publish 
        
            94
            it as a static site?) 
        
            95
            </p></li><li><p>Issues (forum does it already) 
        
            96
            </p></li></ul><p>I'm still not sure about: 
        
            97
            </p><ul><li><p>Project boards (what about making label grouping instead?) 
        
            98
            </p></li><li><p>Advertising (I want a truly JS-free, libre advertising network) 
        
            99
            </p></li><li><p>Paste service (does it really work well with Git? Couldn't you just use a repo for that?) 
        
            100
            </p></li><li><p>Native clients (Android development is hard, iOS is hostile, and on desktop it's not needed, 
        
            101
            there are GUI git clients that work with any server, for social features web is fine) 
        
            102
            </p></li><li><p>IDE plugins (sounds good, but it's hard work) 
        
            103
            </p></li></ul><p>The roundabout is written in flask, a Python web framework. It uses SQLAlchemy for database 
        
            104
            management. For light UI interactivity it uses htmx and some vanilla JS. It does some GitPython 
        
            105
            calls for basic operations, but mostly calls git with subprocess. Repositories are non-bare 
        
            106
            because this allows the server to understand the repository and can lead to some performance 
        
            107
            gains since querying git is not required. The server is designed to be run on a single machine 
        
            108
            but decentralisation will be added in the future, but it won't be automatic, you'll have to 
        
            109
            choose a server to use. 
        
            110
            </p><h2>roundabout-host.com</h2><p>The official instance of the roundabout, roundabout-host, is hosted at 
        
            111
            <a href="https://roundabout-host.com">roundabout-host.com</a>. Anyone can register and create repositories 
        
            112
            there. However, we ask that you do not rely on it and always keep your repos locally as well. 
        
            113
            Uptime is not guaranteed, and data loss is possible. The server is not backed up. 
        
            114
            </p><p>In the future it may require payment for some features, but <strong class="emphasis-2">the program it runs will always 
        
            115
            be free</strong>. Payment will not be required to lift artificial limitations, but to support 
        
            116
            server-intensive features like CI/CD. Some free usage for useful projects will always be 
        
            117
            provided on demand. 
        
            118
            </p><p>Additionally, we may have advertising on the site. It will be unobtrusive and not track you. 
        
            119
            Logged-in users will be able to disable it for free. We will never have video, animation, sound, 
        
            120
            popups, overlays, or JS ads. Ads will be relevant to the content of the site, but they won't 
        
            121
            be personalised or use cookies. This just means no car, insurance, supermarket, or other 
        
            122
            unrelated ads. Most likely we will use EthicalAds, which is itself free software. 
        
            123
            </p><p>The roundabout program is licensed under the AGPL licence, version 3.0 or, at your option, any 
        
            124
            later version. Whatever I decide to do for roundabout-host, I can't pull the rug from under 
        
            125
            you, you can always run your own instance. 
        
            126
            </p> 
        
            127
                </article> 
        
            128
                </main> 
        
            130
                <footer> 
        
            131
                    <p>Page generated on Sunday,  4 May 2025 at 15:06:42</p> 
        
            132
                    <p xmlns:cc="http://creativecommons.org/ns#" >This work is marked with <a href="https://creativecommons.org/publicdomain/zero/1.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC0 1.0 Universal</a> (🄍). No rights reserved.</p> 
        
            133
                    <p>Hosted at <a href="https://roundabout-host.com/roundabout">Roundabout-host</a> using the static site service, and generated with <a href="/projects/ampoule.html">Ampoule</a>.</p> 
        
            134
                    <a href="#">Back to top</a> 
        
            135
                </footer> 
        
            136
            </body> 
        
            137
            </html>