alist+lskypro+picgo使用宝塔搭建图床

采用docker compose安装alit和lskypro方便数据备份

安装部分

1、安装alist

2、安装lskypro免费版

修改底部版权信息

参考 #337

修改位置:

lsky-pro/resources/views/welcome.blade.php

Line 33 in b8471f2

1
Copyright © 2018 - present Lsky Pro. All rights reserved. &nbsp;<a href="https://beian.miit.gov.cn/" target="_blank" rel="noreferrer">{{ \App\Utils::config(\App\Enums\ConfigKey::IcpNo) }}</a>&nbsp;请勿上传违反中国大陆和香港法律的图片,违者后果自负。
  • 显示空白问题,添加外网域名

docker-compose.yml

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
version: '3'
services:
lskypro:
image: halcyonazure/lsky-pro-docker:latest
restart: unless-stopped
hostname: lskypro
container_name: lskypro
environment:
- WEB_PORT=8089
- ASSET_URL=https:// #外网访问的域名,填你的域名
volumes:
- ./web:/var/www/html/
ports:
- "8089:8089"
networks:
- lsky-net

# 注:arm64的无法使用该镜像,请选择sqlite或自建数据库
mysql-lsky:
image: mysql:5.7.22
restart: unless-stopped
# 主机名,可作为"数据库连接地址"
hostname: mysql-lsky
# 容器名称
container_name: mysql-lsky
# 修改加密规则
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf:/etc/mysql
- ./mysql/log:/var/log/mysql
environment:
MYSQL_ROOT_PASSWORD: 123456 # 数据库root用户密码,自行修改
MYSQL_DATABASE: lsky-data # 可作为"数据库名称/路径"
networks:
- lsky-net

networks:
lsky-net: {}

3、安装宝塔添加反向代理

  1. 申请证书
    image.png

  2. 添加反向代理

    • 先随便填
      image.png
  • 编辑配置文件为
    image.png
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
#PROXY-START/

location ^~ / {
# 基本代理设置
proxy_pass http://127.0.0.1:8089;

# 设置请求头部
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Method $request_method;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
proxy_set_header X-Forwarded-Uri $request_uri;

# 添加响应头
add_header X-Cache $upstream_cache_status;

# 静态文件缓存
set $static_filevEF9cHPG 0;
if ($uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$") {
set $static_filevEF9cHPG 1;
expires 1m;
}

# 非静态文件设置无缓存
if ($static_filevEF9cHPG = 0) {
add_header Cache-Control no-cache;
}
}

#PROXY-END/

  1. 添加重定向
    image.png
  • /d/img1/lsky是alist的文件路径

  • /img是图床访问路径

具体参考:https://github.com/lsky-org/lsky-pro/issues/520

二、对接部分

1、alist对接webdav网盘

image.png

2、lsky对接alist

image.png

3.1 picgo对接lskypro

反代/套CDN后无法加载静态文件(css, js)(以及安装时点击无反应)

参考 #317

编辑 .env 文件,追加一行:

1
ASSET_URL=https://你的域名

方法一: 自定义Web图床 插件

参考 #346

按如下方式填写即可:

  • API地址:https://your.domain/api/v1/upload
  • POST 参数名:file
  • JSON路径:data.links.url
  • 自定义请求头:{“Authorization”: “Bearer your_token”}
  • 其他选填

方法二:lankong 插件

参考:https://github.com/hellodk34/picgo-plugin-lankong

按如下方式填写:

  • 将 Lsky Pro Version 选择为 V2
  • Server: 填写你的图床地址即可,不需要 /api/v1/upload ,不要以 / 结尾
  • Auth Token: Bearer Your_token
  • 其他选填

获取Token

参考 #336

CURL

  • 简洁一点:

    1
    curl -X POST -F "email=your_email@address" -F "password=your_passwd" https://your.domain/api/v1/tokens
  • 展开:

    1
    2
    3
    curl --location --request POST 'https://your.domain/api/v1/tokens' \
    --form 'email="your_email@address"' \
    --form 'password="your_passwd"'

3.2 picgo对接alist

image.png