bolt Valebyte VPS desde $4/mes — NVMe, despliegue en 60s.

Obtener VPS arrow_forward
eco Principiante Tutorial/Cómo hacer

Instalación de Linkwarden

calendar_month Aug 17, 2026 schedule 21 min de lectura visibility 39 vistas
Установка Linkwarden на VPS: самоуправляемый менеджер закладок с тегами и коллекциями
info

¿Necesitas un servidor para esta guía? Ofrecemos servidores dedicados y VPS en más de 50 países con configuración instantánea.

¿Necesitas un VPS para esta guía?

Explore otras opciones de servidores dedicados en

Instalación de Linkwarden en un VPS: un gestor de marcadores autoalojado con etiquetas y colecciones

TL;DR

En esta guía detallada, configuraremos paso a paso Linkwarden, un potente gestor de marcadores autoalojado, en su Virtual Private Server (VPS). Aprenderá a preparar un servidor basado en Ubuntu 24.04 LTS, instalar Docker, desplegar Linkwarden usando Docker Compose, configurar acceso seguro a través de HTTPS con Caddy e implementar una estrategia de copia de seguridad para proteger sus datos.

  • Configuración de Linkwarden en un VPS para un control total sobre sus marcadores.
  • Uso de Docker y Docker Compose para una fácil instalación y gestión.
  • Garantía de seguridad con HTTPS (Caddy) y protección básica del servidor.
  • Despliegue en Ubuntu 24.04 LTS con versiones de software actualizadas para 2026.
  • Implementación de un sistema de copia de seguridad para la conservación de datos.
  • Obtención de un gestor de marcadores completo con etiquetas, colecciones y búsqueda.

Qué configuramos y por qué

Esquema: Qué configuramos y por qué
Esquema: Qué configuramos y por qué

Instalaremos Linkwarden, una solución de código abierto y autoalojada para guardar, organizar y archivar enlaces web. En un mundo donde la información cambia constantemente y los artículos y sitios web desaparecen, Linkwarden le permite guardar no solo enlaces, sino también copias completas de páginas web, asegurando su disponibilidad permanente. Es la herramienta ideal para quienes trabajan activamente con información, realizan investigaciones, recopilan recursos útiles o simplemente desean tener un archivo confiable de sus sitios web favoritos.

Al final, obtendrá un gestor de marcadores completamente funcional y privado, accesible desde cualquier parte del mundo a través de su propio dominio. Estará equipado con una potente búsqueda, la capacidad de añadir etiquetas y crear colecciones, así como una función de archivo de páginas para que el contenido no desaparezca. Esto significa un control total sobre sus datos y la ausencia de dependencia de servicios de terceros que pueden cambiar sus políticas o dejar de existir.

Alternativas y por qué autoalojado en un VPS

Existen muchas soluciones para la gestión de marcadores. Estas incluyen servicios en la nube como Pocket, Raindrop.io, Instapaper, así como otras opciones autoalojadas, por ejemplo, Wallabag o Shaarli.

  • Servicios en la nube: Son convenientes, no requieren configuración, pero usted confía sus datos a un tercero, y la funcionalidad a menudo está limitada por suscripciones de pago. Usted no controla el almacenamiento de datos ni su confidencialidad.
  • Otras soluciones autoalojadas: Wallabag y Shaarli también son excelentes proyectos, pero Linkwarden se destaca por su interfaz moderna, desarrollo activo y un conjunto de funciones que a menudo están más orientadas a la "archivación" y "gestión del conocimiento" que simplemente a "guardar para leer más tarde".

La elección de una solución autoalojada en un VPS le otorga soberanía total sobre sus datos. Usted decide dónde y cómo se almacenan sus marcadores, quién tiene acceso a ellos y qué funciones utiliza. Esto es especialmente importante para desarrolladores, investigadores, equipos que necesitan una base de conocimientos privada, o cualquier persona que valore la confidencialidad y el control. Un VPS proporciona la flexibilidad y escalabilidad necesarias para este tipo de aplicaciones, permitiéndole aumentar fácilmente los recursos o añadir otros servicios al mismo servidor si es necesario.

Qué configuración de VPS se necesita para esta tarea

Esquema: Qué configuración de VPS se necesita para esta tarea
Esquema: Qué configuración de VPS se necesita para esta tarea

Linkwarden es una aplicación relativamente ligera, especialmente para uso individual o un equipo pequeño. Sin embargo, cuantas más enlaces guarde y con mayor frecuencia utilice la función de archivo de páginas (que guarda el HTML completo y los medios), más recursos se necesitarán.

Requisitos mínimos (para 1-5 usuarios, hasta 1000 enlaces):

  • CPU: 1 vCPU (procesador moderno, por ejemplo, Intel Xeon E5 o AMD EPYC).
  • RAM: 2 GB (para el funcionamiento estable de Docker, Linkwarden y la base de datos).
  • Disco: 40-60 GB SSD (para el sistema operativo, imágenes de Docker, la base de datos de Linkwarden y páginas archivadas. El SSD acelera significativamente el trabajo).
  • Red: 100 Mbit/s (suficiente para la mayoría de las tareas, si no hay una carga/descarga intensiva de datos archivados).

Configuración recomendada (para 5-20 usuarios, hasta 10000 enlaces o archivado activo):

  • CPU: 2 vCPU.
  • RAM: 4 GB.
  • Disco: 80-120 GB SSD (o NVMe para un rendimiento máximo).
  • Red: 1 Gbit/s.

Para alquilar un VPS con estas características, puede considerar un VPS con las características indicadas, adecuado para la mayoría de las tareas de despliegue de Linkwarden.

Cuándo se necesita un servidor dedicado y no un VPS

Un servidor dedicado puede ser necesario si:

  • Planea usar Linkwarden para un equipo muy grande (cientos de usuarios).
  • Archivará una enorme cantidad de páginas (terabytes de datos), lo que requiere volúmenes significativos de almacenamiento y alta velocidad de entrada/salida.
  • El servidor albergará otros servicios que consumen muchos recursos, además de Linkwarden.
  • Necesita el máximo rendimiento y aislamiento que un VPS no puede proporcionar debido a la infraestructura compartida.
  • Se requieren configuraciones de hardware específicas no disponibles en un VPS (por ejemplo, arreglos RAID, tarjetas de red especializadas).

Ubicación: en qué influye

La elección de la ubicación del VPS influye en varios factores:

  • Latencia: Cuanto más cerca esté el servidor de usted y sus usuarios principales, menor será la latencia y más rápida será la respuesta de la interfaz web.
  • Aspectos legales: La legislación del país donde se encuentra el servidor, puede afectar la privacidad y el procesamiento de datos. Tenga esto en cuenta si sus datos son sensibles.
  • Disponibilidad de la red: En algunas regiones, la infraestructura de red está más desarrollada y es más estable.
  • Costo: Los precios de los VPS pueden variar según la región.

Para la mayoría de los usuarios de Linkwarden, es suficiente elegir una ubicación geográficamente cercana a la audiencia principal para garantizar una latencia mínima.

Preparación del servidor

Esquema: Preparación del servidor
Esquema: Preparación del servidor

Antes de instalar Linkwarden, es necesario realizar una configuración básica de seguridad e instalar las utilidades necesarias en su VPS. Utilizaremos Ubuntu 24.04 LTS (Noble Numbat) como sistema operativo principal, ya que es una de las plataformas más populares y mejor soportadas para servidores.

Conéctese a su VPS por SSH, utilizando los datos proporcionados por su proveedor. Normalmente, esto se ve así:


ssh root@SU_DIRECCIÓN_IP

1. Actualización del sistema

En primer lugar, actualice la lista de paquetes y los paquetes instalados a las versiones más recientes.


sudo apt update             # Actualizar la lista de paquetes disponibles
sudo apt upgrade -y         # Actualizar los paquetes instalados
sudo apt autoremove -y      # Eliminar paquetes innecesarios

2. Creación de un nuevo usuario con permisos sudo

Trabajar con la cuenta root no es seguro. Cree un nuevo usuario y concédale permisos sudo.


sudo adduser linkwardenuser # Crear un nuevo usuario llamado linkwardenuser
sudo usermod -aG sudo linkwardenuser # Añadir el usuario al grupo sudo

Después de crear el usuario, salga de la sesión root e inicie sesión con el nuevo usuario:


exit
ssh linkwardenuser@SU_DIRECCIÓN_IP

3. Configuración de claves SSH (recomendado)

Para mejorar la seguridad, se recomienda usar claves SSH en lugar de contraseñas. Si aún no tiene una clave SSH, genérela en su máquina local:


ssh-keygen -t rsa -b 4096 # Generar una nueva clave SSH (en la máquina local)

Luego, copie la clave pública a su VPS:


ssh-copy-id linkwardenuser@SU_DIRECCIÓN_IP # Copiar la clave pública al servidor

Después de esto, puede deshabilitar la autenticación por contraseña en el archivo /etc/ssh/sshd_config, cambiando PasswordAuthentication yes a PasswordAuthentication no y reiniciando el servicio SSH. Esto aumentará significativamente la seguridad.

4. Configuración del firewall (UFW)

Habilite Uncomplicated Firewall (UFW) y permita solo los puertos necesarios: SSH (22), HTTP (80) y HTTPS (443).


