使用
使用

目录
[toc]
版权声明
项目完整名称为:Filesite/Machete,为求简单下文都以machete代替。
这里只做关于此优秀项目的一些个人使用记录,具体信息请访问作者官网,版权归原作者所有。
官网:https://jialuoma.com/
仓库地址:https://github.com/filesite-io/machete


它足够安全吗
用machete家庭相册系统管理我的照片安全吗?
请放心使用machete家庭相册系统来把本地图片目录转化为一个网站,只要你遵循我们推荐的方式安装部署,它是绝对安全的!
理由如下:
- machete是开源项目,代码公开,接受任何人/机构的安全检测;
- 推荐使用docker安装部署machete,docker的安全机制很完善;
- 只给runtime/目录写入权限,其它文件和目录只读;
Filesite/machete是开放源代码的,它托管在以下几个git网站:
并遵循MIT License,任何个人或公司,只要在保留来源申明的情况下,都可以基于它根据需要做修改后免费使用。
另外,推荐使用docker来安装部署machete家庭相册, 这样基于docker提供的安全沙箱环境,最大程度地保护你的电脑、服务器不受machete程序影响。
:::warning
最后,machete程序只有临时文件存放目录runtime/需要开放写入权限,其它文件和目录都只需开放“只读”权限即可, 所以你在使用docker为machete配置volume或者本地映射目录时,相册目录只开放只读权限docker容器, 由此可以进一步确保你的照片目录不会被machete程序修改/删除。
:::
如何更新代码
方案1:更新镜像
1docker pull filesite/machete
方案2:更新容器里的代码

