编辑
2026-02-15
学习笔记
00

相关信息

本文记录 O365-UC 后端Debian 11 + Python 3.9 环境下的完整、可复现部署流程,包含虚拟环境、systemd 常驻运行以及生产环境建议,适合直接用于 VPS / 服务器部署。

一、系统准备

  1. 更新系统并安装依赖
bash
sudo apt update && sudo apt upgrade -y sudo apt install -y \ python3 python3-pip python3-venv \ git curl build-essential \ libssl-dev libffi-dev

说明:

python3-venv:用于创建 Python 虚拟环境

build-essential + libssl-dev + libffi-dev:部分 Python 模块编译所需

  1. 确认 Python 版本
bash
python3 --version # 要求:Python >= 3.9

二、获取 O365-UC 后端代码

bash
cd ~ git clone https://github.com/HuJK/O365-UC.git cd O365-UC/backend

三、创建 Python 虚拟环境(推荐)

用于解决 root pip 警告和依赖隔离问题。

bash
python3 -m venv venv source venv/bin/activate

激活成功后终端会显示:

text
(venv)

四、安装 Python 依赖

  1. 安装依赖
bash
pip install --upgrade pip pip install tornado js2py requests msal flask pycryptodome
  1. 验证依赖是否正常
bash
python -c "import tornado, js2py, requests, msal, flask, Crypto; print('All OK')"

注意:pycryptodome 的导入名为 Crypto

五、Azure 应用注册配置

  1. 登录 Azure Portal

https://portal.azure.com

路径:

Azure Active Directory → App registrations → New registration
  1. 应用注册信息
  • Name:O365-UC-App
  • Supported account types:单租户
  • Redirect URI(Web):
https://<你的IP或域名>:12536/api/setCode

⚠️ 回调地址必须完全匹配

  1. 保存以下信息:
  • Client ID
  • Client Secret
  1. API 权限配置
  • 添加:
    • User.ReadWrite.All
    • Directory.ReadWrite.All
  • Grant admin consent

六、手动测试启动后端

bash
cd ~/O365-UC/backend source venv/bin/activate python3 o365-creater_api.py

默认端口:

12536

访问:

http://<你的IP>:12536

出现 SSL 报错或 401 日志均为正常现象。

七、配置 systemd 服务(后台运行)

创建服务文件:

bash
nano /etc/systemd/system/o365-uc.service

内容如下:

ini
[Unit] Description=O365-UC Backend Service After=network.target [Service] Type=simple User=root WorkingDirectory=/root/O365-UC/backend ExecStart=/root/O365-UC/backend/venv/bin/python3 /root/O365-UC/backend/o365-creater_api.py Restart=always RestartSec=5 StandardOutput=syslog StandardError=syslog SyslogIdentifier=o365-uc [Install] WantedBy=multi-user.target

启动并查看状态:

bash
systemctl daemon-reload systemctl enable o365-uc systemctl start o365-uc systemctl status o365-uc

查看日志:

bash
journalctl -u o365-uc -f

八、访问与 OAuth 授权

访问:

http://<你的VPS IP>:12536

完成授权后页面显示:

Finished.

九、生产环境建议

Caddy 反向代理示例:

caddyfile
yourdomain.com { reverse_proxy 127.0.0.1:12536 }

访问:

https://yourdomain.com

十、总结

项目说明
系统依赖Python 3.9 + 编译环境
虚拟环境venv 隔离依赖
OAuth回调地址必须匹配
后端systemd 常驻
生产域名 + HTTPS

本文作者:我本无罪

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!