用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器

前言:

MS365 E5 RenewX想必大家都不陌生吧;

图片[1]-用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器

发布本教程的目的,是为了记录自己的搭建过程,同时在这里感谢源码的作者辛勤付出和开源,感兴趣的可以去仓库点亮Stars,连接会放在文末。

Microsoft 365 E5 Renew X是一款网页版的E5续订服务,其依赖网页浏览器呈现支持用户多端操作,完全将E5账户API调用托管在了服务器端因此用户无需电脑也可使用。

Microsoft 365 E5 Renew X 由来
Microsoft 365 E5 Renew X为Microsoft 365 E5 Web的升级版,相对于旧版其增强了管理功能且更容易部署,API调用内核继承于续订桌面版软件Microsoft 365 E5 Renew Plus。

主要功能
用户端
两种可选的调用权限:用户未登录作为守护程序调用(需要客户端密码)、程序以登录用户身份直接调用(需要账户密码)
API种类齐全:41/30个可选的Microsoft Graph REST API Beta中的API(未来可能会继续添加)
完全随机的API调用模式:从已选定的API序列中随机抽取一个或几个进行调用(个数和API随机)
完全随机的API调用时间间隔:随机区段1000s-2000s固定
完全随机的API内容(仅部分API支持):发送邮件的内容随机 Onedirve上传文件的内容随机
邮件通知服务:支持设置通知邮箱,调用异常会通过邮件通知无需反复登录查看
部署端
平台兼容性:使用Asp.Net Core 作为跨平台框架增适用于 Windows|Linux|MacOS x64|x86|ARM64|ARM
灵活部署:支持开放站点部署和私享部署,私享部署不再强制要求配置Https和OAuth
无需数据库:不需要后台数据库支持,前后台一体化程序
用户后台管理:可修改用户的E5账户数量,以及封删管理
系统状态监视:系统占用率一目了然,可控的站点注册通道更容易控制系统用户数量
自定义页面:支持自定义HTML静态页面,可设置支付宝、微信收款码
显示ICP备案:支持ICP备案文字显示,可在国内备案建站
无人值守 运行自动暂停:可自动暂停有错误率过高的账号API调用
无人值守 自动恢复运行:可定期自动恢复全部账号的API调用,防止因微软网络原因触发大量账号停止API调用进而导致的账号续期失败

搭建步骤

安装docker,可到官方安装最新的Docker。

使用 root 权限登录 Centos。确保 yum 包更新到最新。

sudo yum update

安装的yum工具集

yum install -y yum-utils

安装docker-ce的yum源

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker-ce

yum install docker-ce

在 CentOS 上安装 Docker,这里是官方安装说明

设置存储库 

yum-utils
yum-config-manager
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装 Docker 引擎 

安装 Docker Engine、containerd 和 Docker Compose:

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动 Docker

sudo systemctl start docker

查看docker服务状态

systemctl status docker.service

开启自启动

systemctl enable docker.service

开启服务

systemctl start docker.service

配置Docker Compose环境:

安装compose v2

curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

将可执行权限应用于安装目标路径中的独立二进制文件

chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

使用 测试和执行撰写命令

docker-compose

详细安装请看官方说明

部署Microsoft 365 E5 Renew X

我们先在root文件目录下创建一个目录为ms365e5renewx的文件夹,在文件夹下并创建docker-compose.yml文件,具体创建命令这里就不叙述了,一般的都懂。

还是附上命令吧,嘎嘎

mkdir ~/ms365e5renewx
cd ~/ms365e5renewx
touch docker-compose.yml

打开docker-compose.yml,按下面的示例写入(无需修改)

version: '3'
services:
  nginx:
    image: nginx:alpine
    container_name: nginx
    restart: always
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:rw
      - ./nginx/conf.d/:/etc/nginx/conf.d/:rw
      - ./nginx/log/:/var/log/nginx/:rw
      - ./nginx/cert/:/etc/nginx/cert/:rw
      - ./nginx/html/:/usr/share/nginx/html/:rw
    network_mode: host
  e5renewx:
    image: gladtbam/ms365_e5_renewx:latest
    container_name: e5renewx
    restart: always
    volumes:
      - ./e5renewx/Deploy/:/renewx/Deploy/:rw
      - ./e5renewx/appdata/:/renewx/appdata/:rw
      - ./e5renewx/static/:/renewx/wwwroot/static/:rw
    ports:
      - 1077:1077

