Skip to content

Commit ae0fa92

Browse files
committedOct 8, 2024
Update documentation for Nuts and Bolts
Signed-off-by: Benoit Donneaux <benoit@leastauthority.com>
1 parent 1bc5ca2 commit ae0fa92

File tree

1 file changed

+100
-3
lines changed

1 file changed

+100
-3
lines changed
 

‎docs/TargetComparison.md

+100-3
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,81 @@
22

33
Moving off Trac leads to consider different software offering similar features/properties.
44

5+
## Side-by-side summary
6+
7+
| 1. self-hosted | criteria | Trac | Forgejo | Gitea | Gitlab | notes |
8+
|----------------|-------------------|--------------|--------------|-----------|------------|-------------------|
9+
| feature/req | (F)OSS license | 3-clause BSD | GPLv3 | MIT | MIT | |
10+
| feature/req | issue tracking | yes | yes | yes | | |
11+
| feature/req | wiki pages | yes | yes | yes | | |
12+
| feature/req | self-registration | yes | yes | yes | | spam mitigation? |
13+
| feature/opt | OAuth - Github | ? | NA | yes | | account recovery? |
14+
| feature/opt | static web sites | *wiki only* | options | yes | | |
15+
| feature/opt | git mirror | yes | yes | yes | | |
16+
| feature/opt | git repository | external | yes | yes | | |
17+
| feature/opt | binary repository | external | yes | yes | | |
18+
| feature/opt | CI support | none | maybe | yes | yes | |
19+
| feature/opt | CI on linux | - | ? | yes | yes | additional cost |
20+
| feature/opt | CI on mac | - | ? | yes | yes | additional cost |
21+
| feature/opt | CI on win | - | ? | yes | yes | additional cost |
22+
| feature/opt | CI based on | - | ? | act | gitlab | |
23+
| freedom | CI license | - | ? | MIT | MIT | |
24+
| capex | setup | 8 | 8 | 8 | | hours |
25+
| capex | migration | 4 | 8 | 8 | | hours |
26+
| opex | ops | 16 | 16 | 16 | | hours/month |
27+
| opex | hosting | 10 | 10 | 10 | | $/month |
28+
| opex | subscription | 0 | 0 | 0 | ? | $/month |
29+
| **2. SaaS** | | **Github** | **Codeberg** | **Gitea** | **Gitlab** | |
30+
| feature/req | self-hostable | yes | yes | yes | yes | |
31+
| feature/req | (F)OSS license | **no** | GPLv3 | MIT | MIT | |
32+
| feature/req | issue tracking | yes | yes | yes | | |
33+
| feature/req | wiki pages | yes | yes | yes | | |
34+
| feature/req | self-registration | yes | yes | yes | | spam mitigation? |
35+
| feature/opt | OAuth - Github | NA | yes | yes | | account mapping? |
36+
| feature/opt | static web sites | yes | yes | ? | ? | |
37+
| feature/opt | git mirror | yes | yes | yes | ? | |
38+
| feature/opt | git repository | external | yes | yes | ? | |
39+
| feature/opt | binary repository | external | yes | yes | ? | |
40+
| feature/opt | CI support | yes | yes | yes | yes | |
41+
| feature/opt | CI on linux | yes | yes | yes | yes | additional cost? |
42+
| feature/opt | CI on mac | yes | yes | yes | yes | additional cost? |
43+
| feature/opt | CI on win | yes | yes | yes | yes | additional cost? |
44+
| feature/opt | CI based on | github | woodpecker | act | gitlab | |
45+
| freedom | CI (F)OSS license | **no** | Apache-2.0 | MIT | MIT | |
46+
| capex | setup | 2 | 4 | 4 | 2 | hours |
47+
| capex | migration | ? | 8 | 8 | ? | hours |
48+
| opex | ops | 4 | 4 | 4 | 4 | hours/month |
49+
| opex | hosting | 5 | 5 | 5 | 5 | $/month redirect |
50+
| opex | subscription | freemium? | 0 (donation) | 20/user | freemium? | $/month |
51+
552
## Software
653

754
### Trac
855

