feat(install): 零输入一条命令部署 + 双架构发布包
- docker compose up -d 直接启动:entrypoint 在未显式提供密钥时自动生成随机 JWT_SECRET/ENCRYPTION_KEY 并持久化到数据卷 .secrets.env(0600,重启不变), 显式环境变量优先(单显式不被持久化文件覆盖,四场景实测);compose 去掉 :? 强制 - build.sh --dist / make dist:linux amd64 + arm64 两个 tar.gz(二进制+docs+homepage+README), 实测 15M/13M;安装文档重写为三方式(kubernetes/install.sh 一键、compose 一条命令、release 包) - README 快速开始同步
This commit is contained in:
1 parent
437ff56992
commit
0936234623
6 files changed
+98
-26
No files matched your search
+22
-17
@@ -1,44 +1,49 @@
|
||||
# 安装与启动
|
||||
|
||||
LokiStack 面向 Linux 服务器交付:单二进制(内嵌前端、文档与落地页),或 Docker / Kubernetes 一键部署。按环境三选一。
|
||||
|
||||
## 环境要求
|
||||
|
||||
- 平台自身:任意 Linux / macOS(Go 1.24 构建或直接使用发布二进制),内存 ≥ 256MB
|
||||
- 目标 Kubernetes 集群:≥ 1.20;或裸金属 Linux 主机(SSH 可达)
|
||||
- 端口:平台默认 8080;Loki 默认 3100
|
||||
- 平台自身:Linux x86_64 或 arm64,内存 ≥ 256MB
|
||||
- 目标 Kubernetes 集群 ≥ 1.20;或裸金属 Linux 主机(SSH 可达)
|
||||
|
||||
## 必备环境变量
|
||||
|
||||
平台启动强制要求两个密钥(长度均需 ≥ 32 字符):
|
||||
## 方式一:Kubernetes 一键部署
|
||||
|
||||
```bash
|
||||
export JWT_SECRET=$(openssl rand -hex 32)
|
||||
export ENCRYPTION_KEY=$(openssl rand -hex 32) # 凭证加密密钥,丢失将无法解密已存凭证
|
||||
bash kubernetes/install.sh
|
||||
```
|
||||
|
||||
## 方式一:开发模式
|
||||
自动适配阿里云 ACK / 腾讯云 TKE / AWS EKS / 华为云 CCE / GCP GKE / 自建集群,部署到 `log` 命名空间,幂等可重复执行。常用变量:
|
||||
|
||||
```bash
|
||||
./run.sh # 同时拉起前端(:3000)与后端(:8080),自动注入开发密钥
|
||||
WITH_NODEPORT=1 bash kubernetes/install.sh # 同时开 NodePort(配合 Ingress)
|
||||
STORAGE_CLASS=local-path bash kubernetes/install.sh # 手动指定 StorageClass
|
||||
```
|
||||
|
||||
## 方式二:生产 Docker
|
||||
## 方式二:Docker
|
||||
|
||||
```bash
|
||||
make secrets # 生成 ./secrets/*.txt
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
一条命令即可启动:未显式提供 `JWT_SECRET` / `ENCRYPTION_KEY` 时,容器自动生成随机密钥并持久化到数据卷(`$DATA_DIR/.secrets.env`,权限 0600),重启与升级保持不变。需要固定密钥或接入自有密钥管理时,再通过环境变量显式提供即可覆盖。
|
||||
|
||||
## 方式三:单二进制
|
||||
|
||||
从 Release 下载对应架构的包(Linux x86_64 / arm64):
|
||||
|
||||
```bash
|
||||
bash build.sh # 产物 backend/bin/lokistack(前端已内嵌)
|
||||
export JWT_SECRET=... ENCRYPTION_KEY=... DATA_DIR=/data
|
||||
curl -LO https://gitea.91ai.io/rlwj-lab/LokiStack/releases/download/v2.0.0/lokistack-linux-amd64.tar.gz
|
||||
tar xzf lokistack-linux-amd64.tar.gz && cd lokistack-linux-amd64
|
||||
export DATA_DIR=/data # 密钥未设置时启动会自动生成并持久化到 $DATA_DIR/.secrets.env
|
||||
./lokistack
|
||||
```
|
||||
|
||||
首次启动会自动创建管理员账号,初始密码写入 `$DATA_DIR/initial-admin-password.txt`,请立即修改。
|
||||
包内含二进制、用户手册(`/docs`)与落地页(`/homepage`),无需其它依赖;arm64 服务器换 `lokistack-linux-arm64.tar.gz`。
|
||||
|
||||
首次启动自动创建管理员账号,初始密码写入 `$DATA_DIR/initial-admin-password.txt`,请立即修改。
|
||||
|
||||
## 数据与升级
|
||||
|
||||
- 全部状态存储在 `$DATA_DIR/lokistack.json`(JSON 文件,无外部数据库依赖,单实例运行)
|
||||
- 升级:替换二进制后重启即可;历史命名数据文件(opsxloki.json / lokideploy.json)会在启动时自动迁移
|
||||
- 升级:替换二进制(或重新拉取镜像)后重启;历史命名数据文件会在启动时自动迁移
|
||||
Reference in new issue
Block a user