Services hosted on GNU Savannah servers
The following is the list of various network services related to Savannah, organized by the VM they run on.
When restarting/reload/reboot a service or a VM, please check the following services are working as expected.
See also:
- SavannahArchitecture
- SavannahInternals
- GnuArchitecture
- StatusMonitor (update this page if you add more services)
Conventions
- Host names
X.gnu.organdX.nongnu.orgpoint to the same IP address.X.savannah.gnu.organdX.savannah.gnu.orglikewise point to the same address.
- File names
- Filenames with server name are written as
frontend1:/etc/apache2/foo.conf- meaning the file/etc/apache2/foo.confon thefrontend1server (which isfrontend1.savannah.gnu.org). - Filenames without server name - the server is assumed to be deduced from the context.
- Filenames with server name are written as
frontend
The frontend2.savannah.gnu.org VM runs the Savannah website (PHP code and
this wiki).
Main page: https://savannah.gnu.org and https://savannah.nongnu.org.
Apache local setup in
/etc/apache2/sites-available/is under Git.PHP code runs defined in
frontend2:/etc/apache2/sites-available/sv.inc, stored infrontend2:/var/www/savane/frontend/php/.PHP source code; see also SavaneReleases.
vcs hosts
The vcs0, vcs1, vcs2 VMs hold the source code (bzr, cvs, hg, git, svn)
and webpages (cvs only) repositories, providing various access methods.
(The old GNU Arch repositories are still available for download.)
vcs - group member access (commits)
ssh: used for read/write access to the repositories by members of a group. Before using ssh, the Savannah user must upload a public ssh key through the Savannah web interface. Upon attempted login, this user key is checked against the Savannah MySQL database, using the
AuthorizedKeysCommandcommand defined invcs0:/etc/ssh/sshd_config. The user must also be a member of the given group.The repositories' access methods are:
- bzr:
bzr branch bzr+ssh://<USER>@bzr.savannah.nongnu.org/<GROUP>/branch - cvs:
cvs -d:ext:<USER>@cvs.savannah.nongnu.org:/sources/<GROUP> co <modulename> - git:
git clone <USER>@git.savannah.gnu.org:/srv/git/<GROUP>.git - hg:
hg clone ssh://<USER>@hg.savannah.gnu.org/<GROUP> - svn:
svn co svn+ssh://<USER>@svn.savannah.gnu.org/<GROUP>/<modulename> - webcvs:
cvs -d:ext:<USER>@cvs.savannah.nongnu.org:/web/<GROUP> co <GROUP>
- bzr:
vcs - public anonymous access (read-only)
rsync - read-only anonymous access to the raw repository files. Configuration in
vcsN:/etc/rsync.conf, started withxinetdinvcsN:/etc/xinetd.d/rsync, where N is 0 for bzr, hg, svn, arch; 1 for cvs, webcvs; 2 for git.- bzr:
rsync://bzr.savannah.gnu.org/bzr/<GROUP> - cvs:
rsync://cvs.savannah.gnu.org/sources/<GROUP> - git:
rsync://svn.savannah.gnu.org/git/<GROUP> - hg:
rsync://hg.savannah.gnu.org/hg/<GROUP> - svn:
rsync://svn.savannah.gnu.org/svn/<GROUP> - webcvs:
rsync://web.cvs.savannah.gnu.org/web/<GROUP> - arch:
rsync://arch.savannah.gnu.org/arch/<GROUP>
- bzr:
bzr-daemon - read-only anonymous access to bzr repositories. configured with
xinetdinvcs0:/etc/xinetd.d/bzr-hpss.- bzr:
bzr branch bzr://bzr.savannah.nongnu.org/gnewsense/branch
- bzr:
cvs-pserver - read-only anonymous access to cvs repositories. configured with
xinetdinvcs0:/etc/xinetd.d/cvs.- cvs:
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/<GROUP> co <modulename> - webcvs:
cvs -d:pserver:anonymous@cvs.savannah.nongnu.org:/web/<GROUP> co <modulename>
- cvs:
git-daemon - read-only anonymous access to git repositories. configured with
xinetdinvcs0:/etc/xinetd.d/git.- git:
git clone git://git.savannah.gnu.org/<GROUP>.git
- git:
hg - not defined.
svn-daemon - read-only anonymous access to svn repositories. configured with
xinetdinvcs0:/etc/xinetd.d/svn.- svn:
svn co svn://svn.savannah.gnu.org/texinfo/trunk
- svn:
vcs - web browsing
Source code repositories:
- bzr
- Apache config file:
vcs0:/etc/apache2/sites-available/bzr - static welcome page: https://bzr.savannah.gnu.org/
- bzr cgi Viewer: https://bzr.savannah.gnu.org/lh/
- Apache config file:
- cvs (the cvs source code repositories, not webpages)
- Apache config file:
vcs0:/etc/apache2/sites-available/cvs - static welcome page: https://cvs.savannah.gnu.org/
- ViewVC cgi: https://cvs.savannah.gnu.org/viewvc/
- Apache config file:
- git
- Apache config file:
vcs0:/etc/apache2/sites-available/git - static welcome page: https://git.savannah.gnu.org/
- cgit viewer: https://git.savannah.gnu.org/cgit/
- WebGit viwer: https://git.savannah.gnu.org/gitweb/
- Apache config file:
- hg
- Apache config file:
vcs0:/etc/apache2/sites-available/hg - static welcome page: https://hg.savannah.gnu.org/
- hgweb Viewer: https://hg.savannah.gnu.org/hgweb/
- Apache config file:
- svn
- Apache config file:
vcs0:/etc/apache2/sites-available/svn - static welcome page: https://svn.savannah.gnu.org/
- ViewVC cgi: https://svn.savannah.gnu.org/viewvc/
- Apache config file:
Webpages repositories:
webcvs (the cvs webpages repositories, propagated to
www.gnu.organdwww.nongnu.org; not source code)- Apache config file: same as
cvs(above) - static welcome page: https://web.cvs.savannah.gnu.org/
- ViewVC: https://web.cvs.savannah.gnu.org/viewvc/
- Apache config file: same as
WebGit (experimental):
- Apache config file:
vcs0:/etc/apache2/sites-available/webgit - static welcome page: https://web.git.savannah.gnu.org/
- cgit viewer: https://web.git.savannah.gnu.org/cgit/
- WebGit viwer: https://web.git.savannah.gnu.org/gitweb/
- Apache config file:
download
The download.savannah.gnu.org hosts the following:
- The 'downloads' (aka 'releases') for software hosted on GNU Sanannah.
- The records from audio-video.gnu.org
- The (old, obsolete) GNU Arch repositories
See Mirroring for more information about the auto-redirection mentioned below.
Configuration details:
Mirror multiplexor for
ftp.gnu.org: (The officialftp.gnu.orgserver is managed by the FSF, and Savannah hackers have no access to it.)- web access: https://ftpmirror.gnu.org (this URL auto-redirects).
- Nginx conf:
download0:/etc/nginx/sites-available/ftpmirror - uses Savane
mirror-redirectscript to redirect based on GeoIP.
Savannah-hosted downloads/releases: These are mostly intended for nongnu software, as GNU packages are expected to put releases on
ftp.gnu.org, as detailed in the GNU Maintainer Information.- web access: https://download.savannah.gnu.org/releases/,
- Nginx conf:
download0:/etc/nginx/sites-available/download - disk location:
download0:/srv/download/
Mirrored downloads/releases:
- web access: https://download.savannah.gnu.org/releases/
- Nginx conf:
download0:/etc/nginx/sites-available/download - Uses Savane
mirror-redirectscript to redirect based on GeoIP.
Savannah top-level download URLs:
- (These are not especially useful for end-users.)
- https://download-mirror.savannah.gnu.org/releases/
- Nginx conf:
download0:/etc/nginx/sites-available/download-mirror
GNU audio-video host:
- web access
- Nginx conf:
download0:/etc/nginx/sites-available/audio-video
GNU Arch repositories:
- GNU Arch repositories are obsolete and should not be used.
- web access: https://arch.gnu.org, https://arch.savannah.gnu.org/, https://arch.savannah.nongnu.org/.
- Apache conf:
download0:/etc/apache2/sites-available/arch - static welcome page:
download0:/var/www/arch - disk location:
download0:/srv/arch
-
- rsync start-up configuration file:
download0:/etc/default/rsync. The configuration usesxinetd, and so all other options in this file are ignored. Instead, the parameters indownload0:/etc/xinetd.d/rsyncare used. - rsync configuration file:
download0:/etc/rsyncd.conf. Available modules:-
releasesmapped todownload0:/srv/download. -
audio-videomapped todownload0:/srv/audio-video.
-
- Anonymous access using rsync protcol:
rsync -avhP rsync://download.savannah.gnu.org/releases/<GROUP>/<FILE> LOCALFILE - Listing directory:
rsync rsync://download.savannah.gnu.org/releases/<GROUP>/ - All Savannah members can access rsync services, using the ssh public key configured on Savannah website (see ssh section of VCS server, above).
- Download a file using ssh public key + Savannah User:
rsync -avhP <USER>@download.savannah.gnu.org:/releases/<GROUP>/<FILE> LOCALFILE - Uploading a file (only to groups in which USER is a member, don't use -a):
rsync -vhP LOCALFILE <USER>@download.savannah.gnu.org:/srv/download/<GROUP>/<FILE>
- rsync start-up configuration file:
ssh access using SSH public keys registered in USER account
ssh <USER>@download.savannah.gnu.org <COMMAND>where COMMAND is selected from limited set including- Removing a file (only from groups in which USER is a member):
ssh <USER>@download.savannah.gnu.org rm /srv/download/<GROUP>/<FILE> - Removing an empty directory (only from groups in which USER is a member):
ssh <USER>@download.savannah.gnu.org rmdir /srv/download/<GROUP>/<DIR>
- Removing a file (only from groups in which USER is a member):
scp access using SSH public keys registered in USER account
- Download a file:
scp <USER>@download.savannah.gnu.org:/srv/download/<GROUP>/<FILE> LOCALFILE - Upload a file (only to groups in which USER is a member):
scp LOCALFILE <USER>@download.savannah.gnu.org:/srv/download/<GROUP>/<FILE>
- Download a file:
sftp access (disabled in 2023-11-27)
- was:
sftp <USER>@download.savannah.gnu.org
- was:
internal
The internal0.savannah.gnu.org VM runs the Savannah database (mysql).
- Savannah database -
mysql- Used in two contexts:
- The database for the Savannah PHP code (based on old SourceForge code base). These are the registered users on Savannah, registered groups, trackers (tasks, bugs, etc.), etc. Users upload their public ssh keys to Savannah web interface, and those are also stored in the database.
- All VMs which allow ssh access based on public ssh keys connect to
the mysql database, and query the user's ssh key. Users' keys are
not stored outside this database (with a few exceptions for Savannah
hackers and
fencepost.gnu.orgusers).
- MySQL tcp connections are accepted only from
savannah.gnu.org,savannah.nongnu.org,vcs.savannah.gnu.org,download.savannah.gnu.org(enforced withiptablesrules). - MySQL configuration file:
internal0:/etc/mysql/my.cnf
- Used in two contexts:
lists
lists.gnu.org handles the mailing lists for gnu.org, nongnu.org,
libreplanet.org, and other FSF-related domains. (The FSF also uses
other servers in some cases, for its mass mailings, etc.)
Configuration details:
DNS records: the server responds to
lists.gnu.org,lists.nongnu.org,lists.libreplanet.organd few other FSF-related sites.One mailman installation handles all of the above domains (see message in savannah-users archive).
web access:
- multiple configuration files in
lists:/etc/apache2/sites-enabledconfigured to reply to different server names and ssl certificates. - all include the following file:
lists:/etc/apache2/sites-available/lists.gnu.org-common - static html archives:
- available from https://lists.gnu.org/archive/html
- stored in
lists:/arc/mharc-html. - search cgi with
namazu2package, using:https://lists.gnu.org/archive/cgi-bin/namazu.cgipointing tolists:/home/mharc/cgi-bin/namazu.cgisymlink tolists:/usr/lib/cgi-bin/namazu.cgi.
- GNU Mailman manages mailing list
activities (subscriptions, moderation, etc.)
- http alias https://lists.gnu.org/mailman/ points to
lists:/var/lib/mailman/cgi-bin/. - Long list of all public mailing lists: https://lists.gnu.org/mailman/listinfo
- http alias https://lists.gnu.org/mailman/ points to
- multiple configuration files in
rsync access to mailing lists archives:
- rsync daemon startup enabled in
lists:/etc/default/rsync - rsync configuration in
lists:/etc/rsyncd.conf:- Publishes module
mbox, served fromlists:/arc/mharc-mbox
- Publishes module
- To list available archives:
rsync rsync://lists.gnu.org/mbox/ - To download full archive of one mailing list:
rsync -avhP rsync://lists.gnu.org/mbox/bug-texinfo .
- rsync daemon startup enabled in
Spam handling is a whole subject in itself.
lists.gnu.org is administered by FSF admins, not by Savannah hackers,
though Savannah hackers have non-root access to the machine.
See ListServer for more about mailing list management.
mgt - management
- DNS server -
bind- startup configuration file:
internal0:/etc/default/bind9 - bind configuration directory:
internal0:/etc/bind/ - The relevant configuration files are:
internal0:/etc/bind/named.confwhich includesinternal0:/etc/bind/named.conf.localwhich includesinternal0:/etc/bind/master/savannah.{gnu,nongnu}.orgwhich include:internal0:/etc/bind/master/savannah.header- name servers and serial update timestampinternal0:/etc/bind/master/savannah.footer-AandCNAMEdns records for all Savannah VMs (e.g.dl/vcs/fe)
- The server does not answer DNS queries directly. Instead, it propagates
its DNS configuration to
ns1.gnu.org, and only answers queries fromns1.gnu.org(enforced withiptablesrules). - More about DNS.
- startup configuration file:
--moretowrite--
The mgt0.savannah.gnu.org VM runs munin, and what else? Provides access
point to get to all other sv hosts (in old days, hosts had unroutable
10.x addresses).