IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> forsaken-mail的docker安装 -> 正文阅读

[系统运维]forsaken-mail的docker安装

最近跟一个叫可丢弃邮箱的货较了几天劲,填了很多很多坑,这里记录其中一条能走通的路,供后来者参考。

准备工作

源码准备

https://github.com/denghongcai/forsaken-mail

vps准备

要能开通25端口的才行,买之前问清楚,大部分要发工单,备案后开通。实测搬瓦工的vps25端口是默认打开的
开启防火墙及各个端口

systemctl start firewalld
firewall-cmd --zone=public --add-port=27161/tcp --permanent
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=433/tcp --permanent
firewall-cmd --reload
systemctl enable firewalld

域名准备

我是用一级域名xx.com做的,需要做好两个A记录,一个MX记录

xx.com->A->IP(这个应该能省略的吧……)
mx.xx.com->A->IP
xx.com->MX->mx.xx.com

docker安装forsaken-mail

安装wget

yum install wget -y

安装docker

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker.service

安装forsaken-mail

docker run --name forsaken-mail -d -p 25:25 -p 3000:3000 denghongcai/forsaken-mail

一定会提示25端口占用,解决:

netstat -tunlp|grep 25
kill -9 {pid名称}

重新启动forsaken-mail

docker start forsaken-mail

至此docker安装forsaken-mail结束,通过http://mx.xx.com:3000可以访问了。
但是还不满足,想去掉端口号并加上ssl访问。
需要caddy做反向代理。

这里走的弯路最多,占了整个工作量的50%,网上所有能搜索的教程都试过了,均失败,/etc/init.d/caddy start显示已启动,1秒后/etc/init.d/caddy status显示未启动。

安装docker版caddy

直装走不通,在大神的指导下,通过安装docker版本caddy解决了问题

docker run -d -p 80:80 -p 443:443 caddy caddy reverse-proxy --to http://mx.tenkn.com:3000 --from https://tenkn.com

https://xx.com访问正常,幸福来得十分突然。


虽然caddy直装没走通,这里还是记录一下安装方法

caddy一键安装包的从安装到卸载

安装caddy一键安装包

wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh install http.filemanager

配置规则

echo "tenkn.com {
 gzip
 tls XXXXXXX@qq.com
 proxy / mx.tenkn.com:3000
}" > /usr/local/caddy/Caddyfile

启动服务

/etc/init.d/caddy start

查询caddy工作状态

/etc/init.d/caddy status

一下两种写法均可

service caddy start | stop | restart | status
/etc/init.d/caddy start | stop | restart | status

启动不成功后一些失败的解决办法

yum update
/usr/local/caddy/caddy -conf /usr/local/caddy/Caddyfile -agree
rm -rf /etc/ca-certificates/trust-source/DST_Root_CA_X3.pem
update-ca-trust
yum install ca-certificates -y
update-ca-trust force-enable

卸载caddy

wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && bash caddy_install.sh uninstall

另外,我还尝试了npm安装forsaken-mail的方法

安装wget

yum -y install wget

切换到

cd /usr/local/

下载指定版本nodejs(去node中文网翻淘宝镜像)

wget https://npm.taobao.org/mirrors/node/v14.18.1/node-v14.18.1-linux-x64.tar.gz

解压

tar -zxvf 用于解压  .tar.gz 后缀结尾
tar -xvf 用于解压   .tar后缀结尾
tar -zxvf node-v14.18.1-linux-x64.tar.gz

重命名

mv node-v14.18.1-linux-x64 node.js

配置环境变量

vi /etc/profile 输入i
export NODE_HOME=/usr/local/node.js  
export PATH=$NODE_HOME/bin:$PATH
# esc :wq
# 更新环境变量
source /etc/profile

npm安装成功

node -v
npm  -v

npm安装Forsaken Mail

下载项目源码

git clone https://github.com/malaohu/forsaken-mail.git
cd forsaken-mail

安装项目需要的库

npm install

安装pm2工具

npm install -g pm2

禁用postfix和sendmail

killall sendmail
/etc/init.d/postfix stop
chkconfig --level 2345 postfix off
chkconfig --level 2345 sendmail off

启动项目

pm2 start bin/www

设置开机启动

pm2 startup
pm2 save

npm的报错挺烦,也可能是初次尝试,域名解析还有问题的时候没注意观察,最后放弃
按理说,打开http//mx.xx.com:3000就可以看到Forsaken Mail邮箱界面了……

宝塔也没放过

安装宝塔后,安装docker面板,添加镜像:denghongcai/forsaken-mail并推送
添加docker后,添加25和3000端口,其他默认
还需要解决一下25端口占用的问题,不然保存不了,一直弹500的窗……
宝塔docker是可以的
宝塔的反代也是可以的,就是太慢了

nginx也试过的

参考教程

配置文件

cd /etc/nginx/conf.d/ 
vi tenkn.com.conf 

代理代码

server {
         listen 80;
         server_name http://xx.com; 
         location / {
                 proxy_pass     http://mx.tenkn.com:3000/;     
         }
}

需要vps开放80端口,反代能成功,但是页面报错,临时邮箱地址无法渲染。

太难了……

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:49:01  更:2021-11-20 18:51:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:19:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码