跳到主要内容

1、介绍

machete

目录

[toc]

版权声明

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

官网:https://jialuoma.com/

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

image-20240807124010055

image-20240807072211857

公告

因个人最近清理了百度网盘已经分享的链接(原来已分享的链接均已失效),如果有小伙伴需要相关实战源代码,请随时联系笔者即可。😘

官网

https://jialuoma.com/

image-20240807124010055

https://filesite.io/

image-20240807121804181

仓库地址

https://github.com/filesite-io/machete

image-20240807072211857

特色

以下为machete家庭相册的几个与众不同的地方:

  • 你的照片目录为数据源、所见即所得,保留你的照片管理习惯

  • 开放源代码,源码公开且免费使用

  • 无数据库非常轻量、毫秒级响应

  • 点击图片放大浏览时默认使用原图,适合大屏幕欣赏高清图片

  • 支持背景音乐播放

  • 支持单个目录下所有图片自动循环播放

  • 支持单个目录下所有视频自动循环播放

  • 支持白天/夜晚两种浏览模式

  • 利用同步软件(FreeFileSync)可轻松将本地相册同步到服务器端并按原层级结构渲染成一个个人相册公开出去,我们唯一要做的就是维护好本地相册数据(改变相册里照片数据或新增照片等,做好本地相册数据备份(可同步到云同步空间))。

  • 网上开源相册,很少有能实现如matchete一样直接把本相册目录按原层级结构给渲染成一个相册,这个是灵魂。 我们只需维护好本地相册数据,然后把更新的内容直接推送到服务器端。 不管是摄影照片,还是个人日常照片,使用这个方式都很丝滑(分享体验和数据维护及备份方向)。

    常见开源相册也有直接提供分享(无需登录,例如photoprism等)和私密存放的方式,但大多都有后端管理,后端是可以直接编辑相册数据的(删除/上传/移动图片等)。但此时带来了问题,web编辑后,本地相册数据还没改变,此时维护了2套数据。(很少有能实现web编辑后,能把更新同步到本地的;且大多数都是带有数据库的,当然利用数据库备份等也可以备份数据,但复杂度就上去了)

优秀案例

One

https://photo.onedayxyy.cn/

image-20240905125953121

x.p00.xyz

https://x.p00.xyz:60000/

image-20240824100706529

使用技术

image-20240807125449908

项目特色

👍 没有用数据库系统,直接读取磁盘

感谢肯定,machete的一大特点是没有用数据库系统,直接读取磁盘,如果服务器是ssd磁盘的话,跟读取内存速度差不多,另外系统本身简单,所以性能还不错

这个也是我们做machete的原因,就是希望帮用户把本地目录直接变成网站,节省使用后台管理数据的时间

👍 性能还不错

嗯,我们测试过整个目录图片➕视频超过3万个,文件大小几年累积了400g左右,单个目录下照片上千张,速度还行;如果是第二次打开在有缓存的情况下,那都能做到50毫秒以内的速度

如果外网访问,还要考虑一个因素,服务器的带宽,图片是有延迟加载,我们的demo服务器是阿里云的10m带宽,感觉还行,一张2m的图片,也就一秒左右

👍 免登录可浏览图片

外网分享应该也很重要,可以放到博客里当一个模块。也可以当自己的摄影作品分享地。很nice,毕竟内网也不会一直去看照片或者视频的。

👍 winodws和linux同步相册数据后能保持目录层级不变

在线体验

Machete是单入口模式PHP源码,不支持子目录方式访问,以下示例都是以子域名或根域名配置nginx根目录指向代码目录下的www/index.php。

image-20240807125639571

  1. 文档站
名称网址
FileSiteFilesite.io
  1. 导航站
名称网址
站长手册WebDirectory.FileSite.io
Web3速查手册Web3.FileSite.io
  1. 图片站
名称网址
看美女GoogleImage.Filesite.io
在线演示带后台版Machete在线演示
  1. 视频站
名称网址
在线学Duan.Filesite.io
  1. 视频收藏/分享站
名称网址
Ta荐TaJian.tv

在线演示

图片站

image-20240807121917336

==家庭相册(推荐)==

效果https://demo.jialuoma.cn/

image-20240807122027048

image-20240808062921204

==看美女==

https://googleimage.filesite.io/

image-20240807122004182

部署

源码部署

image-20240807125728828

