Docker 搭建 Maddy 多合一邮件服务器
GitHub Chasing66/beautiful_dockerDocker enwaiax/maddy
*docker image support for AMD64 and ARM64
简介 基于 foxcpp/maddy 项目的 docker 镜像.
Maddy 是一款用 Go 语言开发的邮件服务器,它实现了运行电子邮件服务器所需的所有功能。
Maddy 用一个具有统一配置和最低维护成本的守护进程取代了 Postfix、Dovecot、OpenDKIM、OpenSPF、OpenDMARC 等程序。
通俗点讲就是部署特别方便, 资源占用少,非常适合个人使用的电子邮件服务器。
预置条件 检查 25 端口是否开放
1telnet smtp.aol.com 25
部署步骤 创建 docker volume1docker volume create maddydata
创建 tls 证书 申请证书步骤略过,将证书 copy 并重命为 tls_key.pem 和tls_cert.pem到 volume 目录
123456# docker vol ...
Nginx 学习笔记
Nginx 简介Nginx 是什么?Nginx (engine x) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。Nginx 可以作为一个 Web 服务器进行网站的发布,也可以作为反向代理服务器进行负载均衡的实现。常见的 Web 服务器:Tomcat、Apache、Nginx、Weblogic 等
特点 占用内存少、并发能力强
搭建 Nginx 环境 安装 nginx
源代码安装:需要编译./configure——>make——>make install
在线安装,参考:http://nginx.org/en/linux_packages.html
目录结构
目录
路径
执行路径
/usr/sbin/nginx
配置文件
/etc/nginx/nginx.conf
日志目录
/var/log/nginx/
默认虚拟主机目录
/usr/share ...
理解 npm run 命令,run 命令的两条潜规则
1. npm runnpm 默认运行的 命令为 npm run + script 名称, 当 script 名称为start 时,npm start = npm run start其他类似的命令还有
1234npm start === npm run startnpm stop === npm run stopnpm test === npm run testnpm restart === npm run stop && npm run restart && npm run start
2. 执行顺序 一个 npm 脚本可以执行多个任务,这些任务之间可以指定不同的执行顺序。对于单条命令 X,如果想并行运行多个,可以使用 & 连接,如果想串行运行多个,可以使用 && 连接。
3. 顺序钩子123"predev":"node test_one.js","dev":"node test_two.js","postdev":& ...
根据 docker 镜像反推 dockerfile
我们有时候想知道官方镜像的 dockerfile 是怎么写的,需要根据 docker image 反推 docker file 命令如下:
1image=ubuntu:18.04
123456docker history $image --no-trunc \ --format '{{.CreatedBy}}'|\ sed "s?/bin/sh\ -c\ \#(nop)\ ??g"|\ sed "s?/bin/sh\ -c?RUN?g" |\ tac|\ tee Dockerfile
稍微解释一下命令的意思
1234--no-trunc: 不截断输出 --format {{.CreatedBy}}: 格式化输出, 只输出 CreatedBy 字段 sed: 删除替换指定的字符串, 此处使用 `?` 作为 sed 的分隔符。常规 sed 分隔符为 `/` 或者 `#`tac: 将所有管道符号传来的内容反向输出 ...
从 0 到 1:全面理解 RPC 远程调用
前言 什么是 RPC 呢?
百度百科给出的解释是这样的:“RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议”。这个概念听起来还是比较抽象,没关系,继续往后看,后面概念性的东西,我会讲得足够清楚,让你完全掌握 RPC 的基础内容。在后面的篇章中还会结合其在 OpenStack 中实际应用,一步一步揭开 rpc 的神秘面纱。
有的读者,可能会问,为啥我举的例子老是 OpenStack 里的东西呢?
因为每个人的业务中接触的框架都不一样(我主要接触的就是 OpenStack 框架),我无法为每个人去定制写一篇文章,但其技术原理都是一样的。即使如此,我也会尽力将文章写得通用,不会因为你没接触过 OpenStack 而成为你理解 rpc 的瓶颈。
既 REST,何 RPC ?在 OpenStack 里的进程间通信方式主要有两种,一种是基于 HTTP 协议的 RESTFul API 方式,另一种则是 RPC 调用。
那么这两种方式在应用场景上有何区别呢?
有使用经验的人,就会知道 ...
python 8 个实用的“无代码”特性
Python CLI “-m” 参数 python 的-m mod 参数,它会将 Python 模块以脚本的形式运行。因此,如果该模块的实现支持命令行操作,我们就可以在命令行直接使用它。
服务端口测试
telnetlib 模块
测试对端服务器端口是否开放
1python -m telnetlib -d localhost 22
结果如下
12345678Telnet(localhost,22): recv b'SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.4\r\n'SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.4Telnet(localhost,22): send b'\n'Telnet(localhost,22): recv b'Invalid SSH identification string.\r\n'Invalid SSH identification string.Telnet(localhost,22): recv b''*** ...
本地 git 仓库链接远程仓库
以 github 仓库为例,当远程仓库已经创建
1. 初始化本地仓库1.1 git init 时设定 branch 为 main1git init -b main
也可以在 gitconfig 里配置默认值,要求 git 版本大于 2.28
1.2 Ubuntu 升级 git 版本123# For Ubuntu, this PPA provides the latest stable upstream Git versionadd-apt-repository ppa:git-core/ppaapt update && apt install git
设置默认为 main branch
1git config --global init.defaultBranch main
查看配置
12345678910111213141516171819202122❯ cat ~/.gitconfig[include] path = /etc/git-setup/gitconfig[core] editor = vi[user] ...
GitHub x Pages 搭建静态化 Hexo 博客
1. 安装基本环境1.1 安装 git1apt install git
1.2 利用 nvm 安装 nodejs123curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bashexec $SHELLnvm install --lts
1.2.1 安装 hexo1npm install hexo -g
2. 初始化 hexo 项目2.1 创建初始化项目1hexo init MyNote
2.2 安装 next 主题以及 hexo-deployer-git 工具 12# 在 MyNote 文件夹下执行npm install hexo-theme-next hexo-deployer-git
3. 配置_config.yaml 文件 修改博客标题等
1234567title: "LuckyHunter's notes"subtitle: 'Quick notes'description: 'Stay hungry, ...