Tududi: Руководство по самостоятельному хостингу

Развёртывание и настройка Tududi v1.0.0 — открытой системы для жизни и работы. Руководство по установке, оптимизации и использованию в вашем homelab.

Не указано
Алексей Кузнецов
Алексей Кузнецов
Системный администратор12 апреля 2026 г.

Проверка системных требований

Перед установкой убедитесь, что ваш сервер соответствует требованиям системы. Проверьте версию ОС, Node.js, Python, доступную оперативную память и дисковое пространство.

# Проверка версии системы
cat /etc/os-release

# Проверка версии Node.js
node -v

# Проверка версии Python
python3 --version

# Проверка доступной оперативной памяти
free -h

# Проверка доступного дискового пространства
df -h

Установка необходимых зависимостей

Установите все необходимые компоненты, включая Node.js, Python, PostgreSQL, Redis и Nginx.

# Обновление пакетов
sudo apt update

# Установка Node.js
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

# Установка Python и pip
sudo apt install -y python3 python3-pip

# Установка PostgreSQL
sudo apt install -y postgresql postgresql-contrib

# Установка Redis
sudo apt install -y redis-server

# Установка Nginx (рекомендуется)
sudo apt install -y nginx

Скачивание дистрибутива Tududi

Подключитесь к серверу по SSH и скачайте дистрибутив Tududi v1.0.0 с официального репозитория.

# Создание директории для установки
sudo mkdir -p /opt/tududi
cd /opt/tududi

# Скачивание дистрибутива
sudo wget https://github.com/tududi/tududi/releases/download/v1.0.0/tududi-v1.0.0.tar.gz

# Распаковка файлов
sudo tar -xzf tududi-v1.0.0.tar.gz
sudo rm tududi-v1.0.0.tar.gz

Установка зависимостей проекта

Перейдите в директорию с проектом и установите зависимости с помощью npm и pip.

cd /opt/tududi
sudo npm install
sudo pip3 install -r requirements.txt

Настройка базы данных

Создайте базу данных и пользователя для работы Tududi с PostgreSQL.

# Запуск службы PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Создание базы данных и пользователя
sudo -u postgres psql -c "CREATE DATABASE tududi;"
sudo -u postgres psql -c "CREATE USER tududi_user WITH PASSWORD 'сильный_пароль';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE tududi TO tududi_user;"

Конфигурация системы

Отредактируйте файл конфигурации Tududi, указав параметры подключения к базе данных и веб-серверу.

# Настройки подключения к базе данных
database:
  host: localhost
  port: 5432
  name: tududi
  user: tududi_user
  password: "сильный_пароль"

# Настройки веб-сервера
server:
  host: 0.0.0.0
  port: 8080
  secret_key: "ваш_секретный_ключ"

# Настройки безопасности
security:
  session_timeout: 3600
  max_login_attempts: 5
  cors:
    enabled: true
    origins:
      - "http://localhost:8080"
      - "https://ваш_домен"

Первоначальная настройка

Запустите службу Tududi, создайте административный аккаунт и настройте базовые параметры системы.

sudo /opt/tududi/tududi --config /opt/tududi/config/config.yml

Оптимизация производительности

Настройте кэширование, оптимизируйте работу с базой данных и настройте Nginx как обратный прокси для улучшения производительности.

server {
    listen 80;
    server_name ваш_домен;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        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;
    }

    # Статические файлы
    location /static {
        alias /opt/tududi/static;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # Оптимизация для медленных соединений
    client_max_body_size 50M;
    client_body_timeout 60s;
    send_timeout 60s;
}

Резервное копирование данных

Создайте скрипт резервного копирования и настройте регулярное выполнение через cron.

#!/bin/bash

# Создание директории для бэкапов
mkdir -p /var/backups/tududi

# Экспорт базы данных
pg_dump -U tududi_user -h localhost tududi > /var/backups/tududi/database_$(date +%Y%m%d).sql

# Архивирование файлов системы
tar -czf /var/backups/tududi/files_$(date +%Y%m%d).tar.gz /opt/tududi

# Удаление бэкапов старше 30 дней
find /var/backups/tududi -name "*.sql" -mtime +30 -delete
find /var/backups/tududi -name "*.tar.gz" -mtime +30 -delete

Настройка SSL-сертификата

Настройте безопасное соединение HTTPS с использованием Let's Encrypt.

# Установка Certbot
sudo apt update
sudo apt install certbot

# Получение сертификата
sudo certbot certonly --standalone -d ваш_домен

# Настройка Tududi для использования HTTPS
sudo nano /opt/tududi/config/config.yml

Защита от атак

Настройте защиту системы, ограничив доступ к административному интерфейсу, включите двухфакторную аутентификацию, обновляйте систему и настройте брандмауэр.

# Установка UFW
sudo apt install ufw

