Tech Tok 技术谈客

Tech Tok 技术谈客

网站,数据库以及虚拟主机相关技术

Docker 应用 rsync 异地备份 - docker 备份小白教程三(3/3)
docker

Docker 应用 rsync 异地备份 - docker 备份小白教程三(3/3)

数据无价,希望大家做好备份,而且不要觉得备份了就无忧了,一定要确认所做的备份是可用的。在测试机器上恢复一下所做的备份,恢复后确认所有的数据和设置都没有问题才算真正合格的备份。我都是确认某个 docker 应用的备份是可以恢复的,才会开始用这个应用。 这里仅提供一些简单的思路,请勿完全生搬硬套,不同的 docker 可能部署的方式不同,备份的方法也有差异。 本地定时自动备份上篇已经讲过了,下面说一下如何异地备份 重要的数据一定要遵循 321 备份策略 3: 保留至少3份数据副本 2: 使用至少2种不同的存储介质 1: 保留1份异地备份 异地备份工具,选择适合你的 rclone: 适合备份到网盘或是FTP syncthing: 实时同步,并可以设置增量和版本控制备份 rsync: 适合备份到其他主机或是NAS上 这里主要讲一下 rsync,也是我最常用的 本地主机备份目录 /root/backup/ 远端主机备份目录 /remote/backup/ 远端主机IP地址 192.168.0.100
3 min read
Docker 应用 cron job 定时自动本地备份 - docker 备份小白教程二(2/3)
docker

Docker 应用 cron job 定时自动本地备份 - docker 备份小白教程二(2/3)

数据无价,希望大家做好备份,而且不要觉得备份了就无忧了,一定要确认所做的备份是可用的。在测试机器上恢复一下所做的备份,恢复后确认所有的数据和设置都没有问题才算真正合格的备份。我都是确认某个 docker 应用的备份是可以恢复的,才会开始用这个应用。 这里仅提供一些简单的思路,请勿完全生搬硬套,不同的 docker 可能部署的方式不同,备份的方法也有差异。 本地备份上篇已经讲过了,下面说一下如何定时自动备份 最简单的方法就是用 Linux 自带的 cron job,建议在 root 下设置 这里以第一篇里的 ghost 博客为例 编辑 cron job crontab -e # 选择 nano 编辑器,就和用 nano 编辑器一样 # 编辑完成之后,按 control+x 退出,然后按 y 保存,再按回车确认退出 加入下面内容,
3 min read
Docker 应用的本地备份和迁移 - docker 备份小白教程一(1/3)
docker

Docker 应用的本地备份和迁移 - docker 备份小白教程一(1/3)

很多朋友最初接触 docker 时,都喜欢用面板来对 docker 进行各种操作,这样确实在最开始的时候会带来一些便利。其实如果学会了手搓,就会发现手搓在有些方面会更简单更实用,同时有问题时更容易查找问题所在。 这里仅提供一些简单的思路,请勿完全生搬硬套,不同的 docker 可能部署的方式不同,备份的方法也有差异。 在本地备份 docker 非常简单,分两种情况,有数据库应用还要多备份一下数据库 一、没有 MySQL (MariaDB) 数据库 以 Moments 极简朋友圈的 sqlite 版为例,打包压缩备份就一行语句 https://github.com/kingwrcy/moments tar -C /root/docker/moments -czvf /root/backup/moments.tar.gz ./ # /root/docker/
2 min read
推荐 31 个 docker 应用,别让你的小鸡再吃灰了
docker

推荐 31 个 docker 应用,别让你的小鸡再吃灰了

推荐的这些 docker 应用都是我自己常用的,同时也有自己的一些偏好在里面,每个人的需求不同,对应用的要求也不同。 还有很多优秀的 docker 应用我没有用过,所有没有推荐的并不代表不优秀。 所有的 docker 应用部署都比较简单,只有少量的会需要在数据库和权限的配置上研究一下。 排名不分先后 1. Memos 笔记记事 功能强大的笔记应用,支持多用户,笔记支持私有,工作区和公开 https://github.com/usememos/memos 2. Wbo-Boards 共享白板 非常好的白板应用,支持多人共享,一人在白板上画图写字,其他在线用户可以实时看到 https://github.com/lovasoa/whitebophir 3. VaultWard 密码管理 BitWard的轻量版,密码管理,可以在电脑和手机上自动填写用户和密码,实现自动登陆 注意:此应用不支持IP:Port访问,安全原因,
7 min read
如何保存已经拉取 docker 镜像文件,并转移到不同的主机上
docker

