极空间部署Moments:搭建自托管极简朋友圈并实现远程访问

前言
有些生活片段值得留下,但并不一定每一次都想发到公共社交平台。早餐随手拍的一张照片、路上听到的一首歌、当天突然冒出来的一句话,也可以只是单纯记录下来,过一段时间再自己翻回去看看。
Moments就是一套很适合这类场景的自托管极简朋友圈。它支持发布Markdown文字、图片和视频,也可以引用音乐、外部视频、链接以及豆瓣书影音,并提供标签、评论、点赞和搜索等功能。你可以把它当成一个自己维护的生活动态页,而不是传统意义上的照片管理软件。
本文会在极空间NAS中通过Docker Compose部署Moments,把数据库和上传文件持久化到NAS目录,再实际测试个人资料设置、发布动态、音乐分享和内容搜索等基础功能。
需要特别说明的是,Moments并不提供照片自动同步、人脸识别或AI人物地点分类,它更接近一套轻量的“朋友圈/个人动态站”。另外,当前项目支持访客浏览和互动能力,因此“部署在自己的NAS”也不代表页面天然只有自己能够看到,公网使用前仍需要根据实际用途检查账号、注册和内容访问设置。
最后还会通过cpolar为8800端口创建公网入口,让这套运行在极空间中的Moments可以从其他网络访问。正式开放公网以前,应先修改默认管理员密码,并根据长期使用需要配置固定的JWT密钥和必要的访问控制。

1.在极空间部署个人博客
1.1ssh远程连接到极空间
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
ssh root@IP
没有ssh的小伙伴可以去cpolar官网参考《极空间别再吃灰了!开启SSH,秒变全能服务器!》这篇文章:

1.2验证docker是否开启
使用命令:
docker -v
systemctl status -v
没有docker的小伙伴可以去cpolar官网参考《极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手!》这篇文章

1.3安装Moments
首先创建一下安装的目录并进入到该目录:
sudo mkdir -p /docker/moments
cd /docker/moments

创建并编辑 docker-compose.yml文件:
services:
moments:
image: kingwrcy/moments:latest
ports:
- "8800:3000" # 左边的 8800随意更改成服务器上没有用过的端口
volumes:
- ./moments-data:/app/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro

启动容器:
docker-compose up -d

部署完成后,在浏览器中输入 http://极空间IP:8800 就能看到Moments的界面:

1.4简单使用Moments
使用默认账户密码登录:

点击如图,修改个人信息,让它看起来符合自己的审美:


现在我们来发个动态吧:

分享歌曲:

动态:

页面是不是简单漂亮!

通过搜索关键字来搜索文章:

但问题来了:
- 只能在家里的局域网访问?
出门在外想看看宝宝的成长记录、翻翻旅行照片,或者想发当时的心情,却无法打开?
这时候,就需要 cpolar 来帮忙了!
2.安装cpolar实现随时随地发文
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

3.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:Moments,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:8800
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功:

4.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是moments,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

这样我们就可以,随时随地发文啦!
总结
完成以上配置后,Moments已经通过Docker运行在极空间NAS中,并可以通过浏览器打开自己的生活动态页面。
本文实际测试了个人资料设置、动态发布、音乐分享以及内容搜索等功能。Moments更适合理解成一套自托管的极简朋友圈:文字、图片、视频和部分外部内容可以集中到自己的站点中,再通过时间线慢慢积累生活记录。
当前部署把/app/data持久化到了NAS目录,其中包含SQLite数据库和本地上传文件。长期使用时仍然应该为数据库和上传内容建立独立备份;如果后续启用S3等外部存储,也需要重新判断实际文件存放位置,不能简单把自托管等同于所有内容永远只存在NAS本机。
通过cpolar为8800端口建立公网入口后,还可以从其他网络打开Moments。公网使用前应先替换项目默认管理员密码,并根据实际需要关闭开放注册或调整互动设置。对于不希望任何陌生访客看到的私人内容,也应先确认当前版本提供的访问权限是否满足要求,而不能把随机或固定公网地址本身当作隐私保护。
如果需要长期使用同一个地址,可以根据实际套餐配置固定二级子域名,在账号、套餐以及对应隧道配置保持有效期间维持URL一致。固定地址解决的是链接变化问题,并不能替代账号安全、应用更新和数据备份。
从极空间Docker部署、发布生活动态,到远程访问,本文完成了一套Moments自托管极简朋友圈的基础实践流程。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)