By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 roundabout.html

View raw Download
text/html • 6.88 kiB
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
129
</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>