🇬🇧 Also read this post in English

🎯 Objetivo

Documentar la instalación y compilación del proyecto u2vpodcast en una máquina virtual ARM64 con recursos limitados, usando Oracle Linux 8.10 y Docker.

🧩 Datos técnicos de la máquina virtual

  • SO: Oracle Linux Server 8.10
  • Kernel: Linux 5.4.x
  • Arquitectura: ARM64 (aarch64)
  • CPU: 1 núcleo Neoverse-N1 (ARMv8)
  • RAM: 5,6 GiB
  • Swap: 4 GiB
  • Disco: 46 GiB totales (~50% libre)

👉 Interpretación: La RAM es suficiente para compilar y ejecutar contenedores. El principal cuello de botella es la CPU única, que ralentiza compilaciones y procesamientos.

🛠️ Preparación inicial del sistema

sudo dnf update -y sudo dnf install -y git curl wget unzip tar 

🐳 Instalación de Docker y Docker Compose

sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker docker --version docker compose version 

📂 Clonar el proyecto u2vpodcast

git clone https://github.com/usuario/u2vpodcast.git cd u2vpodcast 

⚠️ Problema inicial: incompatibilidad de arquitectura

La imagen oficial estaba compilada para amd64, lo que en ARM64 genera:

exec format error 

🔧 Solución: compilación nativa en ARM64

cd ~/u2vpodcast docker build -t u2vpodcast:arm64 . 

👉 Gracias a los 5.6 GB de RAM, la compilación fue estable aunque más lenta por la CPU única.

⚙️ Configuración de Docker Compose

  • docker-compose.yml → servicio principal
  • docker-compose.proxy.yml → proxy inverso con Caddy (HTTPS automático)
docker compose -f docker-compose.yml -f docker-compose.proxy.yml up -d 

🧪 Verificación de funcionamiento

docker ps docker logs -f u2vpodcast docker exec -it u2vpodcast sqlite3 /app/db/u2vpodcast.db "select count(*), coalesce(sum(listen),0) from episodes;" docker exec -it u2vpodcast sh -lc 'find /app/audios -type f | sort | tail -n 20' 

⚡ Impacto de las limitaciones de hardware

  • RAM (5.6 GB): suficiente.
  • CPU (1 core):
    • Compilaciones largas
    • Conversión de vídeos lenta
    • Uso intensivo en ffmpeg y yt-dlp

👉 Recomendación: mantener procesos en serie y evitar paralelismo.

✅ Conclusiones

  • Instalación funcional en VM ARM64.
  • Docker y Caddy operativos con HTTPS.
  • Compilación nativa resolvió incompatibilidad de arquitectura.
  • Principal limitación: la CPU única.

🙌 Créditos y enlaces útiles

El proyecto u2vpodcast es desarrollado por Lorenzo Carbonell (Atareao).


Source: DEV Community.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

The reCAPTCHA verification period has expired. Please reload the page.