Skip to content

kingwrcy/moments

Repository files navigation

🌟 Moments - 极简朋友圈

release docker-release-status docker-pull telegram-group discussion

💡 从 v0.2.1 开始,Moments 采用 Golang 重写服务端,包体积更小,功能更强!
🔍 仍需 v0.2.0 版本?点这里


🎯 功能亮点

👤 用户系统

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

📝 Memo 记录

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

🛠️ 其他功能

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

🚀 快速上手

🛠️ 环境变量

Moments 支持以下 环境变量 进行配置:

变量名 说明 默认值
PORT 监听端口 3000
JWT_KEY JWT 密钥 不填写则随机生成,重启后需重新登录
DB SQLite 数据库存放目录 db.sqlite(默认 /app/data/db.sqlite
UPLOAD_DIR 上传文件本地目录 upload(默认 /app/data/upload
LOG_LEVEL 日志级别 info(可选 debug
ENABLE_SWAGGER 启用 Swagger 文档 false(可选 true,访问 /swagger/index.html

支持 .env 文件加载环境变量,示例:

JWT_KEY=your_secret_key
LOG_LEVEL=info

🐳 使用 Docker

🔹 启动容器(需替换 $JWT_KEY):

docker run -d \
  -e PORT=3000 \
  -e JWT_KEY=$JWT_KEY \
  -p 3000:3000 \
  -v /var/moments:/app/data \
  --name moments \
  kingwrcy/moments:latest

📌 持久化数据: /app/data 挂载至 /var/moments
📌 可选: latest(稳定版) 或 dev(开发版,功能前沿但相对不稳定)

📝 使用 Docker Compose

services:
  moments:
    image: kingwrcy/moments:latest
    container_name: moments
    restart: always
    environment:
      PORT: 3000
      JWT_KEY: $JWT_KEY
    ports:
      - 3000:3000
    volumes:
      - /var/moments:/app/data # 持久化数据到主机的 /var/moments 目录,可以按需修改

💻 可执行文件安装

🔽 下载最新版本

示例(Windows 版):

文件名 说明
moments-windows-amd64-x.x.x.exe.zip 压缩包,解压后可直接运行
moments-windows-amd64-x.x.x.exe-checksum.txt MD5 校验码,验证文件完整性

🔑 生成 JWT_KEY

📌 方法 1:OpenSSL

openssl rand -hex 32

📌 方法 2:SHA256

echo $RANDOM | sha256sum

📌 方法 3:在线生成点这里 生成 UUID)


🛠️ 开发

🔧 依赖环境

📌 后端: Go 1.22.5+
📌 前端: NodeJS 18+,推荐使用 PNPM
📌 VSCode 推荐插件:

  • gitlens(Git 扩展)
  • prettier(代码格式化)
  • eslint(代码规范检查)
  • golang(Go 语言支持)

🏗️ 启动

1️⃣ 使用 make(推荐)

后端:

cd moments
make backend-dev

前端(新终端):

cd moments
make frontend-install
make frontend-dev

2️⃣ 手动运行

后端:

cd moments/backend
go build -ldflags="-X main.version=local -X main.commitId=local" -o ./dist/moments
./dist/moments

前端:

cd moments/front
pnpm install
pnpm run dev

📍 启动后访问 http://localhost:3000


🌐 其他版本

项目 演示地址
RandallAnjie/moments https://moments.randallanjie.com

❤️ 致谢 Contributors

感谢所有贡献者!🎉

kingwrcy
kingwrcy

Randall
Randall

jonny
jonny

akari
akari

yee
yee

Chef
Chef

小王先森
小王先森

Athurg Gooth
Athurg Gooth

xuewenG
xuewenG

Secretlovez
Secretlovez

浪子
浪子

lateautumn2
lateautumn2

Jinvic
Jinvic

DIANSO
DIANSO

This project follows the all-contributors specification. Contributions of any kind welcome!

📌 欢迎贡献! 详情见 all-contributors 规范。


⭐ Star History

Star History

🔥 如果你觉得 Moments 还不错,欢迎点个 Star! 🚀