roundabout.md
ASCII text
title: The roundabout source-url: https://roundabout-host.com/roundabout/roundabout topics: ["web", "flask", "git", "software", "python", "agpl", "roundabout", "roundabout-host"] ---
The roundabout is a git repository hosting server software. It is designed to be a complete alternative to GitHub, GitLab, BitBucket, Gogs/Gitea/Forgejo, and other similar services. It is still in development and not yet ready for production use. As of version 0.3.0 development stage, it supports:
User registration
Repository creation
User access control
Smart Git over HTTP(S) protocol
Web interface for repository browsing
User profiles and social features
Forum for repositories, useful for issue tracking
Notifications, including email notifications
Pull requests
Favourite repositories (subscriptions)
Commit views and diffs
Themeing
Static site hosting
Really basic search
Markdown formatting for comments, Markdown file rendering
Comments on commit diffs
Partial XML API, will be expanded
Decentralised merging
Forum labels
Static site hosting
Organisations by trusting users to take actions on your behalf
For now, it doesn't support, but I won't consider it complete without:
Decentralised social features (merging is already decentralised)
CI/CD
Repository metadata (licence, topics, language, etc.)
Package distribution
Code syntax highlighting
Any kind of statistics
Web-based code editing
Users changing passwords
Admin panel
User mentions
Git over SSH
It won't support:
Wikis (why have another interface just for markdown, when you can use your own repo and publish it as a static site?)
Issues (forum does it already)
I'm still not sure about:
Project boards (what about making label grouping instead?)
Advertising (I want a truly JS-free, libre advertising network)
Paste service (does it really work well with Git? Couldn't you just use a repo for that?)
Native clients (Android development is hard, iOS is hostile, and on desktop it's not needed, there are GUI git clients that work with any server, for social features web is fine)
IDE plugins (sounds good, but it's hard work)
The roundabout is written in flask, a Python web framework. It uses SQLAlchemy for database management. For light UI interactivity it uses htmx and some vanilla JS. It does some GitPython calls for basic operations, but mostly calls git with subprocess. Repositories are non-bare because this allows the server to understand the repository and can lead to some performance gains since querying git is not required. The server is designed to be run on a single machine but decentralisation will be added in the future, but it won't be automatic, you'll have to choose a server to use.
roundabout-host.com
The official instance of the roundabout, roundabout-host, is hosted at roundabout-host.com. Anyone can register and create repositories there. However, we ask that you do not rely on it and always keep your repos locally as well. Uptime is not guaranteed, and data loss is possible. The server is not backed up.
In the future it may require payment for some features, but the program it runs will always be free. Payment will not be required to lift artificial limitations, but to support server-intensive features like CI/CD. Some free usage for useful projects will always be provided on demand.
Additionally, we may have advertising on the site. It will be unobtrusive and not track you. Logged-in users will be able to disable it for free. We will never have video, animation, sound, popups, overlays, or JS ads. Ads will be relevant to the content of the site, but they won't be personalised or use cookies. This just means no car, insurance, supermarket, or other unrelated ads. Most likely we will use EthicalAds, which is itself free software.
The roundabout program is licensed under the AGPL licence, version 3.0 or, at your option, any later version. Whatever I decide to do for roundabout-host, I can't pull the rug from under you, you can always run your own instance.
1--- 2title: The roundabout 3source-url: https://roundabout-host.com/roundabout/roundabout 4topics: ["web", "flask", "git", "software", "python", "agpl", "roundabout", "roundabout-host"] 5--- 6 7The roundabout is a **git repository hosting** server software. It is designed to be a complete 8alternative to GitHub, GitLab, BitBucket, Gogs/Gitea/Forgejo, and other similar services. It 9is still in development and not yet ready for production use. As of version 0.3.0 development 10stage, it supports: 11 12* User registration 13* Repository creation 14* User access control 15* Smart Git over HTTP(S) protocol 16* Web interface for repository browsing 17* User profiles and social features 18* Forum for repositories, useful for issue tracking 19* Notifications, including email notifications 20* Pull requests 21* Favourite repositories (subscriptions) 22* Commit views and diffs 23* Themeing 24* Static site hosting 25* Really basic search 26* Markdown formatting for comments, Markdown file rendering 27* Comments on commit diffs 28* Partial XML API, will be expanded 29* Decentralised merging 30* Forum labels 31* Static site hosting 32* Organisations by trusting users to take actions on your behalf 33 34For now, it doesn't support, but I won't consider it complete without: 35* Decentralised social features (merging is already decentralised) 36* CI/CD 37* Repository metadata (licence, topics, language, etc.) 38* Package distribution 39* Code syntax highlighting 40* Any kind of statistics 41* Web-based code editing 42* Users changing passwords 43* Admin panel 44* User mentions 45* Git over SSH 46 47It won't support: 48* Wikis (why have another interface just for markdown, when you can use your own repo and publish 49it as a static site?) 50* Issues (forum does it already) 51 52I'm still not sure about: 53* Project boards (what about making label grouping instead?) 54* Advertising (I want a truly JS-free, libre advertising network) 55* Paste service (does it really work well with Git? Couldn't you just use a repo for that?) 56* Native clients (Android development is hard, iOS is hostile, and on desktop it's not needed, 57there are GUI git clients that work with any server, for social features web is fine) 58* IDE plugins (sounds good, but it's hard work) 59 60The roundabout is written in flask, a Python web framework. It uses SQLAlchemy for database 61management. For light UI interactivity it uses htmx and some vanilla JS. It does some GitPython 62calls for basic operations, but mostly calls git with subprocess. Repositories are non-bare 63because this allows the server to understand the repository and can lead to some performance 64gains since querying git is not required. The server is designed to be run on a single machine 65but decentralisation will be added in the future, but it won't be automatic, you'll have to 66choose a server to use. 67 68roundabout-host.com 69------------------- 70 71The official instance of the roundabout, roundabout-host, is hosted at 72[roundabout-host.com](https://roundabout-host.com). Anyone can register and create repositories 73there. However, we ask that you do not rely on it and always keep your repos locally as well. 74Uptime is not guaranteed, and data loss is possible. The server is not backed up. 75 76In the future it may require payment for some features, but **the program it runs will always 77be free**. Payment will not be required to lift artificial limitations, but to support 78server-intensive features like CI/CD. Some free usage for useful projects will always be 79provided on demand. 80 81Additionally, we may have advertising on the site. It will be unobtrusive and not track you. 82Logged-in users will be able to disable it for free. We will never have video, animation, sound, 83popups, overlays, or JS ads. Ads will be relevant to the content of the site, but they won't 84be personalised or use cookies. This just means no car, insurance, supermarket, or other 85unrelated ads. Most likely we will use EthicalAds, which is itself free software. 86 87The roundabout program is licensed under the AGPL licence, version 3.0 or, at your option, any 88later version. Whatever I decide to do for roundabout-host, I can't pull the rug from under 89you, you can always run your own instance. 90