sudo apt install ufw -y # Instalar UFW, si no está instalado
sudo ufw allow OpenSSH # Permitir conexiones SSH
sudo ufw allow http # Permitir HTTP (puerto 80)
sudo ufw allow https # Permitir HTTPS (puerto 443)
sudo ufw enable # Habilitar el firewall
sudo ufw status # Verificar el estado del firewall

Confirme la habilitación presionando 'y'.

5. Instalación de Fail2Ban

Fail2Ban ayuda a proteger el servidor contra ataques de fuerza bruta, bloqueando las direcciones IP desde las cuales se producen numerosos intentos fallidos de inicio de sesión.


sudo apt install fail2ban -y # Instalar Fail2Ban
sudo systemctl enable fail2ban # Habilitar el inicio automático de Fail2Ban
sudo systemctl start fail2ban # Iniciar Fail2Ban

Puede crear un archivo de configuración /etc/fail2ban/jail.local para una configuración más detallada, pero la instalación básica ya proporciona una buena protección SSH.


sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Asegúrese de que la sección [sshd] esté activa (enabled = true).

6. Instalación de utilidades básicas

Instale utilidades útiles que pueden ser necesarias durante el proceso de instalación y depuración.


sudo apt install curl wget git htop unzip -y # Instalar curl, wget, git, htop y unzip

Ahora su servidor está listo para la instalación de Linkwarden.

Instalación de software — paso a paso

Diagrama: Instalación de software — paso a paso
Diagrama: Instalación de software — paso a paso

Linkwarden se implementa mejor utilizando Docker y Docker Compose, lo que garantiza aislamiento, portabilidad y facilidad de gestión. Instalaremos Docker Engine y Docker Compose, y luego implementaremos Linkwarden.

1. Instalación de Docker Engine (válido para 2026)

Para Ubuntu 24.04 LTS, se recomienda instalar Docker desde el repositorio oficial de Docker.


# Eliminar versiones antiguas de Docker, si las hay
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg -y; done

# Instalar los paquetes necesarios para usar el repositorio HTTPS
sudo apt update
sudo apt install ca-certificates curl gnupg -y

# Añadir la clave GPG oficial de Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# Añadir el repositorio de Docker a las fuentes de APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Actualizar la lista de paquetes teniendo en cuenta el nuevo repositorio
sudo apt update

# Instalar Docker Engine, Docker CLI y Containerd (las versiones serán actuales para 2026, por ejemplo, Docker 26.x)
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

# Añadir el usuario actual al grupo docker para no usar sudo en los comandos docker
sudo usermod -aG docker $USER

# Aplicar cambios de grupo (es necesario salir y volver a iniciar sesión en la sesión SSH)
# Para ello, salga de la sesión SSH actual y vuelva a iniciar sesión: exit, luego ssh linkwardenuser@SU_DIRECCIÓN_IP

Después de volver a iniciar sesión en la sesión SSH, verifique la instalación de Docker:


docker run hello-world # Ejecutar un contenedor de prueba para verificar la instalación de Docker

Debería ver el mensaje "Hello from Docker!".

2. Instalación de Docker Compose (si no está instalado como plugin)

A partir de Docker Engine 20.10, Docker Compose se incluye como un plugin docker compose. Si lo instaló con docker-compose-plugin, no se requiere una instalación separada. Puede verificar su presencia:


docker compose version # Verificar la versión del plugin Docker Compose (por ejemplo, v2.24.x)

Si el comando docker compose version funciona, entonces Docker Compose está instalado. Si no, o si prefiere la sintaxis antigua docker-compose, instálelo por separado:


# Descargar la versión actual de Docker Compose (por ejemplo, 2.24.x para 2026)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Otorgar permisos de ejecución
sudo chmod +x /usr/local/bin/docker-compose

# Crear un enlace simbólico (opcional, para mayor comodidad)
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

# Verificar la versión
docker-compose --version # Verificar la versión de Docker Compose (por ejemplo, Docker Compose version 2.24.5)

3. Creación de un directorio para Linkwarden

Cree un directorio donde se almacenarán los archivos de configuración de Linkwarden.


mkdir ~/linkwarden # Crear el directorio linkwarden en la carpeta de inicio del usuario
cd ~/linkwarden # Ir al directorio creado

4. Descarga del archivo docker-compose.yml

Linkwarden proporciona un archivo oficial docker-compose.yml. Descárguelo.


wget https://raw.githubusercontent.com/linkwarden/linkwarden/main/docker-compose.yml # Descargar el archivo docker-compose.yml

Abra el archivo docker-compose.yml para revisarlo. Contendrá los servicios linkwarden (la aplicación en sí) y db (la base de datos PostgreSQL).

