466 - Comunidad Linux con Alberto (Papa Friki)

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

1:25
-3:15

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)

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.

1 comentario en “Comunidad Linux con Alberto (Papa Friki)

  1. CA
    Carlos San hace 2 años

    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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *