En el maravilloso mundo del software de redes sociales libres dentro del Fediverso, Akkoma ha emergido como una plataforma intrigante y prometedora. Akkoma es un fork de Pleroma, un software de servidor de redes sociales de código abierto y federado, diseñado para ofrecer una experiencia de microblogging eficiente y versátil.

Akkoma es una plataforma de software de servidor para redes sociales que permite a los usuarios crear y administrar sus propios servidores de microblogging. Es parte del universo Fediverse, un conjunto de servidores interconectados que utilizan protocolos de comunicación abiertos y descentralizados. Akkoma es reconocido por su escalabilidad, personalización y un enfoque en la eficiencia y la flexibilidad.

Características Diferenciadoras de Akkoma frente a Pleroma

Aunque Akkoma se basa en Pleroma, hay varias características y mejoras que lo distinguen:

  1. Mejoras en la Interfaz de Usuario: Akkoma a menudo incorpora cambios en la interfaz de usuario para mejorar la experiencia general del usuario, ofreciendo una navegación más intuitiva y opciones de personalización adicionales.
  2. Funcionalidades Ampliadas: Akkoma tiende a integrar más funciones y plugins, ampliando las capacidades del servidor más allá de las ofrecidas por Pleroma.
  3. Gestión y Moderación Mejoradas: Ofrece herramientas de administración y moderación más robustas, lo que permite a los administradores de servidores gestionar sus comunidades de manera más efectiva.
  4. Optimizaciones de Rendimiento: Continuas mejoras en el rendimiento y la eficiencia, garantizando que Akkoma pueda manejar una mayor carga de trabajo y ofrecer una experiencia de usuario más fluida.
  5. Comunidad Activa de Desarrollo: Akkoma se beneficia de una comunidad de desarrollo activa y en constante evolución, lo que significa que regularmente se agregan nuevas características y se abordan problemas.

Requisitos para Akkoma

Estos son los paquetes necesarios para Akkoma:

  • PostgreSQL 9.6+
  • Elixir 1.4 o superior
  • Erlang OPT 24+
  • git
  • gcc, GNU Make, CMake.
  • nginx o Apache
  • certbot (Usaremos Let’s Encrypt para generar el certificado)

Preparamos el sistema

Esto es Debian y como siempre que hacemos un tutorial:

apt update && apt upgrade -y

Instalamos herramientas necesarias para continuar:

apt install git build-essential cmake libmagic-dev

Y luego instalamos PostgreSQL:

apt install postgresql postgresql-contrib

Creamos el usuario para Akkoma

Lo primero que haremos será ejecutar Akkoma con un usuario propio, de esta manera tendremos la instancia instalada dentro del home del usuario. Yo no soy muy fan de hacer este tipo de instalaciones, pero miraré de hacer una excepción en este caso. Creamos un usuario:

 useradd -r -s /bin/bash -m -d /var/lib/akkoma -U akkoma

Y añadimos el usuario akkoma al grupo sudo:

usermod -aG sudo akkoma

Instalación de Elixir y Erlang

Elixir lo vamos a instalar directamente desde los repositorios de

apt install elixir erlang-dev erlang-parsetools erlang-xmerl erlang-tools

Y también instalaremos los siguientes paquetes:

apt install curl unzip build-essential autoconf m4 libncurses5-dev libssh-dev unixodbc-dev xsltproc libxml2-utils libncurses-dev imagemagick ffmpeg libimage-exiftool-perl

Iniciamos con el usuario akkoma e instalamos el repositorio:

su - akkoma
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

Añadimos lo siguiente en .bashrc:

nano .bashrc
. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"

Reiniciamos la shell:

exec $SHELL

Finalmente, primero instalamos Erlang:

asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
export KERL_CONFIGURE_OPTIONS="--disable-debug --without-javac"
asdf install erlang 25.3.2.5
asdf global erlang 25.3.2.5

Y luego Elixir:

asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
asdf install elixir 1.15.4-otp-25
asdf global elixir 1.15.4-otp-25

Instalación de AkkomaBE

Siendo el usuario akkoma, preparamos el directorio para su instalación:

mkdir -p /opt/akkoma
chown -R akkoma:akkoma /opt/akkoma
sudo -Hu akkoma git clone https://akkoma.dev/AkkomaGang/akkoma.git -b stable /opt/akkoma

Cambiamos de directorio:

cd /opt/akkoma

Instalamos las dependencias para Akkoma y en caso de pedirnos para instalar Hex le decimos que utilizará.

mix deps.get

Generamos el fichero de configuración, si nos pide instalar rebar3, le diremos también que sí:

MIX_ENV=prod mix pleroma.instance gen

Durante la instalación, te pedirá información, así como el nombre de dominio, nombre de la instancia y cuenta de correo del administrador, os dejo la salida del comando a continuación:

Generated pleroma app
Answer a few questions to generate a new config

--- THIS WILL OVERWRITE YOUR config/generated_config.exs! ---

What is your domain name? (e.g. pleroma.soykaf.com): midominio.es
What is the name of your instance? (e.g. Pleroma/Soykaf): Super Nodo de Pleroma
What's your admin email address: miemail@midominio.es

Writing config to config/generated_config.exs.

Este fichero de configuración lo podremos encontrar en config/generated_config.exs, donde podremos configurar diferentes cosas interesantes así como el estado de los registros de nuevas cuentas, proxy o la base de datos.

Movemos el fichero de configuración:

mv config/{generated_config.exs,prod.secret.exs}

Ahora creamos la base de datos que utilziará los datos que hay en el fichero de configuración config/prod.secret.exs:

sudo su postgres -c 'psql -f config/setup_db.psql'
💡
En el fichero de configuración de Akkoma podemos cambiar el nombre de la base de datos y el usuario, en este tutorial usaremos la base de datos y usuario que viene por defecto.

Ahora ejecutamos la migración de la base de datos:

MIX_ENV=prod mix ecto.migrate

En este momento podríamos levantar ya Akkoma, pero antes configuraremos un servidor web para acceder con SSL.

Configuración Nginx + SSL

Se puede utilizar Apache, pero ya que en GNU Social usé Apache, esta vez utilizaremos Nginx, pero ya os aviso que no debe cambiar mucho, así que si sois más de Apache no hay problema, eso si, seguramente algunas cosas se harán diferente, pero seguro que sabes hacerlo 😛

Volvemos a ser usuario root y procedemos a instalar Nginx:

apt install nginx

Instalamos también Certbot para generar el certificado SSL:

sudo apt install certbot

Nos aseguramos de que Nginx esté parado, para utilizar el puerto 80 para generar el certificado:

systemctl stop nginx

Y generamos el certificado:

certbot certonly --email [tu-email] -d [Tu_dominio] --standalone

Copiamos el fichero de configuración para Akkoma:

cp /opt/akkoma/installation/nginx/akkoma.nginx /etc/nginx/sites-enabled/akkoma.conf

Ahora editamos el fichero /etc/nginx/sites-enabled/akkoma.conf y cambiaremos example.tld por nuestro dominio.

sed -i 's/example.tld/midominio.com/g' /etc/nginx/sites-enabled/akkoma.conf

Y para comprobar que todo está correcto:

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciamos Nginx:

systemctl restart nginx

Configurar arranque automático de Akkoma

Copiamos el fichero de ejemplo para SystemD:

cp /opt/akkoma/installation/akkoma.service /lib/systemd/system/akkoma.service

Lo editamos y dentro [Service] añadimos lo siguiente:

Environment="MIX_ENV=prod"

Iniciamos Akkoma al arranque:

systemctl enable --now akkoma.service

Y ahora si accedemos con nuestro dominio desde un navegador, nos debería de cargar Akkoma! 😀

Tareas de administradores

Ahora ya tenemos una instancia de Akkoma funcionando en nuestro servidor. Lo siguiente es saber que se pueden crear usuarios, añadir moderadores y gestionar usuarios de la siguiente forma.

Para reiniciar la contraseña de un usuario:

mix generate_password_reset username

Para hacer moderador a un usuario -y así poder borrar estados de otros usuarios-:

mix set_moderator username [true|false]

Registrar un usuario:

mix register_user name username email bio password

Eliminar un usuario:

mix rm_user username

Desactivar una cuenta:

mix deactivate_user username@instancename

Más sobre ./voidNull

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación