Migrando a Codeberg
Después de leer el mensaje que ha lanzado el CEO de gitHub que en pocas palabras ha hecho una ayusada, me he propuesto hacerle caso y voy a ir migrando, dentro de lo que cabe, todo a Codeberg.
No tenía pensado hacer el cambio, pero después de leer este artículo, a uno le dan ganas de salir corriendo, pero claro, no lo puedes hacer a las bravas si es ahí donde tienes alojada tu pequeña página web.
Así que lo que he decidido es ir migrando poco a poco todo lo que tenía alojado ahí. He archivado casi todos los proyectos que tenía y los he llevado a Codeberg. El único proyecto que aún queda en pie es la página web.
Os preguntaréis cómo conocí CodeBerg, ahora que lo pienso, no sé si leyendo por internet o en alguno de los canales de Telegram a los que estoy subscrito:
- atareao
- HomeLabs
Realmente no me acuerdo, pero cuando lo descubrí, me creé mi cuenta, para así poder tener reservado mi nombre de usuario, porque contra más tardes, más difícil se hace luego tener el nombre de usuario que quieres, y segundo, porque nunca se sabe si algún día lo vas a utilizar.
Mi idea principal, era utilizarlo para la web alternativa que tengo donde voy poniendo los libros que voy leyendo, pero esta al final, la tengo alojada en envs.net.
nota: envs.net es un servidor libre para pequeñas pruebas o páginas web, alojadas sin ningún ánimo de lucro y como para la web alternativa, no necesitaba mucho y el tráfico iba a ser ínfimo, pues era el sitio correcto.
También pensé en que podía poner mi blog aquí, pero no lo vi claro, porque si ya tengo pocas visitas en gitHub, si lo hubiera llevado a codeBerg, las visitas ya os podéis imaginar cómo irían…
Aunque si estás leyendo esto, seguramente has accedido al blog que está alojado en codeberg. Eso no quita que a la hora de subir los nuevos artículos lo haga en los 2 sitios, porque nunca se sabe dónde puede acabar todo esto.
Partiendo de esta idea y con ayuda de la IA, me he creado un script en bash, desde el cual hago la actualización de los 2 repositorios al mismo tiempo, gitHub y codeBerg.
El script es el siguiente:
#!/bin/bash
# ================================================================
# Script: gitHubCodeBerg.sh
# Descripción: Automatiza la generación y despliegue de un sitio Hugo
# en dos repositorios distintos (GitHub Pages y Codeberg Pages),
# usando un único directorio `public/` pero con builds separados
# para cada `baseURL`. Realiza dos commits consecutivos:
# uno para GitHub y otro para Codeberg.
#
# Autor: Vctrsnts
# Fecha: 25-11-2025
# Web: https://vctrsnts.codeberg.page
# Licencia: GNU/GPL
# Repositorios destino:
# - GitHub: https://github.com/vctrsnts/vctrsnts.github.io
# - Codeberg: https://codeberg.org/vctrsnts/pages
#
# Uso:
# ./gitHubCodeBerg.sh fichero1 fichero2 ... ficheroN
#
# Notas:
# - Requiere Docker con contenedor `hugoBlog`.
# - Requiere claves SSH configuradas en:
# ~/.ssh/github_web
# ~/.ssh/idCodeBerg
# - El script pregunta un mensaje de commit y lo aplica a ambos repos.
# ================================================================
set -e # Detener el script si ocurre un error
# Arrancar agente SSH de forma segura en /tmp
unset XDG_RUNTIME_DIR
ssh-agent -a /tmp/ssh-agent.sock > /tmp/ssh-agent.env
source /tmp/ssh-agent.env
# Añadir claves
ssh-add ~/.ssh/github_web
ssh-add ~/.ssh/idCodeBerg
# Validación de parámetros
if [ $# -eq 0 ]; then
echo "Error: no se han recibido archivos"
echo "Uso: ./gitHubCodeBerg.sh fichero1 fichero2 ... ficheroN"
exit 1
fi
for file in "$@"; do
[ -e "$file" ] || { echo "Error: $file no existe"; exit 1; }
done
# Mensaje de commit
read -p "Entri el missatge del commit: " TXT
# Función para build
build_site() {
local baseurl=$1
echo "Generant web per $baseurl..."
docker exec -it hugoBlog hugo --baseURL="$baseurl"
}
# Build y push a GitHub
echo "==== Build GitHub ===="
build_site "https://vctrsnts.github.io"
git add "$@"
git commit -m "$TXT (GitHub)"
git push github master
# Build y push a Codeberg
echo "==== Build Codeberg ===="
build_site "https://vctrsnts.codeberg.page"
git add "$@"
git commit -m "$TXT (Codeberg)"
git push codeberg master
# Redes sociales
read -p "¿Enviar el missatge a xarxes socials? (s/n): " RESP
[[ "$RESP" == "s" ]] && python3.11 ~/bot/botSocialMediaUltim.py
echo "==== Cerramos el agente de SSH ===="
trap "kill $SSH_AGENT_PID" EXIT && rm -rf /tmp/ssh-agent*
echo "==== Actualització completada! ===="
Como podéis ver, se actualiza todo en el mismo instante.
Pues bueno, este es el último y primer artículo de una nueva era en mi camino para la publicación de mis pensamientos, ideas y descubrimientos que voy haciendo en este nuestro complicado mundo de la informática, programación y selfhosted.
Lo único que me queda por conseguir, sería obtener un nombre de dominio para esta web, pero lo primero y más importante, no quiero que con ello se me vaya una nómina entera, aparte, que entiendo que para ser 100% libre, también tendría que tener alojada la web en un VPS (del que ya dispongo), pero mejor configurado y apuntando al dominio y eso es un tema que desconozco totalmente y por el que caminaría a ciegas.