feat(config): 密钥自动生成下沉到后端 + 安装文档极简化
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s

- resolveSecrets 统一所有部署形态的零配置体验:显式 env 优先 → DATA_DIR/.secrets.env
  → 自动生成随机密钥持久化(0600,重启不变);无法持久化才拒绝启动(单测覆盖生成/复用/显式优先)
- install.md 重写为三方式各一条命令(K8s install.sh / docker compose up -d / release 包),
  密钥与数据说明收敛到统一「说明」一节;README Docker 段同步精简
This commit is contained in:
opsx committed 2026-10-29 16:07:58 +08:00
1 parent 88b2ac2a6d
commit 65bb29aa72
3 files changed
+111 -46

No files matched your search

+8 -36
View File
@@ -1,57 +1,29 @@
# 安装与启动
LokiStack 面向 Linux 服务器交付:单二进制(内嵌前端、文档与落地页),或 Docker / Kubernetes 一键部署。按环境选择。
## 一键安装(推荐)
```bash
bash -c "$(curl -fsSL https://gitea.91ai.io/rlwj-lab/LokiStack/raw/main/scripts/quick_start.sh)"
```
自动检测架构、下载发布包、生成随机密钥并注册 systemd 服务;重复执行即升级(数据自动备份)。可用环境变量覆盖安装目录(`INSTALL_DIR`)、版本(`VERSION`)、端口(`PORT`)与下载源(`BASE_URL`)。
## 环境要求
- 平台自身:Linux x86_64 或 arm64,内存 ≥ 256MB
- 目标 Kubernetes 集群 ≥ 1.20;或裸金属 Linux 主机(SSH 可达)
## 方式二:Kubernetes 一键部署
## 方式一:Kubernetes
```bash
bash kubernetes/install.sh
```
自动适配阿里云 ACK / 腾讯云 TKE / AWS EKS / 华为云 CCE / GCP GKE / 自建集群,部署到 `log` 命名空间,幂等可重复执行。常用变量:
```bash
WITH_NODEPORT=1 bash kubernetes/install.sh # 同时开 NodePort(配合 Ingress)
STORAGE_CLASS=local-path bash kubernetes/install.sh # 手动指定 StorageClass
```
## 方式三:Docker
## 方式二:Docker
```bash
docker compose up -d
```
一条命令即可启动:未显式提供 `JWT_SECRET` / `ENCRYPTION_KEY` 时,容器自动生成随机密钥并持久化到数据卷(`$DATA_DIR/.secrets.env`,权限 0600),重启与升级保持不变。需要固定密钥或接入自有密钥管理时,再通过环境变量显式提供即可覆盖。
## 方式四:单二进制
从 Release 下载对应架构的包(Linux x86_64 / arm64):
## 方式三:单二进制
```bash
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
```
包内含二进制、用户手册(`/docs`)与落地页(`/homepage`),无需其它依赖;arm64 服务器换 `lokistack-linux-arm64.tar.gz`。
arm64 服务器下载 `lokistack-linux-arm64.tar.gz`。
首次启动自动创建管理员账号,初始密码写入 `$DATA_DIR/initial-admin-password.txt`,请立即修改。
## 说明
## 数据与升级
- 全部状态存储在 `$DATA_DIR/lokistack.json`(JSON 文件,无外部数据库依赖,单实例运行)
- 升级:替换二进制(或重新拉取镜像)后重启;历史命名数据文件会在启动时自动迁移
- 未提供 `JWT_SECRET` / `ENCRYPTION_KEY` 时,自动生成随机密钥并持久化到数据目录(`.secrets.env`,权限 0600),重启与升级保持不变;显式设置环境变量可随时覆盖
- 全部状态存储在 `$DATA_DIR/lokistack.json`,单实例运行;首次启动自动创建管理员账号,初始密码在 `$DATA_DIR/initial-admin-password.txt`
- 升级:替换二进制或重新拉取镜像后重启,历史数据自动迁移