相关信息
本文记录 O365-UC 后端 在 Debian 11 + Python 3.9 环境下的完整、可复现部署流程,包含虚拟环境、systemd 常驻运行以及生产环境建议,适合直接用于 VPS / 服务器部署。
一、系统准备
bashsudo 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 模块编译所需
bashpython3 --version
# 要求:Python >= 3.9
二、获取 O365-UC 后端代码
bashcd ~
git clone https://github.com/HuJK/O365-UC.git
cd O365-UC/backend
三、创建 Python 虚拟环境(推荐)
用于解决 root pip 警告和依赖隔离问题。
bashpython3 -m venv venv
source venv/bin/activate
激活成功后终端会显示:
text(venv)
四、安装 Python 依赖
bashpip install --upgrade pip pip install tornado js2py requests msal flask pycryptodome
bashpython -c "import tornado, js2py, requests, msal, flask, Crypto; print('All OK')"
注意:pycryptodome 的导入名为 Crypto
五、Azure 应用注册配置
路径:
Azure Active Directory → App registrations → New registration
https://<你的IP或域名>:12536/api/setCode
⚠️ 回调地址必须完全匹配
六、手动测试启动后端
bashcd ~/O365-UC/backend
source venv/bin/activate
python3 o365-creater_api.py
默认端口:
12536
访问:
http://<你的IP>:12536
出现 SSL 报错或 401 日志均为正常现象。
七、配置 systemd 服务(后台运行)
创建服务文件:
bashnano /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
启动并查看状态:
bashsystemctl daemon-reload
systemctl enable o365-uc
systemctl start o365-uc
systemctl status o365-uc
查看日志:
bashjournalctl -u o365-uc -f
八、访问与 OAuth 授权
访问:
http://<你的VPS IP>:12536
完成授权后页面显示:
Finished.
九、生产环境建议
Caddy 反向代理示例:
caddyfileyourdomain.com { reverse_proxy 127.0.0.1:12536 }
访问:
https://yourdomain.com
十、总结
| 项目 | 说明 |
|---|---|
| 系统依赖 | Python 3.9 + 编译环境 |
| 虚拟环境 | venv 隔离依赖 |
| OAuth | 回调地址必须匹配 |
| 后端 | systemd 常驻 |
| 生产 | 域名 + HTTPS |
本文作者:我本无罪
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!