本人使用Docker,由整理几个个人感觉不错的应用
一、Portainer – Docker管理工具
Portainer 为网页版Docker管理工具,可无需登录NAS安装Docker应用。官方版本不支持中文版,可配置三方中文版,安装及配置中文版可见《群晖、威联通docker管理工具portainer安装及汉化教程2022最新版本》。
二、DDNS-GO 内网穿透工具
威联通的QNAP本身注册后自带网址可实现公网访问,不过速度较慢,由此可使用DDNS-GO公网访问。安装配置可见《NAS及PC公网访问实现》。
三、Flare – Portail 主页
Flare 页面简化,操作简单,无需数据库,加载速度快。可修改配置文件也可以使用在线配置。自带大量统一图标可选。
可使用Portainer创建自定义模版或使用NAS的Docker创建应用程序,项目中example文件夹中有安装代码实例。本人使用docker-compose代码如下:
version: '3'
services:
flare:
image: soulteary/flare:latest
restart: always
command: flare --nologin=0 --visibility=private
environment:
- FLARE_DISABLE_LOGIN=0
- FLARE_USER=user
- FLARE_PASS=pwsword
ports:
- 5005:5005
volumes:
- /share/flare:/app
四、 Mariadb – 数据库
Mariadb作为其他应用使用的数据库应用。默认安装即可。可配合phpmyadmin管理工具使用。phpMyAdmin为数据库网页版管理工具。可使用docker-comprose 安装。
代码如下:
version: '3'
services:
db:
image: mariadb:10.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: notSecureChangeMe
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
安装完成后,在容器中的my.conf文件中添加
[mysql] max_connections = 2000 skip-name-resolve
五、NextCloud – 私有云盘服务–Seafile
NextCloud支持浏览器、移动端、PC端上传下载使用。内含多种插件。安装时做好端口映射外需要将文件映射到自建文件夹中。

NextCloud更换为Seafile。安装文档见Docker 安装Seafile,实现个人网盘与文档在线编辑
六、 Alist – 云盘整合工具
Alist 可集成百度网盘、阿里云盘等国内各大网盘。支持各大网盘上传下载。
七、WordPress – 建站工具
WordPress 含有大量主题与插件,可支持博客、商务等多种网站建设。每种主题均可自定义。
如果出现代码块格式错误可按《解决Githuber MD插件代码高亮不能正常工作的问题》操作处理。
- 安装Enlighter – Customizable Syntax Highlighter插件。
- 在主题中添加HTML标签转换的PHP代码
function getPar($par,$str){ $pieces = preg_split($par, $str,-1,PREG_SPLIT_DELIM_CAPTURE); $result =''; foreach($pieces as $piece){ $result.=$piece; } return $result; } //转换代码高亮器 function bTagFilter($content) { $pattern_full = '{(<pre><code class="language-[\s\S]*?">[\s\S]*?</code></pre>)}'; $pattern_full1 ='{<pre><code class="language-[\s\S]*?">([\s\S]*?)</code></pre>}'; $pattern_full2 ='{<pre><code class="language-([\s\S]*?)">[\s\S]*?</code></pre>}'; //使用短代码的正则分割字符串 $pieces = preg_split($pattern_full, $content,-1,PREG_SPLIT_DELIM_CAPTURE); $new_content = ''; //遍历所有的字符串 含有段代码的字符串不做自动处理 foreach($pieces as $piece) { if (preg_match($pattern_full, $piece, $matches)) { $code = $matches[0]; $lug = getPar($pattern_full2,$piece); $code = getPar($pattern_full1,$piece); $code = '<pre class="EnlighterJSRAW" data-enlighter-language="'.$lug.'">'.$code.'</pre>'; $new_content .= $code; } else { $new_content .= $piece; } } return $new_content; } add_filter('the_content', 'bTagFilter', 99);
使用Nginx反向代理后获取不到真实IP,可参照《WordPress+Nginx取得真实IP》操作处理。
推荐插件:邮件服务(WP Mail SMTP) 登录页面替换(WPS Hide login) Markdown编辑器(WP Githuber MD) 缓存(WP Super Cache)
可使用docker-comprose安装,数据库用户名密码表名等可自行修改,如未安装数据库使用如下代码:
version: '3'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
若已安装数据库则使用如下代码:
version: '3'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: ip:3306
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
Nginx反向代理设置,路径/xmlrpc.php需要单独处理,此路径会被攻击,用于破解账号密码。
location / {
set $blog http://blog.temp.com;
proxy_pass $blog;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
location ~* /xmlrpc.php {
deny all;
}
八、CodiMD – Markdown协同笔记工具
CodiMD是基于HackMD开发。使用Markdown作为编辑工具。该工具支持协同编辑,也可私人查看、分享。
docker-comprose代码如下:
version: "3"
services:
codimd:
image: hackmdio/hackmd:latest
environment:
- CMD_DB_URL=mysql://name:password@ip:3306/database
- CMD_USECDN=false
ports:
- "3000:3000"
volumes:
- upload-data:/home/hackmd/app/public/uploads
restart: always
volumes:
upload-data: {}
- 海报
- 打赏
- 分享
- 微信
- 支付宝