Backups

Kopia: Backups de manera eficiente y sencilla


Introducción

Este artículo documenta el despliegue de Kopia como sistema de backups local con interfaz web, autenticación básica y ejecución persistente mediante systemd. La integración se realiza directamente a nivel de sistema, sin contenedores, y está pensada para entornos donde se requiere control directo del binario, del repositorio y del ciclo de vida del servicio.

Se separan claramente tres fases: instalación, creación del repositorio y arranque del servidor, ya que Kopia no genera configuración persistente hasta que alguno de estos pasos se ejecuta explícitamente.


Instalación en Ubuntu / Debian

Kopia no suele estar disponible en los repositorios oficiales con versiones actualizadas. Se utiliza el repositorio APT oficial del proyecto.

curl -s https://kopia.io/signing-key | sudo gpg --dearmor -o /usr/share/keyrings/kopia-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/kopia-keyring.gpg] http://packages.kopia.io/apt/ stable main" | sudo tee /etc/apt/sources.list.d/kopia.list
sudo apt update
sudo apt install kopia

El binario queda disponible en:

/usr/bin/kopia

Conceptos previos importantes

Kopia distingue entre:

Este archivo no existe inicialmente y no se crea a mano. Se genera como efecto colateral del uso del binario.


Crear el repositorio

Ejemplo con repositorio local tipo filesystem:

kopia repository create filesystem --path /mnt/Backups/Kopia

Este paso inicializa la estructura interna del repositorio, pero no levanta ningún servicio web.


Arranque inicial del servidor web (modo configuración)

Una vez creado el repositorio, se arranca el servidor web manualmente para:

kopia server start \
  --address=http://192.168.X.X:51515 \
  --server-username=usuario \
  --server-password=contraseña \
  --insecure

Durante este arranque se genera el archivo de configuración, normalmente en:

/root/.config/kopia/repository.config

Este archivo será reutilizado posteriormente por el servicio systemd.


Configuración como servicio systemd

Una vez validado el arranque manual, Kopia se deja como servicio persistente.

Archivo /etc/systemd/system/kopia.service

[Unit]
Description=Kopia Server
After=network.target

[Service]
ExecStart=/usr/bin/kopia server start \
  --config-file=/root/.config/kopia/repository.config \
  --address=http://192.168.X.X:51515 \
  --server-username=kopia-user \
  --server-password=kopia-password \
  --insecure
Restart=on-failure
RestartSec=10
User=root
Environment="KOPIA_LOG_LEVEL=info"
EnvironmentFile=-/etc/default/kopia
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Notas relevantes:


Activación y validación

sudo systemctl daemon-reload
sudo systemctl enable kopia
sudo systemctl start kopia

Comprobación:

systemctl status kopia
journalctl -u kopia

Estado final

Kopia queda operativo como servicio persistente, con:

La seguridad adicional (TLS, reverse proxy, autenticación externa) se gestiona fuera de Kopia y no forma parte del núcleo del servicio.


Resumen breve


Referencias