5. Creación del archivo .env

Cree un archivo .env para almacenar variables de entorno y secretos. Esta es la mejor manera de gestionar la configuración sin modificar el archivo principal docker-compose.yml.


nano .env # Crear y abrir el archivo .env para editar

Pegue el siguiente contenido, cambiando los valores por los suyos:


# Linkwarden Application Settings
# -----------------------------
# You MUST change the SECRET_KEY to a strong, random string.
# Generate one using openssl rand -base64 32 or similar.
SECRET_KEY=SU_CLAVE_SECRETA_AQUÍ # ¡Asegúrese de generar una clave única!
NEXTAUTH_URL=https://linkwarden.SU_DOMINIO.ru # URL a través de la cual Linkwarden será accesible

# Database Settings (PostgreSQL)
# -----------------------------
# You MUST change POSTGRES_PASSWORD to a strong, random password.
POSTGRES_USER=linkwardenuser
POSTGRES_PASSWORD=SU_CONTRASEÑA_DE_BASE_DE_DATOS_AQUÍ # ¡Asegúrese de generar una contraseña única!
POSTGRES_DB=linkwarden

# Docker Volumes for data persistence
# ----------------------------------
# These define where Linkwarden and PostgreSQL data will be stored on your host.
# Ensure these paths exist and Docker has permissions to write to them.
LINKWARDEN_DATA_DIR=./linkwarden_data
POSTGRES_DATA_DIR=./postgres_data

# Optional: Timezone for Linkwarden
# Find your timezone here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=Europe/Moscow

# Optional: Enable email for account recovery, invitations etc.
# SMTP_HOST=smtp.your-email-provider.com
# SMTP_PORT=587
# [email protected]
# SMTP_PASSWORD=YOUR_EMAIL_PASSWORD
# SMTP_FROM=Linkwarden 

Importante:

  • Reemplace SU_CLAVE_SECRETA_AQUÍ por una cadena aleatoria. Puede generarla con el comando openssl rand -base64 32.
  • Reemplace SU_CONTRASEÑA_DE_BASE_DE_DATOS_AQUÍ por una contraseña segura y compleja.
  • Especifique su dominio en NEXTAUTH_URL.
  • Asegúrese de que LINKWARDEN_DATA_DIR y POSTGRES_DATA_DIR apunten a directorios existentes o que se crearán.

Guarde el archivo (Ctrl+X, Y, Enter).

6. Creación de directorios para datos

Cree los directorios especificados en .env para almacenar los datos de Linkwarden y PostgreSQL.


mkdir linkwarden_data # Crear directorio para los datos de Linkwarden
mkdir postgres_data # Crear directorio para los datos de PostgreSQL

7. Inicio de Linkwarden

Ahora está listo para iniciar Linkwarden usando Docker Compose.


docker compose up -d # Iniciar los servicios de Linkwarden y PostgreSQL en segundo plano

Este comando descargará las imágenes Docker necesarias (linkwarden/linkwarden y postgres), creará los contenedores y los iniciará. El proceso puede tardar varios minutos dependiendo de la velocidad de su conexión a internet.

8. Verificación del estado de los contenedores

Asegúrese de que todos los contenedores estén en ejecución y funcionando correctamente.


docker compose ps # Mostrar el estado de los contenedores en ejecución

Debería ver el estado Up para ambos servicios. Si algún servicio tiene el estado Exited o Restarting, revise los logs:


docker compose logs linkwarden # Ver los logs del contenedor linkwarden
docker compose logs db # Ver los logs del contenedor de la base de datos

En este punto, Linkwarden está funcionando en su servidor, pero solo es accesible a través de puertos internos (normalmente 3000 para Linkwarden). Para acceder desde el exterior y garantizar la seguridad, necesitaremos configurar un servidor proxy inverso con HTTPS.

Configuración

Diagrama: Configuración
Diagrama: Configuración

Después de iniciar los contenedores de Linkwarden, es necesario configurar el acceso a la aplicación a través de su dominio, asegurar la conexión con HTTPS y realizar la configuración inicial. Utilizaremos Caddy como servidor proxy inverso, ya que gestiona automáticamente los certificados de Let's Encrypt y simplifica la configuración de HTTPS.

1. Configuración de DNS

Antes de proceder con la configuración de Caddy, asegúrese de que su dominio o subdominio (por ejemplo, linkwarden.SU_DOMINIO.ru) apunte a la dirección IP de su VPS. Agregue un registro de tipo A en la configuración DNS de su registrador de dominios:

Tipo de registroNombre (Host)Valor (Dirección IP)TTL
AlinkwardenSU_DIRECCIÓN_IP_VPSAutomático / 3600