1docker exec -it machete /var/www/machete/bin/upgrade.sh
2
3
4
5[root@docusaurus-wiki ~]#docker exec -it machete sh
6/var/www/html # cat /var/www/machete/bin/upgrade.sh
7#!/bin/sh
8echo "Upgrade machete ..."
9echo ""
10
11## 改为优先从gitcode下载,避免域名解析问题
12download_link_gitcode="https://gitcode.net/filesite/machete/-/archive/master/machete-master.tar.gz"
13download_link_filesite="https://git.filesite.io/filesite/machete/archive/master.tar.gz"
14
15
16# 检测域名是否能连接
17# 返回值:0 - 不能连接,1 - 可连接
18detectDomainCanConnect () {
19 domain=$1
20 if [ -z "${domain}" ]; then
21 echo "Usage: detectDomainCanConnect domain"
22 echo ""
23 exit 1
24 fi
25
26 ping_res=`ping -c 3 "${domain}"`
27 if [[ $ping_res == *"100.0% packet loss"* ]]; then
28 return 0
29 fi
30
31 return 1
32}
33
34
35if [ ! -d /var/www/downloads ]; then
36 mkdir -p /var/www/downloads
37fi
38
39cd /var/www/downloads/
40
41if [ -f master.tar.gz ]; then
42 rm -f master.tar.gz
43fi
44
45if [ -d machete/ ]; then
46 rm -rf machete/
47fi
48
49
50# 升级machete
51detect_domain="gitcode.net"
52echo "检测${detect_domain}是否可连接..."
53detectDomainCanConnect "${detect_domain}"
54connect_res=$?
55if [ $connect_res -eq 0 ]; then
56 echo "⚠️⚠️"
57 echo "当前网络无法连接[${detect_domain}],即将从备用网址下载machete"
58 curl --connect-timeout 15 "${download_link_filesite}" -o "master.tar.gz"
59else
60 curl --connect-timeout 15 "${download_link_gitcode}" -o "master.tar.gz"
61fi
62
63if [ -f "master.tar.gz" ]; then
64
65 tar -zxvf master.tar.gz
66 rm -f master.tar.gz
67
68 # 兼容gitcode的tar包解压后目录为:machete-master/
69 if [ -d machete-master/ ]; then
70 mv machete-master/ machete/
71 fi
72
73 rsync -vrL machete/* /var/www/machete/ \
74 --exclude=www/content/ \
75 --exclude=www/navs/ \
76 --exclude=www/girls/ \
77 --exclude=www/videos/ \
78 --exclude=www/tajian/ \
79 --exclude=runtime/
80
81fi
82
83echo "Machete front-end upgraded."
84echo ""
85
86
87# admin/后台不再维护
88# upgrade admin
89## cd /var/www/downloads/
90## curl --connect-timeout 15 "https://git.filesite.io/wen/jialuomaadmin/archive/master.tar.gz" -o "master.tar.gz"
91
92## if [ -f "master.tar.gz" ]; then
93##
94## tar -zxvf master.tar.gz
95## rm -f master.tar.gz
96## rm -rf /var/www/machete/www/admin/
97## mv jialuomaadmin/dist/ /var/www/machete/www/admin
98##
99## fi
100## echo "Admin system upgraded."
101## echo ""
102
103
104# upgrade nginx config
105if [ -d /etc/nginx/http.d/ ]; then
106 cp /var/www/machete/conf/nginx_machete.conf /etc/nginx/http.d/machete.conf
107fi
108
109if [ -d /etc/nginx/conf.d/ ]; then
110 cp /var/www/machete/conf/nginx_machete.conf /etc/nginx/conf.d/machete.conf
111fi
112
113/usr/sbin/nginx -s reload
114echo "Nginx config upgraded and reloaded."
115echo ""
116
117echo ""
118echo "==Machete upgrade done.=="
119echo ""
120/var/www/html #
系统配置文件在哪里
全局配置文件:conf/app.php
自定义配置文件:runtime/custom_config.json
推荐使用自定义配置文件,以免系统升级后配置被覆盖。
如果是使用docker安装的machete,请自行了解如何修改docker容器里的文件,或者如何把本地文件复制到容器替换。
怎么开启密码授权访问
在目录runtime/下创建配置文件:custom_password.json, 可复制conf/custom_password.json到runtime/目录下进行修改。
也可按下面示例创建:
1{
2 "password_auth": {
3 "enable": true,
4 "default": "",
5 "allow": {
6 "目录1": "hello",
7 "目录2": "world"
8 }
9 }
10}
配置说明:
- enable开关设置true则启用,默认为false关闭状态
- default选项配置全局默认密码,针对所有目录生效
- allow里配置单个目录的授权密码,如果default配置为空,则只有allow里所设置的目录需要密码授权访问
2024年9月5日已解决
- 我的配置:
1#1、创建文件
2cat > /root/machete/runtime/custom_password.json <<EOF
3{
4 "password_auth": {
5 "enable": true,
6 "default": "",
7 "allow": {
8 "3-视频": "123456",
9 "4-高圆圆": "123456"
10 }
11 }
12}
13EOF
14chmod 777 custom_password.json
15
16#2、重启生效
17cd /root/machete
18docker-compose down
19docker-compose up -d
- 验证




完美。
如何修改自己网站logo
v1(老版本)
请创建自己的icon文件,命名为favicon.ico,替换根目录下的这个图标即可;
注意: 请清空浏览器缓存后验证新图标,否则可能因为浏览器缓存而看到老的图标。
2024.8.31已解决。
需求

方法

亲自测试
- 利用Favicon.io 制作自己的icon图片:

- 将图片上传到machete容器的
/var/www/machete/www路径下,替换掉原来的图片
1#1、先删除原来容器里默认的图标
2docker exec -it machete sh
3cd /var/www/machete/www
4rm -rf favicon.ico
5
6
7#2、拷贝自己制作的网站图标到容器
8cd /root/machete
9ll favicon.ico #自己制作的网站logo
10docker cp favicon.ico machete:/var/www/machete/www
11
12#3、重启容器
13docker restart machete
14
15#4、浏览器刷新验证(完美)

v2(新版本)
请创建自己的icon文件,命名为favicon.ico,把它复制到你的图片根目录即可;
怎么关闭网页底部的二维码
在runtime/custom_config.json中增加配置:
1"showQRImageInFooter": false
自己测试:
1#1、创建文件
2vim /root/machete/runtime/custom_config.json
3{"theme":"beauty","content_directory":"girls/","enableSmallImageForWan":"true","showQRImageInFooter": false}
4
5
6#2、重启生效
7docker restart machete

- 验证(复合预期)

怎么修改底部的版权信息
新版本
- 配置
请在图片根目录下,创建文件README_copyright.txt,内容参考下面示例代码:
1<span>©2022 - 2024</span>
2by <a href="https://onedayxyy.cn/" target="_blank">One</a>
3<br>
4执行耗时: {page_time_cost} ms
- 重启容器
1cd /root/machete/photo
2docker-compose down
3docker-compose up -d
- 验证
清空浏览器缓存,测试:(复合预期,完美)

==(旧版本)(舍弃)==
请编辑目录下的php文件:
1themes/beauty/views/layout/
找到“尾部网站信息”,按自己的需要修改并保存。
注意本地保存相关文件存档,machete升级系统时会覆盖此目录下的文件。
- 自己配置:
1#1、配置
2docker exec -it machete sh
3cd /var/www/machete/themes/beauty/views/layout
4vi main.php
5exit
6
7#2、重启生效
8docker restart machete

- 验证(符合预期)

怎么修改网站简介信息?
请修改图片根目录下的README.md文件内容(如果你安装的是老版本,看不到这个文件,请手动创建),它是markdown格式的内容。
保存后,点网页右上角“刷新”图标,清空缓存查看效果。
怎么修改网站标题?
网站标题显示在网页左上角,以及浏览器tab栏上,系统默认的标题是“家庭相册”或者“Filesite/Machete”。
请在图片根目录下,创建文件README_title.txt,用一行文字来设置,示例如下:
1我的相册
相册部署到外网了,点击图片打开有点慢怎么办
machete家庭相册默认为局域网使用,配置enableSmallImageForWan开启查看大图显示缩略图是关闭的, 如果你的照片文件大小很大,那么在外网打开可能会很慢。
解决办法,为外网点击图片浏览大图开启缩略图功能, 在自定义配置:runtime/custom_config.json里增加以下配置即可:
1"enableSmallImageForWan": true
在局域网内使用,能否所有图片使用原图而不是缩略图?
系统配置enableSmallImage默认为true打开的,在自定义配置文件中,加入以下配置保存即可关闭所有缩略图功能:
1"enableSmallImage": false
我的设备cpu性能较差,缩略图显示有点慢且cpu占用较高怎么解决?
machete家庭相册在设计的时候考虑到在嵌入式设备中运行,缩略图功能可由用户的浏览器完成。
在自定义配置中把disableGenerateSmallImageInServer开关打开即可关闭服务器端生成缩略图,从而节省cpu消耗:
1"disableGenerateSmallImageInServer": true
增加内网ip和ip白名单设置
2024年9月20日更新成功。(完美🤣)
更新内容

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


情况2:(相册部署在公网服务器)
我的machete是直接部署在公网服务器的,那么如何设置相册封面呢?
当时自己出现的问题:
(配置了,还时没有效果。。。😒)

进一步研究:
故障原因:

问题:我电脑的外网ip,每次开机会改变得吗
自己重新配置,再次测试:
将容器里的app.php文件原来由服务器的公网ip改为自己局域网外网ip,重启容器,再次测试发现就ok了,完美😉

重启容器:
docker restart machete
测试效果:
我的效果:

其他人帮我测试的效果:



将配置写进runtime/custom_config.json里
app.php内容:
1 //...............ip.........................................................
2 //...............192.168.....................127.0.0.1...localhost...
3 'adminForLanIps' => true,
4
5 //.....................ip.........
6 'adminWhiteIps' => array(
7 '127.0.0.1',
8 '192.168.1.105',
9 '183.192.139.160',
10 ),
gpt提问:
1app.php内容有如下字段:
2 'adminForLanIps' => true,
3
4 'adminWhiteIps' => array(
5 '127.0.0.1',
6 '192.168.1.105',
7 '183.192.139.160',
8 ),
9
10
11custom_config.json内容如下:
12{"theme":"beauty","content_directory":"girls/","enableSmallImageForWan":"true","showQRImageInFooter": false}
13
14请问,如何把app.php里2个数据项内容填到ustom_config.json里呢?
转换结果:
1{
2 "theme": "beauty",
3 "content_directory": "girls/",
4 "enableSmallImageForWan": "true",
5 "showQRImageInFooter": false,
6 "adminForLanIps": true,
7 "adminWhiteIps": [
8 "127.0.0.1",
9 "192.168.1.105",
10 "183.192.139.160"
11 ]
12}
测试效果:

重启容器后:

效果:(nice)

支持背景音乐

相册支持cdn
相册缩略图,缩略图,原图都会使用cdn的;

注意:
关于分享加密相册/加密相册里的照片的效果:

配置方法



好了, 前面两个图是添加缓存配置: 1、把所有图片视频资源后缀加入缓存规则; 2、针对缩略图网址:/site/smallimg/ 设置缓存key,以区分不同图片分开缓存;
第三张图,是用来清空某个目录的缓存, 刚刚把/site/smallimg/里的所有cdn缓存清空了, 打开你的网站现在都能正常显示图片了
如果你本地打开依然看到老的图片, 先试着清空浏览器缓存, 或者按这个截图,用chrome打开调试工具,勾选“禁用缓存” 就会看到最新效果
也可以换一个从来没打开过的浏览器打开你的相册测试

- 关闭ipv6功能:(否则自己无法看到清空缓存图标)

- 效果
使用了cdn后,只要你第一次打开相册,缩略图进行缓存后,下次再次进入相册,会秒显示相册图片的;😊(体验相当nice)

显示版本号
- 配置方法
vim /root/machete/runtime/custom_config.json
1{
2 "theme": "beauty",
3 "content_directory": "girls/",
4 "enableSmallImageForWan": "true",
5 "showQRImageInFooter": false,
6 "adminForLanIps": true,
7 "adminWhiteIps": [
8 "127.0.0.1",
9 "192.168.1.105",
10 "183.192.139.160"
11 ],
12 "slide_show_timeout": 5,
13 "showVersion": true
14}

- 效果

怎么对照片、视频、音乐文件进行排序?
在runtime/custom_config.json中增加以下配置:
1"sortFilesByName": true,
2"sortOrderOfFiles": "asc"
其中sortFilesByName设置为true,打开文件按名称排序, sortOrderOfFiles则设定排序方式,asc顺序,desc倒序。
除此之外,还可以在照片目录下增加排序文件:sort.txt, 内容为当前目录下的文件名,格式一行一个,示例:
12_20240406223804.jpg
21_20240406223752.jpg
33_20240406223809.jpg
如果配置了此排序文件,且sortFilesByName为false关闭状态,则系统会按照排序文件中的文件名从上到下排序。
怎么设置每页照片、视频、音乐文件数量?
在自定义配置:runtime/custom_config.json里增加以下配置:
1"default_page_size": 50
怎么设置自动播放时每张照片停留时间?
在自定义配置:runtime/custom_config.json里增加以下配置:
1"slide_show_timeout": 10
单位:秒。
怎么设置局域网内访问拥有刷新、设置封面等管理权限?
在自定义配置:runtime/custom_config.json里增加以下配置:
1"adminForLanIps": true
系统支持这三类IP:
1127.0.0.1
2172.17.0.1,
3192.168.xxx.xxx
外网访问怎么设置允许当前IP访问拥有刷新、设置封面等管理权限?
在自定义配置:runtime/custom_config.json里增加以下配置:
1"adminWhiteIps": [
2 "你的外网ip地址"
3]
如果部署的时候相册是经过nginx反向代理转发的,请在nginx的配置中设置转发用户ip地址:
1proxy_set_header Host $host;
2proxy_set_header X-Real-IP $remote_addr;
3proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
在启用Imagick扩展后,CPU占用过高或者大图片缩略图无法生成怎么解决?
Imagick库的特性是生成的缩略图画质更高,但缺点是CPU占用比较高。
使用最新版filesite/machete的docker镜像,在自定义配置中加上开启配置项就能使用Imagick库来生成缩略图:
1"enable_lib_imagick": true
请在启动容器的时候根据你的服务器配置,指定容器最大能使用的内存和cpu数量, 这将改善缩略图生成,避免因为过高的CPU占用导致php进程被docker杀死从而无法生成大图片的缩略图。
例如1G内存双核cpu服务器,允许最大使用512M内存,1.5个cpu核心:
1docker run --name machete -p 1080:80 \
2 -m 512m \
3 --cpus="1.5" \
4 -v /d/图片目录/:/var/www/machete/www/girls/ \
5 -itd filesite/machete \
6 beauty
怎么设置菜单栏不显示年、月分类?
从0.4.0版本开始,filesite/machete相册支持按年、月分类所有图片、视频、音乐文件。
默认按年、月分类菜单是显示的,如需关闭,在自定义配置:runtime/custom_config.json里增加以下配置:
1"showYearMonthMenus": false
更多问题如何联系?
请打开官方网站查看底部QQ群和微信: FileSite.io


文档导航
本页导航
- 使用
- 目录
- 版权声明
- 它足够安全吗
- 如何更新代码
- 系统配置文件在哪里
- 怎么开启密码授权访问
- 如何修改自己网站logo
- 怎么关闭网页底部的二维码
- 怎么修改底部的版权信息
- 怎么修改网站简介信息?
- 怎么修改网站标题?
- 相册部署到外网了,点击图片打开有点慢怎么办
- 在局域网内使用,能否所有图片使用原图而不是缩略图?
- 我的设备cpu性能较差,缩略图显示有点慢且cpu占用较高怎么解决?
- 增加内网ip和ip白名单设置
- 支持背景音乐
- 相册支持cdn
- 显示版本号
- 怎么对照片、视频、音乐文件进行排序?
- 怎么设置每页照片、视频、音乐文件数量?
- 怎么设置自动播放时每张照片停留时间?
- 怎么设置局域网内访问拥有刷新、设置封面等管理权限?
- 外网访问怎么设置允许当前IP访问拥有刷新、设置封面等管理权限?
- 在启用Imagick扩展后,CPU占用过高或者大图片缩略图无法生成怎么解决?
- 怎么设置菜单栏不显示年、月分类?
- 更多问题如何联系?
