从 v0.2.1 开始,Moments 采用 Golang 重写服务端,包体积更小,功能更强!
仍需 v0.2.0 版本?点这里
- 默认管理员:
admin/a123456,登录后可在后台修改密码 - 多用户模式:可以在后台设置是否允许用户注册
- 支持使用 Markdown 语法编写
- 支持修改发布时间,若发布时间晚于当前时间,则对游客不可见
- 支持添加标签,方便分类查找
- 支持上传图片、视频
- 支持引用外部音乐、外部视频、外部链接
- 支持引用豆瓣读书、豆瓣电影
- 支持点赞、评论,可在后台开启/关闭评论功能
上传到服务器时:
- 支持上传到服务器的
$UPLOAD_DIR目录下 - 上传文件时,会先通过 SHA256 检查文件是否被上传过,若上传过则可以“秒传”
- 上传图片时,会自动创建图片的缩略图,在浏览 Memo 时默认加载缩略图
- 上传文件时,会和 Memo 产生关联,可以在设置中清理无用的文件,无用的文件将会被整理到
$UPLOAD_DIR/removed目录下
上传到 S3 时:
- 支持上传到兼容 S3 的存储服务
- 开启 S3 时,可以设置图片压缩后缀,在浏览 Memo 时,会默认请求带后缀的图片加载缩略图
以下功能没有详细介绍,请自行探索:
- 友情链接
- 邮件通知
- RSS 订阅
- 暗黑模式
- 数据库自动备份,当检测到启动的版本发生变化时,自动备份数据库文件到
$DB目录下
支持通过环境变量进行配置:
| 变量名 | 说明 | 默认值 |
|---|---|---|
| PORT | 监听端口 | 3000 |
| CORS_ORIGIN | 允许的跨域 Origin 列表 | 空,多个 Origin 可以使用英文逗号分隔,如 http://127.0.0.1,http://10.10.10.10 |
| JWT_KEY | JWT 密钥 | 空,不填写则随机生成,重启后需重新登录 |
| DB | SQLite 数据库存放目录 | /app/data/db.sqlite |
| UPLOAD_DIR | 上传文件本地目录 | /app/data/upload |
| LOG_LEVEL | 日志级别 | info,可选 debug |
| ENABLE_SWAGGER | 启用 Swagger 文档 | false,可选 true,通过 /swagger/index.html 访问 |
| ENABLE_SQL_OUTPUT | 启用 SQL 输出 | false,可选 true |
支持 .env 文件加载环境变量,示例:
JWT_KEY=your_secret_key
LOG_LEVEL=info启动容器(需替换 $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镜像标签可选:
- latest:稳定版
- dev:开发版,功能前沿但相对不稳定
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 校验码,验证文件完整性 |
方法 1:OpenSSL
openssl rand -hex 32方法 2:SHA256
echo $RANDOM | sha256sum方法 3:在线生成(点这里 生成 UUID)
后端:Go 1.23.3+ 前端:NodeJS 18+,使用 PNPM 管理依赖
VSCode 推荐插件:
- gitlens:Git 扩展
- prettier:代码格式化
- eslint:代码规范检查
- golang:Go 语言支持
后端:
cd moments
make backend-dev前端(新终端):
cd moments
make frontend-install
make frontend-dev后端:
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 |
感谢所有贡献者!
kingwrcy |
Randall |
jonny |
akari |
yee |
Chef |
小王先森 |
Athurg Gooth |
xuewenG |
Secretlovez |
浪子 |
lateautumn2 |
Jinvic |
DIANSO |
This project follows the all-contributors specification. Contributions of any kind welcome!
欢迎贡献!详情见 all-contributors 规范。
如果你觉得 Moments 还不错,欢迎点个 Star!