Исправление ошибок URL в Paperclip AI на TypeScript
Пошаговый гайд по корректировке некорректных URL‑адресов в конфигурации Paperclip (TypeScript) и проверке работоспособности сервиса.
Требования
- Доступ к серверу, где развернут Paperclip (порт 3000)
- Установленный git, node и pnpm (или npm)
- Базовые навыки работы с TypeScript и systemd
Подготовка окружения
Подключитесь к серверу по SSH, убедитесь, что у вас есть права sudo и что процесс Paperclip запущен через systemd. Проверьте статус службы:
ssh user@<IP‑сервера>
sudo systemctl status paperclip.serviceОстановка службы Paperclip
Для внесения изменений в код необходимо остановить сервис, чтобы избежать конфликтов с открытыми файлами.
sudo systemctl stop paperclip.serviceКлонирование репозитория (если используется локальная копия)
Если вы развёртывали приложение из исходников, перейдите в каталог проекта и обновите репозиторий до последней версии.
cd /opt/paperclip
git pull origin mainПоиск места формирования URL‑ов
В исходном коде Paperclip URL‑ы формируются в файле src/config/env.ts. Откройте файл и найдите строки, содержащие <IP‑сервера> и лишние символы | и g'.
sed -n '1,200p' src/config/env.ts | grep -i '<IP‑сервера>'Корректировка шаблонов URL
Замените ошибочные строки на валидные шаблоны. Пример исправления:
// Было
// const API_URL = `http://<IP‑сервера>:3000|http://192.168.1.10:3000|g'`;
// const WS_URL = `https://<IP‑сервера>,|https://192.168.1.10|g'`;
// Стало
const API_URL = `http://{{HOST}}:3000`;
const WS_URL = `https://{{HOST}}`;
// Далее, в runtime, заменяем {{HOST}} на реальный IP или домен через переменную окружения
export const CONFIG = {
apiUrl: process.env.PAPERCLIP_HOST ? `http://${process.env.PAPERCLIP_HOST}:3000` : API_URL,
wsUrl: process.env.PAPERCLIP_HOST ? `https://${process.env.PAPERCLIP_HOST}` : WS_URL,
};Добавление переменной окружения
Для предсказуемости конфигурации задайте переменную PAPERCLIP_HOST в файле окружения systemd. Откройте юнит‑файл:
sudo systemctl edit paperclip.serviceВставка переменной в Override
В открывшемся редакторе добавьте секцию [Service] с переменной окружения:
[Service]
Environment="PAPERCLIP_HOST=192.168.1.10"Перезапуск сборки проекта
Установите зависимости и пересоберите TypeScript‑код, чтобы изменения попали в dist/.
pnpm install
pnpm run buildЗапуск службы и проверка логов
Запустите сервис и убедитесь, что он стартовал без ошибок. Просмотрите журнал systemd:
sudo systemctl start paperclip.service
sudo journalctl -u paperclip.service -fТестирование конечных точек
Проверьте, что API доступен по новому адресу. Можно использовать curl:
curl -i http://192.168.1.10:3000/health
curl -i https://192.168.1.10/api/v1/agentsНастройка обратного прокси (при необходимости)
Если доступ к Paperclip идёт через Nginx, обновите конфигурацию, убрав лишние символы и указав корректный proxy_pass.
sudo nano /etc/nginx/sites-available/paperclip.conf
# Пример
server {
listen 80;
server_name paperclip.local;
location / {
proxy_pass http://192.168.1.10:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
sudo nginx -t && sudo systemctl reload nginxДокументирование изменений
Запишите в репозиторий commit с описанием исправления, чтобы обеспечить предсказуемость и возможность отката.
git add src/config/env.ts
git commit -m "Fix malformed URLs and add PAPERCLIP_HOST env variable"
git push origin mainИсправление ошибок URL в Paperclip AI: Пошаговый гайд по настройке конфигурации и проверке работоспособности сервиса
Предварительные требования
- Доступ к серверу, где развернут Paperclip (порт 3000)
- Установленный git, node и pnpm (или npm)
- Базовые навыки работы с TypeScript и systemd
Шаг 1: Подготовка окружения
Подключитесь к серверу по SSH. Убедитесь, что у вас есть права sudo, процесс Paperclip запущен через systemd, и проверьте статус службы:
ssh user@{{HOST}}
sudo systemctl status paperclip.service
Шаг 2: Остановка службы Paperclip
Остановите сервис, чтобы избежать конфликтов с открытыми файлами:
sudo systemctl stop paperclip.service
Шаг 3: Клонирование репозитория (если используется локальная копия)
Перейдите в каталог проекта и обновите репозиторий:
cd /opt/paperclip
git pull origin main
Шаг 4: Поиск строк формирования URL в коде
Откройте файл src/config/env.ts и найдите строки с <IP-сервера>, | или g:
sed -n '1,200p' src/config/env.ts | grep -i '<IP-сервера>'
Шаг 5: Корректировка шаблонов URL
Замените ошибочные шаблоны на корректные. Пример:
// Было
// const API_URL = `http://<IP-сервера>:3000|http://192.168.1.10:3000|g`;
// const WS_URL = `https://<IP-сервера>,|https://192.168.1.10|g`;
// Стало
const API_URL = `http://{{HOST}}:3000`;
const WS_URL = `https://{{HOST}}`;
// В runtime заменяем {{HOST}} на IP/домен через переменную окружения
export const CONFIG = {
apiUrl: process.env.PAPERCLIP_HOST ? `http://${process.env.PAPERCLIP_HOST}:3000` : API_URL,
wsUrl: process.env.PAPERCLIP_HOST ? `https://${process.env.PAPERCLIP_HOST}` : WS_URL,
};
Шаг 6: Добавление переменной окружения
Задайте PAPERCLIP_HOST в юнит-файле systemd:
sudo systemctl edit paperclip.service
Шаг 7: Вставка переменной в конфигурацию
Добавьте в [Service]:
[Service]
Environment="PAPERCLIP_HOST=192.168.1.10"
Шаг 8: Перезапуск сборки
Установите зависимости и пересоберите код:
pnpm install
pnpm run build
Шаг 9: Запуск и проверка логов
Запустите сервис и просмотрите логи:
sudo systemctl start paperclip.service
sudo journalctl -u paperclip.service -f
Шаг 10: Тестирование конечных точек
Проверьте доступность API:
curl -i http://{{HOST}}:3000/health
curl -i https://{{HOST}}/api/v1/agents
Шаг 11: Настройка обратного прокси (при необходимости)
Обновите конфигурацию Nginx:
sudo nano /etc/nginx/sites-available/paperclip.conf
Пример:
server {
listen 80;
server_name paperclip.local;
location / {
proxy_pass http://{{HOST}}:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Проверьте конфиг и перезагрузите Nginx:
sudo nginx -t && sudo systemctl reload nginx
Шаг 12: Документирование изменений
Создайте коммит:
git add src/config/env.ts
git commit -m "Исправление некорректных URL и добавление переменной окружения PAPERCLIP_HOST"
git push origin main
Описание: Исправление ошибок URL в Paperclip AI. Пошаговый гайд по настройке конфигурации и проверке работоспособности сервиса. Полезно для разработчиков и админов домашних серверов.
Внутренние ссылки: Настройка Nginx для Paperclip, Развертывание Paperclip в Docker