<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>软件部署 on Xiangtao's log</title><link>https://www.xiaoxiangtao.cn/zh/tags/%E8%BD%AF%E4%BB%B6%E9%83%A8%E7%BD%B2/</link><description>Recent content in 软件部署 on Xiangtao's log</description><generator>Hugo</generator><language>zh-Hans</language><managingEditor>15989119660@163.com (Xiangtao XIAO)</managingEditor><webMaster>15989119660@163.com (Xiangtao XIAO)</webMaster><lastBuildDate>Sat, 11 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.xiaoxiangtao.cn/zh/tags/%E8%BD%AF%E4%BB%B6%E9%83%A8%E7%BD%B2/feed.xml" rel="self" type="application/rss+xml"/><item><title>OpenClaw部署与应用</title><link>https://www.xiaoxiangtao.cn/zh/posts/openclaw-deployment-and-application/</link><pubDate>Sat, 11 Apr 2026 00:00:00 +0000</pubDate><author>15989119660@163.com (Xiangtao XIAO)</author><guid isPermaLink="false">https://www.xiaoxiangtao.cn/zh/posts/openclaw-deployment-and-application/</guid><description>&lt;p&gt;&lt;a href="https://docs.openclaw.ai/concepts/multi-agent"&gt;https://docs.openclaw.ai/&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="openclaw部署"&gt;OpenClaw部署&lt;/h1&gt;
&lt;h2 id="服务器与系统环境"&gt;服务器与系统环境&lt;/h2&gt;
&lt;p&gt;腾讯云轻量应用服务器 4核CPU，4GB内存，70G系统盘&lt;/p&gt;
&lt;p&gt;ubuntu 22.04.5 LTS 64bit，根据chatGPT推荐兼容性最好&lt;/p&gt;
&lt;h2 id="安装openclaw"&gt;安装OpenClaw&lt;/h2&gt;
&lt;h3 id="更新系统并下载依赖"&gt;更新系统并下载依赖&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 更新系统&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装基础依赖&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo apt install -y git curl wget unzip build-essential
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装nvm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh &lt;span class="p"&gt;|&lt;/span&gt; bash
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 安装node.js&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvm install --lts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;nvm use --lts
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 验证安装成功，查看版本号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;node -v
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm -v
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="下载openclaw"&gt;下载OpenClaw&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;npm install -g openclaw@latest
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="启动openclaw"&gt;启动OpenClaw&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 初始化配置并安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;openclaw onboard --install-daemon
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# install-daemon 自动将 OpenClaw 的 Gateway 服务安装为后台守护进程，静默运行，&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 开机自动启动及崩溃自动重启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;from chatGPT&lt;/p&gt;</description></item><item><title>bitwarden_rs+nginx反向代理配置记录</title><link>https://www.xiaoxiangtao.cn/zh/posts/bitwarden_-rs-nginx-reverse-proxy-configuration-record/</link><pubDate>Wed, 10 Mar 2021 00:00:00 +0000</pubDate><author>15989119660@163.com (Xiangtao XIAO)</author><guid isPermaLink="false">https://www.xiaoxiangtao.cn/zh/posts/bitwarden_-rs-nginx-reverse-proxy-configuration-record/</guid><description>&lt;p&gt;bitwarden是一个开源的密码管理器，可以部署在私有服务器上。官方的bitwarden对服务器配置要求较高，网友开发了bitwardenrs适用于小用户，对配置要求低不怎么占内存。本次采用安装docker后在docker上安装bitwardenrs和nginx，通过nginx反向代理实现HTTPS加密访问bitwarden的方法。&lt;/p&gt;
&lt;p&gt;服务器配置：Tencent Hong Kong centOS 7.6 1C1G 25GSSD 30M峰值带宽&lt;/p&gt;
&lt;p&gt;服务器上已经运行bitnami wordpress堆栈，因此80和443端口都被apache占用，挂了个人博客。网络上大部分blog都采用nginx做反向代理，由于不懂技术因此也用nginx照做。&lt;/p&gt;
&lt;h3 id="安装docker"&gt;安装Docker&lt;/h3&gt;
&lt;p&gt;docker是一个虚拟机，他打包了多个不同主流应用，可以很方便的安装这些应用，并且每个应用都是以容器的形式存在，与宿主机的环境是隔离的，这些应用的配置与运行可以干净的删除不会对宿主机造成影响。&lt;/p&gt;
&lt;p&gt;docker中有images 镜像和container 容器，比如我可以在宿主机下载一个nginx镜像，然后我制作两个容器：nginx_1 和 nginx_2，两个容器中都可以通过镜像安装nginx应用，两个nginx是分开的，可以各自用于不同用途，方便管理。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y docker #安装docker
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;systemctl docker #启动docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="安装bitwarden_rs"&gt;安装bitwarden_rs&lt;/h3&gt;
&lt;p&gt;docker有几个需要事先理解的概念，比如 &lt;strong&gt;目录映射&lt;/strong&gt;。我们可以让容器的目录去映射一个宿主机的目录，简单来讲就是用一个宿主机的目录当做容器应用的目录，这样要修改应用配置或者上传文件只要动宿主机的目录就可以。&lt;/p&gt;
&lt;p&gt;我们在run 应用的时候添加以下形式的配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-v /library:/library #&amp;#39;:&amp;#39;前是要映射的宿主机目录，后面是容器应用的实际目录
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;端口映射&lt;/strong&gt;：容器是一个虚拟环境，比如nginx监听的80和443端口，在我的宿主机中这两个端口被Apache占用了，因此我可以分配另外两个端口与容器的80端口和443端口进行映射。&lt;/p&gt;
&lt;p&gt;这样一来避免了端口冲突，比如访问//domain:4444实际上就会通过容器的443端口被nginx监听到。需要注意的是通过这种方式要在防火墙打开4444端口，否则浏览器还是无法访问的。&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://www.xiaoxiangtao.cn/posts/bitwarden_-rs-nginx-reverse-proxy-configuration-record/%E5%9B%BE%E7%89%87-1024x227.png"&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-p 8088:80/tcp 4444:443/tcp #8088映射到80 4444映射到443 映射端口根据需要选择空闲端口即可
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir /data/bitwarden #建立宿主机映射目录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -d \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --rm \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name bitwarden \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 8085:80 \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 3012:3012 \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e SIGNUPS_ALLOWED=true \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e WEB_VAULT_ENABLED=true \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -e DOMAIN=//mydomain.cn \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -v /data/bitwarden:/data \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; bitwardenrs/server:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;上面命令的各个参数含义如下：
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-d 在后台运行
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--rm 容器停止运行后，自动删除容器文件
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--name bitwarden容器的名字为bitwarden
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-p 8085:80 容器的端口80映射到8085，在Nginx配置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-p 3012:3012 容器的端口3012映射到3012
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-e SIGNUPS_ALLOWED=true 设置环境变量SIGNUPS_ALLOWED=true允许用户注册
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-e WBE_VAULT_ENABLE=true 设置环境变量WBE_VAULT_ENABLE=true
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-e DOMAIN=//mydomain.cn设置域名,需要替换成自己申请的域名
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-v /data/bitwarden:/data 容器的/data/目录映射到宿主机的/data/bitwarden目录
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="安装nginx"&gt;安装nginx&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir /data/nginx #建立宿主机映射目录
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 安装nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --rm \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --name nginx \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -d \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 8088:80/tcp \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; -p 2443:443/tcp \
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 由于不知道nginx目录下的内容，我们将容器的目录复制到宿主机目录/data下
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker cp nginx:/etc/nginx /data
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 创建用于存放ssl证书的文件夹，将申请到的.cert和.key证书文件上传到这个文件夹
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mkdir /data/nginx/certs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;修改/data/nginx/conf.d/default.conf文件添加以下内容，启用https访问并对bitwarden进行反向代理&lt;/p&gt;</description></item></channel></rss>