<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Виктор Семенов</title><generator>teletype.in</generator><description><![CDATA[AI]]></description><link>https://teletype.in/@victor?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/victor?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/victor?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 05 Apr 2026 15:22:31 GMT</pubDate><lastBuildDate>Sun, 05 Apr 2026 15:22:31 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@victor/wQJExtzdlNy</guid><link>https://teletype.in/@victor/wQJExtzdlNy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor</link><comments>https://teletype.in/@victor/wQJExtzdlNy?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor#comments</comments><dc:creator>victor</dc:creator><title>Работающий способ запустить OpenClaw в VPS в Docker</title><pubDate>Wed, 04 Feb 2026 14:32:23 GMT</pubDate><description><![CDATA[На момент написания поста официальный способ запуска OpenClaw в докере у меня не заработал. Было несколько проблем. В том числе — CLI-контейнер не мог подключиться к гейтвею. Получал ошибку [openclaw] CLI failed: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason.]]></description><content:encoded><![CDATA[
  <p id="SIsY">На момент написания поста официальный способ запуска OpenClaw в докере у меня не заработал. Было несколько проблем. В том числе — CLI-контейнер не мог подключиться к гейтвею. Получал ошибку <code>[openclaw] CLI failed: Error: gateway closed (1006 abnormal closure (no close frame)): no close reason</code>.</p>
  <p id="kSUt">Вот как я запустил OpenClaw на VPS в docker compose.</p>
  <p id="p15J"><strong>Подключился к VPS по SSH.</strong></p>
  <pre id="A58N">ssh root@&lt;host&gt;</pre>
  <p id="6bmJ"><strong>Cклонировал репозиторий.</strong></p>
  <pre id="Wqop">git clone https://github.com/openclaw/openclaw.git
cd openclaw</pre>
  <p id="UO0D"><strong>Создал директории для конфига и воркспейса, а затем задал владельцем этих директорий пользователя из контейнера.</strong></p>
  <pre id="bGEw">mkdir -p /root/.openclaw
mkdir -p /root/.openclaw/workspace
chown -R 1000:1000 /root/.openclaw
chown -R 1000:1000 /root/.openclaw/workspace</pre>
  <p id="dFpK"><strong>Создал файл <code>.env</code> в корне репозитория. Содержимое файла:</strong></p>
  <pre id="6Ys2">OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_BRIDGE_PORT=18790
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_IMAGE=openclaw:local
OPENCLAW_EXTRA_MOUNTS=
OPENCLAW_HOME_VOLUME=
OPENCLAW_DOCKER_APT_PACKAGES=</pre>
  <p id="6D94"><strong>Собрал докер-образ.</strong></p>
  <pre id="LQ0V">docker build -t openclaw:local -f Dockerfile .</pre>
  <p id="OFCZ"><strong>Запустил онбординг.</strong></p>
  <pre id="HFUs">docker compose run --rm openclaw-cli onboard</pre>
  <p id="LOBU">Выбрал способ QuickStart. В качестве поставщика LLM я использую OpenRouter. Выбрал модель <code>openrouter/anthropic/claude-opus-4.5</code>.</p>
  <p id="YOdi">Также выбрал Telegram-бот в качестве канала. Ввел API-ключ бота от <code>botfather</code>.</p>
  <p id="KqCq">В терминале выведется такой блок:</p>
  <pre id="N5EQ">◇ Dashboard ready