# Разрешение необходимых портов
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# Включение брандмауэра
sudo ufw enable

# Ограничение доступа к административному интерфейсу
admin:
  allowed_ips:
    - "127.0.0.1"
    - "192.168.1.0/24"
  rate_limit:
    enabled: true
    requests_per_minute: 60

Tududi v1.0.0 - спокойная открытая система для жизни и работы: руководство по установке

Введение

Tududi v1.0.0 — это удобная система для организации личной жизни и рабочих задач. Система позволяет вести дела, управлять проектами, хранить заметки и многое другое в одном месте. Это руководство поможет вам установить и настроить систему для использования на вашем собственном сервере.

Системные требования

Перед установкой убедитесь, что ваш сервер соответствует следующим требованиям:

Аппаратные требования:

  • Операционная система: Linux (рекомендуются Ubuntu 20.04+ или Debian 10+)
  • Процессор: 2 ядра и более
  • Оперативная память: 4 ГБ и более
  • Дисковое пространство: 20 ГБ свободного места
  • Сеть: постоянное подключение к интернету
  • Дополнительно: SSL-сертификат (для безопасного доступа)

Программные зависимости:

  • Node.js версии 14.x или выше
  • Python версии 3.7 или выше
  • PostgreSQL версии 12 или выше
  • Redis (для кэширования)
  • Nginx (в качестве обратного прокси, рекомендуется)

Преимущества использования

  • Полный контроль над своими данными
  • Возможность кастомизации под свои нужды
  • Интеграция с другими инструментами
  • Безопасность и приватность
  • Отсутствие абонентской платы

Подготовка к установке

Проверка системных требований

Перед началом установки проверьте, соответствует ли ваш сервер требованиям:

# Проверка версии системы
cat /etc/os-release

# Проверка версии Node.js
node -v

# Проверка версии Python
python3 --version

# Проверка доступной оперативной памяти
free -h

# Проверка доступного дискового пространства
df -h

Установка необходимых зависимостей

Если на сервере не установлены необходимые зависимости, установите их:

# Обновление пакетов
sudo apt update

# Установка Node.js
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

# Установка Python и pip
sudo apt install -y python3 python3-pip

# Установка PostgreSQL
sudo apt install -y postgresql postgresql-contrib

# Установка Redis
sudo apt install -y redis-server

# Установка Nginx (рекомендуется)
sudo apt install -y nginx

Выбор операционной системы для хостинга

Рекомендуется использовать Ubuntu Server 20.04 или выше для установки Tududi. Пример установки Ubuntu Server можно найти на официальном сайте Ubuntu.

Необходимые инструменты

Для установки и настройки Tududi потребуются следующие инструменты:

  • SSH-клиент для подключения к серверу
  • Текстовый редактор (например, nano или vim)
  • Web-браузер для доступа к интерфейсу системы

Установка Tududi v1.0.0

Скачивание дистрибутива

Сначала подключитесь к вашему серверу по SSH:

ssh пользователь@ваш_сервер

Затем скачайте дистрибутив Tududi v1.0.0 с официального репозитория:

# Создание директории для установки
sudo mkdir -p /opt/tududi
cd /opt/tududi

# Скачивание дистрибутива
sudo wget https://github.com/tududi/tududi/releases/download/v1.0.0/tududi-v1.0.0.tar.gz

Распаковка файлов

Распакуйте скачанный архив:

sudo tar -xzf tududi-v1.0.0.tar.gz
sudo rm tududi-v1.0.0.tar.gz

Установка зависимостей проекта

Перейдите в директорию с проектом и установите зависимости:

cd /opt/tududi
sudo npm install
sudo pip3 install -r requirements.txt

Настройка базы данных

Если Tududi использует базу данных, настройте её. Для примера рассмотрим PostgreSQL:

# Установка PostgreSQL (если не установлена ранее)
sudo apt update
sudo apt install postgresql postgresql-contrib

# Запуск службы PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

# Создание базы данных и пользователя
sudo -u postgres psql -c "CREATE DATABASE tududi;"
sudo -u postgres psql -c "CREATE USER tududi_user WITH PASSWORD 'сильный_пароль';"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE tududi TO tududi_user;"

Конфигурация системы

Отредактируйте файл конфигурации Tududi:

sudo nano /opt/tududi/config/config.yml

Пример содержимого файла конфигурации:

# Настройки подключения к базе данных
database:
  host: localhost
  port: 5432
  name: tududi
  user: tududi_user
  password: "сильный_пароль"

# Настройки веб-сервера
server:
  host: 0.0.0.0
  port: 8080
  secret_key: "ваш_секретный_ключ"

# Настройки безопасности
security:
  session_timeout: 3600
  max_login_attempts: 5
  cors:
    enabled: true
    origins:
      - "http://localhost:8080"
      - "https://ваш_домен"

