动机
我之前使用的图床是SM.MS,一直相安无事,直到Gitee图床的外链问题,让我意识到我该做点什么了,虽然SM.MS是个老牌图床,但是自己搭建一个,数据掌握在自己手里比较安心,毕竟数据丢了后悔就来不及了
图床选择
图床程序:lsky-pro
Docker镜像:halcyonazure/lsky-pro-docker
Docekr镜像地址:lsky-pro-docker
感谢各位开源老铁!
搭建
使用docker搭建,我的图片不是很多,使用本地存储,数据库使用sqllite,并将数据目录映射出来,自己做备份
另外我的VPS只开放80和443端口,其他服务通过nginx反代处理,配置域名,这样即使以后迁移服务器,也不需要更改什么。
运行docker容器,将服务映射到1081端口,映射数据目录:
1 2 3 4 5 6
| docker run -d \ --name lsky-pro \ --restart unless-stopped \ -p 1081:80 \ -v /opt/application/lsky:/var/www/html \ halcyonazure/lsky-pro-docker:latest
|
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
| upstream lsky { server 127.0.0.1:1081; }
server { listen 80; listen [::]:80; server_name xxx.xx; return 301 https://xxx.xx$request_uri; }
server { listen 443 ssl http2; listen [::]:443 ssl http2; gzip on; server_name xxx.xx;
ssl_certificate /etc/cert/xxx.xx/cert.crt; ssl_certificate_key /etc/cert/xxx.xx/private.key;
ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
access_log /var/log/nginx/lsky_access.log combined; error_log /var/log/nginx/lsky_error.log;
location / { proxy_redirect off; proxy_pass http://lsky;
proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Frame-Options SAMEORIGIN;
client_max_body_size 100m; client_body_buffer_size 128k;
proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } }
|
访问对应域名,安装,完毕!
备份
目前我选择两种备份策略
- rclone挂载OneDrive,然后使用以下脚本备份
1 2
| tar -czvPf /home/OneDrive/Server/Backup/lsky_backup.tar.gz /opt/application/lsky
|
执行任务:
1
| 0 0 * * * sh /opt/application/backup.sh
|
- Duplicati备份到OneDrive和GoogleDrive