PieFed es una plataforma federada de agregación de enlaces y discusión que forma parte del Fediverso.


PieFed es un proyecto de software libre y federado que actúa como agregador de enlaces y foro descentralizado dentro del Fediverso. A diferencia de plataformas centralizadas como Reddit, PieFed está diseñado para funcionar bajo estándares federados como ActivityPub, lo que significa que cualquier servidor PieFed puede comunicarse con otros servicios del Fediverso y compartir contenido entre sí sin depender de una única compañía o servidor central.

PieFed combina funciones de agregador de enlaces, comunidades temáticas y discusión en hilos, con un enfoque en la libertad de control individual, la seguridad y la moderación descentralizada, operando sin anuncios, sin seguimiento invasivo y bajo código abierto accesible para cualquiera. Está mayoritariamente escrito en Python y su desarrollo está activo y colaborativo.

Instalación de PieFed

Para la instalación de PieFed necesitaremos instalar primero Docker, ya que la instalación recomendada es a través de esta tecnología. Así que si no tienes Docker instalado en el servidor, puedes instalarlo siguiendo este tutorial:

Instalación de Docker en Debian 13
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.

Una vez instalado, creamos el entorno y descargamos el repositorio:

cd /opt
git clone https://codeberg.org/rimu/pyfedi.git piefed
chown 1000:root -R piefed
cd piefed

Ahora toca crear la configuración, así que copiamos el fichero y generamos la SECRET_KEY.

cp env.docker.sample .env.docker
openssl rand -hex 32

Copiamos el resultado y editamos el fichero de configuración para añadirlo y seguir modificando los siguientes valores:

SERVER_NAME='añadimos el dominio'
POSTGRES_PASSWORD='modificamos la contraseña'

Guardamos el fichero. Si necesitamos añadir más variables, como por ejemplo para configurar el correo, el resto de variables posibles lo encontramos en el fichero env.sample.

MAIL_SERVER=''
MAIL_PORT=0
# Remove the below line if not using TLS - do not set it to False
MAIL_USE_TLS=True
MAIL_USERNAME=''
MAIL_PASSWORD=''
MAIL_FROM=''
ERRORS_TO=''

Una vez tenemos la configuración acabada, tenemos que crear los directorios necesarios. PieFed dispone de un script para generar todo lo necesario, así que lo ejecutamos:

./docker-dirs.sh

Y finalmente levantamos los contenedores haciendo un build:

export DOCKER_BUILDKIT=1
docker compose up --build

Ahora tenemos que esperar a que acabe de mostrar contenido la terminal. En este punto nos podemos olvidar si aparece algún error.

piefed_app1     | Done!
piefed_app1     | Starting Gunicorn...
piefed_app1     | [2026-03-17 17:19:27,849] INFO in __init__: Started!
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Starting gunicorn 25.1.0
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Listening at: http://0.0.0.0:5000 (21)
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Using worker: gthread
piefed_app1     | [2026-03-17 17:19:27 +0000] [21] [INFO] Control socket listening at /app/gunicorn.ctl
piefed_app1     | [2026-03-17 17:19:27 +0000] [29] [INFO] Booting worker with pid: 29
piefed_app1     | [2026-03-17 17:19:27 +0000] [30] [INFO] Booting worker with pid: 30

Llegados a este punto, podemos pulsar la tecla d y entramos en el contenedor de la app:

docker exec -it piefed_app1 sh

Y dentro del contenedor ejecutamos los siguientes comandos:

export FLASK_APP=pyfedi.py
flask init-db

Tras ejecutar el comando, nos preguntará lo siguiente para crear usuario administrador de PieFed:

The admin user created here should be reserved for admin tasks and not used as a primary daily identity (unless this instance will only be for personal use).
Admin user name (ideally not 'admin'):

Y creamos el usuario admin:

Admin user name (ideally not 'admin'): t3rr0rz0n3
Admin email address: miemail@dominio.com
Admin password: CONTRASEÑASEGURA
Initial setup is finished.

Salimos del contenedor y bajamos contenedores y levantamos de nuevo:

docker compose down
docker compose up -d

Configurar Nginx Proxy

Por defecto, PieFed se instala escuchando por el puerto 8030 en localhost, Para poder acceder desde fuera, tendremos que configurar un Proxy Inverso. Para este tutorial, usaremos Nginx Proxy, pero puedes configurar el que más te guste:

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.

Configura tareas

Para que funcione correctamente PieFed, es necesario configurar CronJobs para ello tendremos que añadir los siguientes cron:

5 2 * * * <USERNAME> docker exec piefed_app1 bash -c "cd /app && ./daily.sh"
5 4 * * 1 <USERNAME> docker exec piefed_app1 bash -c "cd /app && ./remove_orphan_files.sh"
1 */6 * * * <USERNAME> docker exec piefed_app1 bash -c "cd /app && ./email_notifs.sh"
*/5 * * * * <USERNAME> docker exec piefed_app1 bash -c "cd /app && ./send_queue.sh"

Accediendo a la interfaz

Una vez hayamos configurado el Nginx Proxy, podremos acceder a través del dominio y debería de cargar correctamente la interfaz de PieFed:

En este punto podremos acceder usando la cuenta admin que hemos creado durante el proceso y configurar la instancia de PieFed.


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