-
Notifications
You must be signed in to change notification settings - Fork 198
Community server: server layout
This page is about the administration of hackage.haskell.org
itself.
hackage.haskell.org
is a Debian 7 machine. The server instance is predominately located in /srv/hackage
. It's proxied by nginx
on the frontend. Here's the directory overview:
Note: You must be part of the hackage
and hackage-build
groups. Ask Austin, Duncan or Herbert about this (or email [email protected].)
/srv/hackage
+-- bin/ # A set of bash scripts, which conveniently start the server binaries in lib/ with pre-configured arguments.
| # bin/ itself is a symlink to /srv/hackage/git/private/bin
+-- git/ # Hackage server source code, extra scripts
| +-- private/ # Some private scripts facilitating deployment
| +-- public/ # The public source code from http://github.com/haskell/hackage-server
| # central-server branch, used for the live server's static data files.
+-- lib/ # Library directory, containing the raw binary executables
+-- log/ # Server, builder, and mirror log files
+-- var/ # State for the hackage server, builder, and mirror
/etc/init.d/
+-- hackage-server # Init script for hackage-server process
+-- hackage-mirror # Init script for hackage-mirror process
+-- hackage-builder # Init script for hackage-builder process
The init scripts automatically run /srv/hackage/bin/hackage-{server,builder}
for you, so there's no special configuration needed.
Sometimes things go wrong at the nginx proxy level and so do not appear in the hackage-server logs. For example this can happen if the server runs out of disk space on the partition where nginx keeps its temp files.
The nginx logs live at:
/var/log/nginx/access.log
/var/log/nginx/error.log
TODO: these files belong to the adm group, not the hackage group. Need to work out how to fix that permanently.