9-
**TODO**: Just to list the feature currently used for comparison.
56+
Currently used for:
57+
58+
* user management: manual registration via email and IRC to avoid spam
59+
* issue tracking: referred from [Github](https://github.com/tahoe-lafs/tahoe-lafs/pulls)
60+
* wiki pages: in parallel from [Github](https://github.com/tahoe-lafs/tahoe-lafs/tree/master/docs)
61+
* static web site: using the wiki [Start](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/WikiStart) page
62+
* git mirror: allows to [browse](https://tahoe-lafs.org/trac/tahoe-lafs/browser) the latest code from Github
63+
64+
Aside from other self-hosted features:
65+
66+
* binary repository for Tahoe-LAFS release
67+
* other Trac projects (see [DevInfra](https://tahoe-lafs.org/trac/tahoe-lafs/wiki/DevInfra)
68+
* Buildbot instances...
1069

1170
### Github
1271

13-
**TODO**: Summary of the features covered by the previous estimate.
72+
The code of the main [Tahoe-LAFS](https://github.com/tahoe-lafs) project and its related pull requests already live in Github.
73+
Despite having been considered in the past, Github is not (F)OSS and not easily self-hostable (vendor loncking).
1474

1575
### Gitlab
1676

17-
**TODO**: Sum up the pros and cons assessed in the issue/wiki.
77+
Some projects related to Tahoe-LAFS already lives on Gitlab.com.
78+
And despite being (F)OSS, Gitlab is not easily self-hostable (vendor locking).
79+
In addition, PrivateStorage.io has a poor experience using Gitlab: cumbersome UI and many security issues.
1880

1981
### Gitea
2082

@@ -24,6 +86,38 @@ Moving off Trac leads to consider different software offering similar features/p
2486

2587
**TODO**: Describe the small differences with Gitea.
2688

89+
90+
### Summary
91+
92+
#### Features and requirements
93+
94+
| Feature | Requirement | Trac | Github | Gitea | Forgejo | Notes |
95+
|-------------------|-------------|-----------|----------|-----------|--------------|-------------------|
96+
| issue traking | MUST | yes | yes | yes | yes | |
97+
| wiki pages | MUST | yes | yes | yes | yes | |
98+
| git mirror | COULD | yes | yes | yes | yes | |
99+
| self-registration | MUST | yes | yes | yes | yes | spam mitigation? |
100+
| OAuth - Github | COULD | ? | NA | yes | yes | account recovery? |
101+
| (F)OSS | MUST | yes | no | yes | yes | community size? |
102+
| self-hostable | MUST | yes | yes | yes | yes | |
103+
| SaaS provided | MUST | ? | NA | gitea.com | codeberg.org | funding source? |
104+
| static web sites | COULD | wiki only | gh-pages | options | options | |
105+
| binary repository | COULD | external | yes | yes | yes | |
106+
| git repository | COULD | external | yes | yes | yes | |
107+
| CI support | COULD | no | yes | yes | yes | |
108+
109+
#### Rating
110+
111+
| criteria | sub-category | Trac | Gitea | Forgejo | note/metric |
112+
|-----------------|--------------|-----------|-----------|-----------|---------------------|
113+
| community | contributors | 2 > 1 | 29 > 19 | 41 > 40 | last year <> month |
114+
| community | last release | Sep 2023 | Sep 2024 | Sep 2024 | date (version) |
115+
| community | last version | 1.6 | 1.22.2 | 8.0.3 | date (version) |
116+
| maintainability | language | Python | Go | Go | - |
117+
| maintainability | docker | obsolete | 1.22.2 | 8.0.3 | last stable image |
118+
| maintainability | debian | not found | not found | not found | last stable package |
119+
| maintainability | nixos | not found | 1.21.11 | 7.0.9 | last stable package |
120+
27121
## Hosting
28122

29123
### Gitea/Forgejo on self-hosted NixOS
@@ -64,6 +158,9 @@ Same as Gitea on self-hosted NixOS, only different CI and gh-pages solutions.
64158

65159
### Forgejo on Codeberg
66160

161+
Codeberg is a non-profit org supporting Free Software and therefore only allows repos licensed under an OSI/FSF-approved license.
162+
Codeberg also [explicitly](https://docs.codeberg.org/getting-started/what-is-codeberg/#alternatives-to-codeberg) stands against vendor locking.
163+
67164
#### Pros
68165

69166
* Smaller VPS (5$/m), but still required for redirection (stateless, maybe possible w/o?)

0 commit comments

Comments
 (0)
Please sign in to comment.