│
│ Dashboard link (with token):
│ http://127.0.0.1:18789/?token=77c80b65ea4813028b3b96cff1216869de20d49865f2afbe
│ Copy/paste this URL in a browser on this machine to control OpenClaw.
│ No GUI detected. Open from your computer:
│ ssh -N -L 18789:127.0.0.1:18789 user@&lt;host&gt;
│ Then open:
│ http://localhost:18789/
│ http://localhost:18789/?token=77c80b65ea4813028b3b96cff1216869de20d49865f2afbe
│ Docs:
│ https://docs.openclaw.ai/gateway/remote
│ https://docs.openclaw.ai/web/control-ui</pre>
  <p id="DK7H">В конце выведется следующая строка, и процесс зависнет на этом.</p>
  <pre id="afKm">└ Onboarding complete. Use the tokenized dashboard link above to control OpenClaw.</pre>
  <p id="H1uC">Завершил процесс нажатием control+C.</p>
  <p id="lWdi"><strong>Запустил гейтвей.</strong></p>
  <pre id="g0ua">docker compose up -d openclaw-gateway</pre>
  <p id="wpqT">В логах будет написано, что гейтвей слушает порт 18789.</p>
  <pre id="qzmN">docker compose logs openclaw-gateway</pre>
  <pre id="SPEe">[gateway] listening on ws://0.0.0.0:18789</pre>
  <p id="cHeA"><strong>Пробросил порт.</strong></p>
  <p id="3M3O">Я пробросил порт через VS Code, но можно и через ssh.</p>
  <pre id="yRtI">ssh -N -L 18789:127.0.0.1:18789 user@&lt;host&gt;</pre>
  <p id="QU5V"><strong>Перешел по ссылке из Dashboard link выше.</strong></p>
  <p id="mbqG">Вижу ошибку:</p>
  <pre id="jXUj">disconnected (1008): pairing required</pre>
  <p id="SmZx">Надо апрувнуть свой браузер, чтобы исправить ошибку:</p>
  <pre id="Q89M">docker compose exec openclaw-gateway node dist/index.js devices list
docker compose exec openclaw-gateway node dist/index.js devices approve &lt;requestId&gt;</pre>
  <p id="SI2f">На странице <a href="http://localhost:18789/" target="_blank">http://localhost:18789/</a> в правом верхнем углу будет отображаться <code>Health OK</code>.</p>
  <h3 id="UExo">Настройка телеграм-бота</h3>
  <p id="uGHv">В телеграм-боте пишем <code>/start</code>.</p>
  <p id="jwHQ">В ответ получим такое сообщение:</p>
  <pre id="uy1P">OpenClaw: access not configured.
Your Telegram user id: 223423429
Pairing code: 6Z7P3EM7
Ask the bot owner to approve with:
openclaw pairing approve telegram &lt;code&gt;</pre>
  <p id="PcOB">Надо апрувнуть свой телеграм-бот.</p>
  <pre id="L0oT">docker compose exec openclaw-gateway node dist/index.js pairing approve telegram 6Z7P3EM7&#x60;</pre>
  <p id="SAsT">Теперь можно что-нибудь написать телеграм-боту, и агент ответит.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@victor/i6KiHikVzXU</guid><link>https://teletype.in/@victor/i6KiHikVzXU?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor</link><comments>https://teletype.in/@victor/i6KiHikVzXU?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor#comments</comments><dc:creator>victor</dc:creator><title>Yakutsk. January 2024</title><pubDate>Wed, 31 Jan 2024 11:47:19 GMT</pubDate><description><![CDATA[City walking in Yakutsk. Jan 2024.]]></description><content:encoded><![CDATA[
  <figure id="uZen" class="m_column">
    <iframe src="https://www.youtube.com/embed/lw5GmkG8ev8?autoplay=0&loop=0&mute=0"></iframe>
  </figure>
  <p id="Ivpy">City walking in Yakutsk. Jan 2024.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@victor/genome</guid><link>https://teletype.in/@victor/genome?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor</link><comments>https://teletype.in/@victor/genome?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=victor#comments</comments><dc:creator>victor</dc:creator><title>My Genome</title><pubDate>Sat, 16 Oct 2021 17:55:46 GMT</pubDate><description><![CDATA[16 MB of text: https://gist.githubusercontent.com/victorx64/a42ab11b580b1f1c7e01a3ad75ca2936/raw/c9817b1ad3cff230d41598dfa69f97209745955b/genome_Victor_Semenov_v5_Full_20211004072137.txt]]></description><content:encoded><![CDATA[
  <p id="tlEi">16 MB of text: <a href="https://gist.githubusercontent.com/victorx64/a42ab11b580b1f1c7e01a3ad75ca2936/raw/c9817b1ad3cff230d41598dfa69f97209745955b/genome_Victor_Semenov_v5_Full_20211004072137.txt" target="_blank">https://gist.githubusercontent.com/victorx64/a42ab11b580b1f1c7e01a3ad75ca2936/raw/c9817b1ad3cff230d41598dfa69f97209745955b/genome_Victor_Semenov_v5_Full_20211004072137.txt</a></p>
  <figure>
    <script src="https://gist.github.com/victorx64/a42ab11b580b1f1c7e01a3ad75ca2936.js"></script>
  </figure>

]]></content:encoded></item></channel></rss>