Sign inSign up

micrograils/pukiwiki

By micrograils

Updated 8 months ago

Lightweight PukiWiki—fast, file-based Japanese wiki served over the H2O HTTP/2 server.

Image
Web servers
Content management system
0

1.3K

micrograils/pukiwiki repository overview

PukiWiki on Nginx + PHP-FPM

Docker Image Size Docker Pulls Alpine Version Nginx Version PHP Version

基于 Alpine Linux 的轻量级 PukiWiki Docker 镜像,使用 Nginx + PHP-FPM 架构。

✨ 特性

  • 轻量级: 基于 Alpine Linux 3.23.0,镜像体积小
  • 高性能: Nginx + PHP 8.4-FPM,优化的缓存策略
  • 安全: 非 root 用户运行,最小权限原则
  • 持久化: 支持数据卷挂载,数据不丢失
  • 即开即用: 预配置完成,开箱即用
  • 多平台: 支持 AMD64 和 ARM64 架构

🚀 快速开始

基本使用
docker run -d -p 80:80 micrograils/pukiwiki:latest

访问 http://localhost 即可使用 PukiWiki。

数据持久化(推荐)
# 创建数据目录
mkdir -p pukiwiki_data

# 启动容器并挂载数据卷
docker run -d \
  --name pukiwiki \
  -p 80:80 \
  -v $(pwd)/pukiwiki_data:/ext \
  micrograils/pukiwiki:latest

📁 目录结构

容器内重要目录:

  • /var/www/ - PukiWiki 安装目录
  • /ext/ - 持久化数据目录(建议挂载)
    • conf/ - 配置文件
    • data/ - Wiki 数据
      • wiki/ - 页面内容
      • attach/ - 附件文件
      • backup/ - 备份文件
      • cache/ - 缓存文件
      • counter/ - 计数器数据
      • diff/ - 版本差异数据
    • pukiwiki.css - 自定义样式文件

⚙️ 高级配置

自定义端口
docker run -d \
  --name pukiwiki \
  -p 8080:80 \
  -v $(pwd)/pukiwiki_data:/ext \
  micrograils/pukiwiki:latest
SSL 支持
docker run -d \
  --name pukiwiki \
  -p 80:80 \
  -p 443:443 \
  -v $(pwd)/pukiwiki_data:/ext \
  -v $(pwd)/ssl:/etc/nginx/ssl \
  micrograils/pukiwiki:latest
环境变量

当前版本支持以下环境变量(预留扩展):

docker run -d \
  --name pukiwiki \
  -p 80:80 \
  -v $(pwd)/pukiwiki_data:/ext \
  -e TZ=Asia/Shanghai \
  micrograils/pukiwiki:latest

🔧 性能优化

本镜像包含以下性能优化:

  • 静态资源缓存:
    • 图片文件缓存 30 天
    • CSS/JS 文件缓存 7 天
    • 字体文件缓存 1 年
  • Gzip 压缩: 自动压缩响应内容
  • 安全头: 添加 X-Content-Type-Options 等安全头
  • PHP-FPM 优化: 预配置的 PHP-FPM 参数

📋 版本信息

  • 基础镜像: Alpine Linux 3.23.0
  • Web 服务器: Nginx
  • PHP 版本: 8.4-FPM
  • PukiWiki: 最新主干版本
  • 支持的架构: linux/amd64, linux/arm64

🛠️ 开发和构建

本地构建
# 克隆项目
git clone https://github.com/micrograils/docker.git
cd docker/pukiwiki

# 构建镜像
./local-build.sh

# 测试镜像
./test.sh
构建参数
docker build \
  --build-arg ALPINE_VERSION=3.23.0 \
  -t pukiwiki/nginx:custom \
  .

📚 使用示例

1. 个人知识库
docker run -d \
  --name wiki \
  -p 80:80 \
  -v ~/wiki_data:/ext \
  --restart unless-stopped \
  micrograils/pukiwiki:latest
2. 团队协作平台
docker run -d \
  --name team-wiki \
  -p 8080:80 \
  -v /data/team_wiki:/ext \
  --restart unless-stopped \
  micrograils/pukiwiki:latest
3. Docker Compose
version: '3.8'

services:
  pukiwiki:
    image: micrograils/pukiwiki:latest
    container_name: pukiwiki
    ports:
      - "80:80"
    volumes:
      - pukiwiki_data:/ext
    restart: unless-stopped

volumes:
  pukiwiki_data:

🔍 故障排除

常见问题

Q: 访问页面出现 403 错误? A: 检查 /ext 目录权限,确保容器内 nobody 用户有读写权限。

Q: 数据丢失怎么办? A: 确保已正确挂载 /ext 数据卷,定期备份挂载的目录。

Q: 如何自定义样式? A: 在挂载的 /ext 目录中创建 pukiwiki.css 文件。

日志查看
# 查看容器日志
docker logs pukiwiki

# 查看 Nginx 访问日志
docker exec pukiwiki tail -f /var/log/nginx/pukiwiki-access.log

# 查看 Nginx 错误日志
docker exec pukiwiki tail -f /var/log/nginx/pukiwiki-error.log

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目基于 MIT 许可证开源。

🔗 相关链接

Tag summary

Content type

Image

Digest

sha256:3f9b1ee99

Size

10.3 MB

Last updated

8 months ago

docker pull micrograils/pukiwiki