bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward

Vikunja на VPS: установка, настройка и обслуживание

calendar_month 18 июня 2026 schedule 17 мин. чтения visibility 36 просмотров
person
Valebyte Team
Vikunja на VPS: установка, настройка и обслуживание
Установка Vikunja на VPS — это эффективный способ развернуть мощный self-hosted менеджер задач и проектов, требующий минимальный VPS с 2 GB RAM, 1 vCPU и 20 GB NVMe диска для базовых нужд, и до 4-8 GB RAM для команд с активным использованием и интеграциями.

Что такое Vikunja и почему self-hosted Vikunja на VPS — это выгодно?

Vikunja — это современный, открытый и многофункциональный менеджер задач, который помогает эффективно организовывать личные дела и командные проекты. Созданный с акцентом на производительность и удобство использования, Vikunja предлагает мощный набор инструментов для планирования, отслеживания прогресса и совместной работы. В отличие от многих проприетарных решений, Vikunja является проектом с открытым исходным кодом, что дает пользователям полный контроль над их данными и возможность адаптировать систему под свои уникальные потребности. Развертывание Vikunja на VPS позволяет получить максимальную гибкость, безопасность и независимость от сторонних провайдеров.

Основные возможности Vikunja

Vikunja выделяется среди других менеджеров задач благодаря своему богатому функционалу и продуманному интерфейсу:

  • Списки задач и подзадач: Создавайте иерархические списки для детализации проектов.
  • Проекты и метки: Организуйте задачи по проектам, добавляйте метки для быстрой фильтрации и категоризации.
  • Приоритеты и сроки: Устанавливайте приоритеты и дедлайны для задач, чтобы не пропустить ничего важного.
  • Напоминания: Получайте уведомления о предстоящих задачах.
  • Совместная работа: Делитесь списками и проектами с другими пользователями, назначайте задачи, отслеживайте прогресс команды.
  • Интеграции: Поддержка API позволяет интегрировать Vikunja с другими сервисами и инструментами.
  • Гибкие представления: Просматривайте задачи в виде списка, доски Kanban или календаря.
  • Открытый исходный код: Полная прозрачность и возможность кастомизации.
  • Мобильные приложения: Доступны на Android и iOS для управления задачами на ходу.

Преимущества Vikunja self-hosted на собственном сервере

Выбор Vikunja self-hosted на собственном VPS от Valebyte.com предоставляет ряд значительных преимуществ, особенно для тех, кто ценит приватность, контроль и гибкость:

  1. Полный контроль над данными: Все ваши задачи, проекты и личная информация хранятся на вашем сервере, а не на сторонних облачных платформах. Это критически важно для соблюдения конфиденциальности и безопасности.
  2. Настраиваемость: Вы можете адаптировать окружение Vikunja под свои специфические нужды, интегрировать его с другими внутренними сервисами или изменять параметры, недоступные в SaaS-решениях.
  3. Производительность: Выделенный VPS обеспечивает стабильную и предсказуемую производительность, не зависящую от "соседей" по общему хостингу. Вы сами выбираете конфигурацию сервера, которая наилучшим образом соответствует ожидаемой нагрузке.
  4. Экономия в долгосрочной перспективе: Хотя начальные инвестиции в VPS могут показаться выше, чем подписка на SaaS, для команд среднего и крупного размера self-hosting часто оказывается значительно выгоднее, особенно при расчете на несколько лет.
  5. Независимость: Вы не привязаны к политике ценообразования или изменениям функционала стороннего провайдера. Ваша система работает так, как вы настроили.

Развертывание Vikunja на сервере через Docker Compose упрощает этот процесс, делая его доступным даже для пользователей с базовыми знаниями администрирования Linux.

Системные требования для установки Vikunja на сервере

Прежде чем приступить к установке Vikunja, важно убедиться, что ваш VPS соответствует минимальным системным требованиям. Vikunja состоит из двух основных компонентов: бэкенда (написан на Go) и фронтенда (написан на Vue.js). В качестве базы данных можно использовать PostgreSQL или MySQL/MariaDB.