Сохраните файл и закройте редактор (в nano: Ctrl+X, Y, Enter).

Первоначальная настройка

Создание административного аккаунта

Запустите службу Tududi:

sudo /opt/tududi/tududi --config /opt/tududi/config/config.yml

Откройте в браузере http://ваш_сервер:8080 и создайте административный аккаунт.

Настройка базовых параметров системы

После входа в систему перейдите в раздел "Настройки" и настройте:

  • Название системы
  • Часовой пояс
  • Язык интерфейса
  • Параметры безопасности
  • Интеграцию с другими сервисами

Импорт данных (если требуется)

Если у вас есть данные для импорта (например, из предыдущей версии или другого аналогичного инструмента), перейдите в раздел "Импорт" и следуйте инструкциям на экране.

Оптимизация производительности

Рекомендации по настройке производительности

Для улучшения производительности системы выполните следующие действия:

  1. Настройте систему на использование кэширования:
sudo nano /opt/tududi/config/cache.yml

Пример конфигурации кэширования:

cache:
  type: redis
  host: localhost
  port: 6379
  password: "пароль_для_redis"
  db: 0
  max_memory: "256mb"
  max_memory_policy: "allkeys-lru"
  1. Оптимизируйте работу с базой данных:
# Настройка параметров PostgreSQL
sudo nano /etc/postgresql/12/main/postgresql.conf

Измените следующие параметры:

# Оптимизация для систем с 4 ГБ RAM
shared_buffers = 256MB
effective_cache_size = 1GB
maintenance_work_mem = 64MB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 200
work_mem = 4MB
min_parallel_table_scan_size = 8MB
min_parallel_index_scan_size = 512kB
max_parallel_workers_per_gather = 2
max_parallel_workers = 2
max_parallel_maintenance_workers = 2

# Настройка для улучшения производительности
bgwriter_delay = 20ms
bgwriter_lru_maxpages = 400
bgwriter_lru_multiplier = 2.0
wal_writer_delay = 20ms

Объяснение параметров оптимизации PostgreSQL:

  • shared_buffers: Размер памяти, используемой для кэширования данных. Рекомендуется 25% от доступной RAM.
  • effective_cache_size: Оценка общего размера кэша (ОЗУ + дисковый кэш). Помогает оптимизатору запросов.
  • maintenance_work_mem: Память для операций обслуживания (VACUUM, CREATE INDEX).
  • checkpoint_completion_target: Целевой процент завершения checkpoint перед следующим.
  • wal_buffers: Размер памяти для WAL (Write-Ahead Logging).
  • random_page_cost: Стоимость чтения случайной страницы с диска (по умолчанию 4.0, для SSD можно 1.1).
  • work_mem: Память для операций сортировки и хэширования.
  • parallel_*: Параметры для параллельной обработки запросов.

Перезапустите PostgreSQL после изменений:

sudo systemctl restart postgresql

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

Для улучшения производительности и безопасности настройте Nginx как обратный прокси:

sudo nano /etc/nginx/sites-available/tududi

Пример конфигурации:

server {
    listen 80;
    server_name ваш_домен;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        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;
    }

    # Статические файлы
    location /static {
        alias /opt/tududi/static;
        expires 30d;
        add_header Cache-Control "public, immutable";
    }

    # Оптимизация для медленных соединений
    client_max_body_size 50M;
    client_body_timeout 60s;
    send_timeout 60s;
}

Активируйте конфигурацию и перезапустите Nginx:

sudo ln -s /etc/nginx/sites-available/tududi /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Резервное копирование данных

Настройте регулярное резервное копирование данных:

  1. Создайте скрипт резервного копирования:
sudo nano /opt/tududi/backup.sh

Пример содержимого скрипта:

#!/bin/bash

# Создание директории для бэкапов
mkdir -p /var/backups/tududi

# Экспорт базы данных
pg_dump -U tududi_user -h localhost tududi > /var/backups/tududi/database_$(date +%Y%m%d).sql

# Архивирование файлов системы
tar -czf /var/backups/tududi/files_$(date +%Y%m%d).tar.gz /opt/tududi

# Удаление бэкапов старше 30 дней
find /var/backups/tududi -name "*.sql" -mtime +30 -delete
find /var/backups/tududi -name "*.tar.gz" -mtime +30 -delete
  1. Сделайте скрипт исполняемым:
sudo chmod +x /opt/tududi/backup.sh
  1. Настройте cron для регулярного выполнения бэкапов:
sudo crontab -e

Добавьте следующую строку для ежедневного выполнения бэкапа в 2 ночи:

0 2 * * * /opt/tududi/backup.sh

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

Процесс обновления до новых версий

  1. Создайте резервную копию текущей системы:
sudo /opt/tududi/backup.sh
  1. Остановите службу Tududi:
