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

Obtener VPS arrow_forward

Vikunja en un VPS: instalación, configuración y mantenimiento

calendar_month 18 de junio de 2026 schedule 21 min de lectura visibility 22 vistas
person
Valebyte Team
Vikunja en un VPS: instalación, configuración y mantenimiento
La instalación de Vikunja en un VPS es una forma eficiente de desplegar un potente gestor de tareas y proyectos self-hosted, que requiere un VPS mínimo con 2 GB de RAM, 1 vCPU y 20 GB de disco NVMe para necesidades básicas, y hasta 4-8 GB de RAM para equipos con uso activo e integraciones.

¿Qué es Vikunja y por qué un Vikunja self-hosted en un VPS es ventajoso?

Vikunja es un gestor de tareas moderno, de código abierto y multifuncional que ayuda a organizar eficazmente asuntos personales y proyectos en equipo. Creado con un enfoque en la productividad y la facilidad de uso, Vikunja ofrece un potente conjunto de herramientas para la planificación, el seguimiento del progreso y la colaboración. A diferencia de muchas soluciones propietarias, Vikunja es un proyecto de código abierto, lo que otorga a los usuarios control total sobre sus datos y la capacidad de adaptar el sistema a sus necesidades únicas. El despliegue de Vikunja en un VPS permite obtener la máxima flexibilidad, seguridad e independencia de proveedores externos.

Características principales de Vikunja

Vikunja se destaca entre otros gestores de tareas gracias a su rica funcionalidad y a su interfaz bien diseñada:

  • Listas de tareas y subtareas: Cree listas jerárquicas para detallar proyectos.
  • Proyectos y etiquetas: Organice tareas por proyectos, añada etiquetas para una filtración y categorización rápidas.
  • Prioridades y plazos: Establezca prioridades y fechas límite para las tareas, para no perderse nada importante.
  • Recordatorios: Reciba notificaciones sobre tareas próximas.
  • Colaboración: Comparta listas y proyectos con otros usuarios, asigne tareas, siga el progreso del equipo.
  • Integraciones: El soporte API permite integrar Vikunja con otros servicios y herramientas.
  • Vistas flexibles: Visualice las tareas en forma de lista, tablero Kanban o calendario.
  • Código abierto: Transparencia total y posibilidad de personalización.
  • Aplicaciones móviles: Disponibles en Android e iOS para gestionar tareas sobre la marcha.

Ventajas de Vikunja self-hosted en su propio servidor

Elegir Vikunja self-hosted en su propio VPS de Valebyte.com ofrece una serie de ventajas significativas, especialmente para aquellos que valoran la privacidad, el control y la flexibilidad:

  1. Control total sobre los datos: Todas sus tareas, proyectos e información personal se almacenan en su servidor, no en plataformas en la nube de terceros. Esto es crucial para la privacidad y la seguridad.
  2. Personalización: Puede adaptar el entorno de Vikunja a sus necesidades específicas, integrarlo con otros servicios internos o modificar parámetros no disponibles en soluciones SaaS.
  3. Rendimiento: Un VPS dedicado garantiza un rendimiento estable y predecible, independiente de los "vecinos" en un hosting compartido. Usted mismo elige la configuración del servidor que mejor se adapte a la carga esperada.
  4. Ahorro a largo plazo: Aunque la inversión inicial en un VPS puede parecer mayor que una suscripción a SaaS, para equipos medianos y grandes, el self-hosting a menudo resulta significativamente más rentable, especialmente si se calcula a varios años.
  5. Independencia: No está atado a las políticas de precios o a los cambios de funcionalidad de un proveedor externo. Su sistema funciona tal como lo ha configurado.

El despliegue de Vikunja en un servidor a través de Docker Compose simplifica este proceso, haciéndolo accesible incluso para usuarios con conocimientos básicos de administración de Linux.

Requisitos del sistema para la instalación de Vikunja en un servidor