Для стабильной работы Vikunja необходимы:

  • Операционная система: Любой дистрибутив Linux (Ubuntu 20.04+, Debian 11+, CentOS 8+). Рекомендуется использовать свежие версии LTS-дистрибутивов, такие как Ubuntu 22.04 LTS или Debian 12.
  • Docker и Docker Compose: Основной способ развертывания Vikunja, который мы будем использовать.
  • База данных: PostgreSQL 10+ или MySQL/MariaDB 5.7+. PostgreSQL является предпочтительной опцией и хорошо поддерживается.
  • Reverse Proxy: Nginx или Caddy для обработки HTTPS и маршрутизации трафика к контейнерам Vikunja.
  • Доменное имя: Для доступа к Vikunja по красивому URL и настройки HTTPS.

Минимальные и рекомендуемые конфигурации VPS для Vikunja

Выбор конфигурации VPS зависит от предполагаемой нагрузки — количества пользователей, объема данных и частоты использования. Valebyte.com предлагает различные тарифы, которые подойдут для любых потребностей.

Минимальные требования для одного пользователя или небольшой команды (до 5 человек) с базовым использованием:

  • CPU: 1 vCPU
  • RAM: 2 GB
  • Диск: 20-40 GB NVMe SSD (NVMe значительно ускоряет работу с базой данных и приложениями)
  • Пропускная способность: 100 Mbps

Такая конфигурация позволит комфортно работать с Vikunja, но при активном использовании и большом количестве задач могут наблюдаться задержки. Стоимость такого VPS обычно начинается от $5-10 в месяц.

Рекомендуемые требования для команды среднего размера (до 20-30 человек) или более интенсивного использования:

  • CPU: 2 vCPU
  • RAM: 4 GB
  • Диск: 80-100 GB NVMe SSD
  • Пропускная способность: 1 Gbps

Эта конфигурация обеспечит стабильную и быструю работу Vikunja даже при одновременном доступе нескольких пользователей и использовании различных функций. Стоимость такого VPS может составлять $15-25 в месяц.

Оптимальные требования для крупных команд (от 50+ человек) или критически важных проектов:

  • CPU: 4+ vCPU
  • RAM: 8+ GB
  • Диск: 200+ GB NVMe SSD
  • Пропускная способность: 1 Gbps

Для больших команд или систем с высокой нагрузкой рекомендуется рассмотреть выделенные серверы или более мощные VPS-тарифы, чтобы гарантировать максимальную производительность и отказоустойчивость. Стоимость таких решений начинается от $30-50 в месяц и выше.

Важно помнить, что NVMe SSD диски обеспечивают значительно более высокую скорость чтения/записи по сравнению с обычными SSD или HDD, что критически важно для производительности базы данных и общего отклика приложения.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Подготовка VPS к установке Vikunja через Docker

Перед тем как приступить к развертыванию Vikunja Docker, необходимо подготовить ваш VPS. Это включает обновление системы, установку Docker и Docker Compose, а также базовую настройку безопасности.

Установка Docker и Docker Compose

Подключитесь к вашему VPS по SSH. Все команды выполняются от имени пользователя с правами sudo.

1. Обновление системы:

sudo apt update && sudo apt upgrade -y

2. Установка необходимых пакетов для Docker:

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

3. Добавление официального GPG ключа 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. Добавление репозитория 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. Установка Docker Engine:

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

6. Добавление вашего пользователя в группу docker (чтобы не использовать sudo с каждой командой docker):

sudo usermod -aG docker $USER
newgrp docker

После выполнения `newgrp docker` может потребоваться переподключение к SSH-сессии, чтобы изменения вступили в силу.

7. Проверка установки Docker:

docker run hello-world

Если вы увидите сообщение "Hello from Docker!", значит, Docker установлен правильно.

Настройка файрвола и доменного имени

1. Настройка файрвола (UFW):

Очень важно настроить файрвол для защиты вашего сервера. Откройте только необходимые порты.

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

Эти команды разрешат SSH (порт 22), HTTP (порт 80) и HTTPS (порт 443). Убедитесь, что SSH-порт соответствует вашим настройкам, если вы используете нестандартный порт.

2. Настройка доменного имени:

Вам потребуется доменное имя (например, `vikunja.yourdomain.com`), указывающее на IP-адрес вашего VPS. Добавьте A-запись в DNS-настройки вашего домена. Это необходимо для доступа к Vikunja по красивому URL и для получения SSL-сертификата.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Пошаговая установка Vikunja Docker Compose

Теперь, когда VPS подготовлен, мы можем приступить к установке Vikunja Docker с помощью Docker Compose. Этот метод позволяет легко управлять всеми компонентами Vikunja (бэкенд, фронтенд, база данных) как единым целым.

Создание файла docker-compose.yml для Vikunja

Создайте директорию для Vikunja и перейдите в нее:

mkdir vikunja
cd vikunja

Создайте файл `docker-compose.yml`:

nano docker-compose.yml

Вставьте следующее содержимое. Это базовая конфигурация, использующая PostgreSQL в качестве базы данных. Замените `YOUR_VIKUNJA_DOMAIN` на ваше доменное имя (например, `vikunja.yourdomain.com`), а также сгенерируйте надежные пароли для базы данных и 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

Пояснения к файлу `docker-compose.yml`:

  • `db` сервис: Использует официальный образ PostgreSQL 15.
    • `environment`: Задает имя пользователя, пароль и имя базы данных для PostgreSQL.
    • `volumes`: Монтирует локальную директорию `./vikunja_db` в контейнер для постоянного хранения данных базы. Это критически важно для сохранения ваших данных при перезапусках контейнера.
  • `vikunja` сервис (бэкенд): Использует официальный образ `vikunja/vikunja:latest`.
    • `environment`: Настраивает подключение к базе данных (`VIKUNJA_DATABASE_HOST` указывает на имя сервиса `db`), задает секретный ключ для JWT-токенов (`VIKUNJA_JWT_SECRET`) и публичный URL вашего экземпляра Vikunja.
    • `depends_on`: Гарантирует, что контейнер `db` будет запущен раньше бэкенда.
  • `frontend` сервис: Использует официальный образ `vikunja/frontend:latest`.
    • `environment`: Указывает фронтенду, к какому API Vikunja подключаться.
    • `depends_on`: Гарантирует, что бэкенд будет запущен раньше фронтенда.
  • `networks`: Определяет внутреннюю сеть Docker для взаимодействия между контейнерами. Это изолирует сервисы Vikunja от внешнего мира, доступ к ним будет осуществляться через reverse proxy.

Для других полезных self-hosted инструментов, таких как NocoDB на VPS или Baserow на VPS, также часто применяется аналогичный подход с Docker Compose, что демонстрирует универсальность этого метода.

Запуск Vikunja и первоначальная настройка

После сохранения `docker-compose.yml`, запустите контейнеры:

docker compose up -d

Опция `-d` запускает контейнеры в фоновом режиме. Проверьте статус контейнеров:

docker compose ps

Все сервисы должны быть в состоянии `running`. Если возникают ошибки, проверьте логи:

docker compose logs -f

На этом этапе Vikunja запущена, но доступна только внутри Docker-сети. Для внешнего доступа и HTTPS нам понадобится reverse proxy.

Настройка Reverse Proxy (Nginx или Caddy) и HTTPS для Vikunja VPS

Чтобы Vikunja была доступна по вашему доменному имени с защищенным HTTPS-соединением, необходимо настроить reverse proxy. Мы рассмотрим два популярных варианта: Nginx и Caddy.

Настройка Nginx как обратного прокси

Nginx — это мощный и широко используемый веб-сервер, который отлично подходит для роли reverse proxy. Он требует ручной настройки SSL с помощью Certbot.

1. Установка Nginx:

sudo apt install nginx -y

2. Создание файла конфигурации Nginx для Vikunja:

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

Вставьте следующую конфигурацию, заменив `YOUR_VIKUNJA_DOMAIN` на ваше доменное имя:

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; # Будет создан Certbot
    ssl_certificate_key /etc/letsencrypt/live/YOUR_VIKUNJA_DOMAIN/privkey.pem; # Будет создан 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; # Vikunja бэкенд по умолчанию слушает порт 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;
    }
}

