Skip to content

Repository files navigation

HaloLight Fly.io

LicenseFly.ioNext.jsTypeScriptReact

HaloLight 后台管理系统的 Fly.io 部署版本,支持全球边缘部署、持久化存储和有状态服务。

功能亮点

  • 全球边缘部署:35+ 区域就近部署
  • Fly Machines:微型虚拟机,按需启动
  • Fly Volumes:持久化 NVMe 存储
  • Fly Postgres:托管 PostgreSQL
  • 私有网络:应用间私有通信
  • 自动扩缩容:根据负载自动调整

快速开始

# 克隆仓库
git clone https://github.com/halolight/halolight-fly.git
cd halolight-fly
# 安装依赖
pnpm install
# 安装 Fly CLI
brew install flyctl
# 登录 Fly.io
fly auth login
# 本地开发
pnpm dev

部署到 Fly.io

# 创建应用
fly launch
# 部署
fly deploy
# 查看状态
fly status
# 查看日志
fly logs

Fly.io 配置

fly.toml

app = "halolight-fly"primary_region = "hkg"
[build]
dockerfile = "Dockerfile"
[http_service]
internal_port = 3000force_https = trueauto_stop_machines = trueauto_start_machines = truemin_machines_running = 1
[[vm]]
cpu_kind = "shared"cpus = 1memory_mb = 512

Dockerfile

FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]

持久化存储

# 创建 Volume
fly volumes create data --region hkg --size 10
# 挂载到应用# 在 fly.toml 中添加:
[mounts]
source = "data"
destination = "/data"

Fly Postgres

# 创建 Postgres 集群
fly postgres create
# 连接到应用
fly postgres attach --app halolight-fly

环境变量

# 设置密钥
fly secrets set DATABASE_URL="postgres://..."
fly secrets set API_KEY="your-api-key"

相关链接

许可证

MIT

About

✈️ Fly.io 全球边缘部署 Global Edge - 自动扩缩容, Volumes 持久化, 多区域 Multi-region → halolight-fly.h7ml.cn

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages