Docker安装Chevereto自建图床 __2023年1月26日 __3条评论 __270次阅读 __0人点赞 __Tao_Qi 我的机器是甲骨文云春川4H24G,Ubuntu 22.04.1 LTS,arm架构 安装数据库容器 因为Chevereto需要数据库支持,因此必须安装数据库,我采用的是mariadb数据库,命令如下:
[code] # 创建并且运行容器
docker run \
--name mariadb \
-p 1234:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d \
--restart=always \
--privileged=true \
-v /home/docker/myriadb-10.0/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
-v /home/docker/myriadb-10.0/data/:/var/lib/mysql \
mariadb
# 创建数据库
create database chevereto DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
[/code]
第二句,我创建了一个名为chevereto的数据库,这个名字后面会用到。 安装Chevereto容器 因为我使用的甲骨文云arm的机器,官方版本无法使用,因此安装的是 linuxserver/chevereto 的最新镜像。 拉取镜像
[code] docker pull linuxserver/chevereto
[/code]
输出如下: 创建外部挂载目录 这个目录可以自行设置.
[code] mkdir -p /home/docker/chevereto/config
mkdir -p /home/docker/chevereto/data
[/code]
启动容器
[code] docker run -d \
--restart=always \
--name=chevereto \
--link mariadb:db \
-e TZ=Asia/Shanghai \
-p 5080:80 \
-p 5443:443 \
-v /home/docker/chevereto/config:/config \
-v /home/docker/chevereto/data:/data \
-v /etc/localtime:/etc/localtime:ro \
linuxserver/chevereto
[/code]
这里的注意事项就是要记住--link mariadb:db这个变量的值,它代表链接的数据库名称是db 接下来就可以直接初始化账号了,直接用IP地址:端口访问页面,结合之前的Cloudflare Tunnels 教程,可以直接实现域名访问。 以上两个重要信息就是初始化账号时使用: Database host就填写我们刚刚记下的db; Database name就填写我们刚刚记下的chevereto; 剩余参数按自己喜好设置。 配置Chevereto容器 因为Chevereto容器默认的图片上传下载以及内存占用太小了,我的甲骨文春川主机有4核24G内存200G存储,加上图床又是我一个人使用,完全不需要这么节省,因此需要修改配置。
[code] cd /home/docker/chevereto/config/php
vim php-local.ini
[/code]
进入编辑模式之后就可以修改默认参数,配置文件里面没有的变量也可以自行添加,我修改的数值为:
[code] post_max_size = 200M
upload_max_filesize = 200M
max_file_uploads = 100
[/code]
配置路由 在网页端,我们是可以使用自己的账号正常上传下载使用这个图床的,但是如果要使用Obsidian连接图床,使用API上传,那就有问题。 因为Chevereto默认API上传归类为访客上传,上传的图片不会出现在我们的账号里。为了保证我们能更好管理图片,我们需要修改路由: 获取用户名和相册ID 首先通过IP地址:端口进入自己的Chevereto图床,进入管理界面获得用户名和相册ID 头像旁边的就是用户名 进入相册详情页就可以查看相册ID 修改路由 首先把容器中的路由配置文件复制出来
[code] # 从容器中复制出来配置文件
docker cp 1a4z57a38068:/app/chevereto/app/routes/route.api.php /home/docker/chevereto/config/route.api.php
[/code]
这句代码的作用是,把容器里面的路由文件复制到宿主机,注意把1a4z57a38068修改为自己实际的容器ID 修改复制出来的路由配置文件:
[code] vim /home/docker/chevereto/config/route.api.php
[/code]
修改里面的内容
[code] # 修改前为
# $uploaded_id = CHV\Image::uploadToWebsite($source);
# 将其修改为
$uploaded_id = CHV\Image::uploadToWebsite($source, '你的账户名', array('album_id'=>你的相册ID));
[/code]
接下来保存退出文件,将当前的Chevereto容器删除,用下面的命令重新创建容器:
[code] docker run -d \
--restart=always \
--name=chevereto \
--link mariadb:db \
-e TZ=Asia/Shanghai \
-p 5080:80 \
-p 5443:443 \
-v /home/docker/chevereto/config:/config \
-v /home/docker/chevereto/data:/data \
-v /etc/localtime:/etc/localtime:ro \
-v /home/docker/chevereto/config/route.api.php:/app/chevereto/app/routes/route.api.php \
linuxserver/chevereto
[/code]
可以看到,这里我们有一句-v /home/keen/docker/chevereto/config/route.api.php:/app/chevereto/app/routes/route.api.php命令,用来将我们宿主机修改设置后的路由配置文件映射到容器里。 Obsidian连接Chevereto图床 这里需要用到PicGo这个程序和Obsidian第三方插件Image auto upload Plugin 安装并配置PicGo 这里我们使用的是PicGo,可以访问外网去 这个地址
1.  zudaz说道: [2023年1月26日 下午1:18](<https://www.5yyx.com/?p=3846#comment-3033>) 加鸡腿 [回复](<https://www.5yyx.com/?p=3846&replytocom=3033#respond>)
2.  oneasai说道: [2023年1月26日 下午1:27](<https://www.5yyx.com/?p=3846#comment-3034>) 必须给坛友加鸡腿 [回复](<https://www.5yyx.com/?p=3846&replytocom=3034#respond>)
3.  ananas说道: [2023年1月26日 下午1:28](<https://www.5yyx.com/?p=3846#comment-3035>) 帮顶,lsky也很好用 [回复](<https://www.5yyx.com/?p=3846&replytocom=3035#respond>)发表回复 取消回复电子邮件地址不会被公开。必填项已用 标注 __ __