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
RT @Blackhold_: Blog] Instalar mailman 3 en debian Jessie: Pues al lío, vamos a ver qué tal esta versión de mailman 3. http://t.co/X0OodLi…
Instalar mailman 3 en debian Jessie
http://t.co/sNtCQK4Qjl