En el siguiente artículo vamos a echar un vistazo a Askbot. Este es un software de código abierto que se utiliza para crear foros de Internet orientados a preguntas y respuestas. El sitio comenzó en julio de 2009, e inicialmente era similar a Stack Overflow o Yahoo! Respuestas. Está es desarrollado y mantenido principalmente por Evgeny Fadeev.
Askbot es una plataforma de preguntas y respuestas (Q&A) de código abierto que se basa en Python y Django. Con Askbot cualquier usuario podrá crear su propia plataforma de preguntas y respuestas. En las siguientes líneas veremos cómo se puede instalar Askbot en Ubuntu 20.04 o 18.04.
Gracias a este software cualquier usuario podrá crear un foro de conocimiento de preguntas y respuestas eficiente, en el que las mejores respuestas se mostrarán primero, categorizadas por etiquetas. Además incluye un control de usuarios con sistemas de recompensas, que brindan a los usuarios karma por publicar información buena y relevante.
¿Cómo instalar Askbot en Ubuntu 20.04?
Instalar requisitos previos
Para instalar Askbot, antes de nada debemos instalar en nuestro sistema algunos paquetes necesarios para un correcto funcionamiento. Solo necesitaremos abrir una terminal (Ctrl+Alt+T) y ejecutar los comandos:
sudo apt update; sudo apt install python-dev python-setuptools python3-pip python3-psycopg2 libpq-dev
Instalar PostgreSQL
Ahora que tenemos instalados los paquetes anteriores, vamos a instalar PostgreSQL. Para hacer esto, en una terminal (Ctrl+Alt+T) el comando a ejecutar será el siguiente:
sudo apt install postgresql postgresql-client
Después de instalar PostgreSQL, los siguientes comandos se pueden usar para iniciar y verificar su estado:
sudo systemctl start postgresql.service sudo systemctl status postgresql.service
Crear contraseña de usuario de PostgreSQL
Después de instalar PostgreSQL, es una buena idea crear o cambiar la contraseña de usuario de Postgres predeterminada. Para hacer esto, simplemente necesitamos ejecutar el siguiente comando en el shell bash:
sudo passwd postgres
El anterior comando debería solicitarnos que creemos una nueva contraseña para el usuario de postgres. Después de establecer una nueva contraseña, cada vez que queramos acceder al shell interactivo de PostgreSQL, se nos pedirá que introduzcamos la contraseña que acabamos de escribir.
Crear la base de datos PostgreSQL
Ahora que PostgreSQL está instalado, tendremos que utilizar los siguientes comandos para conectarnos a su consola de shell. Esto nos pedirá que escribamos la contraseña que escribimos en el paso anterior:
su - postgres psql
En la consola de shell, vamos a escribir lo siguiente para crear una nueva base de datos llamada askbot:
create database askbot;
En este punto, lo siguiente que necesitaremos hacer será crear un usuario de base de datos llamado askbotusuario con una nueva contraseña. Esto lo conseguiremos escribiendo:
create user askbotusuario with password 'tu-contraseña';
A continuación, tendremos que conceder a askbotusuario acceso completo a la base de datos de askbot. Después solo tendremos que salir del shell:
grant all privileges on database askbot to askbotusuario;
\q exit
Después de crear la base de datos y el usuario anteriores, vamos a editar el archivo de configuración de PostgreSQL y habilitar la autenticación md5. Esto podremos hacerlo con nuestro editor favorito.
sudo vim /etc/postgresql/12/main/pg_hba.conf
Dentro del archivo, al final del mismo, vamos a editar las líneas resaltadas en la siguiente captura de pantalla para hacer referencia a md5.
Después de editar el archivo anterior, lo guardamos y salimos. Ahora tendremos que reiniciar PostgreSQL con el comando:
sudo systemctl restart postgresql
Instalar Askbot
Para instalar Askbot, necesitaremos crear una cuenta de usuario dedicada. Esto podemos conseguirlo ejecutando los siguientes comandos para crear una nueva cuenta llamada askbot:
sudo useradd -m -s /bin/bash askbot sudo passwd askbot
Después vamos a asegurarnos de que el usuario pueda ejecutar sudo como root:
sudo usermod -a -G sudo askbot
Cuando terminemos, vamos a ejecutar en la terminal este otro comando para instalar el entorno virtual de Python (virtualenv):
sudo pip install virtualenv six
Al finalizar la instalación, vamos a cambiarnos a la cuenta de askbot:
su - askbot
Continuamos creando un nuevo entorno virtual para askbot:
virtualenv askbot
El siguiente paso será cambiarnos al entorno virtual y a activarlo:
cd askbot source bin/activate
A continuación, instalaremos los módulos Askbot, Six y PostgreSQL:
pip install --upgrade pip pip install six==1.10.0 pip install askbot==0.11.1 psycopg2
Finalizada la instalación vamos a crear un directorio llamado miapp para askbot y a configurarlo:
mkdir miapp cd miapp askbot-setup
El comando de configuración solicitará los detalles del entorno, como se puede ver en la siguiente captura de pantalla:
A continuación, completaremos la configuración ejecutando los comandos:
cd askbot_site/ python manage.py collectstatic python manage.py migrate
Iniciar la aplicación
Ahora para iniciar el servidor de la aplicación, en la terminal (Ctrl+Alt+T) utilizaremos el comando:
python manage.py runserver --insecure 0.0.0.0:8080
En este punto deberíamos poder acceder a nuestra aplicación a través de la URL:
http://localhost:8080
También podremos iniciar la sesión en el backend como administrador con la siguiente URL. Aun que tendremos que utilizar las credenciales de administrador:
http://localhost:8080/admin
Si no puede iniciar sesión en el backend como administrador, puedes crear una cuenta de superadministrador ejecutando en la terminal (Ctrl+Alt+T) el comando:
python manage.py createsuperuser
Después de esto ya podemos usar las credenciales recién creadas para entrar en el backend del administrador:
Para las personas y empresas que buscan poder crear un foro de preguntas y respuestas, Askbot puede resultar útil. Para obtener más información sobre este proyecto, los usuarios podemos consultar la página web oficial o en su repositorio en GitHub.