Deje tiempo para que se propaguen los registros DNS (normalmente de unos minutos a varias horas).

2. Instalación de Caddy

Instalaremos Caddy como un servicio Docker separado para que pueda gestionar fácilmente HTTPS para Linkwarden.

Primero, cree un directorio para la configuración de Caddy y sus datos:


cd ~/linkwarden # Перейдите в директорию Linkwarden, если вы не там
mkdir caddy # Создать директорию для Caddy
mkdir caddy/data # Директория для данных Caddy (сертификаты)
mkdir caddy/config # Директория для конфигурации Caddy

Cree el archivo Caddyfile en el directorio ~/linkwarden/caddy/config:


nano caddy/config/Caddyfile # Создать и открыть Caddyfile

Pegue el siguiente contenido, reemplazando linkwarden.SU_DOMINIO.ru con su dominio real:


linkwarden.ВАШ_ДОМЕН.ru {
    # Проксировать все запросы к контейнеру Linkwarden
    reverse_proxy linkwarden:3000

    # Включить сжатие данных
    encode gzip zstd

    # Дополнительные заголовки безопасности (рекомендуется)
    header {
        Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
        X-Frame-Options "DENY"
        X-Content-Type-Options "nosniff"
        Referrer-Policy "strict-origin-when-cross-origin"
        Permissions-Policy "geolocation=(), microphone=(), camera=()"
    }

    # Логирование (опционально)
    log {
        output file /var/log/caddy/access.log
    }
}

Guarde el archivo (Ctrl+X, Y, Enter).

3. Añadir Caddy a Docker Compose

Ahora edite su archivo ~/linkwarden/docker-compose.yml para añadir el servicio Caddy.


nano docker-compose.yml # Открыть docker-compose.yml для редактирования

Añada la siguiente sección caddy al final del archivo, con el mismo nivel de indentación que linkwarden y db:


  caddy:
    image: caddy:2.7.6-alpine # Актуальная версия Caddy на 2026 год
    restart: unless-stopped
    ports:
      - "80:80" # Открыть порт 80 для Let's Encrypt HTTP-01 challenge
      - "443:443" # Открыть порт 443 для HTTPS
    volumes:
      - ./caddy/config/Caddyfile:/etc/caddy/Caddyfile # Маппинг вашего Caddyfile
      - ./caddy/data:/data # Маппинг для данных Caddy (сертификаты)
      - ./caddy/config:/config # Маппинг для конфигурации Caddy
      - ./caddy/logs:/var/log/caddy # Маппинг для логов Caddy (если включено логирование)
    networks:
      - default # Caddy должен быть в той же сети, что и Linkwarden

Asegúrese de que la sección networks: para linkwarden y db también esté presente y apunte a default (o al nombre de su red, si la definió explícitamente). Si no tiene una sección networks al final del archivo, añádala:


networks:
  default:
    external: false

Guarde docker-compose.yml (Ctrl+X, Y, Enter).

4. Reiniciar Linkwarden con Caddy

Ahora actualice las pilas de Docker Compose para iniciar Caddy.


docker compose down # Остановить и удалить существующие контейнеры Linkwarden (данные сохранятся в volumes)
docker compose up -d # Запустить все сервисы, включая Caddy

Verifique el estado de los contenedores:


docker compose ps # Убедитесь, что caddy также запущен

Debería ver Up para linkwarden, db y caddy.

5. Verificación de la funcionalidad

Abra su navegador y vaya a https://linkwarden.SU_DOMINIO.ru. Debería ver la página de bienvenida de Linkwarden. Caddy obtendrá y configurará automáticamente un certificado SSL de Let's Encrypt.

Si surgen problemas, revise los registros de Caddy:


docker compose logs caddy # Просмотреть логи Caddy для отладки

Al acceder a Linkwarden por primera vez, se le pedirá que cree una cuenta de administrador. Rellene el formulario utilizando una contraseña segura. Esta será su cuenta principal para gestionar marcadores y usuarios.

6. Configuración de Linkwarden a través de la interfaz web

Después de crear la cuenta, podrá iniciar sesión en Linkwarden. Explore la configuración en la sección "Admin Settings", donde puede configurar:

  • User Management: Añadir nuevos usuarios, gestionar sus roles.
  • Appearance: Cambiar la apariencia.
  • Integrations: Configurar integraciones (por ejemplo, con RSS).
  • Email Settings: Si ha configurado SMTP en .env, aquí puede probar y enviar un correo electrónico de prueba.

¡Felicidades! Su gestor de marcadores autoalojado Linkwarden está completamente configurado y protegido con HTTPS.

Copias de seguridad y mantenimiento

