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.org
andX.nongnu.org
point to the same IP address.X.savannah.gnu.org
andX.savannah.gnu.org
likewise 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.conf
on thefrontend1
server (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
AuthorizedKeysCommand
command 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 withxinetd
invcsN:/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
xinetd
invcs0:/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
xinetd
invcs0:/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
xinetd
invcs0:/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
xinetd
invcs0:/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.org
andwww.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.org
server is managed by the FSF, and Savannah hackers have no access to it.)- web access: https://ftpmirror.gnu.org (this url auto-redirects).
- Apache conf:
download0:/etc/apache2/sites-available/download
- uses
Apache2::Geo::Mirror
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/,
- Apache conf:
download0:/etc/apache2/sites-available/download
- disk location:
download0:/srv/download/
Mirrored downloads/releases:
- web access: https://download.savannah.gnu.org/releases-redirect/
- Apache conf:
download0:/etc/apache2/sites-available/download
- Uses
Apache2::Geo::Mirror
to redirect based on GeoIP.
Savannah top-level download urls:
- (These are not especially useful for end-users.)
- https://download-mirror.savannah.gnu.org
- Apache conf:
download0:/etc/apache2/sites-available/download
GNU audio-video host:
- web access
- http Apache conf:
download0:/etc/apache2/sites-available/audio-video
- https Apache conf:
download0:/etc/apache2/sites-available/audio-video-ssl
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/rsync
are used. - rsync configuration file:
download0:/etc/rsyncd.conf
. Available modules:-
releases
mapped todownload0:/srv/download
. -
audio-video
mapped 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.org
users).
- MySQL tcp connections are accepted only from
savannah.gnu.org
,savannah.nongnu.org
,vcs.savannah.gnu.org
,download.savannah.gnu.org
(enforced withiptables
rules). - 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.org
and 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-enabled
configured 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
namazu2
package, using:https://lists.gnu.org/archive/cgi-bin/namazu.cgi
pointing tolists:/home/mharc/cgi-bin/namazu.cgi
symlink 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.conf
which includesinternal0:/etc/bind/named.conf.local
which includesinternal0:/etc/bind/master/savannah.{gnu,nongnu}.org
which include:internal0:/etc/bind/master/savannah.header
- name servers and serial update timestampinternal0:/etc/bind/master/savannah.footer
-A
andCNAME
dns 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 withiptables
rules). - 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).