mili是一个开源的社区系统,界面优雅,功能丰富。 已在米粒网 得到应用,你完全可以用它来搭建自己的社区。mili的前端使用vue、iview等技术来开发,后端使用typescript、nodejs、nestjs、typeorm等技术来开发。
软件 | 版本 |
---|---|
nginx | 1.17.1 |
node.js | 8.4.0 |
mysql | 5.6.35 |
redis | 4.0.1 |
代码都不想拉?直接浏览器里面一步到位
容器比较多,需要一会儿。能看到命令行就是在运行了
注意: Dev container configuration
选择 Mili Container
打开映射端口 7780
(通常不需要这一步) 手动查看构建日志:
Use Cmd/Ctrl + Shift + P -> View Creation Log to see full logs
![]() |
![]() |
有时候 codespaces 卡了,导致数据库连不上,或者建表失败,可能要重跑一下。
重新跑基本上都能够运行成功了
docker compose down
sudo rm -rf runtime
docker compose up -d
管理后台: http://localhost:7780/admin/
git clone https://github.com/eric-gitta-moore/mili.git
cd mili
docker compose up -d
确保全程 🪜 在线,不然 docker.io 和 ghcr.io 拉不下来
macOS 建议使用 OrbStack (注意需要安装 Rosetta),Windows 建议使用 WSL2
# macOS M芯片(Apple Silicon)环境运行
# 由于项目依赖的一些组件在ARM架构上可能存在兼容性问题,需要使用x86_64模拟运行
export DOCKER_DEFAULT_PLATFORM=linux/amd64
# 普通环境运行
# 如果需要构建的话,需要在 docker-compose.yaml 中取消 build 的注释
docker compose up -d --build
注意:在 Apple Silicon 芯片的 Mac 上,某些依赖可能需要使用 x86_64 架构运行以避免兼容性问题。使用
--platform linux/amd64
参数可以确保容器在模拟的 x86_64 环境中运行。
强烈强烈强烈建议用 Docker Compose 来运行
不然 macOS Apple Silicon Chip 跑会搞死人,包括但不限于 Python2、Node 8、node-sass、C++、npm拉git 问题,还有数据库缺胳膊少腿
如果是 Docker Compose 运行的话,端口为: 7780
管理后台: http://localhost:9906/admin/
用户名: 13544443333
密码: 13544443333
127.0.0.1 local.nodejs123.com
请参考如下配置, 请修改日志目录
upstream nodejsAPI {
server 127.0.0.1:9905;
}
upstream nodejsStatic {
server 127.0.0.1:9906;
}
server {
listen 80;
server_name dev.golang123.com;
access_log /your/path/logs/golang123.access.log;
error_log /your/path/logs/golang123.error.log;
location /js {
proxy_pass http://nodejsStatic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /styles {
proxy_pass http://nodejsStatic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /images {
proxy_pass http://nodejsStatic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /fonts {
proxy_pass http://nodejsStatic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /sockjs-node {
proxy_pass http://nodejsStatic;
proxy_read_timeout 3600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /webpack-dev-server {
proxy_pass http://nodejsStatic;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /api/v1 {
proxy_pass http://nodejsAPI;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header x-forwarded-proto https;
}
location / {
proxy_pass http://nodejsAPI;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header x-forwarded-proto https;
}
}
请修改{项目目录}/src/config/cfg.default.ts 文件中mysql的配置
export default {
db: {
type: 'mysql',
host: 'localhost',
port: 3306,
...
},
redis: {
host: '127.0.0.1',
port: 6379,
keyPrefix: 'mili:',
family: 4, // 4 (IPv4) or 6 (IPv6)
password: '',
db: 0,
},
...
}
进入项目目录,输入命令
npm install
进入 {项目目录}/pc 目录下,输入命令
npm install
再输入
npm start
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"runtimeArgs": [
"--nolazy",
"-r",
"ts-node/register",
],
"args": [
"${workspaceFolder}/src/main.ts",
"|",
"./node_modules/.bin/pino-pretty"
],
"env": {
"NODE_ENV": "development"
},
"sourceMaps": true,
"cwd": "${workspaceFolder}",
"protocol": "inspector",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
]
}
按快捷键F5
来运行项目
首页: http://local.nodejs123.com
管理后台: http://local.nodejs123.com/admin/
用户名: mili
密码: 123456
Graphite 是一个用于收集、存储和可视化时间序列数据的开源监控系统。在本项目中,我们使用 Graphite 来收集和存储性能指标数据。
- Web 界面: http://localhost:8880
- 默认用户名: root
- 默认密码: root
- Carbon 缓存: 2003-2004 (接收指标数据)
- Carbon 聚合: 2023-2024
- StatsD UDP: 8125 (接收应用程序统计数据)
- StatsD 管理: 8126
Grafana 是一个强大的可视化和分析平台,可以将来自 Graphite 等多个数据源的数据以漂亮的仪表板形式展示。
- Web 界面: http://localhost:3000
- 默认用户名: admin
- 默认密码: admin
- 登录 Grafana
- 点击左侧菜单的 "Configuration" (⚙️) 图标
- 选择 "Data sources"
- 点击 "Add data source"
- 选择 "Graphite"
- 配置以下信息:
- Name: Graphite
- URL: http://graphite:80
- Access: Server (default)
- 点击 "Save & Test" 验证连接
- 点击左侧 "+" 图标
- 选择 "Create Dashboard"
- 点击 "Add visualization"
- 选择 "Graphite" 数据源
- 在查询编辑器中构建你的查询
常用指标示例:
- CPU 使用率:
stats.gauges.system.cpu.*
- 内存使用:
stats.gauges.system.memory.*
- API 响应时间:
stats.timers.api.*
- 请求计数:
stats.counters.http.*
GPL
Mili is GPL licensed.