Deliberatorum Open is an open-source release of the Deliberatorium, a web-based collective-intelligence platform developed by Mark Klein at the Massachusetts Institute of Technology. It incorporates a subset of the Deliberatorium’s full functionality. Deliberatorium Open is developed in Common LISP, a LISP dialect, with the Clozure CL implementation
or
2.2. download the Mac version from the official github repository
N.B.: other OS are supported. Please refer to the official Clozure website for further information and installation procedures
N.B.: The default location of the system will be into Documents directory. If you want to change the location of your Deliberatorium Open source instance within your folder tree, and/or the name of the “Deliberatorium” directory, please remember to change accordingly the following paths into the “startup.lisp” file:
(defglobal *root-directory* "/Users/markklein/documents/projects/deliberatorium/open/") ; directory where deliberatorium code resides
by replacing the path markklein/documents/projects/deliberatorium/open/ with your desired path.
(defglobal *deliberatorium-host* "http://localhost:8000/") ; the root URL of the machine that is running the deliberatorium server
(defglobal *system-email* "...") ; the email address that the Deliberatorium sends email from
(defglobal *outgoing-mail-host* "...") ; email server that the Deliberatorium uses to send email out
(defglobal *backup-period* 1800) ; time between backups, in seconds
(defglobal *backups-saved* 200) ; number of backups saved
In order to install ngnix webserver for enabling port fowarding, the easiest way is to install the brew packet manager, following Homebrew official website instructions
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ sudo chown -R $(whoami):admin /usr/local && sudo chmod -R g+rwx /usr/local
$ brew install nginx
$ sudo vi /usr/local/etc/nginx/nginx.conf
server {
listen 80;
server_name YOUR DOMAIN OR FIXED IP ADDRESS;
listen [::]:80; # for IPV6
$ sudo brew services start nginx
in order to test if ngnix is correctly working, open a web browser and go to YOUR DOMAIN OR FIXED IP ADDRESS; if everything’s fine, the ngnix welcome page will show up
There are different ways to obtain HTTPS certificates. If you prefer not to rely on payed 3d-party validation authorities, you can use certbot from EFF (Electronic Frontier Foundation), and Let’s Encrypt free validation authority. You will create self-signed valid HTTPS certificates.
N.B.: You will need a domain name – you cannot create valid HTTPS certificates for an IP address
$ brew install certbot
$ sudo certbot --nginx
“Congratulations! You have successfully enabled YOUR DOMAIN
with also a test address
$ sudo vi /usr/local/etc/nginx/nginx.conf
location / {
# root html;
# index index.html index.htm;
}
proxy_pass http://YOUR DOMAIN:8000;
location / {
root html;
index index.html index.htm;
proxy_pass http://YOUR DOMAIN:8000;
}
N.B.: PLEASE MAKE SURE YOU TYPE THE ADDRESS WITH HTTP – NOT HTTPS!
$ sudo brew services restart nginx
open a web browser and go to YOUR DOMAIN; if everything’s fine, now a hutchentoot page will show up, with “Not Found The requested URL / was not found on this server.”. Please note the green lock on the left of the address: your connection is secure.
Let’s encrypt auto-generates the pem files in the following path of yout server:
/etc/letsencrypt/live/YOUR DOMAIN/
you can find them with a simple find / -name “fullchain.pem” or with your preferred UI finder
the folder /etc/letsencrypt/live/YOUR DOMAIN/ contains:
-cert.pem
-fullchain.pem
-privkey.pem
-chain.pem
do not move these files. nginx will serve them to hunchentoot automatically, by changing the following declaration in the startup.lisp file
(defglobal *deliberatorium-host* "http://localhost:8000/") ;
This declaration will captures whether port-forwarding and SSL are enabled or not. If only portforwarding is enabled, for example, you have to delete the port and the declaration will look like
(defglobal *deliberatorium-host* "http://localhost/") ;
in order to enable your domain name, you will need to change “localhost” with your domain name, and the declaration will look like
(defglobal *deliberatorium-host* "http://YOUR DOMAIN NAME/") ;
in order to enable SSL over HTTP, you will need to change “http” to “https” and the declaration will look like
(defglobal *deliberatorium-host* "https://YOUR DOMAIN/") ;
please note that web address protocol changed from http into https. In order to test https:
In order to obtain a cleaner URL for your Deliberatorium system, you can optionally redirect the path by editing the ngnix configuration file
$ sudo vi /usr/local/etc/nginx/nginx.conf
location / {
root html;
index index.html index.htm;
proxy_pass http://YOUR DOMAIN:8000/ci/;
}
http://YOUR DOMAIN
N.B.: This code release includes a major package that Dr. Klein did not develop:
plus several F/LOSS packages and libraries
Please read the licensing information for those packages to make sure you are in compliance.