La CDPedia está preparada (desde su versión 0.8) para correr en modo servidor: la instalás en una máquina, y podés accederla desde muchas otras.
¿Cómo se arma esto?
Si corres ./cdpedia.py --help
te muestra las opciones, pero básicamente hay 2 formas de montar un servidor. La más sencilla es utilizar el servidor web integrado con cdpedia y es la forma recomendada; la otra es usar un web server externo.
Usando el servidor integrado
Por ejemplo, para servir cdpedia en el puerto 80 en un hostname particular hacemos asi:
Obviamente el sudo es porque el 80 es un puerto privilegiado, sino directamente podemos poner lo siguiente para servir en una ip local y un puerto elevado.
Inclusive se puede configurar apache o el servidor que haya para que haga las veces de proxy reverso y asi servir todo en el 80.
Usando un server externo (Apache, nginx, etc)
Hay dos formas de hacer esto:
proxy reverso (recomendado)
WSGI
Proxy reverso
El servidor web externo o principal hace de proxy reverso hacia el servidor integrado de la cdpedia.
cliente <-> apache <-> cdpedia --daemon
Ejemplos:
Correr la cdpedia con ./cdpedia.py --host=127.0.0.1 --port=8888 --daemon
y configurar el servidor de la siguiente forma
lighttpd:
$HTTP["url"] =~ "^/cdpedia/" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8888 ) ) ) }
apache:
nginx:
WSGI
Esta opción implica no usar el servidor web integrado y en cambio servir utilizando el modulo WSGI del servidor web que se quiera (mod_wsgi para apache, etc). Aún no encontramos razones convincentes de por qué se preferiría esta opcion por sobre el servidor integrado.
Debería ser muy sencillo de hacer ya que la cdpedia es una aplicación WSGI, así que simplemente habria que escribir un achivo wsgi.py que importe la app de la cdpedia y decirle al servidor web que lea desde ahi.
Si optan por esta línea de trabajo, nos interesa mucho saber las razones! Manden mail por favor a cdpedia@googlegroups.com así les damos una mano y de paso generamos la documentación al respecto.