A frontend for the Racket Package Catalog.
Go to file
Tony Garnock-Jones 8458130d0e Reloadable code.
2014-11-09 11:37:49 -05:00
log Initial commit 2014-11-06 22:03:14 -05:00
signals Initial commit 2014-11-06 22:03:14 -05:00
src Reloadable code. 2014-11-09 11:37:49 -05:00
static Fix up spacing between register and sign-in buttons 2014-11-08 20:22:13 -05:00
.gitignore Switch to SSL. 2014-11-08 09:37:55 -05:00
COPYING_LESSER.txt License and update README 2014-11-08 20:13:06 -05:00
LICENSE.txt License and update README 2014-11-08 20:13:06 -05:00
Makefile Reloadable code. 2014-11-09 11:37:49 -05:00
README.md License and update README 2014-11-08 20:13:06 -05:00
run Initial commit 2014-11-06 22:03:14 -05:00
TODO.md Prepare for support for code reloading 2014-11-09 09:53:04 -05:00

Racket Package Library Website

Local testing

You will need some dummy SSL keys. Run make keys to produce some.

Running src/main.rkt starts a local server. For your convenience,

make compile run

compiles the code and starts the server.

Deployment

Supervision

Startable using djb's daemontools; symlink this directory into your services directory and start it as usual. The run script starts the program, and log/run sets up logging of stdout/stderr.

If the file run-prelude exists in the same directory as run, it will be dotted in before racket is invoked. I use this to update my PATH to include my locally-built racket bin directory, necessary because I don't have a system-wide racket.

On Debian, daemontools can be installed with apt-get install daemontools daemontools-run, and the services directory is /etc/service/.

Control signals

You can send signals to the running service by creating files in /etc/service/webservice/signals/. For example:

  • creating .pull-required causes the server to shell out to git pull and then exit. Daemontools will restart it.

  • creating .restart-required causes it to exit, to be restarted by daemontools.

So long as sudo chmod 0777 /etc/service/webservice/signals, these are useful for non-root administrators to control the running service.

In particular, a git post-receive hook can be used to create the .pull-required signal in order to update the service on git push.

Copyright © 2014 Tony Garnock-Jones

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.