Важное примечание: В этой конфигурации предполагается, что бэкенд Vikunja доступен на `http://localhost:3456`. Однако, если вы используете Docker Compose, как показано выше, бэкенд Vikunja находится внутри Docker-сети и не прослушивает порты на хосте напрямую. Вместо этого, Nginx должен проксировать запросы к внутреннему порту Vikunja (3000) через сеть Docker. Для этого вам нужно будет изменить `docker-compose.yml` Vikunja, чтобы он "публиковал" порт 3000 на хосте, или же использовать более сложную конфигурацию с Docker network Nginx. Проще всего для Nginx, не связанного с Docker, опубликовать порты Vikunja:

Добавьте в секцию `vikunja` вашего `docker-compose.yml`:

    ports:
      - "3456:3000" # Проксируем порт 3000 контейнера на порт 3456 хоста

И перезапустите Vikunja:

docker compose down
docker compose up -d

Теперь Nginx сможет обращаться к Vikunja по `http://localhost:3456`.

3. Активация конфигурации и проверка синтаксиса:

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

4. Установка Certbot для Let's Encrypt SSL:

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

Следуйте инструкциям Certbot. Он автоматически получит SSL-сертификат и настроит Nginx для HTTPS.

5. Перезагрузка Nginx:

sudo systemctl reload nginx

Теперь Vikunja должна быть доступна по `https://YOUR_VIKUNJA_DOMAIN`.

Настройка Caddy с автоматическим HTTPS

Caddy — это современный веб-сервер, который автоматически управляет SSL-сертификатами Let's Encrypt, что значительно упрощает настройку HTTPS. Это отличный выбор для тех, кто ищет простоту и автоматизацию.

1. Добавление Caddy в `docker-compose.yml`:

Вам не нужно устанавливать Caddy на хост-систему. Вместо этого мы добавим его как еще один сервис в наш `docker-compose.yml`. Удалите секцию `ports` из сервиса `vikunja`, если вы ее добавляли.

Обновите ваш `docker-compose.yml` следующим образом. Замените `YOUR_VIKUNJA_DOMAIN` на ваш домен:

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. Создание файла `Caddyfile`:

Создайте файл `Caddyfile` в той же директории, что и `docker-compose.yml`:

nano Caddyfile

Вставьте следующую конфигурацию, заменив `YOUR_VIKUNJA_DOMAIN` на ваш домен:

{
  # Замените на вашу почту для уведомлений Let's Encrypt
  email [email protected] 
}

YOUR_VIKUNJA_DOMAIN {
    # Автоматический HTTPS
    tls {
        external_port 443
    }

    # Проксирование API Vikunja (бэкенд)
    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}
        # Включаем WebSocket для /api/v1/ws
        websocket
    }

    # Проксирование фронтенда 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}
    }
}

Пояснения к `Caddyfile`:

  • `email`: Укажите ваш адрес электронной почты для получения уведомлений от Let's Encrypt.
  • `YOUR_VIKUNJA_DOMAIN`: Caddy автоматически получит SSL-сертификат для этого домена.
  • `reverse_proxy /api/v1/* vikunja:3000`: Направляет запросы к `/api/v1/` на бэкенд Vikunja, который слушает порт 3000 внутри Docker-сети. Директива `websocket` важна для корректной работы WebSocket-соединений.
  • `reverse_proxy / frontend:80`: Все остальные запросы направляются на фронтенд Vikunja, который слушает порт 80 внутри Docker-сети.

3. Перезапуск Docker Compose:

docker compose down
docker compose up -d

Caddy автоматически запустится, получит SSL-сертификат и начнет проксировать запросы. Через несколько секунд Vikunja должна быть доступна по `https://YOUR_VIKUNJA_DOMAIN`.

Использование Caddy с Docker Compose — это элегантное решение для многих самохостинговых приложений, таких как Cal.com на VPS или AFFiNE на VPS, поскольку оно значительно упрощает настройку SSL и обратного прокси.

Обслуживание Vikunja: бэкапы, обновления и мониторинг

