Shaarli 是一个个性化、极简主义、超快速、无数据库的书签服务,部署需要 PHP
支持,PHP
安装参考文章:Debian 安装国内源 Docker 及其他常用软件
1、部署
按官方文档介绍,直接使用 docker
部署,docker
安装参考文章:Debian 安装国内源 Docker 及其他常用软件
可以参考文章:使用 Docker Compose 命令部署常用服务,更方便的部署。
1.1、创建文件夹
1 2
| mkdir -p ~/.docker/shaarli/shaarli-data mkdir -p ~/.docker/shaarli/shaarli-cache
|
1.2、拉取最新镜像
1
| docker pull shaarli/shaarli:latest
|
1.3、部署命令
1 2 3 4 5 6 7
| docker run -d \ --restart unless-stopped \ --name shaarli \ -p 8000:80 \ -v ~/.docker/shaarli/shaarli-data:/var/www/shaarli/data \ -v ~/.docker/shaarli/shaarli-cache:/var/www/shaarli/cache \ shaarli/shaarli:latest
|
2、配置 Nginx
Nginx
安装参考文章:Debian 安装国内源 Docker 及其他常用软件
2.1、生成证书
如果服务器已经安装 certbot
,只需要运行以下指令
1
| certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini -d bookmarks.ysbzcn.com --email 'email@ysbzcn.com'
|
如果没有 certbot
,需要一些前置安装,参考文章:Debian 安装国内源 Docker 及其他常用软件
2.2、新建 nginx
配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| upstream bookmarks { server 127.0.0.1:8000; }
# HTTP 重定向到 HTTPS server { listen 80; listen [::]:80; server_name bookmarks.ysbzcn.com;
if ($host = bookmarks.ysbzcn.com) { return 301 https://$host$request_uri; } return 403;
# 隐藏 Nginx 版本号 server_tokens off; }
server { listen 443 ssl; listen [::]:443 ssl; http2 on;
server_name bookmarks.ysbzcn.com;
# 隐藏 Nginx 版本号 server_tokens off;
# 判断 $host 如果不是设置好的域名,就返回403页面,可以禁止 IP 访问 Web。 if ($host !~ (bookmarks.ysbzcn.com)$){ return 403; } # 证书位置 ssl_certificate /etc/letsencrypt/live/bookmarks.ysbzcn.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bookmarks.ysbzcn.com/privkey.pem;
# 可选 SSL 配置 ssl_protocols TLSv1.2 TLSv1.3; # 支持的协议版本 ssl_ciphers HIGH:!aNULL:!MD5; # 加密套件 ssl_prefer_server_ciphers on; # 优先使用服务器加密套件
# 访问和错误日志路径 access_log /var/log/nginx/nginx.bookmarks.access.log; error_log /var/log/nginx/nginx.bookmarks.error.log;
# Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致你在后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m; 这行配置。当然,1024m 可根据你的需要自行修改。 # shaarli 恢复文件大小一般不超过 5m,设置为 5m 即可。 client_max_body_size 5m;
# 反向代理配置 location / { proxy_pass http://bookmarks; 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; }
# 拒绝访问隐藏文件: 此配置拒绝对隐藏文件(以点开头)的访问,这可以防止信息泄露。 location ~ /\. { deny all; } }
|
2.3、验证并重载 nginx
配置
2.4、初始化 Shaarli
输入解析好的域名初始化 Shaarli
,此时会报错,执行下面指令授予权限,然后 CTRL + F5
刷新网页继续初始化即可。
1
| docker exec -it shaarli chown -R nginx:nginx /var/www/shaarli/data
|
1
| docker exec -it shaarli chown -R nginx:nginx /var/www/shaarli/cache
|
3、更新
3.1、停止并移除旧容器
1
| docker stop shaarli && docker rm shaarli
|
3.2、拉取最新镜像
1
| docker pull shaarli/shaarli:latest
|
3.3、重新部署
1 2 3 4 5 6 7
| docker run -d \ --restart unless-stopped \ --name shaarli \ -p 8000:80 \ -v ~/.docker/shaarli/shaarli-data:/var/www/shaarli/data \ -v ~/.docker/shaarli/shaarli-cache:/var/www/shaarli/cache \ shaarli/shaarli:latest
|