GOT-PORTABLE(7)
π GOT-PORTABLE β¨
okay bestie, fold in: this is the manual page for got-portable, section 7 of the Miscellaneous Information Manual. It's the notes you actually need for the -portable flavour of Game of Trees. π
πΈ NAME πΈ
got-portable β the tea on everything relevant to the -portable version of Game of Trees. π¦
π§ GOTWEBD WITH AN HTTP SERVER π§
so here's the situation: if you wanna actually use gotwebd(8), you can't just vibe β an HTTP server has to be set up to send traffic to gotwebd(8). To show you how this works, we're using nginx(1) as the example. periodt. π
π Nginx Configuration π
Setting up nginx means you need a server configuration that looks something like this, no cap:
https {
server {
listen *:80;
root /var/www/htdocs;
location / {
index index.html;
}
location /gotweb {
include fastcgi_params;
fastcgi_pass unix:/tmp/gotwebd.sock;
}
}
}
With this directive, port 80 is what's being used. You've got the location of "/", which is serving up the page "index.html". π
Then there's the location "/gotweb" β and it includes the fastcgi parameters (this is mandatory, btw, because gotwebd(8) is a FastCGI server, so you literally have to include them, no skipping π). After that, the rest of the requests get forwarded on to gotwebd(8) over the defined unix domain socket. Heads up though: the path to that socket has to match whatever's defined in gotwebd.conf(5). iykyk. π₯
π Gotwebd Configuration π
This next example config is a bare-minimum situation β it just shows how to make sure gotwebd(8) is listening on the right port, and that the relevant bits from nginx(8) are referenced correctly too. Important: this is not a full tutorial for configuring gotwebd(8). For that whole journey, go look at gotwebd(8) and gotwebd.conf(5). π
Also note the in-line comments β they explain how and why gotwebd(8) is being configured this way. iconic of them honestly:
# The "www user" line should match the user that's running nginx.
www user "www-data"
# This is the user which gotwebd should run as.
#
# Note that this user must have permission to read the repositories
# set via `repos_path`.
#
# This should be an unprivileged user.
user n6tadam
# This is the unix domain socket gotwebd will create and listen on.
# This must also be set correctly in nginx's configuration.
listen on socket "/tmp/gotwebd.sock"
# Because we told nginx that we wanted to serve up gotwebd traffic via
# `/gotweb`, we should let gotwebd know this is also where traffic is coming
# from.
gotweb_url_root "/gotweb"
# Matches the home directory of the "www user".
#
# Note that it is assumed that under this directory
chroot "/var/www"
server "localhost" {
disable authentication
site_name "Public repos"
site_owner "Thomas Adam"
site_link "Thomas' Projects"
# This is where all the bare repos live.
repos_path "/home/n6tadam/p/got/root/repos"
}
okay so with all that configuration above, gotwebd(8) is expecting to serve up artefacts relative to the chroot path β and that defaults to "htdocs/gotwebd". Those files might already be packaged for you, and they might be chilling somewhere under "/usr/share/got-portable/". π But regardless: they're packaged in the release tarball, and the "gotwebd/files/htdocs/gotwebd" directory should be copied to "htdocs/" relative to the chroot line in gotwebd's configuration file. Don't forget that part bestie, it's giving crucial. π
π« SEE ALSO π«
π«Ά AUTHORS π«Ά
Thomas Adam <thomas@xteddy.org> π
and that's the whole page, mwah. this one ships out of Debian, version $Mdocdate$, and it's GOT-PORTABLE(7) β go forth and configure your sockets correctly, you're the main character of this server. βπ
π¦ where this page comes from
- alpine 3.24: got-doc 0.126-r0 Β· ISC
- nixos 26.05: got 0.125
- nixpkgs unstable: got 0.129
- ubuntu stonking: got 0.126-1build1 Β· ISC
- Copyright (c) 2026 Thomas Adam
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms