跳到主要内容

3、使用

使用

image-20240907194826178

目录

[toc]

版权声明

项目完整名称为:Filesite/Machete,为求简单下文都以machete代替。

这里只做关于此优秀项目的一些个人使用记录,具体信息请访问作者官网,版权归原作者所有。

官网:https://jialuoma.com/

仓库地址:https://github.com/filesite-io/machete

image-20240807124010055

image-20240807072211857

它足够安全吗

用machete家庭相册系统管理我的照片安全吗?

请放心使用machete家庭相册系统来把本地图片目录转化为一个网站,只要你遵循我们推荐的方式安装部署,它是绝对安全的!

理由如下:

  1. machete是开源项目,代码公开,接受任何人/机构的安全检测;
  2. 推荐使用docker安装部署machete,docker的安全机制很完善;
  3. 只给runtime/目录写入权限,其它文件和目录只读

Filesite/machete是开放源代码的,它托管在以下几个git网站:

并遵循MIT License,任何个人或公司,只要在保留来源申明的情况下,都可以基于它根据需要做修改后免费使用。

另外,推荐使用docker来安装部署machete家庭相册, 这样基于docker提供的安全沙箱环境,最大程度地保护你的电脑、服务器不受machete程序影响。

注意

最后,machete程序只有临时文件存放目录runtime/需要开放写入权限,其它文件和目录都只需开放“只读”权限即可, 所以你在使用docker为machete配置volume或者本地映射目录时,相册目录只开放只读权限docker容器, 由此可以进一步确保你的照片目录不会被machete程序修改/删除。

如何更新代码

方案1:更新镜像

docker pull filesite/machete

方案2:更新容器里的代码

image-20240907193538466

docker exec -it machete /var/www/machete/bin/upgrade.sh



[root@docusaurus-wiki ~]#docker exec -it machete sh
/var/www/html # cat /var/www/machete/bin/upgrade.sh
#!/bin/sh
echo "Upgrade machete ..."
echo ""

## 改为优先从gitcode下载,避免域名解析问题
download_link_gitcode="https://gitcode.net/filesite/machete/-/archive/master/machete-master.tar.gz"
download_link_filesite="https://git.filesite.io/filesite/machete/archive/master.tar.gz"


# 检测域名是否能连接
# 返回值:0 - 不能连接,1 - 可连接
detectDomainCanConnect () {
domain=$1
if [ -z "${domain}" ]; then
echo "Usage: detectDomainCanConnect domain"
echo ""
exit 1
fi

ping_res=`ping -c 3 "${domain}"`
if [[ $ping_res == *"100.0% packet loss"* ]]; then
return 0
fi

return 1
}


if [ ! -d /var/www/downloads ]; then
mkdir -p /var/www/downloads
fi

cd /var/www/downloads/

if [ -f master.tar.gz ]; then
rm -f master.tar.gz
fi

if [ -d machete/ ]; then
rm -rf machete/
fi


# 升级machete
detect_domain="gitcode.net"
echo "检测${detect_domain}是否可连接..."
detectDomainCanConnect "${detect_domain}"
connect_res=$?
if [ $connect_res -eq 0 ]; then
echo "⚠️⚠️"
echo "当前网络无法连接[${detect_domain}],即将从备用网址下载machete"
curl --connect-timeout 15 "${download_link_filesite}" -o "master.tar.gz"
else
curl --connect-timeout 15 "${download_link_gitcode}" -o "master.tar.gz"
fi

if [ -f "master.tar.gz" ]; then

tar -zxvf master.tar.gz
rm -f master.tar.gz

# 兼容gitcode的tar包解压后目录为:machete-master/
if [ -d machete-master/ ]; then
mv machete-master/ machete/
fi