Diagrama: Copias de seguridad y mantenimiento
Diagrama: Copias de seguridad y mantenimiento

Las copias de seguridad regulares y el mantenimiento oportuno son cruciales para cualquier servicio en producción. Linkwarden almacena sus valiosos marcadores y archivos, por lo que es extremadamente importante asegurar su conservación.

1. Qué respaldar

Para Linkwarden, es necesario respaldar los siguientes componentes:

  • Base de datos PostgreSQL: Contiene todos los metadatos de los marcadores, etiquetas, colecciones, cuentas de usuario. Este es el componente más importante.
  • Datos de Linkwarden (linkwarden_data): Incluye el directorio con las páginas web archivadas, si utiliza esta función.
  • Configuración de Caddy (caddy/config): El archivo Caddyfile.
  • Datos de Caddy (caddy/data): Certificados de Let's Encrypt. Aunque se pueden volver a emitir, una copia de seguridad acelera la recuperación.
  • Archivo .env de Linkwarden: Contiene la clave secreta y las contraseñas.

2. Script simple de copia de seguridad automática

Crearemos un script que realizará un volcado de la base de datos y archivará los archivos importantes. Utilizaremos docker exec para interactuar con la base de datos dentro del contenedor y tar para la compresión.

Cree un directorio para los scripts de copia de seguridad y el script en sí:


mkdir -p ~/backups/linkwarden # Создать директорию для бэкапов
nano ~/backups/linkwarden/backup_linkwarden.sh # Создать скрипт бэкапа

Pegue el siguiente contenido en el archivo backup_linkwarden.sh:


#!/bin/bash

# --- Конфигурация ---
BACKUP_DIR="/home/$USER/backups/linkwarden" # Директория для хранения бэкапов
LINKWARDEN_ROOT_DIR="/home/$USER/linkwarden" # Корневая директория Linkwarden
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/linkwarden_backup_${TIMESTAMP}.tar.gz"
DB_DUMP_FILE="linkwarden_db_dump_${TIMESTAMP}.sql"
CONTAINER_NAME_DB="linkwarden-db-1" # Имя контейнера базы данных (может отличаться, проверьте docker ps)
DB_USER="linkwardenuser" # Пользователь базы данных из вашего .env
DB_NAME="linkwarden" # Имя базы данных из вашего .env

# --- Создание дампа базы данных ---
echo "Создание дампа базы данных PostgreSQL..."
docker exec -t ${CONTAINER_NAME_DB} pg_dumpall -U ${DB_USER} > "${BACKUP_DIR}/${DB_DUMP_FILE}"
if [ $? -eq 0 ]; then
    echo "Дамп базы данных успешно создан: ${BACKUP_DIR}/${DB_DUMP_FILE}"
else
    echo "Ошибка при создании дампа базы данных."
    exit 1
fi

# --- Архивация данных Linkwarden, Caddy и конфигов ---
echo "Архивация данных Linkwarden, Caddy и конфигов..."
tar -czf "${BACKUP_FILE}" -C "${LINKWARDEN_ROOT_DIR}" \
    linkwarden_data \
    postgres_data \
    caddy/config/Caddyfile \
    caddy/data \
    .env \
    ${DB_DUMP_FILE} # Включаем дамп БД в общий архив

if [ $? -eq 0 ]; then
    echo "Архив успешно создан: ${BACKUP_FILE}"
else
    echo "Ошибка при создании архива."
    exit 1
fi

# --- Удаление временного дампа БД ---
rm "${BACKUP_DIR}/${DB_DUMP_FILE}"

# --- Очистка старых бэкапов (хранить последние 7 дней) ---
echo "Удаление старых бэкапов..."
find "${BACKUP_DIR}" -type f -name 'linkwarden_backup_*.tar.gz' -mtime +7 -delete
echo "Бэкапы старше 7 дней удалены."

echo "Резервное копирование завершено."

Guarde el archivo (Ctrl+X, Y, Enter) y hágalo ejecutable:


chmod +x ~/backups/linkwarden/backup_linkwarden.sh # Сделать скрипт исполняемым

Verifique el nombre del contenedor de la base de datos con el comando docker ps y, si es necesario, cambie CONTAINER_NAME_DB en el script. Podría ser linkwarden-db-1 o linkwarden_db_1 dependiendo de la versión de Docker Compose.

3. Automatización de copias de seguridad con Cron

Configure Cron para ejecutar el script de copia de seguridad diariamente. Abra el crontab de su usuario:


crontab -e # Открыть файл crontab для редактирования

Añada la siguiente línea al final del archivo para que el script se ejecute cada día a las 03:00 de la madrugada:


0 3 * * * /home/linkwardenuser/backups/linkwarden/backup_linkwarden.sh >> /home/linkwardenuser/backups/linkwarden/backup.log 2>&1

Guarde y cierre el archivo. Ahora sus copias de seguridad se crearán automáticamente.

4. Dónde almacenar las copias de seguridad

Almacenar las copias de seguridad en el mismo servidor que el servicio principal es extremadamente arriesgado. Si el servidor falla, perderá tanto el servicio como las copias de seguridad. Se recomienda utilizar almacenamiento externo:

  • Almacenamiento compatible con S3: Servicios en la nube como Amazon S3, DigitalOcean Spaces, Backblaze B2. Utilice rclone o awscli para cargar automáticamente los archivos después de su creación.
  • VPS separado: Puede configurar otro VPS menos potente para almacenar las copias de seguridad y utilizar rsync a través de SSH para sincronizarlas.
  • NAS/Almacenamiento local: Si tiene su propio almacenamiento de red, puede configurar un túnel VPN y transferir las copias de seguridad allí.

Ejemplo de cómo añadir rclone al script de copia de seguridad (después de crear el archivo):


# --- Загрузка бэкапа в S3 (пример с rclone) ---
# Убедитесь, что rclone установлен и настроен (rclone config)
# rclone copy "${BACKUP_FILE}" "s3remote:linkwarden-backups/"
# if [ $? -eq 0 ]; then
#     echo "Бэкап успешно загружен в S3."
# else
#     echo "Ошибка при загрузке бэкапа в S3."
# fi

5. Actualizaciones: rolling vs ventana de mantenimiento

Mantener Linkwarden y el servidor actualizados es crucial para la seguridad y la estabilidad.

  • Actualización del sistema (Ubuntu): Se recomienda realizarla una vez al mes.
    
    sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
                

    Puede ser necesario reiniciar el servidor (sudo reboot) después de actualizar el kernel o componentes importantes del sistema. Planifique esto para un momento de baja carga (ventana de mantenimiento).

  • Actualización de imágenes Docker de Linkwarden:

    Para actualizar Linkwarden a una nueva versión:

    
    cd ~/linkwarden # Перейти в директорию Linkwarden
    docker compose pull # Загрузить новые версии образов
    docker compose up -d # Пересоздать контейнеры с новыми образами
                

    Se recomienda realizar esto en una "ventana de mantenimiento", ya que los contenedores de Linkwarden se reiniciarán, lo que provocará una breve interrupción del servicio.

  • Actualización de Docker Engine: Se realiza junto con las actualizaciones del sistema, si Docker está instalado desde el repositorio oficial.

¡Siempre haga una copia de seguridad antes de las actualizaciones importantes! Es su seguro en caso de problemas imprevistos.

Solución de problemas + Preguntas frecuentes

Incluso con la configuración más cuidadosa, pueden surgir problemas. Esta sección le ayudará a diagnosticar y resolver los más comunes.

No puedo acceder a Linkwarden por dominio. ¿Qué hago?

Primero, verifique que los registros DNS estén configurados correctamente. Use el comando dig linkwarden.SU_DOMINIO.ru en su máquina local para asegurarse de que apunte a la dirección IP de su VPS. Luego, verifique que Caddy esté en ejecución y no tenga errores en los registros: docker compose logs caddy. Asegúrese de que los puertos 80 y 443 estén abiertos en el firewall UFW de su VPS: sudo ufw status. Si Caddy no puede obtener un certificado, esto podría deberse a problemas de DNS o al bloqueo de puertos.

Linkwarden no se inicia después de docker compose up -d.

Verifique los registros del contenedor Linkwarden: docker compose logs linkwarden. Las causas frecuentes son: un archivo .env configurado incorrectamente (por ejemplo, falta SECRET_KEY o NEXTAUTH_URL es incorrecto), problemas de conexión a la base de datos (verifique los registros del contenedor db: docker compose logs db), o un conflicto de puertos si modificó manualmente docker-compose.yml y algún puerto ya está ocupado.

¿Qué configuración mínima de VPS es adecuada?

Para un solo usuario o un grupo pequeño (hasta 5 personas) con una cantidad moderada de marcadores (hasta 1000) y un uso poco frecuente de la función de archivo de páginas, un VPS con 1 vCPU, 2 GB de RAM y 40-60 GB de SSD será mínimamente adecuado. Esto será suficiente para el funcionamiento estable de Linkwarden y su base de datos. Sin embargo, si planea usar activamente el archivo o escalar el servicio, se recomienda elegir una configuración con 2 vCPU y 4 GB de RAM.

¿Qué elegir: VPS o dedicado para esta tarea?

