Самодостаточное хранение закладок: Установка karakeep с AI-тегированием и поиском

Полный гайд по установке и настройке karakeep — self-hosted приложения для хранения ссылок, заметок и изображений с AI-тегированием и полнотекстовым поиском. Инструкция для homelab и самодостаточных систем.

Не указано

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

Для работы karakeep требуется Docker. На Ubuntu/Debian выполните следующие команды для установки Docker и Docker Compose.

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
sudo usermod -aG docker $USER
newgrp docker
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Клонирование репозитория и настройка переменных окружения

Клонируйте репозиторий karakeep и создайте файл .env на основе примера. Укажите данные для базы данных, JWT секрет и настройки AI.

git clone https://github.com/karakeep-app/karakeep.git
cd karakeep
cp .env.example .env
nano .env

Настройка AI-тегирования (Опционально)

Для AI-тегирования установите Ollama для локальной работы с LLM. Запустите сервис и скачайте модель (например, Mistral). В .env укажите AI_ENABLED=true и URL Ollama.

# Установка Ollama (следуйте инструкциям на ollama.ai)
# Запуск Ollama:
ollama serve
# В другой консоли:
ollama pull mistral

# В .env добавьте:
AI_ENABLED=true
OLLAMA_URL=http://host.docker.internal:11434

Запуск приложения с помощью Docker Compose

Запустите контейнеры karakeep. Приложение будет доступно на порту 3000. Проверьте логи на наличие ошибок.

docker-compose up -d --build
docker-compose logs -f app

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

Откройте браузер и перейдите по адресу http://<ваш_ip>:3000. Зарегистрируйте первый аккаунт (он будет администратором). В настройках подключите AI-интеграцию и импортируйте существующие закладки.

Пример URL для добавления закладки:
http://<ваш_ip>:3000/add?url=https://example.com

Настройка полнотекстового поиска

Полнотекстовый поиск работает через PostgreSQL (встроен) или Meilisearch (для больших баз). Для Meilisearch раскомментируйте сервис в docker-compose.yml и обновите .env (SEARCH_PROVIDER=meilisearch). Перезапустите контейнеры.

# В docker-compose.yml раскомментируйте:
# meilisearch:
#   image: getmeili/meilisearch:latest
#   environment:
#     - MEILISEARCH_MASTER_KEY=your_master_key
#   ports:
#     - "7700:7700"
#   volumes:
#     - meili_data:/meili_data

# В .env добавьте:
SEARCH_PROVIDER=meilisearch
MEILISEARCH_URL=http://meilisearch:7700
MEILISEARCH_KEY=your_master_key

docker-compose up -d

Настройка безопасности и внешнего доступа

Для безопасного доступа из интернета используйте Nginx как прокси и Let's Encrypt для HTTPS. Настройте брандмауэр и регулярные бэкапы.

# Установка Nginx и Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y

# Создание конфига Nginx (/etc/nginx/sites-available/karakeep):
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

# Активация и получение SSL:
sudo ln -s /etc/nginx/sites-available/karakeep /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d yourdomain.com

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

Регулярно создавайте бэкапы базы данных и папки с изображениями. Настройте cron для автоматизации.

# Ручной бэкап БД:
docker-compose exec db pg_dump -U karakeep_user karakeep > backup_$(date +%Y%m%d).sql

# Бэкап файлов:
tar -czf karakeep_files.tar.gz /путь/к/karakeep/data/uploads

# Автоматизация через cron (ежедневно в 2:00):
0 2 * * * cd /путь/к/karakeep && docker-compose exec db pg_dump -U karakeep_user karakeep > /backups/karakeep_$(date +\%Y\%m\%d).sql