466 - Comunidad Linux con Alberto (Papa Friki)
Charlando con Alberto el productor y realizador de los podcast Papá Friki y Charlando con, y con el que hice el proyecto aopodcast para producir tu podcast
Este es uno de esos episodios especiales, porque cuento con alguien que te va a contar su experiencia con Linux, y en este caso, además con un proyecto que llevamos adelante entre los dos. Así, en este episodio del podcast, escucharás a Alberto, hablar sobre un poquito de Linux, sobre sus dos proyectos de podcasting, y sobre la vuelta, que le dimos a la generación de su podcast mas veterano.
Comunidad Linux con Alberto (Papa Friki)
Sobre Alberto
Si no conoces el podcast Papá Friki o Charlando con…, ya estás tardando en añadirlos a tu podcatcher. Se trata dos podcast, realmente entretenidos y muy recomendables.
Sobre aopodcast
En el episodio anterior del podcast te hablé sobre una imagen Docker que te permitía generar tu proyecto directamente desde tus audios en Archive.org. En concreto, se utiliza los procesos de CI/CD de GitLab. Y mas en concreto, toda la magia está en el archivo .gitab-ci.yml
, cuyo contenido te indico a continuación,
image:
name: atareao/aopodcast:latest
entrypoint: [""]
variables:
GIT_DEPTH: 1 # Create a shallow copy
BRANCH_NAME: "main" # Name of the branch to modify
BOT_NAME: "GitLab Runner Bot" # Bot's name that appears in the commit log
BOT_EMAIL: "gitlab-runner-bot@example.net" # Bot's email, not really important
COMMIT_MESSAGE: "Commit from runner " # Part of the commit message
.modify: &modify |
/app/aopodcast
.push: &push |
git status
lines=$(git status -s | wc -l)
if [ $lines -gt 0 ];then
echo "committing"
git config --global user.name "${BOT_NAME}"
git config --global user.email "${BOT_EMAIL}"
git add .
git commit -m "${COMMIT_MESSAGE} ${CI_RUNNER_ID}"
echo "git push -o ci.skip 'https://whatever:${GIT_PUSH_TOKEN}@${CI_REPOSITORY_URL#*@}' ${BRANCH_NAME}"
git push -o ci.skip "https://whatever:${GIT_PUSH_TOKEN}@${CI_REPOSITORY_URL#*@}" $BRANCH_NAME
else
echo "no change, nothing to commit"
fi
pages:
stage: deploy
only:
- schedules
before_script:
- apk add --update --no-cache make git bash
- git fetch
- git checkout $BRANCH_NAME
- cd $CI_PROJECT_DIR
script:
- *modify
- *push
artifacts:
paths:
- public/
Para que funcione es necesario generar un Deploy token
. Esto se encuentra en la Configuración > Repositorio
del proyecto de GitLab. Es tan sencillo como pulsar el botón de Crear un token de despligue
dando todos los permisos, dado que va a modificar el contenido del repositorio de forma automática, cada vez que haya contenido nuevo.
Además de esto, necesitas generar un archivo config.yml
, con el siguiente contenido,
log_level: info
data: data/data.json
public: public
style_css: assets/style.css
archiveorg:
creator:
link:
subject:
site:
podcast_feed:
author:
title:
description:
baseurl:
url:
avatar:
category:
subcategory:
explicit:
email:
gitlab:
rss:
twitter:
google_analytics:
disqus:
youtube:
linktree:
Si tienes cualquier duda sobre cualquiera de estos parámetros me indicas, y te indico, en el caso de que tu también quieras hacer tu propio podcast.
Además necesitas tener un directorio templates
con las plantillas que quieres utilizar. Así, como un directorio posts
, en el caso de que quieras publicar artículos al margen del podcast. Esto último es completamente opcional.
Por último es necesario un directorio assets
donde se encontrará la hoja de estilos.
Básicamente la estructura será como lo que te indico,
.
├── assets
│ └── style.css
├── config.yml
├── .gitlab-ci.yml
├── posts
│ └── articulo.md
└── templates
├── feed.xml
├── index.html
└── statistitcs.html
Realmente lo interesante es que clones el repositorio que tengo en GitLab, y a partir de aquí, modifiques lo necesario.
Inicialmente, este proceso, puede parecer un poco lioso, pero tienes que tener en cuenta, que esto solo necesitarás hacerlo una vez.
La programación
Esto también es opcional, sin embargo, desde mi punto de vista, esto es básico, para olvidarte por completo de este proceso. Se trata de crear una programación. Esto se hace en el proyecto de GitLab, desde el CI/CD > programaciones
.
Creas una nueva programación indicando,
- descripción,
- patrón de intervalo (mi recomendación es todos los día a una hora concreta)
- Selecciona la zona horaria
A partir de aquí todos los días a la hora que indiques, el proceso mirará si has publicado un nuevo audio en Archive.org. En el caso de que así haya sido se desencadenará todo el trabajo en segundo plano, que llevará a la publicación de una nueva página en tu sitio web y a la generación del feed.
¿Que le queda al proyecto?
Si bien, el proyecto es totalmente funcional, y Alberto lo está utilizando desde inicios del mes de enero, lo cierto, es que todavía tiene margen de mejora, para ayudarlo al menos en lo que automatización se refiere.
Así, tal y como el mismo comenta en este episodio del podcast, hay que añadir la publicación automatizada en redes sociales, en concreto en Mastodon.
Por otro lado, yo le propuse también generar el vídeo directamente y subirlo a YouTube y a Fediverse.tv… Pero esto ya es harina de otro costal.
¿Que hay bajo el capó?
Indicarte que el proceso actual, ya no utiliza Jekyll, sino que es un desarrollo propio que se encarga de todo el proceso. Este desarrollo está realizado con Rust, y utiliza plantillas en Jinja2 para hacer todo el trabajo. Esto permite ser mucho mas eficiente. En apenas 20 segundos se completa todo el proceso.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Me ha encantado mucho este episodio, y agradezco que compartan herramientas (o código) para automatizar o publicar un podcast, ya que aunque ahora hay más herramientas que lo hacen todo como anchor, es mejor tratar de no depender de servicios de terceros lo menos posibles.