目 录CONTENT

文章目录

用Docker搭建一个有趣的仿微信朋友圈的网页项目-moments

yyzq
2025-03-24 / 0 评论 / 2 点赞 / 112 阅读 / 1,323 字

前言

今天分享一个有趣的网站系统moments-极简朋友圈-该项目完全模仿了微信朋友圈的界面,支持文字,音乐、图书,视频、影视分享、互动、留言、点赞等社区互动,相比于千篇一律的传统博客样式,可以说是十分特别又有趣-有兴趣的可以自己搭建来玩
image-1742826544449

1.🎯 功能亮点

👤 用户系统
🏠 默认账号:admin/a123456,登录后可在后台修改
👥 支持多用户模式,可控制是否允许注册

2.📝 Memo 记录

🔖 标签管理,让内容更清晰
🖼️ 支持图片上传,可存储至本地或 S3
🖼️ 自动生成缩略图(目前仅支持本地上传)
📝 支持 Markdown 语法,后续增加更多标签支持
❤️ 点赞 & 评论,可在后台控制评论功能
🎵 支持网易云音乐、B 站视频、外部链接嵌入
📖 支持豆瓣读书 & 豆瓣电影引用

3.🛠️ 其他功能

📱 完美适配移动端
🌙 支持暗黑模式
⏫ 回到顶部按钮
🗄️ 数据库采用 SQLite,随时可备份
🖼️ 支持自定义头图、头像、网站标题

demo

https://pyq.ywsj365.com/
这是我自己搭建的,欢迎体验

准备条件

1)一台服务器或者NAS
我们使用飞牛云NAS和VPS来演示
需要vps的可以看以下信息
莱卡云官网
2)本项目使用到的github
https://github.com/kingwrcy/moments/
image-1742827390911
目前已经1.6k stars
更多功能可以访问
3)域名(可选)
域名可以根据自己的需求绑定

①《飞牛NAS上搭建》

直接在docker新增一个compose项目即可
新建项目:

moments

compose配置如下:

services:
  moments: # 定义名为 moments 的服务
    image: kingwrcy/moments:latest # 使用 kingwrcy/moments:latest 作为镜像
    container_name: moments # 指定容器名称为 moments
    restart: always # 设置容器自动重启策略为 always
    environment: # 配置环境变量
      PORT: 3000 # 设置应用运行端口为 3000
      JWT_KEY: $JWT_KEY # 读取 JWT 密钥,需在环境变量中设置也可不管
    ports:
      - 3900:3000 # 将主机的 3900 端口映射到容器的 3000 端口
    volumes:
      - ./moments:/app/data # 持久化数据到主机的 moments 目录,可根据需求修改

启动即可
image-1742827540443
正常启动
image-1742827556133

补充docker可用的镜像仓库

仓库1

https://proxy.1panel.live/

仓库2

https://docker.1panel.top/

仓库3

https://mirror.azure.cn/

仓库4

https://hub.rat.dev/

仓库5

https://docker.1ms.run

仓库6

https://docker.itelyou.cf/

仓库7

https://abc.itelyou.cf/

仓库8

https://docker.ywsj.tk/

②《vps上搭建》

一、Docker环境部署

在vps安装docker和docker-compose
Docker官方安装文档(英文)
https://duan.yyzq.eu.org/docker-001
Docker-Compose官方安装文档(英文)
https://duan.yyzq.eu.org/docker-002
Centos安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//03
Ubuntu安装Docker和Docker-compose(中文)
https://duan.yyzq.eu.org//04

推荐直接用一键脚本

docker安装脚本

bash <(curl -sSL https://cdn.jsdelivr.net/gh/SuperManito/LinuxMirrors@main/DockerInstallation.sh)

docker-compose安装脚本

curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose

二、创建docker-compose.yml文件

mkdir moments;cd moments #创建一个目录,并进入此目录

然后再新建docker-compose.yml

vim docker-compose.yml
services:
  moments: # 定义名为 moments 的服务
    image: kingwrcy/moments:latest # 使用 kingwrcy/moments:latest 作为镜像
    container_name: moments # 指定容器名称为 moments
    restart: always # 设置容器自动重启策略为 always
    environment: # 配置环境变量
      PORT: 3000 # 设置应用运行端口为 3000
      JWT_KEY: $JWT_KEY # 读取 JWT 密钥,需在环境变量中设置也可不管
    ports:
      - 3900:3000 # 将主机的 3900 端口映射到容器的 3000 端口
    volumes:
      - ./moments:/app/data # 持久化数据到主机的 moments 目录,可根据需求修改

三、执行容器运行命令

docker-compose up -d #运行容器
docker-compose ps  #查看是否开启成功

正常启动如下所示

docker-compose ps
WARN[0000] The "JWT_KEY" variable is not set. Defaulting to a blank string. 
NAME      IMAGE                     COMMAND          SERVICE   CREATED          STATUS          PORTS
moments   kingwrcy/moments:latest   "/app/moments"   moments   35 minutes ago   Up 35 minutes   0.0.0.0:3900->3000/tcp, [::]:3900->3000/tcp

四、打开web页面使用

成功以后需要打开自己相应的端口(3900)防火墙就可以web端访问了
打开自己VPS的端口加ip进入初始化页面

http://ip:3900

默认账号:admin/a123456,登录后可在后台修改

五、数据持久化

直接备份该目录即可

tar -zcf moments.tar.gz docker-compose.yml

六、绑定域名

绑定域名可以参考
NginxProxyManager
https://duan.yyzq.eu.org//npm-ch
绑定完域名配置好证书就可以用域名来访问了

有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我

欢迎关注我们的微信公众号!
微信公众号

2

评论区