Самодостаточное хранение закладок: Установка 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