Antes de proceder con la instalación de Vikunja, es importante asegurarse de que su VPS cumple con los requisitos mínimos del sistema. Vikunja consta de dos componentes principales: el backend (escrito en Go) y el frontend (escrito en Vue.js). Como base de datos se puede utilizar PostgreSQL o MySQL/MariaDB.

Para un funcionamiento estable de Vikunja, se requiere:

  • Sistema operativo: Cualquier distribución Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+). Se recomienda utilizar versiones recientes de distribuciones LTS, como Ubuntu 22.04 LTS o Debian 12.
  • Docker y Docker Compose: El método principal de despliegue de Vikunja que utilizaremos.
  • Base de datos: PostgreSQL 10+ o MySQL/MariaDB 5.7+. PostgreSQL es la opción preferida y está bien soportada.
  • Reverse Proxy: Nginx o Caddy para manejar HTTPS y enrutar el tráfico a los contenedores de Vikunja.
  • Nombre de dominio: Para acceder a Vikunja a través de una URL amigable y configurar HTTPS.

Configuraciones mínimas y recomendadas de VPS para Vikunja

La elección de la configuración del VPS depende de la carga prevista: el número de usuarios, el volumen de datos y la frecuencia de uso. Valebyte.com ofrece varias tarifas que se adaptarán a cualquier necesidad.

Requisitos mínimos para un solo usuario o un equipo pequeño (hasta 5 personas) con uso básico:

  • CPU: 1 vCPU
  • RAM: 2 GB
  • Disco: 20-40 GB NVMe SSD (NVMe acelera significativamente el trabajo con la base de datos y las aplicaciones)
  • Ancho de banda: 100 Mbps

Esta configuración permitirá trabajar cómodamente con Vikunja, pero con un uso activo y un gran número de tareas, pueden observarse retrasos. El coste de un VPS de este tipo suele empezar en $5-10 al mes.

Requisitos recomendados para un equipo de tamaño medio (hasta 20-30 personas) o un uso más intensivo:

  • CPU: 2 vCPU
  • RAM: 4 GB
  • Disco: 80-100 GB NVMe SSD
  • Ancho de banda: 1 Gbps

Esta configuración garantizará un funcionamiento estable y rápido de Vikunja incluso con el acceso simultáneo de varios usuarios y el uso de diversas funciones. El coste de un VPS de este tipo puede oscilar entre $15 y $25 al mes.

Requisitos óptimos para equipos grandes (más de 50 personas) o proyectos críticos:

  • CPU: 4+ vCPU
  • RAM: 8+ GB
  • Disco: 200+ GB NVMe SSD
  • Ancho de banda: 1 Gbps

Para equipos grandes o sistemas con alta carga, se recomienda considerar servidores dedicados o tarifas de VPS más potentes para garantizar el máximo rendimiento y la tolerancia a fallos. El coste de estas soluciones comienza en $30-50 al mes y más.

Es importante recordar que los discos NVMe SSD ofrecen una velocidad de lectura/escritura significativamente mayor en comparación con los SSD o HDD normales, lo cual es crucial para el rendimiento de la base de datos y la respuesta general de la aplicación.

¿Busca un servidor fiable para sus proyectos?

VPS desde $10/mes y servidores dedicados desde $9/mes con NVMe, protección DDoS y soporte 24/7.

Ver ofertas →

Preparación del VPS para la instalación de Vikunja a través de Docker

Antes de proceder con el despliegue de Vikunja Docker, es necesario preparar su VPS. Esto incluye la actualización del sistema, la instalación de Docker y Docker Compose, así como la configuración básica de seguridad.

Instalación de Docker y Docker Compose

Conéctese a su VPS por SSH. Todos los comandos se ejecutan como un usuario con privilegios sudo.

1. Actualización del sistema:

sudo apt update && sudo apt upgrade -y

2. Instalación de paquetes necesarios para Docker:

sudo apt install ca-certificates curl gnupg lsb-release -y