sudo systemctl stop tududi
  1. Скачайте новую версию:
cd /opt/tududi
sudo wget https://github.com/tududi/tududi/releases/download/v1.0.1/tududi-v1.0.1.tar.gz
sudo tar -xzf tududi-v1.0.1.tar.gz
sudo rm tududi-v1.0.1.tar.gz
  1. Обновите зависимости:
sudo npm install
sudo pip3 install -r requirements.txt
  1. Запустите службу Tududi:
sudo systemctl start tududi

Обновление базы данных

Если в новой версии требуется обновление схемы базы данных, выполните:

sudo /opt/tududi/migrate --config /opt/tududi/config/config.yml

Устранение неполадок

Частые проблемы и их решения

Система не запускается

  1. Проверьте логи ошибок:
sudo tail -f /var/log/tududi/error.log
  1. Убедитесь, что все зависимости установлены:
sudo /opt/tududi/check-deps
  1. Проверьте конфигурационный файл на наличие ошибок:
sudo /opt/tududi/validate-config --config /opt/tududi/config/config.yml
  1. Проверьте права доступа:
sudo chown -R tududi:tududi /opt/tududi

Проблемы с доступом к базе данных

  1. Проверьте статус PostgreSQL:
sudo systemctl status postgresql
  1. Проверьте соединение с базой данных:
sudo -u postgres psql -c "SELECT 1;"
  1. Проверьте учетные данные в конфигурационном файле:
sudo nano /opt/tududi/config/config.yml
  1. Проверьте логи PostgreSQL:
sudo tail -f /var/log/postgresql/postgresql-12-main.log

Система работает медленно

  1. Проверьте использование ресурсов:
htop
  1. Очистите кэш:
sudo /opt/tududi/clear-cache
  1. Оптимизируйте базу данных:
sudo /opt/tududi/optimize-db
  1. Проверьте настройки Nginx:
sudo nginx -t
sudo systemctl status nginx

Проблемы с SSL-сертификатом

  1. Проверьте срок действия сертификата:
sudo certbot certificates
  1. Проверьте конфигурацию Nginx для SSL:
sudo nginx -t
  1. Обновите сертификат:
sudo certbot renew --dry-run
sudo certbot renew

Проблемы с правами доступа

  1. Проверьте владельца файлов:
sudo ls -la /opt/tududi
  1. Исправьте права доступа:
sudo chown -R tududi:tududi /opt/tududi
sudo chmod -R 755 /opt/tududi

Проблемы с кэшированием

  1. Проверьте статус Redis:
sudo systemctl status redis
  1. Проверьте конфигурацию Redis:
sudo redis-cli INFO
  1. Очистите кэш Redis:
sudo redis-cli FLUSHALL

Безопасность

Настройка SSL-сертификата

Для безопасного доступа к системе рекомендуется использовать HTTPS. Настройте SSL-сертификат с помощью Let's Encrypt:

# Установка Certbot
sudo apt update
sudo apt install certbot

# Получение сертификата
sudo certbot certonly --standalone -d ваш_домен

# Настройка Tududi для использования HTTPS
sudo nano /opt/tududi/config/config.yml

Добавьте следующие настройки:

server:
  host: 0.0.0.0
  port: 8443
  ssl:
    enabled: true
    cert_path: /etc/letsencrypt/live/ваш_домин/fullchain.pem
    key_path: /etc/letsencrypt/live/ваш_домин/privkey.pem

Защита от атак

  1. Ограничьте доступ к административному интерфейсу:
sudo nano /opt/tududi/config/security.yml
admin:
  allowed_ips:
    - "127.0.0.1"
    - "192.168.1.0/24"
  rate_limit:
    enabled: true
    requests_per_minute: 60
  1. Настройте двухфакторную аутентификацию:
sudo /opt/tududi/setup-2fa
  1. Регулярно обновляйте систему:
# Обновление системы
sudo apt update && sudo apt upgrade

# Обновление Tududi
sudo /opt/tududi/update
  1. Настройте брандмауэр:
# Установка UFW
sudo apt install ufw

# Разрешение необходимых портов
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# Включение брандмауэра
sudo ufw enable
  1. Настройте систему для работы за прокси:
sudo nano /opt/tududi/config/proxy.yml
proxy:
  enabled: true
  host: "ваш_прокси"
  port: 8080
  protocol: "http"
  username: "имя_пользователя" # опционально
  password: "пароль" # опционально

Заключение

Поздравляем, вы успешно установили и настроили Tududi v1.0.0! Теперь вы можете использовать систему для организации своей жизни и работы.

Дополнительные ресурсы

Этот гайд охватывает основные шаги по установке и настройке системы. Для более детального ознакомления со всеми возможностями Tududi рекомендуем обратиться к официальной документации.

Поделиться:TelegramX / TwitterVK