惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
V
Visual Studio Blog
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
博客园 - Franky
D
DataBreaches.Net
B
Blog
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
P
Proofpoint News Feed
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Martin Fowler
Martin Fowler
月光博客
月光博客
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
阮一峰的网络日志
阮一峰的网络日志
F
Fortinet All Blogs
博客园 - 【当耐特】

阁子

LEANN 的重算式向量索引 · 阁子 lamarck 按真实调用进化全部 skill · 阁子 FrontierAgent 的上下文压缩与重复抑制 · 阁子 magpie 本地语义搜索 · 阁子 OpenViking 的上下文组织与检索 · 阁子 munder-difflin 的多 agent 协调实现 · 阁子 ai-memory:换个 CLI 接着干的 agent 记忆层 · 阁子 TimesFM:预测之前的脏活都在模型外面 · 阁子 DarwinX:模型不动,只进化外壳 · 阁子 Final2x:一个刻意做薄的超分外壳 · 阁子 Cordis:把卸载做完备的插件框架 · 阁子 DeepSeek Harness:一切皆插件的开源 agent 运行时 · 阁子 Agency Agents:一座 AI 角色库的分发工程 · 阁子 Harvey LAB:法律 Agent 基准的架构与评测方法 · 阁子 DeepTutor:开源的 AI 私人家教工作台 · 阁子 Semantica:面向可审计 AI 的图原生基础设施 · 阁子 PromptCache:LLM 语义缓存网关的架构与实现 · 阁子 Prime Agent,只给模型一个工具的长跑 agent · 阁子 Skill Shelf: 给 agent 的 skill 仓库,兼做服务的配置中心 · 阁子 Cloudflare Computer,装在 Durable Object 里的文件系统 · 阁子 QM,给全公司用的 agent 平台 · 阁子 PersonaLive: 把肖像扩散模型压到能直播 · 阁子 Neon: 把本地视频点亮成系统虚拟摄像头 · 阁子 LiteReality-Agent笔记: 从一次扫描到可交互的房间 · 阁子 LiteReality-Agent笔记: 从一次扫描到可交互的房间 蝉与梦 · 阁子 小工具(三) 小工具(三) · 阁子 相机小述 相机小述 · 阁子
图床搭建
本文作者: dfine · 2019-03-26 · via 阁子

周末回来发现博客里的图片全成了码云的个性403了,原来是因为很多公共的图床存活不了多少年,而且当图不再使用时,不便于回收,所以在图床选择这方面,纠结了很久。后来Github认为在其上传图片获取外链并不算滥用,但是Github在国内的速度比较慢,对于背景图来说,就是肉眼可见的卡了。好在当时发现了Coding和码云,于是在码云(Gitee)上用其Issue页上传图片做图床。
然而不幸的是,大概他们是觉得滥用了,于是被防盗链了。

图床搭建

然后又像以前一样,对比了很多现有的图床,依然没找到能安心存放的地方。于是想到手里还有VPS,便打算搭建一个了。
最开始是一个同学送的天翼云,估计是办宽带送的,结果发现80和443端口全被封了,问客服说要备案才行,想着备案就备案吧,然而当看到备案要填的资料时,立马放弃了。
另一个就是Vultr上的,国外的云主机商相比于国内,条件限制宽了不少,不用动不动就实名或者备案,虽不会发表什么不当言论,但吃相看着令人难受。
现有图床挺多的,目前打算用一个开源的荔枝图床,有现成的Docker镜像,界面比较美观,官网在这

Docker环境安装

其实云主机还好,如果觉得官方的Docker下载太慢,也有Daocloud的CDN加速的镜像,直接一条命令就可以完成:

1

curl -sSL https://get.daocloud.io/docker | sh

等安装完成之后,就可以拉取镜像了,

1

docker pull kdelfour/lychee-docke

或者直接试运行,看看效果:

1

docker run -it -d -p 80:80 kdelfour/lychee-docke

这时,在本地浏览器输入云主机的IP,就可以看到一个基本的界面了。
完整的命令是:

1

docker run -it -d -p 80:80 -v /your-path/uploads/:/uploads/ -v /your-path/data/:/data/ -v /your-path/mysql/:/mysql/ kdelfour/lychee-docker

分别挂载上传图片的uploads文件夹、data文件夹和数据库储存的mysql文件夹,并映射80端口。
这时候再登陆该地址,会提示要初始化一些配置,可以用官方提供的配置:

1

2

3

4

url : localhost

database name : lychee

user name : lychee

user password : lychee

然后就是创建用户名和密码了,创建成功,图床已经初步建成。

但是现在直接做图床,看到的链接都是丑陋的IP和http字段组成的地址,干干巴巴,麻麻赖赖的,一点都不圆润。
所以接下来就要盘它了。一方面是IP更换为域名,另一方面是HTTP更换为更为安全的HTTPS。

域名申请

为IP申请一个域名,然后配置DNS,将域名直接以A类指向云主机IP即可。过一段时间应该就可以在本地看到域名解析生效:

1

$dig $YourUrl

然后直接在浏览器输入域名即可访问。

HTTPS支持

要将HTTP转为HTTPS主要有两个步骤,一个是申请证书,一个是安装证书。

SSL证书申请

偶然发现了FreeSSL这个网站,申请证书是真的方便,还有一个支持各大平台的客户端KeyManager,可以直接在里面申请Let’s Encrypt证书或者TrustAsia证书,一般前者半年,后者一年,因为比较懒,所以选后者。
在里面申请证书后,会有两种方法验证,一种是DNS验证,另一种是文件验证。
对于DNS验证,它会给你一串字符,让你到DNS解析设置里添加一个TXT解析,并粘贴为该字串。但是验证结果是香港和美国通过了,大陆总是验证失败,提示CNAME超时。因此选择文件验证了。
要将文件放在网站中进行验证,需要将其拷进Docker中,或者直接Docker容器中拷出来。

1

Docker cp $YourContainer:/var/www/lychee/ www/lychee/

然后将SSL验证文件放入该文件夹中重新挂载:

1

docker run -it -d -p 80:80 -v /root/images/uploads/:/uploads/ -v www/lychee/:/var/www/lychee/ -v data/:/data/ -v mysql/:/mysql/ kdelfour/lychee-docker

然后就可以验证成功了,之后可以生成证书并下载Nginx证书。

Nginx配置修改

接下来就是容器配置了,将HTTP转换为HTTPS。

SSL证书安装

首先将生成的证书放到网站的某个目录中,一个公钥和一个私钥。然后修改Docker容器的Nginx配置文件,也可以将其从容器中拷贝出来,再作修改:

1

docker cp $YourContainer:/etc/nginx/ nginx/

然后进入nginx/sites-enabled目录,修改lychee文件。
加入HTTPS的端口以及SSL证书的地址:

1

2

3

4

5

6

7

8

9

listen 443 ssl;

server_name localhost;

keepalive_timeout 70;

ssl on;

ssl_certificate /etc/nginx/sslkey/server.pem;

ssl_certificate_key /etc/nginx/sslkey/key.key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers HIGH:!aNULL:!MD5;

HTTP跳转

当使用HTTP访问时,直接跳转到HTTPS,有很多方法,这里使用497的错误码实现跳转:
在Nginx的Server配置中加上

1

error_page 497 https://$YourSite/

然后重新挂载容器,此时需要指定HTTPS协议的443端口,以及Nginx配置文件目录:

1

docker run -it -d -p 80:80 -p 443:443 -v nginx/:/etc/nginx/ -v uploads/:/uploads/ -v www/lychee/:/var/www/lychee/ -v data/:/data/ -v mysql/:/mysql/ kdelfour/lychee-docker

此时即可正常访问图床,示例如下:
imgcloud