Machete使用非常简单,一旦部署好之后,以后只需将本地最新内容上传覆盖即可。

  1. 下载Machete源码,并参考Nginx配置示例部署到你的服务器上;

说明:

Machete不支持子目录方式访问,需要为nginx配置根目录指向代码目录下的www/。

用git下载:

git clone https://git.filesite.io/filesite/machete.git

或下载zip压缩包(点我直接下载):

https://git.filesite.io/filesite/machete/archive/master.zip
  1. 修改配置文件config/app.php,简单设置后上传到服务器完成部署;

指定内容目录和使用的皮肤:

'content_directory' => 'content/',      //内容存放目录
'theme' => 'manual', //皮肤名称,如:文档站选manual,图片站选googleimage

还可以复制conf/目录下的custom_config_皮肤名.json到runtime/目录, 通过修改runtime/custom_config.json或者runtime/custom_config_皮肤名.json来设置当前网站使用的皮肤名和内容目录。

  1. 将本地内容目录及文件上传到网站目录:www/content/

不同皮肤请上传到对应的目录,不同类型的网站数据格式参考:Machete使用手册

  1. 打开网址浏览最新内容;

有了Machete,你可以保留现有的本地内容创作习惯,并非常容易地把它们制作成一个网站分享给他人。


docker部署

注意

详细文档见单独部署文档。

image-20240807125801277

从dockerhub下载镜像:

docker pull filesite/machete

支持samba文件共享管理内容的版本:

docker pull filesite/machete:samba

启动machete容器:

docker run --name machete -p 1080:80 -itd filesite/machete [皮肤名]


samba文件共享版本容器启动:

docker run --name machete_samba -p 1081:80 -p 445:445 -itd filesite/machete:samba [皮肤名]


##本次
docker run --name machete_samba -p 1081:80 -p 445:445 -itd filesite/machete:samba beauty


docker run --name machete_samba -p 1081:80 -p 445:445 -itd filesite/machete:samba beauty

其中皮肤名称可选值:

[
'manual', //文档网站
'webdirectory', //导航网站
'googleimage', //图片网站
'beauty', //图片网站,设计精美
'videoblog' //视频网站
]

本地监听端口1080请根据自己需要修改。

machete在容器中的目录:

/var/www/machete/

可根据自己的需要,通过-v参数映射本地内容目录到容器目录, 示例如下:

docker run --name machete -p 1080:80 \
-v /d/图片目录/:/var/www/machete/www/girls/ \
-itd filesite/machete \
beauty

这样可以通过更新本地内容目录/d/图片目录/的文件来实时更新网站内容。

不同皮肤对应的容器目录如下:

皮肤名容器目录共享目录
manual/var/www/machete/www/content/content
webdirectory/var/www/machete/www/navs/navs
googleimage/var/www/machete/www/girls/girls
beauty/var/www/machete/www/girls/girls
videoblog/var/www/machete/www/videos/videos

查看容器:

docker ps

如果看到名字为machete的容器正在运行,说明容器启动完成,访问本地网址测试:

http://127.0.0.1:1080

samba文件共享版本本地网址访问:

http://127.0.0.1:1081

升级容器中的代码:

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

配置修改

修改配置有两种方式:

  1. 进入容器目录:/var/www/machete/runtime/,修改custom_config.json后保存即可;
  2. 命令行修改
docker exec -it machete php /var/www/machete/bin/command.php config "do=set&key=screenshot_start&val=1000"

上述命令为修改配置项screenshot_start的示例。

配置读取、修改、删除命令:

php /var/www/machete/bin/command.php config "参数"

参数说明:

  • do - 操作,可选值:get, all, set, del(分别对应获取单个配置项、所有配置项、设置单个配置项、删除单个配置项)
  • key - 配置项名称
  • val - 配置项值

说明: 不支持数组类型的配置修改,可用配置项明细参考:conf/app.php

==后台管理内容==

最新版本已经支持网页版后台和samba文件共享方式管理内容。

说明: 由于本项目是针对小型网站设计的,后台只支持目录级数不超过4级,文件数量不超过 1 万的目录, 如果你所映射的目录文件数量超过1万,不建议使用后台来管理文件内容

==网页版后台==

网址为域名后面加/admin/来访问, 网址格式为:

http://服务器ip或域名/admin/

默认账号密码:

账号:filesite 密码:88888888

账号密码可在conf/app.php里修改。

修改后台密码:(修改后会立即生效)

docker exec -it machete_samba bash
vi /var/www/machete/conf/app.php

image-20240808203653275

image-20240808203843782

==samba文件共享==

同时支持windows、macos和linux, 文件共享网址格式为:

//filesite:88888888@服务器ip或域名/machete

默认账号密码:

账号:filesite 密码:88888888

账号密码可在容器中执行命令修改:

smbpwd 新密码

docker exec -it machete_samba bash
smbpwd 你的新密码

image-20240808204148755

测试:

==文件共享使用方法==

windows下在运行里输入:

\\服务器ip或域名\machete


\\192.168.1.100\machete

然后在弹出的登陆框里输入账号密码就可以完成远程磁盘挂载。

macos下挂载共享目录的命令:

mount_smbfs //filesite:88888888@服务器ip或域名/machete 本地目录

挂载好之后就可以打开Finder看到共享目录了, 点击进去就可以跟管理本地文件和目录一样操作了。

应用场景

image-20240807125144264

联系方式 && QQ群

image-20240807125308082

本地图片和视频目录、文件秒变独立网站,详情私聊群主! 官网:jialuoma.com 免费体验:demo.jialuoma.cn 源码下载:filesite.io

image-20240807122315772

更新日志

时间更新内容备注
2024.8.10最新版代码和镜像已经发布已更新
2024.8.13列表页面的图片和目录,都支持服务器端动态生成缩略图已更新
2024.8.22点击图片浏览大图时显示缩略图完成已更新
2024.9.4增加密码授权访问功能已更新
2024.9.7移除后台系统没有一并关闭api接口
增加系统版本号和发布日期显示
支持照片根目录下放favicon.ico
部分css优化
readme和faq文档更新
默认关闭版本号和发布日期
webp/svg格式图片支持
已更新
2024.9.18pc版左侧目录支持展开/收拢;
增加内网ip和ip白名单设置(只有自己可设置相册封面图);

2024.9.18

image-20240919071346397

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

2024.9.7

重要更新‼️

  • 增加默认关闭后台相关api配置,之前移除后台系统没有一并关闭api接口
  • 增加系统版本号和发布日期显示,方便跟踪问题请大家及时更新最新版,以免在外网使用的时候,被人使用默认配置的帐号密码调用后台api对照片进行修改、删除操作!

image-20240907091948937

第二波更新:

最新版更新:

  1. 支持照片根目录下放favicon.ico
  2. 部分css优化
  3. readme和faq文档更新
  4. 默认关闭版本号和发布日期

image-20240907193319699

第三波更新

image-20240908082224656

image-20240908082211705

2024.9.4

增加密码授权访问功能

image-20240905065207683

image-20240905065253394

2024.8.22

(点击图片浏览大图时显示缩略图完成,nice)

@One 更新最新版代码,新版做了以下升级:

  1. 完善原图下载功能(点击图片浏览大图时,右上角增加了“下载”图标)
  2. 增加配置项enableSmallImageForWan,开启的时候,点击图片浏览大图时显示缩略图;为外网分享图片减小大图尺寸提升显示速度;

image-20240824095651523

image-20240824095556103

2024.8.13

(列表页面的图片和目录,都支持服务器端动态生成缩略图)

machete家庭相册已经升级,列表页面的图片和目录,都支持服务器端动态生成缩略图了,可以升级新版试试

image-20240813150717632

  • 自己测试后效果

image-20240813150838164

e7b17b163ae90f45270f2b446c15a194

3a8cd627b764ef4900053377ab7b3653

f72ac68d36c4ce3f0a40f49f698af2cd

  • 作者反馈

image-20240813150941814

  • 到处本次镜像
mkdir /root/filesite-machete-docker-images
cd /root/filesite-machete-docker-images
docker save filesite/machete|gzip > filesite-machete-2024.8.13.tar.gz

filesite-machete-2024.8.13.tar.gz

2024.8.10

(修复bug后版本)

最新版代码和镜像已经发布,完善了几个细节:

  1. 视频播放支持当前目录下的所有视频循环播放
  2. 优化目录封面图获取,避免黑图
  3. 去掉了admin/后台
  4. 优化升级脚本,优先从gitcode下载源码
filesite-machete-2024.8.10.tar.gz #261M