{"id":22270818,"url":"https://github.com/nativu5/docker-typecho","last_synced_at":"2026-05-04T21:38:46.158Z","repository":{"id":166863854,"uuid":"306824838","full_name":"Nativu5/docker-typecho","owner":"Nativu5","description":"Typecho with PHP7, postgresSQL and nginx, based on docker containers.","archived":false,"fork":false,"pushed_at":"2023-12-25T14:50:23.000Z","size":568,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-31T22:06:52.559Z","etag":null,"topics":["docker","docker-compose","typecho"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nativu5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-24T06:56:26.000Z","updated_at":"2024-03-09T08:08:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"e77d239e-97ce-44b2-8cc1-0090ff8c2619","html_url":"https://github.com/Nativu5/docker-typecho","commit_stats":null,"previous_names":["nativu5/docker-typecho"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Nativu5/docker-typecho","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nativu5%2Fdocker-typecho","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nativu5%2Fdocker-typecho/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nativu5%2Fdocker-typecho/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nativu5%2Fdocker-typecho/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nativu5","download_url":"https://codeload.github.com/Nativu5/docker-typecho/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nativu5%2Fdocker-typecho/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32626491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","typecho"],"created_at":"2024-12-03T12:09:35.711Z","updated_at":"2026-05-04T21:38:46.142Z","avatar_url":"https://github.com/Nativu5.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker-Typecho\n\n**限于作者水平，未能进行充足测试，可能存在某些问题。**\n\n## 概述\n\n### 文件结构与说明\n\n* `./nginx` 保存 `Nginx` 相关配置文件、日志、`SSL` 证书和 `Typecho` 程序；\n* `./php-fpm-pgsql` 内保存 `nat1vus/php-fpm-pgsql` 的 `dockerfile`；（部署时可以不上传）\n* `./cert.sh` 实现证书的申请应用和自动更新（需要预先安装 `acme.sh` ，默认以 `DNS` 方式获取证书 ）;\n* `./docker-compose.yml` 控制容器挂载卷、环境变量等；\n* `./dbdata` 保存 `pgsql` 的数据库配置与文件；（容器初次运行后自动生成）\n\n### 容器组成\n\n* `php-fpm-pgsql` : 提供`php`支持;\n* `nginx` : 作为网页服务器;\n* `postgres` : 数据库;\n\n启动顺序为：`postgres ` -\u003e `php-fpm` -\u003e `nginx` ；\n\n## 关于三个镜像\n\n### PHP-FPM\n\n* 文档：https://github.com/docker-library/docs/blob/master/php/README.md\n* 原版已经内置了 `Typecho` 所需的 `mbstring`、`curl` 等拓展；\n* 为了连接数据库，需要自行构建含 `pgsql` 拓展的镜像；\n* 官方推荐使用 [docker-php-extension-installer](https://github.com/mlocati/docker-php-extension-installer) 自行添加所需拓展；\n* 由于某些原因，为了成功构建，将镜像中的软件源进行了更换。\n\n### Nginx\n\n* 直接使用了原版镜像。\n\n### PostgresSQL\n\n* 文档：https://hub.docker.com/_/postgres\n\n* ”Environment Variables“ 一节中详细说明了容器运行所需提供的环境变量。\n\n  本项目用到了以下环境变量:\n\n  * `POSTGRES_PASSWORD` 数据库 `superuser` 密码； （必需）\n  * `POSTGRES_USER` 指定 `superuser` 用户名；（可选，默认值为 `postgres`）\n  * `POSTGRES_DB` 指定数据库名称；（可选）\n\n## 部署指南\n\n0. 宿主机必须安装 `docker`, `docker-compose`, 部署时的域名必须有证书; \n\n1. 克隆本仓库及子模块，切换到 `docker-typecho` 目录下；\n   ```bash\n   git clone --recursive --depth=1 https://github.com/Nativu5/docker-typecho.git\n   ```\n\n2. 共有 3 处配置文件需要用户自行修改：\n\n   * `.\\docker-compose.yml` : \n\n     * `db` 一节中的数据库用户名、数据库用户密码、数据库名都可以由用户自定义；\n     * 每一节都有环境变量 `TZ` ，可供设置容器时区；\n\n   * `.\\nginx\\conf.d` : 需要将文件中所有 `yourdomain.com` 替换为用户自己的域名；\n\n   * `.\\cert.sh` :  首先将 `/path/to/dockercompose` 替换为 `docker-compose.yml` 所在路径；\n\n     默认采用的是 `DNS` 验证方式申请证书，搭配的是 `DNSPOD` 的API。\n\n     * 若用户使用 `DNSPOD` ，填入 `API ID` 和 `API Token` 即可；\n     * 若用户不使用 `DNSPOD`， 可以修改脚本前 6 行自行配置 `acme.sh` 获取证书即可； \n\n3. 执行 `.\\cert.sh` 申请证书并设置证书自动更新；\n\n4. 在 `docker-typecho` 下执行\n\n   ```bash\n   docker-compose up\n   ```\n\n   正常情况下，所有容器都应能正常运行；\n\n5. 使用 `Ctrl-C` 停止所有容器，然后执行：\n\n   ```bash\n   sudo chmod -R 777 ../docker_typecho\n   ```\n\n   更改权限以便稍后 `Typecho` 存取文件；\n\n6. 然后执行：\n\n   ```bash\n   docker-compose start\n   ```\n\n   重启容器，启动成功后打开浏览器访问预先设置的域名，即可安装 `Typecho` 。\n\n## 注意事项\n\n* `php-fpm-pgsql` 镜像已经上传 Docker Hub, 本仓库中也已经包含了 `dockerfile` , 读者可以此自行构建；\n\n* 配置文件默认已经开启 `https` ，故需先申请证书再使用；  \n\n* `acme.sh` 会自动更新证书；\n\n* 启用数据库定时备份，新建 `backup` 文件夹：\n\n  ```\n  mkdir /path/to/dockercompose/backup\n  ```\n\n  修改`vim /etc/crontab`，加入如下内容：\n\n  ```bash\n  */30 * * * * tar zcvf /path/to/dockercompose/backup/db-$(date +%y-%m-%H-%M).tar.gz /path/to/dockercompose/dbdata\n  ```\n\n  即每30分钟备份一次数据库，保存在 `/path/to/dockercompose/backup` 的 `db-日期.tar.gz` 中，\n\n  别忘了 `systemctl enable crond \u0026\u0026 systemctl start`.\n\n* `Typecho` 程序文件，使用的版本为当前 [Typecho](https://github.com/typecho/typecho) 仓库中 master 分支的最新版。您可以手动替换为需要的版本。\n\n* `Typecho` 安装时需要的数据库信息都在 `docker-compose.yml` 中；\n\n* `TZ` 环境变量控制容器时间，缺省为 `UTC`,   `docker-compose.yml` 中已经全部改为 `Asia/Shanghai`.\n\n* 如果不修改文件夹权限，安装 `Typecho` 时可能会提示用户自行创建 `config.inc.php`；\n\n* `Typecho` 安装卡在第三步，可能是 `PHP.ini` 中 `output_buffering` 出现问题；\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativu5%2Fdocker-typecho","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnativu5%2Fdocker-typecho","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnativu5%2Fdocker-typecho/lists"}