示例中使用Nginx反代Renew X,实现强制https访问,比如避免暴露更多端口,以及可以和同一台服务器上的其他web服务共用80\443端口等,也可以不需要,自己用其他方法实现反代。

接下来我们在文件夹下面创建以下文件和文件夹,注意创建后要检查是否创建成功,否则会部署失败,提前创建的目录和文件归属是root用户,你懂的。

cd ~/ms365e5renewx
mkdir -p nginx/conf.d
touch e5renewx.conf
mkdir nginx/cert
mkdir -p e5renewx/Deploy

反向代理

以下为反向代理示例,根据你自己的更改

upstream e5renewx {
    server localhost:1077;
}
server {
    listen 80;
    listen [::]:80;
    server_name 你的域名如e5renewx.curious.host;
    return 301 https://${server_name}$request_uri;
}
server {
    listen               443 ssl;
    listen               [::]:443 ssl;
    server_name          你的域名如e5renewx.curious.host;
    keepalive_timeout    1800;
    client_max_body_size 100M;
    sendfile             on;
    ssl_certificate      /etc/nginx/cert/你的pem文件名;
    ssl_certificate_key  /etc/nginx/cert/对应的key文件名;


    location /
    {
        proxy_pass https://e5renewx;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

注意,共享站要求全链路HTTPS,因此本示例中proxy_pass模块后必须对应包含https;//的地址。proxy_set_header为请求头传递,以便被代理的服务器获得用户真实IP,利于站点安全审计。

Renew X配置

首先在你在PC上到这里:https://sundayrx.lanzoui.com/aW09Lsss75g下载服务程序源文件。解压后找到Deploy文件夹下的Config.xml文件,初始内容如下:

<?xml version="1.0" encoding="utf-8" ?>
<Configuration>
	<!--站点服务器基本配置-->
	<Serivce>
		<!--服务访问端口-->
		<Port>1066</Port>
		<!--管理员密码(管理员登录路由/Admin/Login) 重要:首次启动前必须更改-->
		<LoginPassword>12345678</LoginPassword>
		<!--是否启用内核多线程支持-->
		<CoreMultiThread>true</CoreMultiThread>
		<!--网站备案号(选填)-->
		<ICP></ICP>
		<!--备案管理查询机构跳转链接(选填)-->
		<ICPLink>https://beian.miit.gov.cn</ICPLink>
	</Serivce>
	<!--站点Kestrel服务器HTTPS配置 (只支持IIS证书类型 即PFX格式的证书)-->
	<HTTPS>
		<!--Kestrel是否启用HTTPS(SSL加密传输)-->
		<Enable>false</Enable>
		<!--SSL证书文件名 (需要将PFX格式的SSL证书放置于该配置文件的同级目录Deploy文件夹下) 如e5.sundayrx.net.pfx-->
		<!--不填则默认使用Dev localhost 本地证书-->
		<Certificate></Certificate>
		<!--SSL证书密钥(PFX证书的访问密钥)-->
		<Password></Password>
	</HTTPS>
	<!--共享站点配置,不共享可无视以下内容 (若要共享站点 请自备以下所需的配置信息 且配置中HTTPS必须启用)-->
	<ShareSite>
		<!--是否启用站点共享-->
		<Enable>false</Enable>
		<!--SMTP邮件发送支持-->
		<SMTP>
			<!--发件邮箱-->
			<Email></Email>
			<!--邮箱密钥-->
			<Password></Password>
			<!--SMTP服务器地址-->
			<Host></Host>
			<!--SMTP服务器端口-->
			<Port>587</Port>
			<!--SMTP服务器是否使用SSL传输-->
			<EnableSSL>true</EnableSSL>
		</SMTP>
		<!--第三方OAuth登录支持(至少启用以下一种OAuth否则其他用户无法注册)-->
		<OAuth>
			<!--微软登录授权-->
			<Microsoft>
				<!--是否启用该OAuth-->
				<Enable>true</Enable>
				<!--应用程序Id-->
				<ClientId></ClientId>
				<!--应用程序访问机密-->
				<ClientSecret></ClientSecret>
			</Microsoft>
			<!--GitHub登录授权-->
			<Github>
				<!--是否启用该OAuth-->
				<Enable>true</Enable>
				<!--应用程序Id-->
				<ClientId></ClientId>
				<!--应用程序访问机密-->
				<ClientSecret></ClientSecret>
			</Github>
		</OAuth>
		<!--站点系统设置-->
		<System>
			<!--站点启动后默认是否允许用户注册 建议为false-->
			<AllowRegister>false</AllowRegister>
			<!--站点启动后默认公告(换行符请使用 &#x000D;&#x000A; 进行换行)-->
			<Notice></Notice>
			<!--站点运营者-->
			<Master></Master>
			<!--站点运营者推广链接-->
			<MasterLink></MasterLink>
			<!--站点新用户默认配额数-->
			<DefaultQuota>1</DefaultQuota>
			<!--站点自动特赦时间间隔 (单位:天 至少30天)-->
			<AutoSpecialPardonInterval>30</AutoSpecialPardonInterval>
		</System>
	</ShareSite>
</Configuration>

其中管理员密码务必更改为仅你自己知道的强密码。

开放站点必须开启HTTPS:

Configuration.HTTPS.Enable设置为true,

Configuration.HTTPS.Certificate设置为我们上传到~/ms365e5renewx/e5renewx/Deploy/下的PFX文件的名称(包括后缀名),

Configuration.HTTPS.Password设置为PFX文件的密码。

SMTP部分:建议准备一个空闲的Outlook个人邮箱,将邮箱、密码依次填好,SMTP服务器地址填smtp.office365.com,端口无需改动。

开放站点若要支持某种第三方注册方式(微软账户或GitHub账户),则必须在Config.xml正确配置了相应的OAuth选项。

Github OAuth 获取方式

进入你的GitHub Profile

左侧栏底部Developer Settings

OAuth Apps -> New Oauth App

填写任意Application Name

Homepage URL 填写https://你的域名

Authorization callback URL 填写https://你的域名/signin-github

Register Application

Generate a new client secret

Client ID和Secret填入上述Config.xml相应位置

Microsoft OAuth 获取方式

进入你的Azure应用注册页面

新注册

受支持的账户类型->任何组织目录(任何 Azure AD 目录 – 多租户)中的帐户和个人 Microsoft 帐户(例如,Skype、Xbox)

重定向 URI :选择平台->Web,填入https://你的域名/signin-microsoft

注册后进入应用

应用->概述中的“应用程序(客户端) ID”填入Config.xml相应ClientId

应用->证书和密码->新客户端密码,生成的密码记录的“值”填入Config.xml相应ClientSecret

其余自定义参数释义参考服务程序作者的说明:https://blog.csdn.net/qq_33212020/article/details/119747634

全部填写完成后将Config.xml上传至你的服务器~/ms365e5renewx/e5renewx/Deploy/目录下。【可选】将服务程序源文件中解压出的wwwroot文件夹,完整地上传至服务器~/ms365e5renewx/目录下,其中/wwwroot/static/Donate.html为站点捐助页面的静态网页,可由站长自行编写。

运行Renew X

在docker-compose.yml所在目录下执行命令:

docker compose up -d

首次运行要拉取镜像,可能较慢,如果网络实在不佳,请考虑使用Docker Hub的镜像源。

如果部署了反向代理,正常情况下,访问你的域名即可进入首页,管理员后台路径/Admin/Login,密码你自己知道。

待服务启动后,尝试登陆自己的站点测试。如果日后需要迁移服务器,只需完整打包~/ms365e5renewx即可保证站点数据的完整性。比如笔者经常因为打折而在各家云服务商之间反复横跳,每次切换时仅仅需要把目录带到新服务器上,一个命令就可以快速重建站点。站点数据不大的情况下,甚至可以托管在GitHub仓库里进行管理同步(需要hook解决文件权限问题),这部分内容有空笔者会补充在文章里。

下线站点时,在docker-compose.yml所在目录使用:

docker compose down

图片[2]-用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器

图片[3]-用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器

添加应用和如何续订,网上和官方有很多教程,就不在这里叙述,本文只是记录搭建部署方法,为其他玩家提供了一点经验就好了。部署站点时参考了官方教程、Skyler的部署文档和Gladtbam的部署文档,一并感谢。

为了感谢作者及网友,本站部署的MS365 E5 Renew X也开放给大家注册续订,这里卖个关子,隐藏以下:

注:本站也提供作者服务程序源文件高速下载

-------束,-------

感谢您的来访,获取更多精彩文章请收藏本站。

用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器-卡卡时光记录
用docker compose的方式部署开放式的MS365 E5 RenewX到你的服务器
此内容为免费资源,请登录后查看
K0
免费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像从今以后0