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:
- Repositorio: destino físico donde se almacenan los backups.
- Archivo de configuración: generado automáticamente tras crear un repositorio o arrancar el servidor por primera vez.
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:
- generar el archivo de configuración persistente
- definir credenciales de acceso
- validar funcionamiento antes de systemd
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:
- El servicio se ejecuta como
rootpara evitar problemas de permisos en accesos y restauraciones. - El archivo
repository.configes generado automáticamente en fases previas. - Las credenciales pueden pasarse por
ExecStarto externalizarse víaEnvironmentFile. - El flag
--insecurees válido en entornos de red interna o protegidos por capas externas.
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:
- repositorio inicializado
- configuración generada y reutilizada
- interfaz web accesible en red interna
- autenticación básica activa
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
- Kopia no genera configuración hasta que se usa.
- El repositorio y el servidor son conceptos independientes.
- systemd reutiliza la configuración generada previamente.
- La unidad mostrada refleja un uso real y estable.