- Notifications
You must be signed in to change notification settings - Fork 209
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.