hugo-teek is loading...

使用

最后更新于:

使用

image-20241008070812993

目录

[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程序影响。

:::warning

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

:::

如何更新代码

方案1:更新镜像

1docker pull filesite/machete

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

image-20240907193538466

  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
  • 验证

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#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、浏览器刷新验证(完美)

image-20240831095850505

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

image-20240905072438988

  • 验证(复合预期)

image-20240905072536999

怎么修改底部的版权信息

新版本

  • 配置

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

1<span>&copy;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
  • 验证

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

image-20240907093701330


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

请编辑目录下的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

image-20240905073723079

  • 验证(符合预期)

image-20240905073610311

怎么修改网站简介信息?

请修改图片根目录下的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日更新成功。(完美🤣)

更新内容

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内容:

 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}

测试效果:

image-20240920120247459

重启容器后:

image-20240920120309683

效果:(nice)

image-20240920120322776

支持背景音乐

image-20240929200807226

相册支持cdn

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

image-20241008071801922

注意:

关于分享加密相册/加密相册里的照片的效果: image-20241008072037425

配置方法

image-20241008073457835

image-20241008073530827

image-20241008073557545

好了, 前面两个图是添加缓存配置: 1、把所有图片视频资源后缀加入缓存规则; 2、针对缩略图网址:/site/smallimg/ 设置缓存key,以区分不同图片分开缓存;

第三张图,是用来清空某个目录的缓存, 刚刚把/site/smallimg/里的所有cdn缓存清空了, 打开你的网站现在都能正常显示图片了

如果你本地打开依然看到老的图片, 先试着清空浏览器缓存, 或者按这个截图,用chrome打开调试工具,勾选“禁用缓存” 就会看到最新效果

也可以换一个从来没打开过的浏览器打开你的相册测试

image-20241008073743813

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

image-20241008073854188

  • 效果

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

image-20241008074143635

显示版本号

  • 配置方法

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}

image-20241008122008401

  • 效果

image-20241008121918500

怎么对照片、视频、音乐文件进行排序?

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

推荐使用微信支付
微信支付二维码
推荐使用支付宝
支付宝二维码
最新文章

文档导航