Регулярное обслуживание крайне важно для обеспечения стабильной работы и безопасности вашего экземпляра Vikunja на VPS. Это включает в себя создание резервных копий, своевременные обновления и мониторинг.

Стратегии резервного копирования Vikunja

Резервное копирование — это самый важный аспект обслуживания любого self-hosted приложения. Для Vikunja необходимо бэкапить два основных компонента:

  1. База данных PostgreSQL: Содержит все ваши задачи, проекты, пользователей и настройки.
  2. Docker-тома (volumes): Содержат данные PostgreSQL (если вы используете монтирование тома, как в нашем примере, `./vikunja_db`).

Пошаговая инструкция по бэкапу:

1. Бэкап базы данных PostgreSQL:

Воспользуйтесь командой `pg_dump` внутри контейнера `db`. Сначала остановите Vikunja, чтобы избежать повреждения данных во время бэкапа:

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

Затем выполните бэкап:

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

Эта команда создаст полный дамп всех баз данных PostgreSQL в файл `vikunja_backup_YYYY-MM-DD.sql` в текущей директории. Убедитесь, что у вас достаточно места на диске.

После завершения бэкапа запустите Vikunja обратно:

docker compose start vikunja frontend

2. Бэкап Docker-томов:

Если вы следовали нашей инструкции, данные PostgreSQL хранятся в директории `./vikunja_db` на хосте. Вы можете просто скопировать эту директорию:

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

Также важно сохранять ваш `docker-compose.yml` и `Caddyfile` (или конфигурацию Nginx), так как они содержат настройки для запуска Vikunja.

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

3. Автоматизация бэкапов:

Для регулярных и надежных бэкапов рекомендуется настроить скрипт и добавить его в `cron`. Пример простого скрипта для бэкапа:

#!/bin/bash

BACKUP_DIR="/path/to/your/vikunja/backups" # Укажите директорию для хранения бэкапов
VIKUNJA_DIR="/path/to/your/vikunja/directory" # Укажите директорию с docker-compose.yml

mkdir -p $BACKUP_DIR
cd $VIKUNJA_DIR

# Останавливаем Vikunja бэкенд и фронтенд для целостности бэкапа
docker compose stop vikunja frontend

# Бэкап базы данных
docker exec -t db pg_dumpall -c -U vikunja > $BACKUP_DIR/vikunja_db_backup_$(date +%F_%H-%M).sql

# Бэкап Docker-томов
tar -czvf $BACKUP_DIR/vikunja_volumes_backup_$(date +%F_%H-%M).tar.gz vikunja_db caddy_data

# Бэкап конфигурационных файлов
cp docker-compose.yml $BACKUP_DIR/docker-compose_$(date +%F_%H-%M).yml
cp Caddyfile $BACKUP_DIR/Caddyfile_$(date +%F_%H-%M)

# Запускаем Vikunja обратно
docker compose start vikunja frontend

# Удаление старых бэкапов (например, старше 7 дней)
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

Сохраните этот скрипт (например, `backup_vikunja.sh`), сделайте его исполняемым (`chmod +x backup_vikunja.sh`) и добавьте в `crontab -e` для ежедневного выполнения. Например, для запуска в 3 часа ночи:

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

Рассмотрите возможность использования внешних инструментов для бэкапов, таких как Restic на VPS, который позволяет безопасно и эффективно сохранять резервные копии в облачные хранилища или на удаленные серверы.

Обновление Vikunja и компонентов Docker

Регулярные обновления обеспечивают доступ к новым функциям, исправлениям безопасности и улучшениям производительности.

1. Обновление Docker-образов:

Перейдите в директорию Vikunja и выполните:

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

Эта команда загрузит последние версии всех образов, указанных в `docker-compose.yml` (например, `vikunja/vikunja:latest`, `vikunja/frontend:latest`, `postgres:15-alpine`, `caddy:2-alpine`).

2. Перезапуск контейнеров с новыми образами:

docker compose up -d

Docker Compose автоматически остановит старые контейнеры, удалит их и запустит новые с обновленными образами, сохраняя при этом ваши данные (благодаря использованию томов).

3. Обновление операционной системы:

Не забывайте регулярно обновлять саму ОС вашего VPS:

