Gancio es una aplicación web que permite crear una agenda compartida de eventos comunitarios. Gancio utiliza ActivityPub por lo que los eventos pueden visualizarse desde cualquier parte del Fediverso.

De esta forma permite que un grupo de colectivos se unan para crear una agenda colaborativa de los eventos que se hacen en una ciudad, pueblo o barrio.

Entre todas las características de Gancio cabe destacar una interfaz cuidada y sencilla, eventos de varios días (para festivales, conferencias...), eventos recurrentes, permite filtrar eventos por etiquetas o lugares, soporte para RSS y ICS, embeber los eventos en nuestra web, permite crear comentarios, impulsar o guardar desde cualquier parte del fediverso (que tenga soporte a ActivityPub) y entre muchas otras cosas.

Para este tutorial utilizaremos Debian 11, pero es posible instalarlo en cualquier otra distribución o utilizando Docker.

Instalación de Gancio

Para la instalación, primero deberemos de instalar unas dependencias y será necesario configurar NodeJS y Yarn. También deberemos de seleccionar que tipo de base de datos utilizar (MariaDB, PostgreSQL o SQLite). Finalmente habrá que configurar un Nginx Proxy para acceder por dominio.

Instalación dependencias

Ya en el servidor donde vamos a instalarlo, necesitamos instalar estas dependencias necesarias:

apt install curl gcc g++ make wget libpq-dev

Instalación de NodeJS y Yarn

A continuación deberemos de instalar NodeJS, para eso deberemos de seguir este otro tutorial:

Instalación de NodeJS en GNU/Linux [Debian, Ubuntu, CentOS]
En el siguiente tutorial os explicaremos la correcta instalación de NodeJS en GNU/Linux. Ya sea tu servidor un Ubuntu o Debian o CentOS aquí encontrarás las instrucciones correctas para su instalación.
🚨
Deberemos de instalar la versión LTS actual, en este caso, hemos utilizado NodeJS 16.x.

Para instalar Yarn:

npm install -g yarn

Instalación de la base de datos

Para la base de datos, deberemos de decidir que tipo de servidor de bases de datos queremos instalar. En este tutorial hemos utilizado MariaDB, pero podéis utilizar PostgreSQL o SQLite.

Para MariaDB

Para instalar MariaDB deberemos de seguir este otro tutorial:

Instalar MariaDB en Debian 11
MariaDB es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.

Nos conectaremos a MariaDB y crearemos la base de datos y el usuario:

MariaDB [(none)]> create database gancio;
MariaDB [(none)]> create user gancio identified by 'contraseñasegura';
MariaDB [(none)]> grant all privileges on gancio.* to gancio;
🚨
Recuerda de utilizar una contraseña segura para la base de datos.

Para PostgreSQL

Para instalar PostgreSQL deberemos de seguir este otro tutorial:

Instalar PostgreSQL en Debian 11
PostgreSQL es un sistema de gestión de bases de datos relacionales de código abierto y de nivel avanzado. En el siguiente artículos os explicaremos como instalar PostgreSQL en Debian 11. Antes de la instalación, vamos a echar un vistazo rápido a las características de PostgreSQL.

Nos conectaremos a PostgreSQL y ejecutaremos lo siguiente:

su postgres -c psql
postgres=# create database gancio;
postgres=# create user gancio with encrypted password 'contraseñasegura';
postgres=# grant all privileges on database gancio to gancio;
🚨
Recuerda de utilizar una contraseña segura para la base de datos.

Para SQLite

No hay que hacer nada, simplemente deberemos de configurar el fichero durante la instalación.

Instalación de Gancio

Lo primero será crear un usuario del sistema para ejecutar la instalación.

adduser --group --system --shell /bin/false --home /opt/gancio gancio

Y procedemos con la instalación gracias a Yarn:

yarn global add --network-timeout 1000000000 --silent https://gancio.org/latest.tgz

Configuración del demonio para SystemD

Nos lo descargaremos desde una dirección web y luego recargaremos los demonios:

wget http://gancio.org/gancio.service -O /etc/systemd/system/gancio.service
systemctl daemon-reload
systemctl enable gancio

Finalmente, deberemos de habilitar el servicio:

systemctl start gancio

Gancio levanta el servicio en localhost y bajo el puerto 13120, por lo que si queremos acceder vía IP, podemos hacerlo habilitando el puerto en nuestro Firewall.

Configurar Nginx para acceder con dominio

Para acceder con dominio, será necesario hacer un Nginx Proxy hacia el puerto 13120. Para eso deberéis de seguir este otro tutorial:

Configurar Proxy Inverso con Nginx para que escuche a un puerto interno
En ocasiones tenemos servicios o aplicaciones web que escuchan directamente a un puerto interno. Para evitar acceder a dicha aplicación o servicio por la IP del servidor, una configuración que podemos hacer es acceder desde un Nginx Proxy.

Si además queremos configurar SSL en nuestro Gancio, deberemos de hacerlo con Let's Encrypt:

Cómo utilizar Certbot para configurar un SSL de Let’s Encrypt en Debian 11
Certbot es una maravillosa herramienta que puedes utilizar para generar un certificado SSL con Let’s Encrypt e instalarlo y configurarlo automáticamente en tu servidor web.

Una vez tengamos el SSL funcionando, deberemos de modificar la configuración de Gancio, para ello editaremos el fichero /opt/gancio/config.json:

{
  "baseurl": "https://nuestrodominio.com",
  "hostname": "nuestrodominio.com",
  "server": {
    "host": "127.0.0.1",
    "port": 13120
  },
...
🚨
Deberemos de verificar que en baseurl se encuentra nuestra URL con el protocolo HTTPS, que en hostname aparezca el nombre del dominio y que dentro de server el host sea 127.0.0.1. De manera opcional si queréis podéis cambiar el puerto.

Accedemos vía web

Una vez tengamos todo configurado, podremos acceder vía nuestro navegador a la URL que hemos configurado para iniciar el instalador y la configuración con la base de datos.

Nada más entrar, veremos que podemos seleccionar nuestro idioma y la configuración con la base de datos. Por ejemplo, si hemos configurado MariaDB o MySQL, deberemos de rellenar los datos:

Tras continuar, deberemos de configurar el título de la instancia de Gancio, la descripción, el uso horario, etc.

Al final de esta configuración, podemos configurar nuestro servidor de correo SMTP para el envío de confirmación de registro:

Finalmente, tras darle a continuar, podremos ver la contraseña generada para el usuario admin que tendrá acceso a la interfaz de administración del sitio web.

Tras acceder con el usuario admin, podremos ver el panel de administración:

Además, si creamos un evento de prueba, podremos verlo por ejemplo desde Mastodon:

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