{"id":50563990,"url":"https://github.com/akiiya/atria","last_synced_at":"2026-06-04T13:00:31.340Z","repository":{"id":362444574,"uuid":"1256141003","full_name":"akiiya/Atria","owner":"akiiya","description":"A lightweight self-hosted MTProto session manager built with Go. / 使用 Go 构建的轻量级自托管 MTProto Session 管理器。","archived":false,"fork":false,"pushed_at":"2026-06-04T08:45:25.000Z","size":191,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-04T09:11:49.218Z","etag":null,"topics":["account-management","gin","go","golang","gorm","mtproto","self-hosted","session-management","single-binary","sqlite","telegram"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akiiya.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-01T13:54:48.000Z","updated_at":"2026-06-04T08:44:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/akiiya/Atria","commit_stats":null,"previous_names":["akiiya/atria"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/akiiya/Atria","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiiya%2FAtria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiiya%2FAtria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiiya%2FAtria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiiya%2FAtria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akiiya","download_url":"https://codeload.github.com/akiiya/Atria/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akiiya%2FAtria/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33905359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["account-management","gin","go","golang","gorm","mtproto","self-hosted","session-management","single-binary","sqlite","telegram"],"created_at":"2026-06-04T13:00:30.427Z","updated_at":"2026-06-04T13:00:31.318Z","avatar_url":"https://github.com/akiiya.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Atria\n\n\u003e A lightweight self-hosted MTProto session manager built with Go.\n\u003e\n\u003e 使用 Go 构建的轻量级自托管 MTProto Session 管理器。\n\n**Atria** 是一个轻量、自托管的 MTProto 多账号 Session 管理面板。它通过安全的内嵌 Web 界面，管理多个 Telegram 兼容的 MTProto 用户 Session、API 凭据配置、账号元信息和审计日志。\n\n\u003e **当前版本：v0.1.0-alpha** — 首个 alpha 版本，真实 Telegram 登录需要用户在真实环境中手动验证。\n\n\u003e **Atria 与 Telegram 无关（Atria is not affiliated with Telegram）。**\n\u003e\n\u003e **Atria 不是垃圾消息、刷量、绕过平台限制或批量骚扰工具。**\n\u003e\n\u003e **Atria 不实现批量消息、批量邀请或平台限制绕过功能。**\n\n---\n\n## 核心特性\n\n- **多账号 Session 管理** — 从单一面板管理多个 Telegram 兼容 MTProto 用户 Session\n- **真实 MTProto 登录** — 支持手机号验证码登录、两步验证（2FA）、加密 Session 保存\n- **账号资料同步** — 基于已保存 Session 同步 Telegram 账号基础资料\n- **Session 状态检测** — 检测已保存 Session 的有效性\n- **远端 Logout** — 通过 MTProto 注销 Telegram 远端 Session，同时删除本地文件\n- **本地删除 Session** — 仅删除本地加密 Session 文件，不调用 Telegram\n- **Session 生命周期管理** — 完整处理登录→保存→同步→检测→失效→重新登录闭环\n- **API 凭据管理** — 配置和切换多组 API ID/Hash，支持独立的风险策略\n- **加密存储** — Session 文件加密存储，数据库中不保存明文 Session 数据\n- **审计日志** — 追踪所有管理操作的详细审计记录\n- **Web 自更新** — 设置页可检查更新、下载、Dry-Run 验证、应用更新（alpha 能力）\n- **现代化 Web 界面** — 全屏管理面板，支持浅色/深色/跟随系统主题\n- **单二进制部署** — 构建产物为单一可执行文件，所有 Web 资源内嵌，运行时无外部依赖\n- **SQLite 默认** — 零配置即可启动；可选 PostgreSQL / MySQL / MariaDB\n\n## 远端 Logout 与本地删除 Session\n\nAtria 提供两种移除账号 Session 的方式：\n\n**远端 Logout：**\n- 通过 MTProto 调用 Telegram 的 auth.logOut\n- 使该 Session 在 Telegram 远端失效\n- 同时删除本地加密 Session 文件\n- 删除后需要重新登录才能继续管理该账号\n\n**本地删除 Session：**\n- 仅删除 Atria 本地保存的加密 Session 文件\n- 不调用 Telegram 远端注销\n- Telegram 远端 Session 可能仍然有效\n- 删除后需要重新登录才能继续管理该账号\n\n## 非目标\n\nAtria 专为合法的 Session 管理设计，**明确不支持**：\n\n- 批量消息或垃圾信息\n- 批量邀请成员或加入群组\n- 绕过平台限制\n- 账号交易或账号市场\n- 手机号采集或接码平台\n- 批量登录或批量 Logout\n- 任何形式的自动化骚扰\n\n## 快速开始\n\n```bash\n# 构建\ngo build -o atria ./cmd/atria\n\n# 运行（默认监听 http://127.0.0.1:8080）\n./atria serve\n```\n\n首次启动后，访问 Web 界面初始化管理员账号。\n\n## 安装\n\n### Linux 一键安装\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/akiiya/Atria/main/scripts/install.sh | bash\n```\n\n安装后访问 http://127.0.0.1:8080\n\n**Try-Run 模式（不写入系统路径）：**\n```bash\nATRIA_INSTALL_DRY_RUN=1 bash install.sh\n```\n\n### 手动安装\n\n从 [GitHub Releases](https://github.com/akiiya/Atria/releases) 下载对应平台的压缩包，解压后运行 `./atria serve`。\n\n### 从源码构建\n\n```bash\ngo build -o atria ./cmd/atria\n./atria serve\n```\n\n## 配置\n\nAtria 支持零配置启动，所有设置都有合理默认值：\n\n| 配置项 | 默认值 | 环境变量 |\n|--------|--------|----------|\n| 监听地址 | 127.0.0.1 | ATRIA_HOST |\n| 监听端口 | 8080 | ATRIA_PORT |\n| 数据目录 | ./data | ATRIA_DATA_DIR |\n| 数据库驱动 | sqlite | ATRIA_DB_DRIVER |\n| 数据库连接 | ./data/atria.db | ATRIA_DB_DSN |\n| Session 目录 | ./data/sessions | ATRIA_SESSION_DIR |\n| 日志目录 | ./data/logs | ATRIA_LOG_DIR |\n| 加密密钥 | （自动生成） | ATRIA_SECRET_KEY |\n\n## 数据目录\n\nAtria 所有运行时数据存储在 `./data/` 目录下：\n\n```\ndata/\n├── atria.db          # SQLite 数据库\n├── secret.key        # 加密密钥（自动生成，权限 0600）\n├── sessions/         # 加密的 MTProto Session 文件\n└── logs/             # 应用日志\n```\n\n**重要提示：** 请务必备份 `secret.key` 文件。丢失密钥将导致加密的 Session 数据无法恢复。\n\n## 安全\n\n- 密码使用 bcrypt 或 argon2id 哈希存储（永不保存明文）\n- API Hash 在数据库中加密存储\n- Session 文件使用本地密钥加密\n- 日志中不出现敏感数据（密码、API Hash、Session 内容、验证码）\n- 所有状态变更操作提供 CSRF 保护\n- Cookie 安全属性（HttpOnly、Secure、SameSite）\n\n详见 [docs/06_security_policy.md](docs/06_security_policy.md)。\n\n## 风险策略\n\n每个 API 凭据可配置独立的风险策略：\n\n- **disabled** — 禁止高风险操作（默认）\n- **enabled** — 允许高风险操作\n- **confirm** — 需要用户明确确认\n\n## 部署理念\n\n- **单二进制** — 构建产物为单一可执行文件\n- **默认 SQLite** — 零配置即可启动\n- **无配置启动** — 所有设置有合理默认值\n- **可选数据库** — 支持 PostgreSQL / MySQL / MariaDB\n\n## Web 自更新\n\n设置页支持检查更新、下载、Dry-Run 验证和应用更新。\n\n- 真实 GitHub Release 自更新需要 tag 和 release 产物\n- Docker 环境不支持容器内自更新，请使用新镜像重建\n- 自更新仍为 alpha 能力，详见 [docs/12_web_self_update.md](docs/12_web_self_update.md)\n- 普通用户可继续使用 `install.sh` 手动升级\n\n## 技术栈\n\n- **Go** + **Gin** Web 框架\n- **GORM** ORM，默认 SQLite，可选 PostgreSQL / MySQL / MariaDB\n- **Go embed** 实现单二进制 Web 资源嵌入\n- **Go html/template** 服务端渲染，无 Node.js 构建链\n\n## 项目结构\n\n```\natria/\n├── cmd/atria/              # 应用入口\n├── internal/\n│   ├── config/             # 配置加载\n│   ├── crypto/             # 加密工具\n│   ├── database/           # 数据库初始化\n│   ├── model/              # GORM 数据模型\n│   ├── server/             # HTTP 服务器和路由\n│   ├── updater/            # 自更新接口（预留）\n│   ├── version/            # 版本信息\n│   └── web/                # 嵌入式 Web 资源访问\n├── web/\n│   ├── templates/          # HTML 模板\n│   └── static/             # CSS 和静态文件\n└── docs/                   # 项目文档\n```\n\n## 文档\n\n- [项目范围](docs/01_project_scope.md)\n- [Telegram API 调研](docs/02_telegram_api_research.md)\n- [架构设计](docs/03_architecture.md)\n- [数据模型](docs/04_data_model.md)\n- [开发计划](docs/05_development_plan.md)\n- [安全策略](docs/06_security_policy.md)\n- [UI 设计指南](docs/07_ui_design_guidelines.md)\n- [Release 与自更新设计](docs/08_release_and_self_update.md)\n- [手动验证指南](docs/09_manual_mtproto_login_test.md)\n- [真实环境验证报告](docs/10_real_world_validation_report.md)\n- [发布与安装指南](docs/11_release_and_installation.md)\n- [Web 自更新](docs/12_web_self_update.md)\n- [更新日志](CHANGELOG.md)\n- [安全策略](SECURITY.md)\n- [贡献指南](CONTRIBUTING.md)\n\n## 本地测试\n\n```bash\n# Smoke test（基础启动验证）\nbash scripts/smoke.sh\n\n# 全流程自动化测试（构建、打包、安装模拟）\nbash scripts/full_check.sh\n```\n\n所有测试使用 `tmp/` 沙箱，不访问真实 Telegram 网络。\n\n## 数据目录安全\n\n`data/` 目录包含敏感数据，**不得提交到代码仓库**：\n\n- `atria.db` — SQLite 数据库\n- `secret.key` — 加密密钥（丢失后无法恢复 Session）\n- `sessions/` — 加密的 MTProto Session 文件\n- `logs/` — 应用日志\n\n项目已包含 `.gitignore` 自动排除这些文件。\n\n## 许可证\n\nApache-2.0 — 详见 [LICENSE](LICENSE)。\n\n## 免责声明\n\nAtria is not affiliated with Telegram. Atria is designed for legitimate session management only. Users are responsible for complying with Telegram's Terms of Service and applicable laws.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiiya%2Fatria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakiiya%2Fatria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakiiya%2Fatria/lists"}