前言
前两篇文章已经介绍过用Docker安装Halo博客以及监控,这篇文章就在此基础上用docker搭建一个永不开裂的图床,撇去随时跑路的公共图床和付费的对象存储。
本站目前采用的实例站点
猫の图床
yopngs简介
一个纯粹的开源图床,聚焦图床核心功能,抛去用户验证、上传限制,自带鉴黄功能
支持鉴黄、支持压缩、支持本地存储、COS存储、OSS存储、B2存储
Github:https://github.com/xpnas/yopngs
Demo:https://yopngs.com/
本篇博客效果如下:
上传图片后,有四种链接可以复制,分别是 URL、HTML、UBB、MD。
Docker安装
命令行安装(不带鉴黄功能)
docker run --name=yopngs -d -p 8050:80 -d --network halongwiz -v /root/yopngs:/yopngs -v /root/yopngs/yopngs_config:/app/config --restart=always xpnas/yopngs:latest
docker-compose安装(带鉴黄功能)
首先下载docker-compose.yml文件
wget "https://raw.githubusercontent.com/xpnas/yopngs/master/docker-compose.yml"
然后根据自己的路径挂载和网络进行编辑
version: '2'
services:
yopngs: #图床服务
container_name: yopngs
restart: always
image: xpnas/yopngs:latest
volumes:
- /root/yopngs:/yopngs
- /root/yopngs/yopngs_config:/app/config
ports:
- "8050:80"
nsfwapi: #鉴黄服务
container_name: nsfwapi
restart: always
image: eugencepoi/nsfw_api:latest
environment:
PORT: 5000
ports:
- "8030:5000"
networks:
default:
external:
name: halongwiz
执行命令,拉起图床和鉴黄服务
docker-compose up -d
这个时候查看已安装完成的docker服务
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
050b22e0ba3b eugencepoi/nsfw_api:latest "/bin/sh -c 'gunicor…" 12 hours ago Up 12 hours 0.0.0.0:8030->5000/tcp nsfwapi
7e328136a8a2 xpnas/yopngs:latest "dotnet yopngs.dll" 12 hours ago Up 10 hours 443/tcp, 0.0.0.0:8050->80/tcp yopngs
配置Nginx代理
server {
listen 80;
server_name pics.findmyfun.xyz;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name pics.findmyfun.xyz;
...
client_max_body_size 1024m;
location / {
proxy_pass http://yopngs;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
配置存储源
所有配置都在config目录下的setting.json文件,可参照defaultsetting.json修改,本篇博客主要用到下面的配置。
本地存储
DISKStores节点,支持多个,可使用docker启动命令映射Rclone挂载的磁盘
"DISKStores": [
{
"diskfloder": "/yopngs",//本地目录,docker请做映射
"webfloder": "/v2",//url目录,如https://pics.findmyfun.xyz/v2/2022/03/05/xxx.png
"name": "findmyfun",//主界面下拉显示名称,随意填写
"type": "findmyfun",//内部类型,随意填写
"index": 0,//主界面下拉排序,越小越优先
"active": true//是否激活
},
腾讯COS存储
COSStores节点,支持多个
"COSStores": [
{
"region": "ap-tokyo",
"bucket": "findpics-1309390030",
"SECRET_ID": "xxxxxx",
"SECRET_KEY": "xxxxxx",
"Domain": "https://pics.findmyfun.xyz",
"name": "COS",
"type": "COS",
"index": 1,
"active": false
}
],
其他设置
"GLOBAL": {
"SIZELIMIT": 30,//图片大小
"EXTLIMIT": ".WEBP.PNG.GIF.JPG.JPEG.BMP",//类型限制
"NSFW": true,//鉴黄开关
"NSFWCORE": 0.5,//鉴黄分数0~1
"NSFWHOST": "http://nsfwapi:5000",//请勿修改
"SERVERHOST": "http://yopngs:80",//请勿修改
"COMPRESS": false,//是否启用压缩
"COUNT": 0,
"STARTDATE": "2020.01.01"
},
评论区