如何保存已经拉取 docker 镜像文件,并转移到不同的主机上

部署 docker 时拉取镜像文件很简单,但是文件只能在本机使用。要是想把镜像文件保存下来,备份到其他地方,或是复制到其他主机上用,就需要通过以下命令来完成。 * 保存镜像文件 docker save -o /home/user/docker/myimage.tar myimage:tag # myimage.tar 是保存后的文件名,保存到 /home/user/docker 目录下 # myiamge:tag 是镜像和标签 * 可复制 myimage.tar 文件到其他地方作为备份 * myimage.tar 文件在使用之前,需要先加载镜像文件 docker load < /home/user/docker/myimage.tar # 加载 /home/user/docker
1 min read
设置 Docker 应用的 Log 文件尺寸
docker

设置 Docker 应用的 Log 文件尺寸

主机上布署了 docker 应用之后,有时候会发现硬盘的可用空间很快地变小,这是因为 docker 应用产生了大量的 log,使得 log 文件的尺寸很快地变大,吃掉了硬盘空间。 为了避免这种情况的发生,可以使用下面的步骤,来设置 log 文件的大小和启用文件轮转 1. 编辑 Docker Daemon 配置文件,如果文件不存在,则此命令会自动创建配置文件 sudo nano /etc/docker/daemon.json 2. 更新或加入下列内容 { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file"
1 min read
使用 Prism.js 插件在 Ghost 博客的代码区里添加复制功能

使用 Prism.js 插件在 Ghost 博客的代码区里添加复制功能

Ghost 这么成熟的博客系统,竟然代码区还不支持复制功能,真是有点无语。经过一番搜索研究,终于可以使用 Prism.js 插件为 Ghost 博客的代码区添加复制功能 * 首先写代码区的时候,右上角的代码语言一定要写上,否则这种方法不能添加复制功能 * 打开下面网站下载 js 和 css 文件,默认已经选择了需要的选项,也可以按照自己的需要进行调整 https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clike+javascript+css-extras+python&plugins=custom-class+highlight-keywords+inline-color+toolbar+copy-to-clipboard * 到网页最下端下载 js 和 css 两个文件,文件名为 prism.
2 min read
在 Debian 12 上安装 MySQL 8.0
mysql

在 Debian 12 上安装 MySQL 8.0

更新系统包列表 sudo apt update 下载 MySQL APT 仓库配置文件 wget https://dev.mysql.com/get/mysql-apt-config_0.8.30-1_all.deb 安装依赖 gnupg,网上没有说要安装这个依赖,但是在 Debian 12 上直接运行下一步的话,会报错说缺少这个依赖 sudo apt install gnupg 安装 MySQL APT 仓库 sudo dpkg -i mysql-apt-config_0.8.30-1_all.deb #在配置过程中,选择MySQL 8.0版本 更新包列表以包含新添加的
1 min read
浅谈在 MariaDB 和 MySQL 中配置 binding-address

浅谈在 MariaDB 和 MySQL 中配置 binding-address

先解释一下一台 VPS 机器上的几种不同 IP * 127.0.0.1(也称 localhost ,本机 IP ,只有本机才能访问) * 192.168.1.88(内网 IP,只有内网才能访问) * 142.250.115.139(外网 IP,所有外网机器都能访问) * 172.17.0.1( Docker 的桥接 IP ,所有 docker 都能访问) binding-address 是指数据库所监听的 IP,就是可以通过这个 IP 来连接数据库,如果监听的 IP 只是内网 IP,那么只有能连接到内网 IP 的机器才可通过
2 min read
安装 Caddy 和 PHP,在 Caddy 上运行 PHP 网站

安装 Caddy 和 PHP,在 Caddy 上运行 PHP 网站

最常用的 Web 服务器有 Apache,Lighttpd,Nginx 和 Caddy,四种服务器都曾经尝试用过,各有其优缺点,在这里就不详细说明了。因为本人常用 PHP 建站,所以也在4种服务器上安装过 PHP 支持,试用了一遍后,最后决定还是用 Caddy 和 PHP 配合建站。 安装 Caddy 可以查看下面这篇教程 安装配置 Caddy 服务和反向代理从最初搭建网站和 Docker 开始就一直在用 Nginx 做反向代理,Nginx 非常好用,做反代申请 SSL 证书都很方便。最近接触到 Caddy,发现 Caddy 也很简单易用,虽然没有 GUI,但是编辑配置文件相当简单,新手也可以一学就会。 Caddy 是一个强大、可扩展的开源
3 min read
让 Docker 同时支持 IPv4 和 IPv6 访问

让 Docker 同时支持 IPv4 和 IPv6 访问

最近在 uptime-kuma 上想添加一个仅 IPv6 主机的监控,但是发现添加了监控后无法 ping 通,但是从 uptime-kuma 所在的主机上是可以 ping 通 IPv6 的主机的。于是查了一下,发现不仅是主机需要支持 IPv6,docker 还需要开启 IPv6 功能才可以让 docker 支持 IPv6。 GitHub - louislam/uptime-kuma: A fancy self-hosted monitoring toolA fancy self-hosted monitoring tool. Contribute to louislam/uptime-kuma development by creating an account on GitHub.GitHublouislam
2 min read
安装配置 Caddy 服务和反向代理
caddy

安装配置 Caddy 服务和反向代理

从最初搭建网站和 Docker 开始就一直在用 Nginx 做反向代理,Nginx 非常好用,做反代申请 SSL 证书都很方便。最近接触到 Caddy,发现 Caddy 也很简单易用,虽然没有 GUI,但是编辑配置文件相当简单,新手也可以一学就会。 Caddy 是一个强大、可扩展的开源 Web 服务器,使用 Go 语言编写。它旨在简化 Web 托管,使其变得简单易用。 Caddy的主要特点包括: * 自动 HTTPS - 默认为所有站点启用 TLS 加密 * 在线配置 API - 可以通过 RESTful API 动态配置 * 简单易用 - 配置简单,无需复杂设置 * 高性能
3 min read
配置 Fail2ban 监控 SSH 连接和自动封禁 IP
ssh

配置 Fail2ban 监控 SSH 连接和自动封禁 IP

Fail2ban 是一个简单高效的入侵防御工具,可以有效减少暴力破解等攻击的风险。对于需要公网访问的服务器来说是一个不错的安全防护选择。 Fail2ban 支持多种服务的保护,如SSH、Apache、Nginx等,这里主要介绍一下监控 SSH 连接和自动封禁 IP。 1. 安装Fail2ban sudo apt install fail2ban 2. 创建一个本地配置文件 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local 3. 编辑 jail.local 文件 sudo nano /etc/fail2ban/jail.local 4. 在 [sshd] 部分添加或修改以下配置 [sshd] # 启用SSH监控 enabled = true
2 min read
在 Ubuntu 和 Debian 上安装使用 UFW 防火墙
firewall

在 Ubuntu 和 Debian 上安装使用 UFW 防火墙

Ubuntu 和 Debian 上有几种常用的防火墙 * iptables * 这是 Linux 内核中内置的防火墙。 * iptables 是传统的防火墙配置方法,但现在被认为是过时的。 * UFW (Uncomplicated Firewall) * 这是 Ubuntu 默认的防火墙配置工具。 * UFW 提供了一个简单易用的命令行界面来管理 iptables 规则。 * 它预装在 Ubuntu 系统中,但默认是禁用状态。 * Firewalld * 这是一个动态管理的防火墙工具。 * 它提供丰富的规则语言,支持更复杂和灵活的防火墙规则。 这里主要讲一下 UFW 的使用,个人感觉 UFW 的命令行最简单,最容易记住。 1. 安装 UFW sudo apt update sudo apt install ufw 2. 在启动防火墙之前先打开 ssh 端口,
2 min read
在局域网里安装配置 DNSMasq 实现域名访问局域网电脑

在局域网里安装配置 DNSMasq 实现域名访问局域网电脑

家庭局域网里每台机器都会分配一个 IP ,每台机器之间要想互相访问,就要用到机器的 IP 。机器多了可能不容易记住每台机器的 IP ,如果要是在内网再架设一些网站,就更容易弄混了。 这里介绍一个开源免费的轻量级 DNS 服务器 DNSMasq ,安装调试好 DNSMasq 服务之后,就可以很容易地用域名来访问内网的机器了。 * 如果想用 DNS 服务,机器的 IP 地址最好是不变的,首先在路由器里把需要访问的机器的 IP 设为保留地址,这样这些 IP 地址就总是绑定在这些机器的 MAC 地址上,不论是重启或是长时间关机后再开机,这些机器的 IP 地址都是不变的。各种品牌的路由器设定保留地址的方法都大同小异,如何设定请参看所用路由器的说明书 * 在一些系统中,可能需要禁用系统自带的 systemd-resolved 服务,这样可以避免端口 53 的冲突 # 禁用并停止 systemd-resolved 服务 sudo systemctl disable
4 min read
如何让 docker 容器使用同一个网段 IP
docker

如何让 docker 容器使用同一个网段 IP

Docker 创建容器时会用默认的 docker 网段(172.17.0.1/16)来创建新 docker 容器,Docker compose 创建时会选未用的 docker 网段来创建新 docker 容器。这样有时候不同的 docker 就会创建在不同的 subnet 里。如果每个 docker 都是独立存在的也没有什么关系,但是如果 docker 之间要互相访问的话,就有可能出现无法通讯的问题。 特别是在 docker 里安装了数据库(MySQL, MariaDB 等)容器,其他 docker 有可能需要连接到数据库运行。如果是在不同的 subnet 里,就会发生无法访问的问题。 这次教程主要讲一下如何创建一个 docker 的网段,并让所有的 docker
2 min read
在 Ghost 博客里配置 SMTP 发送邮件

在 Ghost 博客里配置 SMTP 发送邮件

如果 Ghost 只是发布博客,不开放用户注册的话,是不需要邮件发送功能的。但是如果需要支持新用户注册,就必需开启邮件发送功能。 如果 Ghost 服务是自己在 VPS 上架设的 ,本身是不带邮件发送功能的。要想让 Ghost 支持邮件发送,就需要用到第3方的 SMTP 服务。 现在比较流行的有 Brevo( SendInBlue 改名而来)和 MailGun 。两个都支持免费计划,感觉 Brevo 的免费计划更好,所以就以 Brevo 为例。Brevo 注册和设置这里就大致说一下步骤,具体细节就不说了,很简单,网上也有很多教程,。 * 在 Brevo 注册一个新账户 * 添加你邮箱要用的 domain * 在你域名服务商里添加所需要的 DNS TXT 记录 * 完成上面步骤,域名验证成功后,就可以看到 Brevo
2 min read
如何把 Ghost 博客里的页面设为网站首页
ghost

如何把 Ghost 博客里的页面设为网站首页

Ghost 主要是用来建站发布博客,Ghost 的首页默认显示的是所有发布过的博客列表。如果把里面的某个页面(Page)做为网站的首页,这样就可以用 Ghost 来搭建个人主页或是小型的公司主页。 这里教大家如何把里面的页面设为网站首页。 * 进入后台管理,点击左侧 [pages] ,然后点击右侧 [New page] 。创建好你想要显示的主页,记得右侧的 [Page URL] 填上 [home] * 连接到 VPS 主机,找到 [https://techotok.com/%E4%BD%A0%E7%9A%84%20Ghost%20%E5%AE%89%E8%A3%85%E7%9B%AE%E5%BD%95/
2 min read
在 Lighttpd 上配置 https + 不同域名访问不同子目录的内容
lighttpd

在 Lighttpd 上配置 https + 不同域名访问不同子目录的内容

如果是第一次配置 https SSL 证书 + 域名的话,建议先阅读下面两篇教程 设置 https + 域名访问网站的最简单方法 - 不需要 SSL 证书,通过 Cloudflare 实现现在的网站,https 加密传输已经是标准配置了,不支持 https 的网站基本已经不存在了,也没法存活了。但是新手自己配置 https + 域名还是不太容易,这篇文章教大家一个最简单的方法配置 https + 域名 域名的购买和在 Cloudflare 上托管就不在这里说明了,网上有很多很好的教程,这里主要讲一下不申请 SSL 证书,用 Cloudflare 实现 https + 域名访问自己的搭建的网站。 最简单的网站( IP : 80 端口)(端口不是 80 的网站看下面) 如果搭建的网站或是网页地址是 http://142.
4 min read
在 Lighttpd 上用 CertBot 安装 Let’s Encrypt SSL 证书
ssl

在 Lighttpd 上用 CertBot 安装 Let’s Encrypt SSL 证书

本教程仅支持 ubuntu 和 debian 系统 * 如果你是第一次配置用 https + 域名来访问网站,建议先阅读下面这篇教程 设置 https + 域名访问网站的最简单方法 - 不需要 SSL 证书,通过 Cloudflare 实现现在的网站,https 加密传输已经是标准配置了,不支持 https 的网站基本已经不存在了,也没法存活了。但是新手自己配置 https + 域名还是不太容易,这篇文章教大家一个最简单的方法配置 https + 域名 域名的购买和在 Cloudflare 上托管就不在这里说明了,网上有很多很好的教程,这里主要讲一下不申请 SSL 证书,用 Cloudflare 实现 https + 域名访问自己的搭建的网站。 最简单的网站( IP : 80 端口)(端口不是 80 的网站看下面)
4 min read
设置 https + 域名访问网站的最简单方法 - 不需要 SSL 证书,通过 Cloudflare 实现
ssl

设置 https + 域名访问网站的最简单方法 - 不需要 SSL 证书,通过 Cloudflare 实现

现在的网站,https 加密传输已经是标准配置了,不支持 https 的网站基本已经不存在了,也没法存活了。但是新手自己配置 https + 域名还是不太容易,这篇文章教大家一个最简单的方法配置 https + 域名 域名的购买和在 Cloudflare 上托管就不在这里说明了,网上有很多很好的教程,这里主要讲一下不申请 SSL 证书,用 Cloudflare 实现 https + 域名访问自己的搭建的网站。 最简单的网站( IP : 80 端口)(端口不是 80 的网站看下面) 如果搭建的网站或是网页地址是 http://142.250.115.113:80,IP 是不支持 https 的,所以只能是 http ,默认端口是 80,所以 80 也可以不加,
4 min read
如何卸载、重装 MariaDB 数据库
maria

如何卸载、重装 MariaDB 数据库

此教程仅适用用 Ubuntu 和 Debian 系统 * 卸载 MariaDB sudo apt-get purge mariadb-* * 安装 MariaDB 请查看下面两篇教程安装 MariaDB 在 ubuntu 和 debian 上安装 MariaDB 数据库MariaDB Server 是一个通用的开源关系数据库管理系统。 它是世界上最受欢迎的数据库服务器之一。 当 MariaDB Server 的前身 MySQL 于 2009 年被 Oracle 收购时,MySQL 创始人 Michael “Monty” Widenius 出于对 Oracle 管理权的担忧而分叉了该项目,并将新项目命名为 MariaDB。 MySQL 以他的第一个女儿 My 命名,而
2 min read
在 Ubuntu 和 Debian 上安装最新版 MariaDB
maria

在 Ubuntu 和 Debian 上安装最新版 MariaDB

Ubuntu 和 Debian 系统包里自带的 MariaDB 的数据库版本比较低,基本都是 10.x 版本。 可以用下面的方法安装 MariaDB 最新版本或是任意版本。 * 升级更新系统 sudo apt update && sudo apt -y upgrade * 添加 MariaDB APT 存储库 # 在版本号的参数里填上要安装的版本号,下面要安装的是 11.4.3 curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=11.4.3
1 min read