Para la mayoría de los usuarios y equipos pequeños, un VPS será la opción óptima. Ofrece suficiente rendimiento, flexibilidad y rentabilidad. Un servidor dedicado solo se justifica en casos en los que Linkwarden será utilizado por una organización muy grande (cientos de usuarios), se requiere el almacenamiento de terabytes de páginas archivadas, o si en el servidor se ejecutarán otras aplicaciones extremadamente intensivas en recursos que requieran acceso exclusivo a los recursos de hardware. Los servidores dedicados son significativamente más caros y requieren más experiencia en gestión.

¿Cómo actualizar Linkwarden a una nueva versión?

Para actualizar Linkwarden a una nueva versión, simplemente vaya al directorio ~/linkwarden y ejecute los comandos: docker compose pull (para descargar las nuevas imágenes) y luego docker compose up -d (para recrear y ejecutar los contenedores con las nuevas imágenes). Siempre se recomienda hacer una copia de seguridad antes de actualizar. También esté atento a los lanzamientos oficiales de Linkwarden en GitHub para detectar cambios importantes o migraciones de bases de datos.

¿Por qué Linkwarden funciona lentamente?

Las razones del rendimiento lento pueden ser varias:

  • Falta de recursos del VPS: Verifique la carga de CPU y RAM con htop. Si la RAM está constantemente llena o la CPU funciona al 100%, es posible que necesite un VPS con más recursos.
  • Disco lento: Si tiene un HDD en lugar de un SSD, las operaciones de la base de datos y la lectura de páginas archivadas serán lentas.
  • Problemas con la base de datos: Verifique los registros del contenedor db. Es posible que la base de datos necesite optimización o que se estén realizando demasiadas consultas.
  • Problemas de red: Si Linkwarden está instalado lejos de usted, o su proveedor tiene problemas de red, esto puede causar retrasos.

¿Cómo restablecer la contraseña de administrador de Linkwarden?

Si olvidó la contraseña de administrador, puede restablecerla a través de la línea de comandos. Primero, obtenga un shell dentro del contenedor Linkwarden: docker exec -it linkwarden-linkwarden-1 bash (el nombre del contenedor puede variar, verifique docker ps). Luego, ejecute el comando para restablecer la contraseña (el comando exacto puede cambiar, verifique la documentación de Linkwarden, pero generalmente es algo como npm run cli user:reset-password -- -e [email protected] -p new_strong_password). Después de restablecer, salga del contenedor (exit).

¿Cómo configurar un dominio personalizado para Linkwarden si ya uso Caddy para otros servicios?

Si ya tiene Caddy funcionando en el host, no necesita ejecutarlo en Docker Compose. Simplemente agregue una nueva sección para linkwarden.SU_DOMINIO.ru en su Caddyfile existente en el host. Asegúrese de que Linkwarden y Caddy puedan comunicarse (por ejemplo, si Caddy está en el host y Linkwarden en Docker, deberá abrir el puerto de Linkwarden o usar la red de Docker). Ejemplo: reverse_proxy 172.17.0.X:3000, donde 172.17.0.X es la dirección IP del contenedor Linkwarden en la red de Docker (se puede averiguar con docker inspect).

Conclusiones y próximos pasos

Diagrama: Conclusiones y próximos pasos
Diagrama: Conclusiones y próximos pasos

Ha instalado y configurado Linkwarden con éxito en su VPS, creando un gestor de marcadores fiable, privado y totalmente controlado. Ahora tiene una potente herramienta para guardar, organizar y archivar información web valiosa, protegida con HTTPS y con copias de seguridad periódicas.

¿Qué sigue?

  • Invite a usuarios: Si Linkwarden está destinado a un equipo, invite a sus colegas y configure sus cuentas.
  • Instale extensiones del navegador: Utilice las extensiones oficiales de Linkwarden para Chrome, Firefox o Edge para guardar enlaces rápidamente.
  • Explore funciones adicionales: Familiarícese con las capacidades de Linkwarden, como la importación RSS, etiquetas, colecciones, la función de "modo lector" y la API para la integración con otros servicios.
  • Monitoreo del rendimiento: Configure un sistema de monitoreo (por ejemplo, Prometheus + Grafana o Netdata) para rastrear los recursos del VPS y el rendimiento de Linkwarden.
  • Escalado: A medida que crezca el volumen de datos o el número de usuarios, considere aumentar los recursos del VPS u optimizar la base de datos.

¿Te fue útil esta guía?

Tus comentarios nos ayudan a mejorar nuestras guías.

Compartir esta publicación:

Envía esta guía a alguien a quien pueda resultarle útil.

Telegram VKVK WhatsApp Facebook LinkedIn XX

instalación Linkwarden en VPS: gestor de marcadores autogestionado con etiquetas y colecciones
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.