MemRelay-Operation: memory-save:nixmsg-20260930-0505-techstack MemRelay-Resource: bc650d0d-5329-4212-bec2-c091db37278f
2.0 KiB
2.0 KiB
title, type, permalink, stable_id, scope, memory_type, project_id, usage_profile_id, status, revision, request_id, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | memory_type | project_id | usage_profile_id | status | revision | request_id | created_at | updated_at | tags | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NixMsg 系统技术栈选型(2026-09-30) | decision | main/projects/25464650-ed5d-440e-b362-190f2852d451/nix-msg-系统技术栈选型-2026-09-30 | bc650d0d-5329-4212-bec2-c091db37278f | project | decision | 25464650-ed5d-440e-b362-190f2852d451 | 0c9feb46-d06e-43cd-9ef0-c5813c84a998 | active | 1 | nixmsg-20260930-0505-techstack | 2026-09-29T20:54:32.371365+00:00 | 2026-09-29T20:54:32.371365+00:00 |
|
用户 2026-09-30 选定(已写入 DEVELOPMENT.md 第 2 节):
- 后端 Go,HTTP 用标准库 net/http(Go 1.22 路由),不用 Gin/chi/Echo。
- 数据库 SQLite(modernc.org/sqlite 纯 Go),database/sql 手写 SQL,不用 ORM 或 sqlc。
- 不用 Redis 或其他中间件。
- 前端 Vue 3 + TypeScript + Naive UI(用户选 Naive UI,我原推荐 Element Plus);Vite 构建后 go:embed 嵌进程序,运行时不需要 Node.js。
- 部署:单文件二进制为主,同时提供 Docker 镜像(amd64、arm64)和 docker-compose 示例。
- 监控:提供 Prometheus /metrics,只在后台监听开放;共用端口时要 metrics.token。
- 证书:用户生产服务器装有 1Panel。评估结论:保留「程序读取证书文件并每小时自动重载」,1Panel 负责申请和自动续签,并勾选「推送证书到本地目录」(写入 fullchain.pem、privkey.pem)给程序读;不用 1Panel OpenResty 终止 TLS,因为它的 TCP/UDP 代理不做 TLS,裸 TCP 设备无法加密且端会被拆到两个端口。开发环境用明文或 mkcert。 按推荐定下、用户未单独表态的:mochi-mqtt v2、coder/websocket、argon2id、go.yaml.in/yaml/v3、log/slog、prometheus/client_golang、自写迁移、Vite+Vue Router+Pinia+fetch、pnpm、Node 24 LTS(仅构建)、golangci-lint/ESLint/Prettier/vue-tsc、Vitest/Playwright、Taskfile、distroless static nonroot。代码仓库和 CI 尚未讨论。