3. Adición de la clave GPG oficial de Docker:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

4. Adición del repositorio de Docker:

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

5. Instalación de Docker Engine:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

6. Adición de su usuario al grupo docker (para no usar sudo con cada comando docker):

sudo usermod -aG docker $USER
newgrp docker

Después de ejecutar `newgrp docker`, puede ser necesario volver a conectarse a la sesión SSH para que los cambios surtan efecto.

7. Verificación de la instalación de Docker:

docker run hello-world

Si ve el mensaje "Hello from Docker!", significa que Docker se ha instalado correctamente.

Configuración del firewall y el nombre de dominio

1. Configuración del firewall (UFW):

Es muy importante configurar el firewall para proteger su servidor. Abra solo los puertos necesarios.

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status

Estos comandos permitirán SSH (puerto 22), HTTP (puerto 80) y HTTPS (puerto 443). Asegúrese de que el puerto SSH coincide con su configuración si utiliza un puerto no estándar.

2. Configuración del nombre de dominio:

Necesitará un nombre de dominio (por ejemplo, `vikunja.yourdomain.com`) que apunte a la dirección IP de su VPS. Añada un registro A en la configuración DNS de su dominio. Esto es necesario para acceder a Vikunja a través de una URL amigable y para obtener un certificado SSL.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Instalación paso a paso de Vikunja Docker Compose

Ahora que el VPS está preparado, podemos proceder con la instalación de Vikunja Docker utilizando Docker Compose. Este método permite gestionar fácilmente todos los componentes de Vikunja (backend, frontend, base de datos) como una única entidad.

Creación del archivo docker-compose.yml para Vikunja

Cree un directorio para Vikunja y acceda a él:

mkdir vikunja
cd vikunja

Cree el archivo `docker-compose.yml`:

nano docker-compose.yml

Pegue el siguiente contenido. Esta es una configuración básica que utiliza PostgreSQL como base de datos. Reemplace `YOUR_VIKUNJA_DOMAIN` con su nombre de dominio (por ejemplo, `vikunja.yourdomain.com`), y genere contraseñas seguras para la base de datos y JWT_SECRET.

version: "3.8"

services:
  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_USER: vikunja
      POSTGRES_PASSWORD: <YOUR_DB_PASSWORD>
      POSTGRES_DB: vikunja
    volumes:
      - ./vikunja_db:/var/lib/postgresql/data
    networks:
      - vikunja-network

  vikunja:
    image: vikunja/vikunja:latest
    restart: always
    environment:
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_PASSWORD: <YOUR_DB_PASSWORD>
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_DATABASE_TYPE: postgres
      VIKUNJA_JWT_SECRET: <YOUR_JWT_SECRET>
      VIKUNJA_SERVICE_PUBLICURL: https://YOUR_VIKUNJA_DOMAIN
      VIKUNJA_SERVICE_FRONTENDURL: https://YOUR_VIKUNJA_DOMAIN
      VIKUNJA_MAILER_ENABLED: "false" # Set to "true" and configure if you need email notifications
      # VIKUNJA_MAILER_HOST: smtp.example.com
      # VIKUNJA_MAILER_PORT: "587"
      # VIKUNJA_MAILER_USERNAME: [email protected]
      # VIKUNJA_MAILER_PASSWORD: your_email_password
      # VIKUNJA_MAILER_FROMADDRESS: [email protected]
    depends_on:
      - db
    networks:
      - vikunja-network

  frontend:
    image: vikunja/frontend:latest
    restart: always
    environment:
      VIKUNJA_API_URL: https://YOUR_VIKUNJA_DOMAIN/api/v1
    depends_on:
      - vikunja
    networks:
      - vikunja-network

networks:
  vikunja-network:
    driver: bridge

Explicaciones del archivo `docker-compose.yml`:

  • Servicio `db`: Utiliza la imagen oficial de PostgreSQL 15.
    • `environment`: Define el nombre de usuario, la contraseña y el nombre de la base de datos para PostgreSQL.
    • `volumes`: Monta el directorio local `./vikunja_db` en el contenedor para el almacenamiento persistente de los datos de la base de datos. Esto es crucial para preservar sus datos en los reinicios del contenedor.
  • Servicio `vikunja` (backend): Utiliza la imagen oficial `vikunja/vikunja:latest`.
    • `environment`: Configura la conexión a la base de datos (`VIKUNJA_DATABASE_HOST` apunta al nombre del servicio `db`), establece la clave secreta para los tokens JWT (`VIKUNJA_JWT_SECRET`) y la URL pública de su instancia de Vikunja.
    • `depends_on`: Garantiza que el contenedor `db` se inicie antes que el backend.
  • Servicio `frontend`: Utiliza la imagen oficial `vikunja/frontend:latest`.
    • `environment`: Indica al frontend a qué API de Vikunja conectarse.
    • `depends_on`: Garantiza que el backend se inicie antes que el frontend.
  • `networks`: Define la red interna de Docker para la interacción entre contenedores. Esto aísla los servicios de Vikunja del mundo exterior; el acceso a ellos se realizará a través de un reverse proxy.

Para otras herramientas self-hosted útiles, como NocoDB en un VPS o Baserow en un VPS, también se suele aplicar un enfoque similar con Docker Compose, lo que demuestra la versatilidad de este método.

Inicio de Vikunja y configuración inicial

Después de guardar `docker-compose.yml`, inicie los contenedores:

docker compose up -d

La opción `-d` inicia los contenedores en segundo plano. Verifique el estado de los contenedores:

docker compose ps

Todos los servicios deben estar en estado `running`. Si surgen errores, revise los logs:

docker compose logs -f

En este punto, Vikunja está en funcionamiento, pero solo es accesible dentro de la red Docker. Para el acceso externo y HTTPS, necesitaremos un reverse proxy.

Configuración de Reverse Proxy (Nginx o Caddy) y HTTPS para Vikunja VPS

Para que Vikunja sea accesible a través de su nombre de dominio con una conexión HTTPS segura, es necesario configurar un reverse proxy. Analizaremos dos opciones populares: Nginx y Caddy.

Configuración de Nginx como proxy inverso

Nginx es un potente y ampliamente utilizado servidor web que es excelente para el rol de reverse proxy. Requiere una configuración manual de SSL con Certbot.

1. Instalación de Nginx:

sudo apt install nginx -y

2. Creación del archivo de configuración de Nginx para Vikunja:

sudo nano /etc/nginx/sites-available/vikunja.conf

Pegue la siguiente configuración, reemplazando `YOUR_VIKUNJA_DOMAIN` con su nombre de dominio:

server {
    listen 80;
    listen [::]:80;
    server_name YOUR_VIKUNJA_DOMAIN;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name YOUR_VIKUNJA_DOMAIN;

    ssl_certificate /etc/letsencrypt/live/YOUR_VIKUNJA_DOMAIN/fullchain.pem; # Será creado por Certbot
    ssl_certificate_key /etc/letsencrypt/live/YOUR_VIKUNJA_DOMAIN/privkey.pem; # Será creado por Certbot
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384";
    ssl_prefer_server_ciphers off;
    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;

    location / {
        proxy_pass http://localhost:3456; # El backend de Vikunja por defecto escucha en el puerto 3456
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/v1/ws {
        proxy_pass http://localhost:3456;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Nota importante: En esta configuración se asume que el backend de Vikunja está disponible en `http://localhost:3456`. Sin embargo, si utiliza Docker Compose, como se muestra arriba, el backend de Vikunja se encuentra dentro de la red Docker y no escucha los puertos directamente en el host. En su lugar, Nginx debe proxyar las solicitudes al puerto interno de Vikunja (3000) a través de la red Docker. Para ello, deberá modificar el `docker-compose.yml` de Vikunja para que "publique" el puerto 3000 en el host, o bien utilizar una configuración más compleja con Docker network Nginx. La forma más sencilla para Nginx, no vinculado a Docker, es publicar los puertos de Vikunja:

Añada a la sección `vikunja` de su `docker-compose.yml`:

    ports:
      - "3456:3000" # Proxyamos el puerto 3000 del contenedor al puerto 3456 del host

Y reinicie Vikunja:

docker compose down
docker compose up -d

Ahora Nginx podrá acceder a Vikunja a través de `http://localhost:3456`.

3. Activación de la configuración y verificación de la sintaxis:

sudo ln -s /etc/nginx/sites-available/vikunja.conf /etc/nginx/sites-enabled/
sudo nginx -t

4. Instalación de Certbot para Let's Encrypt SSL:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d YOUR_VIKUNJA_DOMAIN

Siga las instrucciones de Certbot. Obtendrá automáticamente un certificado SSL y configurará Nginx para HTTPS.

5. Recarga de Nginx:

sudo systemctl reload nginx

Ahora Vikunja debería estar accesible a través de `https://YOUR_VIKUNJA_DOMAIN`.

Configuración de Caddy con HTTPS automático

Caddy es un servidor web moderno que gestiona automáticamente los certificados SSL de Let's Encrypt, lo que simplifica significativamente la configuración de HTTPS. Es una excelente opción para quienes buscan simplicidad y automatización.

1. Adición de Caddy a `docker-compose.yml`:

No necesita instalar Caddy en el sistema host. En su lugar, lo añadiremos como otro servicio en nuestro `docker-compose.yml`. Elimine la sección `ports` del servicio `vikunja`, si la había añadido.

Actualice su `docker-compose.yml` de la siguiente manera. Reemplace `YOUR_VIKUNJA_DOMAIN` con su dominio:

version: "3.8"

services:
  db:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_USER: vikunja
      POSTGRES_PASSWORD: <YOUR_DB_PASSWORD>
      POSTGRES_DB: vikunja
    volumes:
      - ./vikunja_db:/var/lib/postgresql/data
    networks:
      - vikunja-network

  vikunja:
    image: vikunja/vikunja:latest
    restart: always
    environment:
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_PASSWORD: <YOUR_DB_PASSWORD>
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_DATABASE_TYPE: postgres
      VIKUNJA_JWT_SECRET: <YOUR_JWT_SECRET>
      VIKUNJA_SERVICE_PUBLICURL: https://YOUR_VIKUNJA_DOMAIN
      VIKUNJA_SERVICE_FRONTENDURL: https://YOUR_VIKUNJA_DOMAIN
      VIKUNJA_MAILER_ENABLED: "false"
    depends_on:
      - db
    networks:
      - vikunja-network

  frontend:
    image: vikunja/frontend:latest
    restart: always
    environment:
      VIKUNJA_API_URL: https://YOUR_VIKUNJA_DOMAIN/api/v1
    depends_on:
      - vikunja
    networks:
      - vikunja-network

  caddy:
    image: caddy:2-alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./caddy_data:/data
    environment:
      VIKUNJA_DOMAIN: YOUR_VIKUNJA_DOMAIN
    networks:
      - vikunja-network
    depends_on:
      - vikunja
      - frontend

networks:
  vikunja-network:
    driver: bridge

2. Creación del archivo `Caddyfile`:

Cree el archivo `Caddyfile` en el mismo directorio que `docker-compose.yml`:

nano Caddyfile

Pegue la siguiente configuración, reemplazando `YOUR_VIKUNJA_DOMAIN` con su dominio:

{
  # Reemplace con su correo electrónico para notificaciones de Let's Encrypt
  email [email protected] 
}

YOUR_VIKUNJA_DOMAIN {
    # HTTPS automático
    tls {
        external_port 443
    }

    # Proxy del API de Vikunja (backend)
    reverse_proxy /api/v1/* vikunja:3000 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
        # Habilitamos WebSocket para /api/v1/ws
        websocket
    }

    # Proxy del frontend de Vikunja
    reverse_proxy / frontend:80 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }
}

Explicaciones del `Caddyfile`:

  • `email`: Especifique su dirección de correo electrónico para recibir notificaciones de Let's Encrypt.
  • `YOUR_VIKUNJA_DOMAIN`: Caddy obtendrá automáticamente un certificado SSL para este dominio.
  • `reverse_proxy /api/v1/* vikunja:3000`: Dirige las solicitudes a `/api/v1/` al backend de Vikunja, que escucha en el puerto 3000 dentro de la red Docker. La directiva `websocket` es importante para el correcto funcionamiento de las conexiones WebSocket.
  • `reverse_proxy / frontend:80`: Todas las demás solicitudes se dirigen al frontend de Vikunja, que escucha en el puerto 80 dentro de la red Docker.

3. Reinicio de Docker Compose:

docker compose down
docker compose up -d

Caddy se iniciará automáticamente, obtendrá un certificado SSL y comenzará a proxyar las solicitudes. En unos segundos, Vikunja debería estar accesible a través de `https://YOUR_VIKUNJA_DOMAIN`.

El uso de Caddy con Docker Compose es una solución elegante para muchas aplicaciones autoalojadas, como Cal.com en un VPS o AFFiNE en un VPS, ya que simplifica significativamente la configuración de SSL y el proxy inverso.

Mantenimiento de Vikunja: copias de seguridad, actualizaciones y monitorización

El mantenimiento regular es crucial para garantizar el funcionamiento estable y la seguridad de su instancia de Vikunja en un VPS. Esto incluye la creación de copias de seguridad, actualizaciones oportunas y monitorización.

Estrategias de copia de seguridad de Vikunja

La copia de seguridad es el aspecto más importante del mantenimiento de cualquier aplicación self-hosted. Para Vikunja, es necesario hacer una copia de seguridad de dos componentes principales:

  1. Base de datos PostgreSQL: Contiene todas sus tareas, proyectos, usuarios y configuraciones.
  2. Volúmenes de Docker: Contienen los datos de PostgreSQL (si utiliza el montaje de volumen, como en nuestro ejemplo, `./vikunja_db`).

Instrucciones paso a paso para la copia de seguridad:

1. Copia de seguridad de la base de datos PostgreSQL:

Utilice el comando `pg_dump` dentro del contenedor `db`. Primero, detenga Vikunja para evitar la corrupción de datos durante la copia de seguridad:

cd /path/to/your/vikunja/directory
docker compose stop vikunja frontend

Luego, realice la copia de seguridad:

docker exec -t db pg_dumpall -c -U vikunja > vikunja_backup_$(date +%F).sql

Este comando creará un volcado completo de todas las bases de datos PostgreSQL en el archivo `vikunja_backup_YYYY-MM-DD.sql` en el directorio actual. Asegúrese de tener suficiente espacio en disco.

Una vez completada la copia de seguridad, inicie Vikunja de nuevo:

docker compose start vikunja frontend

2. Copia de seguridad de los volúmenes de Docker:

Si siguió nuestras instrucciones, los datos de PostgreSQL se almacenan en el directorio `./vikunja_db` en el host. Simplemente puede copiar este directorio:

sudo cp -r vikunja_db vikunja_db_backup_$(date +%F)

También es importante guardar su `docker-compose.yml` y `Caddyfile` (o la configuración de Nginx), ya que contienen los ajustes para iniciar Vikunja.

cp docker-compose.yml vikunja_docker-compose_backup_$(date +%F).yml
cp Caddyfile vikunja_Caddyfile_backup_$(date +%F)

3. Automatización de las copias de seguridad:

Para copias de seguridad regulares y fiables, se recomienda configurar un script y añadirlo a `cron`. Ejemplo de un script simple para la copia de seguridad:

#!/bin/bash

BACKUP_DIR="/path/to/your/vikunja/backups" # Especifique el directorio para almacenar las copias de seguridad
VIKUNJA_DIR="/path/to/your/vikunja/directory" # Especifique el directorio con docker-compose.yml

mkdir -p $BACKUP_DIR
cd $VIKUNJA_DIR

# Detenemos el backend y frontend de Vikunja para la integridad de la copia de seguridad
docker compose stop vikunja frontend

# Copia de seguridad de la base de datos
docker exec -t db pg_dumpall -c -U vikunja > $BACKUP_DIR/vikunja_db_backup_$(date +%F_%H-%M).sql

# Copia de seguridad de los volúmenes de Docker
tar -czvf $BACKUP_DIR/vikunja_volumes_backup_$(date +%F_%H-%M).tar.gz vikunja_db caddy_data

# Copia de seguridad de los archivos de configuración
cp docker-compose.yml $BACKUP_DIR/docker-compose_$(date +%F_%H-%M).yml
cp Caddyfile $BACKUP_DIR/Caddyfile_$(date +%F_%H-%M)

# Iniciamos Vikunja de nuevo
docker compose start vikunja frontend

# Eliminación de copias de seguridad antiguas (por ejemplo, más de 7 días)
find $BACKUP_DIR -type f -name "vikunja_db_backup_*.sql" -mtime +7 -delete
find $BACKUP_DIR -type f -name "vikunja_volumes_backup_*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -type f -name "docker-compose_*.yml" -mtime +7 -delete
find $BACKUP_DIR -type f -name "Caddyfile_*" -mtime +7 -delete

Guarde este script (por ejemplo, `backup_vikunja.sh`), hágalo ejecutable (`chmod +x backup_vikunja.sh`) y añádalo a `crontab -e` para su ejecución diaria. Por ejemplo, para ejecutarlo a las 3 de la mañana:

0 3 * * * /path/to/your/backup_vikunja.sh >> /var/log/vikunja_backup.log 2>&1

Considere la posibilidad de utilizar herramientas externas para las copias de seguridad, como Restic en un VPS, que permite guardar de forma segura y eficiente las copias de seguridad en almacenamientos en la nube o en servidores remotos.

Actualización de Vikunja y componentes de Docker

Las actualizaciones regulares proporcionan acceso a nuevas funciones, correcciones de seguridad y mejoras de rendimiento.

1. Actualización de imágenes Docker:

Vaya al directorio de Vikunja y ejecute:

cd /path/to/your/vikunja/directory
docker compose pull

Este comando descargará las últimas versiones de todas las imágenes especificadas en `docker-compose.yml` (por ejemplo, `vikunja/vikunja:latest`, `vikunja/frontend:latest`, `postgres:15-alpine`, `caddy:2-alpine`).

2. Reinicio de contenedores con nuevas imágenes:

docker compose up -d

Docker Compose detendrá automáticamente los contenedores antiguos, los eliminará y lanzará nuevos con las imágenes actualizadas, conservando sus datos (gracias al uso de volúmenes).

3. Actualización del sistema operativo:

No olvide actualizar regularmente el propio sistema operativo de su VPS:

sudo apt update && sudo apt upgrade -y

4. Monitorización:

Supervise los logs de los contenedores (`docker compose logs -f`) después de las actualizaciones para asegurarse de que no hay errores. También es útil configurar una monitorización básica de los recursos del VPS (CPU, RAM, disco) a través del panel de control de Valebyte.com o herramientas de terceros.

Para la gestión de otros proyectos self-hosted, como Wiki.js en un VPS o Trilium en un VPS, los procesos de actualización y copia de seguridad serán similares, lo que convierte a Docker Compose en una herramienta universal para la administración.

rocket_launch Elección rápida

¿Buscas un servidor que simplemente funcione?

Valebyte VPS — NVMe, soporte 24/7, despliegue en 60 segundos.

Ver planes VPS arrow_forward

Qué VPS elegir para Vikunja: recomendaciones de Valebyte.com

La elección de la configuración óptima del VPS para Vikunja en un VPS influye directamente en el rendimiento, la estabilidad y el coste de propiedad. Valebyte.com ofrece una amplia gama de tarifas de VPS que pueden adaptarse a diversos escenarios de uso de Vikunja. Recomendamos centrarse en el número de usuarios activos y la intensidad de uso.

Tabla comparativa de configuraciones de VPS para Vikunja

La siguiente tabla presenta las configuraciones de VPS recomendadas por Valebyte.com para diferentes escenarios de uso de Vikunja. Tenga en cuenta que los precios son orientativos y pueden variar.

Escenario de uso vCPU RAM (GB) NVMe SSD (GB) Ancho de banda Coste aproximado/mes. Tarifa recomendada de Valebyte.com
Uso personal / Pruebas (1-2 usuarios) 1 2 20-40 100 Mbps $5 - $10 VPS Basic / Starter
Equipo pequeño (hasta 5 usuarios) 1-2 2-4 40-80 200 Mbps - 1 Gbps $10 - $18 VPS Standard
Equipo mediano (5-20 usuarios) 2 4-6 80-120 1 Gbps $18 - $30 VPS Pro
Equipo grande / Uso activo (20-50+ usuarios) 4+ 8+ 200+ 1 Gbps $30 - $60+ VPS Enterprise / Servidor dedicado

Recomendaciones adicionales para elegir un VPS:

  1. NVMe SSD: Siempre prefiera los VPS con discos NVMe SSD. Ofrecen una velocidad de lectura/escritura significativamente mayor en comparación con los SSD o HDD normales, lo cual es crucial para el rendimiento de la base de datos de Vikunja y la respuesta general de la aplicación.
  2. Ubicación del servidor: Elija un centro de datos que esté geográficamente más cerca de la mayoría de sus usuarios. Esto reducirá la latencia y mejorará la experiencia del usuario. Valebyte.com ofrece servidores en diversas ubicaciones.
  3. Escalabilidad: Asegúrese de que su proveedor de hosting (por ejemplo, Valebyte.com) ofrece una fácil escalabilidad de recursos (CPU, RAM, disco) en caso de que su equipo crezca o aumente la carga en Vikunja.
  4. Copia de seguridad: Aunque hemos cubierto las copias de seguridad a nivel de aplicación, muchos proveedores de VPS ofrecen servicios adicionales para crear snapshots o copias de seguridad automáticas de todo el servidor. Esto puede ser un complemento útil a su estrategia de copias de seguridad.
  5. Soporte: La disponibilidad de soporte técnico cualificado que pueda ayudar con preguntas básicas sobre el VPS es un factor importante, especialmente si no es un administrador de sistemas experimentado.

Para la mayoría de los usuarios y equipos pequeños, el VPS Standard de Valebyte.com será una excelente elección, ofreciendo un equilibrio óptimo entre rendimiento y coste para la instalación de Vikunja.

Conclusiones

El despliegue de Vikunja en su propio VPS es una solución potente para la gestión eficiente de tareas y proyectos, que proporciona control total sobre los datos y una alta flexibilidad. Siguiendo las instrucciones paso a paso para la instalación a través de Docker Compose, la configuración del reverse proxy y la garantía de copias de seguridad regulares, podrá crear un entorno de trabajo fiable y seguro.

Para un rendimiento y una estabilidad óptimos de su instancia de Vikunja en un VPS, Valebyte.com recomienda elegir tarifas con NVMe SSD y una cantidad suficiente de RAM, como el VPS Standard, que es ideal para la mayoría de los equipos, proporcionando un equilibrio entre potencia y coste.

¿Listo para elegir un servidor?

VPS y servidores dedicados en más de 72 países con activación instantánea y acceso root completo.

Empezar ahora →

Compartir esta publicación:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.