10分钟快速上手Moments:极简朋友圈的完整部署指南
【免费下载链接】moments极简朋友圈项目地址: https://gitcode.com/gh_mirrors/mom/moments
想要拥有一个属于自己的极简朋友圈吗?Moments是一款开源的极简朋友圈应用,让你在10分钟内就能搭建起个人社交空间。这款应用采用现代化的技术栈,支持Markdown语法、多用户管理、文件上传等丰富功能,是搭建个人博客、朋友圈或轻量社交平台的完美选择。😊
📦 什么是Moments极简朋友圈?
Moments是一个基于Go语言和Vue.js构建的极简朋友圈系统,它提供了类似微信朋友圈的体验,但完全由你自己掌控。你可以把它部署在自己的服务器上,创建个人社交空间,记录生活点滴,分享给朋友或保持私密。
核心功能亮点:
- ✅Markdown支持:使用熟悉的Markdown语法编写内容
- ✅多用户系统:支持用户注册和管理员后台
- ✅文件上传:支持图片、视频上传,自动生成缩略图
- ✅标签分类:方便整理和查找内容
- ✅外部引用:支持豆瓣读书、电影、音乐等外部内容
- ✅评论点赞:完整的社交互动功能
- ✅暗黑模式:支持夜间浏览体验
🚀 三种快速部署方式
方式一:Docker CLI一键部署(最推荐)
这是最简单快速的部署方式,只需要一条命令即可启动:
docker run -d \ -e PORT=3000 \ -e JWT_KEY=your_secret_key_here \ -p 3000:3000 \ -v /var/moments:/app/data \ --name moments \ kingwrcy/moments:latest参数说明:
PORT=3000:应用监听端口JWT_KEY:安全密钥(必须设置)/var/moments:/app/data:数据持久化目录kingwrcy/moments:latest:官方最新镜像
方式二:Docker Compose编排部署
如果你更喜欢使用Docker Compose,可以创建docker-compose.yml文件:
version: '3.8' services: moments: image: kingwrcy/moments:latest container_name: moments restart: always environment: PORT: 3000 JWT_KEY: ${JWT_KEY} ports: - 3000:3000 volumes: - ./data:/app/data然后运行:
export JWT_KEY=your_secret_key_here docker-compose up -d方式三:直接运行可执行文件
对于没有Docker环境的情况,可以直接下载可执行文件:
- 从发布页面下载对应系统的二进制文件
- 解压并运行:
./moments
🔑 关键配置说明
JWT密钥生成
JWT_KEY是保证应用安全的关键,可以通过以下方式生成:
方法1:使用OpenSSL(推荐)
openssl rand -hex 32方法2:使用随机数生成
echo $RANDOM | sha256sum环境变量配置
Moments支持通过环境变量进行灵活配置:
| 变量名 | 说明 | 默认值 |
|---|---|---|
| PORT | 应用监听端口 | 3000 |
| JWT_KEY | JWT认证密钥 | 随机生成 |
| DB | SQLite数据库路径 | /app/data/db.sqlite |
| UPLOAD_DIR | 文件上传目录 | /app/data/upload |
| LOG_LEVEL | 日志级别 | info |
创建.env文件进行配置:
JWT_KEY=your_generated_secret_key LOG_LEVEL=info🎯 首次使用指南
1. 访问应用
部署完成后,在浏览器中访问:
http://你的服务器IP:30002. 管理员登录
默认管理员账号:
- 用户名:
admin - 密码:
a123456
3. 修改密码
登录后立即前往后台修改默认密码,确保账户安全。
4. 开始发布内容
现在你可以:
- ✍️ 发布第一条Memo(支持Markdown)
- 📸 上传图片和视频
- 🏷️ 添加标签分类
- 🔗 引用豆瓣内容
- 👥 管理用户权限
⚙️ 高级功能配置
文件存储设置
Moments支持两种文件存储方式:
本地存储(默认)
- 文件存储在服务器本地目录
- 自动生成缩略图
- 支持文件去重(秒传功能)
S3兼容存储
- 支持AWS S3、MinIO等兼容服务
- 配置环境变量启用:
S3_ENDPOINT=your_s3_endpoint S3_ACCESS_KEY=your_access_key S3_SECRET_KEY=your_secret_key S3_BUCKET=your_bucket_name
邮件通知
开启邮件通知功能,及时获取评论提醒:
MAIL_HOST=smtp.example.com MAIL_PORT=587 MAIL_USER=your_email@example.com MAIL_PASS=your_passwordRSS订阅
每个用户都有独立的RSS订阅地址,方便读者通过RSS阅读器订阅更新。
🔧 开发与定制
技术架构
- 后端:Go 1.23.3+,使用Echo框架
- 前端:Nuxt 3 + Vue 3,使用TypeScript
- 数据库:SQLite(轻量级,无需额外安装)
- 构建工具:Makefile提供便捷命令
开发环境搭建
# 克隆项目 git clone https://link.gitcode.com/i/d6fa9f9efda9eb38aed9f50bb434ed6e.git # 启动后端开发服务 cd moments make backend-dev # 启动前端开发服务(新终端) make frontend-install make frontend-dev项目结构概览
moments/ ├── backend/ # Go后端代码 │ ├── handler/ # 请求处理器 │ ├── db/ # 数据库模型 │ └── vo/ # 值对象定义 ├── front/ # Nuxt前端代码 │ ├── components/ # Vue组件 │ ├── pages/ # 页面路由 │ └── public/ # 静态资源 └── docker-compose.yml # Docker编排配置🛠️ 常见问题解答
Q: 部署后无法访问?
A:检查防火墙设置,确保3000端口已开放:
# 查看端口监听状态 netstat -tlnp | grep 3000 # 开放端口(Ubuntu) sudo ufw allow 3000Q: 如何备份数据?
A:数据存储在/app/data目录中,定期备份该目录即可:
# 备份数据 tar -czf moments_backup_$(date +%Y%m%d).tar.gz /var/moments/Q: 如何更新到新版本?
A:使用Docker更新非常简单:
# 停止并删除旧容器 docker stop moments docker rm moments # 拉取最新镜像并重新运行 docker pull kingwrcy/moments:latest # 重新执行部署命令Q: 支持多语言吗?
A:目前主要支持中文界面,但代码结构清晰,易于扩展多语言支持。
📈 性能与扩展
性能特点
- 🚀快速启动:Go编译的二进制文件启动迅速
- 💾低内存占用:SQLite数据库轻量高效
- 📱响应式设计:适配各种设备屏幕
- 🔄实时更新:内容更新即时可见
扩展建议
- 增加CDN:为静态文件配置CDN加速
- 配置HTTPS:使用Nginx反向代理配置SSL证书
- 监控告警:配合Prometheus监控应用状态
- 定期备份:设置数据库自动备份任务
🎉 开始你的极简朋友圈之旅
Moments极简朋友圈为你提供了一个完全自主控制的社交空间。无论是记录个人生活、分享技术心得,还是建立小型社区,它都能满足你的需求。
立即行动:
- 选择适合你的部署方式
- 生成安全的JWT密钥
- 启动应用并登录
- 开始发布你的第一条Memo
记住,默认的管理员密码是a123456,登录后请务必修改!现在就去创建属于你自己的极简朋友圈吧!🎯
提示:更多详细配置和高级功能,请参考项目文档。如果在使用过程中遇到问题,欢迎在项目讨论区寻求帮助。
【免费下载链接】moments极简朋友圈项目地址: https://gitcode.com/gh_mirrors/mom/moments
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考