rsync -vrL machete/* /var/www/machete/ \
--exclude=www/content/ \
--exclude=www/navs/ \
--exclude=www/girls/ \
--exclude=www/videos/ \
--exclude=www/tajian/ \
--exclude=runtime/

fi

echo "Machete front-end upgraded."
echo ""


# admin/后台不再维护
# upgrade admin
## cd /var/www/downloads/
## curl --connect-timeout 15 "https://git.filesite.io/wen/jialuomaadmin/archive/master.tar.gz" -o "master.tar.gz"

## if [ -f "master.tar.gz" ]; then
##
## tar -zxvf master.tar.gz
## rm -f master.tar.gz
## rm -rf /var/www/machete/www/admin/
## mv jialuomaadmin/dist/ /var/www/machete/www/admin
##
## fi
## echo "Admin system upgraded."
## echo ""


# upgrade nginx config
if [ -d /etc/nginx/http.d/ ]; then
cp /var/www/machete/conf/nginx_machete.conf /etc/nginx/http.d/machete.conf
fi

if [ -d /etc/nginx/conf.d/ ]; then
cp /var/www/machete/conf/nginx_machete.conf /etc/nginx/conf.d/machete.conf
fi

/usr/sbin/nginx -s reload
echo "Nginx config upgraded and reloaded."
echo ""

echo ""
echo "==Machete upgrade done.=="
echo ""
/var/www/html #

系统配置文件在哪里

全局配置文件:conf/app.php

自定义配置文件:runtime/custom_config.json

推荐使用自定义配置文件,以免系统升级后配置被覆盖。

如果是使用docker安装的machete,请自行了解如何修改docker容器里的文件,或者如何把本地文件复制到容器替换。

怎么开启密码授权访问

在目录runtime/下创建配置文件:custom_password.json, 可复制conf/custom_password.json到runtime/目录下进行修改。

也可按下面示例创建:

{
"password_auth": {
"enable": true,
"default": "",
"allow": {
"目录1": "hello",
"目录2": "world"
}
}
}

配置说明:

  • enable开关设置true则启用,默认为false关闭状态
  • default选项配置全局默认密码,针对所有目录生效
  • allow里配置单个目录的授权密码,如果default配置为空,则只有allow里所设置的目录需要密码授权访问

2024年9月5日已解决

  • 我的配置:
#1、创建文件
cat > /root/machete/runtime/custom_password.json <<EOF
{
"password_auth": {
"enable": true,
"default": "",
"allow": {
"3-视频": "123456",
"4-高圆圆": "123456"
}
}
}
EOF
chmod 777 custom_password.json

#2、重启生效
cd /root/machete
docker-compose down
docker-compose up -d
  • 验证

image-20240905071442267

image-20240905071451253

image-20240905071510916

image-20240905071528284

完美。

v1(老版本)

请创建自己的icon文件,命名为favicon.ico,替换根目录下的这个图标即可;

注意: 请清空浏览器缓存后验证新图标,否则可能因为浏览器缓存而看到老的图标。

2024.8.31已解决。

需求

image-20240824111024785

方法

image-20240826061729242

亲自测试

image-20240831093917474

  • 将图片上传到machete容器的/var/www/machete/www路径下,替换掉原来的图片
#1、先删除原来容器里默认的图标
docker exec -it machete sh
cd /var/www/machete/www
rm -rf favicon.ico


#2、拷贝自己制作的网站图标到容器
cd /root/machete
ll favicon.ico #自己制作的网站logo
docker cp favicon.ico machete:/var/www/machete/www

#3、重启容器
docker restart machete

#4、浏览器刷新验证(完美)

image-20240831095850505

v2(新版本)

请创建自己的icon文件,命名为favicon.ico,把它复制到你的图片根目录即可;

怎么关闭网页底部的二维码

在runtime/custom_config.json中增加配置:

"showQRImageInFooter": false

自己测试:

#1、创建文件
vim /root/machete/runtime/custom_config.json
{"theme":"beauty","content_directory":"girls/","enableSmallImageForWan":"true","showQRImageInFooter": false}


#2、重启生效
docker restart machete

image-20240905072438988

  • 验证(复合预期)

image-20240905072536999

怎么修改底部的版权信息

新版本

  • 配置

请在图片根目录下,创建文件README_copyright.txt,内容参考下面示例代码:

<span>&copy;2022 - 2024</span>
by <a href="https://onedayxyy.cn/" target="_blank">One</a>
<br>
执行耗时: {page_time_cost} ms
  • 重启容器
cd /root/machete/photo
docker-compose down
docker-compose up -d
  • 验证

清空浏览器缓存,测试:(复合预期,完美)

image-20240907093701330


==(旧版本)(舍弃)==

请编辑目录下的php文件:

themes/beauty/views/layout/

找到“尾部网站信息”,按自己的需要修改并保存。

注意本地保存相关文件存档,machete升级系统时会覆盖此目录下的文件。


  • 自己配置:
#1、配置
docker exec -it machete sh
cd /var/www/machete/themes/beauty/views/layout
vi main.php
exit

#2、重启生效
docker restart machete

image-20240905073723079

  • 验证(符合预期)

image-20240905073610311

怎么修改网站简介信息?

请修改图片根目录下的README.md文件内容(如果你安装的是老版本,看不到这个文件,请手动创建),它是markdown格式的内容。

保存后,点网页右上角“刷新”图标,清空缓存查看效果。

怎么修改网站标题?

网站标题显示在网页左上角,以及浏览器tab栏上,系统默认的标题是“家庭相册”或者“Filesite/Machete”。

请在图片根目录下,创建文件README_title.txt,用一行文字来设置,示例如下:

我的相册

相册部署到外网了,点击图片打开有点慢怎么办

machete家庭相册默认为局域网使用,配置enableSmallImageForWan开启查看大图显示缩略图是关闭的, 如果你的照片文件大小很大,那么在外网打开可能会很慢。

解决办法,为外网点击图片浏览大图开启缩略图功能, 在自定义配置:runtime/custom_config.json里增加以下配置即可:

"enableSmallImageForWan": true

在局域网内使用,能否所有图片使用原图而不是缩略图?

系统配置enableSmallImage默认为true打开的,在自定义配置文件中,加入以下配置保存即可关闭所有缩略图功能:

"enableSmallImage": false

我的设备cpu性能较差,缩略图显示有点慢且cpu占用较高怎么解决?

machete家庭相册在设计的时候考虑到在嵌入式设备中运行,缩略图功能可由用户的浏览器完成。

在自定义配置中把disableGenerateSmallImageInServer开关打开即可关闭服务器端生成缩略图,从而节省cpu消耗:

"disableGenerateSmallImageInServer": true

增加内网ip和ip白名单设置

2024年9月20日更新成功。(完美🤣)

更新内容

image-20240919071346397

号外!machete相册源码发布新版啦!增加功能:1. pc版左侧目录支持展开/收拢,且可配置(配置项见conf/app.php)2. 增加内网ip和ip白名单设置,支持对:清空缓存、设置目录封面图、设置视频封面图管理权限限制gitcode、gitee、github、docker同步发布,欢迎更新体验!


修改方法:

情况1:(相册部署在局域网里)

作者提供的:

image-20240920113919972

image-20240920114012162


情况2:(相册部署在公网服务器)

我的machete是直接部署在公网服务器的,那么如何设置相册封面呢?

当时自己出现的问题:

(配置了,还时没有效果。。。😒)

image-20240920114259555

进一步研究:

故障原因:

https://ip138.com

image-20240920114443078

问题:我电脑的外网ip,每次开机会改变得吗

image-20240920114519855

自己重新配置,再次测试:

将容器里的app.php文件原来由服务器的公网ip改为自己局域网外网ip,重启容器,再次测试发现就ok了,完美😉

image-20240920114643066

重启容器:

docker restart machete

测试效果:

我的效果:

image-20240920114848793

其他人帮我测试的效果:

image-20240920114930587


image-20240920115007028

image-20240920115025606

将配置写进runtime/custom_config.json

app.php内容:

    //...............ip.........................................................                                                                                  
//...............192.168.....................127.0.0.1...localhost...
'adminForLanIps' => true,

//.....................ip.........
'adminWhiteIps' => array(
'127.0.0.1',
'192.168.1.105',
'183.192.139.160',
),

gpt提问:

app.php内容有如下字段:
'adminForLanIps' => true,

'adminWhiteIps' => array(
'127.0.0.1',
'192.168.1.105',
'183.192.139.160',
),


custom_config.json内容如下:
{"theme":"beauty","content_directory":"girls/","enableSmallImageForWan":"true","showQRImageInFooter": false}

请问,如何把app.php里2个数据项内容填到ustom_config.json里呢?

转换结果:

{
"theme": "beauty",
"content_directory": "girls/",
"enableSmallImageForWan": "true",
"showQRImageInFooter": false,
"adminForLanIps": true,
"adminWhiteIps": [
"127.0.0.1",
"192.168.1.105",
"183.192.139.160"
]
}

测试效果:

image-20240920120247459

重启容器后:

image-20240920120309683

效果:(nice)

image-20240920120322776