独立部署(零依赖)

独立部署

独立部署模式使用 SQLite 数据库和内存缓存,无需安装 MySQL、Redis 等外部服务,适合个人使用和快速体验。

下载

前往项目 Release 页面,下载对应平台的预编译二进制文件:

平台 架构 文件名示例
Linux x86_64 mliev-iam_Linux_x86_64.tar.gz
Linux ARM64 mliev-iam_Linux_arm64.tar.gz
Linux LoongArch mliev-iam_Linux_loong64.tar.gz
macOS Intel mliev-iam_Darwin_x86_64.tar.gz
macOS Apple Silicon mliev-iam_Darwin_arm64.tar.gz
Windows x86_64 mliev-iam_Windows_x86_64.zip
Windows ARM64 mliev-iam_Windows_arm64.zip
# 下载并解压(以 Linux x86_64 为例)
wget <release-url>/mliev-iam_Linux_x86_64.tar.gz
tar -xzf mliev-iam_Linux_x86_64.tar.gz
chmod +x mliev-iam

配置

创建 config.yaml 配置文件(最小配置,使用 SQLite):

app:
  installed: false

server:
  mode: release
  addr: ":8080"

database:
  driver: sqlite
  filepath: "./data/mliev_iam.db"

cache:
  driver: memory

jwt:
  secret: "请替换为一个随机的长字符串"
  expire_hours: 24

启动

./mliev-iam

首次启动后访问 http://localhost:8080,按照安装向导完成初始化设置。

Systemd 服务(Linux)

创建服务文件 /etc/systemd/system/mliev-iam.service

[Unit]
Description=MLiev IAM Service
After=network.target

[Service]
Type=simple
User=mliev-iam
WorkingDirectory=/opt/mliev-iam
ExecStart=/opt/mliev-iam/mliev-iam
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
# 启用并启动服务
sudo systemctl enable mliev-iam
sudo systemctl start mliev-iam

# 查看状态
sudo systemctl status mliev-iam

# 重载配置(不停机)
sudo systemctl reload mliev-iam

Nginx 反向代理

server {
    listen 443 ssl;
    server_name auth.example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        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 $scheme;
        proxy_set_header X-Forwarded-Host $host;
    }
}

重要:使用反向代理时,必须在 config.yaml 中将 oidc.issuer 设置为外部访问地址(如 https://auth.example.com),并确保 Nginx 传递 X-Forwarded-ProtoX-Forwarded-Host 头部。

从源码构建

如果需要自行编译:

# 仅编译后端
make build-go

# 编译前端 + 后端(需要 Node.js 22+ 和 pnpm)
make all

生成的可执行文件为 ./mliev-iam