config ssmtp in docker

I found I can not send email with php in dokcer, because the ssmtp not installed.

I added following section in Dockerfile:

...
# install MTA
RUN apt-get update && apt-get install -y ssmtp

MAINTAINER hongyi.chen

# Sendmail
COPY ./ssmtp.conf /etc/ssmtp/ssmtp.conf
...

The SSMTP config like this:

root=postmaster
AuthUser={{smtp_username}}
AuthPass={{smtp_password}}
mailhub={{smtp_host}}:{{smtp_port}}
UseTLS=YES
UseSTARTTLS=YES
rewriteDomain={{force_domain}}
hostname={{host_name}}

Ref:

https://linuxhandbook.com/linux-send-email-ssmtp/

https://www.techrepublic.com/blog/it-security/use-ssmtp-to-send-e-mail-simply-and-securely/

winhq的key无效

今天apt-get update的时候报错。说winHQ的key无效。

  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 818A435C5FCBF54A

后来在 http://ubuntuhandbook.org/index.php/2018/09/how-to-install-wine-stable-3-0-3-in-ubuntu-18-04/ 找到答案,需要安装新的key:

Did you successfully install the repository key?

Download the key via command:

wget -nc https://dl.winehq.org/wine-builds/Release.key

Then install the downloaded key file:

sudo apt-key add Release.key

然后apt-get update后问题解除。

这样我可以继续安装我的nodejs14.

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

sudo apt-get install -y nodejs
https://computingforgeeks.com/install-node-js-14-on-ubuntu-debian-linux/

需要看看是否需要升压电路

昨晚看hyperion 的wiki( https://hyperion-project.org/wiki/Supported-hardware) 文中提到灯带的控制信号是4v的,但是pi的gpio输出都是3.3v的,勉强能用.但是最好是配升压线路.

这里说的WS系的灯带,不是我用的APA102.所以我需要检查APA102的技术指标.

puppetter安装错误

yarn install 的时候提示无法下载chromium

ERROR: Failed to download Chromium r722234! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.

那么就设置一个环境变量

export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

然后再 yarn install 就好了。

设置swap分区

今天在生产环境下进行composer 更新的时候出现如下错误:

PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar

一查原来是swap不够了。Link: https://getcomposer.org/doc/articles/troubleshooting.md#proc-open-fork-failed-errors

然后按照教程,开始前free -m是这样的

ubuntu@ip-172-31-4-204:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:            990         279         467          20         243         528
Swap:             0           0           0

一顿sudo操作:

/bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
/sbin/mkswap /var/swap.1
/sbin/swapon /var/swap.1

在看free -m

ubuntu@ip-172-31-4-204:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:            990         279          69          20         641         527
Swap:          1023           0        1023

在运行composer install就没错误了。

中文参考:https://www.cnblogs.com/kerrycode/p/5246383.html

linux下从ISO创建windows启动 USB

先贴个链接

https://thornelabs.net/posts/create-a-bootable-windows-7-or-10-usb-drive-in-linux.html

我按照这个步骤创建了windows 7的启动U盘。遇到过一个问题的就是在mount的而的错误:

$MFTMirr does not match $MFT 

试了几招都修不好,然后更换了U盘就好了。

然后就是在Lenovo Think Center M72e 从U盘启动的时候,要在bios设置为Leagcy启动模式,不要UEFI启动。

把老项目迁移到docker

有个老项目是php 5.2.17,以前用的是vagrrant, 现在想本地开发环境迁移到docker.

寻找合适的image

第一步寻找合适的镜像, pull 下来

我在这里找到一个5.2.17镜像, 先用docker pull命令拉到本地.

然后用docker images 查看,看到一个名叫

deminy/php-5.2

的镜像.

docker run 镜像名 

然后运行该镜像,可以启动一个名为“admiring_dbinsky“.的容器.

运行docker exec -it 容器名或id bash 来进入容器的shell查看.满足要求.

下一步如何基于这个镜像打造一个自己的项目镜像呢?那就需要编写dockefile了

编写dockerfile

FROM deminy/php-5.2

MAINTAINER hongyi.chen

WORKDIR /tmp

EXPOSE 80

编写完毕后, 用build命令构造一个自己的镜像 

docker build -t 项目名称_web .

完成后,就可以看到一个自己的镜像了.如果有错,就返回修改dockerfile,然后重新构建build.

发现个问题,就是每次启动这个镜像,名字都会不同.估计是默认随机名字.不过可以通过docker compose解决

编写docker-compose

为了继续偷懒,我们用docker-compose来编写.

编写完毕后,第一次运行要

docker-compose up –build

这个build参数似乎就是docker的build 命令的

启动后,就可以看到自己名字的的容器了.然后配合一个mysql的容器,这个php5.2的老项目就在本地跑起来了.

把自建的VPN集成到HA里

有时候在面需要访问家里的内网。以前专门搞了二手的树莓派pi 一代来做VPN服务器。选用的是WireGuard作为服务器.

昨天发现HA系统(homeassistant)支持WireGuard插件。因为HA运行在一台独立的树莓派Pi 4, 所以就没必要在保留pi 1了。所以果断安装此插件,把生成的二维码图片交给手机的客户端。然后在路由器上设置端口转发就好了。

旧的 Pi就放到ebay上买掉了。

QR图片就保存在 /ssl/wireguard/{具体配置实例名称} 下

通过补丁(patch)升级到cataline

通过github上的dosdude1的项目(http://dosdude1.com/catalina/) 成功把macpro 3.1升级到了catalina.

升级完毕后,发现几个问题

  1. 显卡只能输出一个显示器。我拆先原装的A卡,换上N卡问题照旧。
  2. 声卡驱动未包含,所以没有声音。
  3. 网页浏览图片时候会有马赛克花屏现象。
  4. 有一些奇怪的进程无响应象。

如果这些问题解决不了,我还是继续留在El Captian吧。