sudo apt update && sudo apt upgrade -y

4. Мониторинг:

Следите за логами контейнеров (`docker compose logs -f`) после обновлений, чтобы убедиться в отсутствии ошибок. Также полезно настроить базовый мониторинг ресурсов VPS (CPU, RAM, диск) через панель управления Valebyte.com или сторонние инструменты.

Для управления другими self-hosted проектами, такими как Wiki.js на VPS или Trilium на VPS, процессы обновления и бэкапов будут аналогичными, что делает Docker Compose универсальным инструментом для администрирования.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Какой VPS выбрать для Vikunja: рекомендации Valebyte.com

Выбор оптимальной конфигурации VPS для Vikunja на VPS напрямую влияет на производительность, стабильность и стоимость владения. Valebyte.com предлагает широкий спектр VPS-тарифов, которые могут быть адаптированы под различные сценарии использования Vikunja. Мы рекомендуем ориентироваться на количество активных пользователей и интенсивность использования.

Таблица сравнения VPS-конфигураций для Vikunja

В таблице ниже представлены рекомендуемые конфигурации VPS от Valebyte.com для различных сценариев использования Vikunja. Обратите внимание, что цены являются ориентировочными и могут варьироваться.

Сценарий использования vCPU RAM (GB) NVMe SSD (GB) Пропускная способность Примерная стоимость/мес. Рекомендуемый тариф Valebyte.com
Личное использование / Тестирование (1-2 пользователя) 1 2 20-40 100 Mbps $5 - $10 VPS Basic / Starter
Небольшая команда (до 5 пользователей) 1-2 2-4 40-80 200 Mbps - 1 Gbps $10 - $18 VPS Standard
Средняя команда (5-20 пользователей) 2 4-6 80-120 1 Gbps $18 - $30 VPS Pro
Крупная команда / Активное использование (20-50+ пользователей) 4+ 8+ 200+ 1 Gbps $30 - $60+ VPS Enterprise / Выделенный сервер

Дополнительные рекомендации по выбору VPS:

  1. NVMe SSD: Всегда отдавайте предпочтение VPS с NVMe SSD дисками. Они обеспечивают значительно более высокую скорость чтения/записи по сравнению с обычными SSD или HDD, что критически важно для производительности базы данных Vikunja и общего отклика приложения.
  2. Расположение сервера: Выбирайте дата-центр, который географически ближе к большинству ваших пользователей. Это снизит задержки (latency) и улучшит пользовательский опыт. Valebyte.com предлагает серверы в различных локациях.
  3. Масштабируемость: Убедитесь, что ваш хостинг-провайдер (например, Valebyte.com) предлагает легкое масштабирование ресурсов (CPU, RAM, диск) в случае роста вашей команды или увеличения нагрузки на Vikunja.
  4. Резервное копирование: Хотя мы рассмотрели бэкапы на уровне приложения, многие провайдеры VPS предлагают дополнительные услуги по созданию снапшотов или автоматических резервных копий всего сервера. Это может быть полезным дополнением к вашей стратегии бэкапов.
  5. Поддержка: Наличие квалифицированной технической поддержки, которая может помочь с базовыми вопросами по VPS, является важным фактором, особенно если вы не являетесь опытным системным администратором.

Для большинства пользователей и небольших команд VPS Standard от Valebyte.com станет отличным выбором, предлагая оптимальный баланс производительности и стоимости для установки Vikunja.

Выводы

Развертывание Vikunja на собственном VPS — это мощное решение для эффективного управления задачами и проектами, предоставляющее полный контроль над данными и высокую гибкость. Следуя пошаговой инструкции по установке через Docker Compose, настройке reverse proxy и обеспечению регулярных бэкапов, вы сможете создать надежную и безопасную рабочую среду.

Для оптимальной производительности и стабильности вашего экземпляра Vikunja на VPS, Valebyte.com рекомендует выбирать тарифы с NVMe SSD и достаточным объемом RAM, таким как VPS Standard, который идеально подходит для большинства команд, обеспечивая баланс мощности и стоимости.

Готовы выбрать сервер?

VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.

Начать сейчас →

Поделиться записью:

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