Araneida is distributed as an ASDF System. You may want to investigate whether there is a convertor from ASDF systems to your platform's package standard, in which case installation will be a simple matter of asdf-install or apt-get or pkg_add or something and you can skip to Use. Otherwise, read on ...
* asdf::*central-registry* (*DEFAULT-PATHNAME-DEFAULTS* "/home/dan/src/defsystems/") $ cd /home/dan/src/defsystems/ $ ln -s ../telent/araneida/araneida.asd ../telent/net-telent-date/net-telent-date.asd ../telent/db-sockets/db-sockets.asd .
* (asdf:operate 'asdf:load-op 'araneida)
Oh, you wanted to be able to actually use it?
(defpackage "MY-ARANEIDA-EXAMPLE"
(:use "CL" "ARANEIDA"))
(in-package :my-araneida-example)
;;; we need to tell araneida about one or more servers first
(defvar *araneida-site-name* "my.host.name.example.com")
(defvar *araneida-url*
(make-instance 'http-url :host *araneida-site-name*
:port 8000))
(defvar *araneida-server*
(make-instance 'server
:name *araneida-site-name*
:base-url *araneida-url* :port 8000))
(export-server *araneida-server*)
;;; if we're going to serve static files, we could configure the known
;;; MIME types to something useful
(setf *content-types* (read-mime-types "/etc/mime.types"))
;;; At any time after Araneida knows about the
;;; my.host.name.example.com site, we can install handlers that
;;; refer to it. For example,
(install-handler *root-handler*
(make-instance 'static-file-handler
:pathname #p"/var/www/html/")
"http://my.host.name.example.com/static-files/"
nil) ;T - exact matches only, NIL - also match URLs
;that this is a prefix for
;;; ready to rock? Set up threads or SERVE-EVENT handlers (depending
;;; on what's available and/or personal preference) to handle requests
;;; in the background
#+sb-threads (install-thread-handlers)
#-sb-threads (install-serve-event-handlers)
Point your browser at http://my.host.name.example.com:8000/ to test
(defvar *araneida-url*
(make-instance 'http-url :host *araneida-site-name*))
;;; then export a server using this url, as previously
;;; now make araneida write out some file for Apache to include
(with-open-file (conf "/etc/apache.conf.include"
:direction :output
:if-does-not-exist :create)
(output-apache-conf conf))
Configuring Apache is Outside The Scope of these instructions, but as a start, here are the relevant lines from my Debian laptop:
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so NameVirtualHost noetboot.telent.net Include /etc/apache.conf.include