Исправление ошибок URL в Paperclip AI на TypeScript

Пошаговый гайд по корректировке некорректных URL‑адресов в конфигурации Paperclip (TypeScript) и проверке работоспособности сервиса.

Средний
Алексей Кузнецов
Алексей Кузнецов
Системный администратор11 июня 2026 г.3 мин чтения

Требования

  • Доступ к серверу, где развернут 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

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