Instalar mailman 3 en debian Jessie

Pues al lío, vamos a ver qué tal esta versión de mailman 3.

Partimos de una debian jessie (versión 8) desde 0. De momento mailman 3 no está en los repositorios de debian y creo que vamos a tardar algunos meses aún para verla ahí, así que hago esta instalación para ver un poquito las curvas de esta nueva versión de mailman :P

Una de las formas de instalar mailman es mediante el repositorio de paquetes de python (pip), así que me imagino que esto no nos va a instalar postfix, así que lo primero que haremos será instalar postfix, después instalaremos mailman y después nos pelearemos con la configuración de postfix para que hable correctamente con mailman.

Instalar postfix

root@tesla:~# apt-get install postfix

Lo definimos como “internet site” o guardamos en /etc/postfix/ un fichero main.cf con una configuración que tengamos de un servidor de correo con postfix ya configurado, si lo estamos creando desde 0, simplemente tratamos de seguir las instrucciones y si algún parámetro no tenemos claro lo que es, lo dejamos con la opción que nos marca por defecto, más adelante ya tendremos opción de cambiarlo.

Preparar el entorno para instalar mailman
Instalamos algunos requisitos de python y git

root@tesla:~# apt-get install bzr python3-dev python3-pip python-dev python-pip python-virtualenv git

Nos aseguramos de que tenemos python2.7 instalado, ya que aunque mailman 3 funcione con python3, algunos de los interfaces funcionan con python2.7

root@tesla:~# dpkg -l |grep python2.7

Instalamos nodejs, y el gestor de paquetes de node, npm. También instalaremos el compilador de css de nodejs, less. El último link lo creamos porque hay un conflicto de nombres con “node”, así que el comando “node” es llama “nodejs” y se tiene que crear un link simbólico a /usr/bin/nodejs.

root@tesla:~# apt-get install nodejs npm
root@tesla:~# npm install -g less
root@tesla:~# ln -s /usr/bin/nodejs /usr/bin/node

Instalar mailman
Ahora aquí me surge la duda y espero que al ir avanzando el manual se solucione :P en pip encontramos tanto mailman3 como mailman-bundle. Por lo que estoy leyendo parece que hay 2 interfaces totalmente distintos para mailman, el de administración (postorious) y el de los archivos, llamado como archiver (hyperkitty). Cuando mailman está programado con python3, estos dos interfaces lo están con python2.7.

Así que vamos a descubrir este nuevo mailman juntos! :P

Vamos a posicionarnos en el directorio donde queramos instalar mailman, en alguna documentación he visto que lo ponen en /, pues ahí vamos

root@tesla:~# cd /
root@tesla:/# mkdir mailman3
root@tesla:/# cd mailman3/
root@tesla:/# git clone https://gitlab.com/mailman/mailman-bundler.git

Ahora instalamos el virtualenv de python2.7

root@tesla:/mailman3# cd mailman-bundler/
root@tesla:/mailman3/mailman-bundler# virtualenv venv
Running virtualenv with interpreter /usr/bin/python2
New python executable in venv/bin/python2
Not overwriting existing python script venv/bin/python (you must use venv/bin/python2)
Installing setuptools, pip...done.
root@tesla:/mailman3/mailman-bundler# source venv/bin/activate

Ahora en mailman_web/development.py buscamos el parámetro “SECRET_KEY” y definimos ahí un random.

A continuación instalamos buildout y lo ejecutamos

(venv)root@tesla:/mailman3/mailman-bundler# pip install zc.buildout
(venv)root@tesla:/mailman3/mailman-bundler# buildout

(Aquí en el manual que estoy leyendo indican de instalar less de nodejs, pero creo que ya lo hemos instalado antes, sino lo instalamos node-less).

Ahora vamos a inicializar la base de datos de django

(venv)root@tesla:/mailman3/mailman-bundler# ./bin/mailman-post-update

Ahora creamos un nombre de usuario para el administrador de mailman

(venv)root@tesla:/mailman3/mailman-bundler# ./bin/mailman-web-django-admin createsuperuser

Arrancando mailman
Pues ahora viene el momento de la verdad, vamos a arrancar mailman

(venv)root@tesla:/mailman3/mailman-bundler# ./bin/mailman start

Y las interfaces web django de mailman

(venv)root@tesla:/mailman3/mailman-bundler# ./bin/mailman-web-django-admin runserver &

Ahora podemos acceder a los interfaces web por estas URL:

http://127.0.0.1:8000/mailman3 para Postorius
http://127.0.0.1:8000/archives para HyperKitty

Configurar postfix
Si has llegado hasta aquí, perfecto! :) esto quiere decir que has probado ya la interfaz. Si estás como yo que lo estás instalando remotamente… usa un tunnel ssh luke! sino a esperar hehe

En deployment/postfix-main.cf hay algunas líneas que deberías añadir en tu /etc/postfix/main.cf. Mi fichero main.cf viene de otro servidor de correo con mailman2, así que sólo he tenido que añadir a partir de #maps.

En mydestinations de /etc/postfix/main.cf, ponemos los dominios por los cuales vamos a mandar correos desde la lista, normalmente lists.dominio.org.

Asegurate también que postfix tiene permisos de escritura sobre los ficheros *.db en /mailman3/mailman-bundler/var/data

root@tesla:/mailman3/mailman-bundler/var/data# chown postfix:postfix *.db

Y ahora reiniciamos postfix.

root@tesla:~# /etc/init.d/postfix restart

Poner en producción
Por supuesto tener un sistema de listas en el que sólo se pueda acceder en local no es muy útil, así que vamos a ver como ponerlo en producción.
Para ello tenemos que cambiar el parámetro “deployment” a “production” en buildout.cfg y ejecutar de nuevo buildout

(venv)root@tesla:/mailman3/mailman-bundler# vi buildout.cfg
(venv)root@tesla:/mailman3/mailman-bundler# buildout

Hacerlo accesible desde HTTP

Nota: éste manual no está terminado, seguid la fuente para más información (necesito ayuda con esta parte, que no me aclaro xD)

Fuente: Readthedocs.org
Links: Pythonhosted

2 Comments

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.