Docker部署typecho(cloudflare tunnel)
Docker部署typecho(cloudflare tunnel)
引言
LNMP的安装太麻烦了,而且宝塔面板有问题也很难找到解决方法,nginx设定和cloudflare 比也比较麻烦,更别说需要一个ip地址,所以本文利用docker+cloudflare的方法来部署
部署
docker-compose.yaml
---
networks:
frontend:
external: true
backend:
external: true
volumes:
sql-database-typecho:
driver: local
services:
mariadb:
image: mariadb:latest
container_name: typecho-mariadb
restart: unless-stopped
volumes:
- sql-database-typecho:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
env_file:
- .env
networks:
- backend
typecho:
image: joyqi/typecho:1.2.1-php8.0-apache
# image: joyqi/typecho:nightly-php8.2-apache
container_name: typecho-xxxx-server
expose:
- 80
restart: unless-stopped
environment:
- TIMEZONE="Asia/Shanghai"
# - TYPECHO_INSTALL=1 # Set to 1 if you want to run installation script automatically.
- TYPECHO_DB_HOST=mariadb
- TYPECHO_DB_USER=${MYSQL_USER}
- TYPECHO_DB_PASSWORD=${MYSQL_PASSWORD}
- TYPECHO_DB_FILE=sql-database-typecho
- TYPECHO_DB_DATABASE=${MYSQL_DATABASE}
- TYPECHO_DB_CHARSET=utf8mb4 # default: utf8(for pgsql) or utf8mb4(for mysql)
- TYPECHO_SITE_URL=https://blog.ainp.gay
volumes:
# - ./app/usr:/app/usr
# - ./app/usr/plugins:/app/usr/plugins
# - ./app/usr/themes:/app/usr/themes
# - ./app/usr/uploads:/app/usr/uploads
- ./plugins:/app/usr/plugins
- ./themes:/app/usr/themes
# - ./uploads:/app/usr/uploads
depends_on:
- mariadb
networks:
- frontend
- backend
因为牵扯到密码等隐私信息特引入.env 环境文件,大概情况如下,你可以根据自己的喜好来设置自己的
.env
MYSQL_DATABASE=DATABASE_name_xxxx
MYSQL_USER=DATABASE_user_xxxx
MYSQL_PASSWORD=xxxx_password
MYSQL_ROOT_PASSWORD=xxxx_password
有个问题要注意:typecho最新的镜像joyqi/typecho:nightly-php8.2-apache部署完毕后无法打开文章详情内容,只能回滚到上一个版本joyqi/typecho:1.2.1-php8.0-apache
主题选择的是Facile, 请下载解压后放入自己建的文件夹./themes 下。
插件安装了评论审查,安装的是百度的
BaiduTextCensor
如果你能从网上找到,你可以自己找,找不到可以利用我收藏的这个,我自己放到我的文件服务器了。也是下载解压后放入自己建立的文件夹./plugins
插件也安装了一个typecho 经典编辑器,和上面一样。你可以自己在网上找,或者下载我收藏的
MEditor
,也是下载解压到./plugins
cloudflare tunnel 域名设置可以参考文章最后Portainer的设置,直接使用同一个隧道即可
设置
部署成功设置域名后,直接在网页地址栏里输入 https://yourdomain.com
这个地方要注意,其他设置请按照上面.env 环境设置文件里填写就可以了,但红方框里的ip地址哪里来的呢?有两个方法,第一,使用 如下命令
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' typecho-mariadb
其中的typecho-mariadb 是docker-compose 内数据库的容器名,请参看上面的docker-compose.yaml,第二个方法,请看下面图片的红方框
这个请填写自己的信息,用户名,密码,邮箱
到此,基本的typecho 安装成功了。
点击"点击这里访问您的控制面板"
上述信息的填写需要去百度下面的网站去申请填写
百度Ai控制台获取 AppID、API Key、Secret Key
伪静态的设置如下:
至此,大功告成!
参考
Docker 安装
利用Cloudflare隧道来访问Portainer(cloudflare tunnel portainer)