文件共享平台Pingvin Share

news2024/11/16 21:34:20

在这里插入图片描述

本文完成于 2 月上旬。最近正好应网友要求折腾了 ClamAV,所以翻出来一起发了,可以作为 ClamAV 的一个应用示例;

什么是 Pingvin Share ?

Pingvin Share 是自托管文件共享平台,是 WeTransfer 的替代品。使用 Pingvin Share,您可以共享的文件大小没有限制,只有您的磁盘才是您的限制。

如果不想自己搭建,可以去看看官方演示站点:https://pingvin-share.dev.eliasschneider.com

什么是 ClamAV ?

ClamAV® 是一种开源防病毒引擎,用于检测木马、病毒、恶意软件和其他恶意威胁。

Pingvin Share 支持使用 ClamAV 来扫描是否有恶意文件,如果发现则删除。官方的 docker-compose.yml 中有该部分的内容,老苏已取消了注释,启用了 ClamAV 来扫描上传的附件

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 pingvin-share ,选择第一个 stonith404/pingvin-share,版本选择 latest

本文写作时, latest 版本对应为 v0.9.0;发文时,已是 v0.15.0,界面也有变化,懒得再重新截图了,凑合看吧

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 pingvin-share,并在其中建一个子文件夹 data

文件夹装载路径说明
docker/pingvin-share/data/opt/app/backend/data存放数据库和上传文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
30403000

在这里插入图片描述

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 pingvin-share 和 子目录
mkdir -p /volume2/docker/pingvin-share/data

# 进入 pingvin-share 目录
cd /volume2/docker/pingvin-share

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name pingvin-share \
   -p 3040:3000 \
   -v $(pwd)/data:/opt/app/backend/data \
   stonith404/pingvin-share:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

下面的示例,已经启用了 ClamAV

version: '3.8'

services:
  pingvin-share:
    image: stonith404/pingvin-share
    container_name: ps-web
    restart: unless-stopped
    ports:
      - 3040:3000
    volumes:
      - "./data:/opt/app/backend/data"
# Optional: If you add ClamAV, uncomment the following to have ClamAV start first.
    depends_on:
      clamav:
        condition: service_healthy

# Optional: Add ClamAV (see README.md)  
# ClamAV is currently only available for AMD64 see https://github.com/Cisco-Talos/clamav/issues/482
  clamav:
    image: clamav/clamav
    container_name: ps-clamav
    restart: unless-stopped
    volumes:
      - "./cdata:/var/lib/clamav"

然后执行下面的命令

# 新建文件夹 pingvin-share 和 子目录
mkdir -p /volume2/docker/pingvin-share/{data,cdata}

# 进入 pingvin-share 目录
cd /volume2/docker/pingvin-share

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3040 就能看到注册界面

注意:密码不能少于 8 个字符

登录后还有一些需要设置的内容

APP URL 如果局域网使用,就用 IP,如果做了反向代理,就用域名,老苏将 http://localhost:3000 改为了 http://192.168.0.197:3040

其他的可以根据需要设置,比如 smtp

Send test email ,如果设置没问题的话,右下角会有成功的提示

在这里插入图片描述

主界面非常清爽

上传一个要分享的文件

Share 按钮

在这里插入图片描述

Generate 生成共享连接,还能设置分享时间、密码、描述等等

在这里插入图片描述

设置完成之后,就可以将链接发给别人了

参考文档

stonith404/pingvin-share: A self-hosted file sharing platform.
地址:https://github.com/stonith404/pingvin-share

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/730619.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言基础】遍历

(꒪ꇴ꒪(꒪ꇴ꒪ ),我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&…

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例 SOCKET通信是一种基于TCP/IP协议的通信方式,提供了程序内部与外界通信的端口并为通信双方提供了数据传输通道。 ABB机器人实现SOCKET通信必须要在Communication选项中勾选616-1 PC Interface选项功能。 具体方法可参考以下内容…

SpringBoot+Vue酒店客房管理系统

💕💕作者:程序员徐师兄 个人简介:7 年大厂程序员经历,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流! 各类成品java毕设 。javaweb,ssh,ssm&…

从YOLOv1到YOLOv8的YOLO系列最新综述【2023年4月】

作者:Juan R. Terven 、Diana M. Cordova-Esparaza 摘要:YOLO已经成为机器人、无人驾驶汽车和视频监控应用的核心实时物体检测系统。我们对YOLO的演变进行了全面的分析,研究了从最初的YOLO到YOLOv8每次迭代的创新和贡献。我们首先描述了标准…

Python 中的二维插值

本文展示了如何在 Python 中进行插值,并研究了不同的 2d 实现方法。 我们将讨论用于双变量插值的有用函数,例如 scipy.interpolate.interp2d、numpy.meshgrid 和 Python 中使用的用于平滑/插值 (RBF) 的径向基函数。 我们将使用 SciPy 和 Numpy 库实现插…

树莓派配置ubuntu server 22.04环境

背景 比起raspberry系统ubuntu更通用,结合公司项目开发需要,将树莓派4B刷上ubuntu server系统,并且安装LXDE桌面环境。 一波next 烧写镜像 用树莓派镜像烧录软件安装比较简单,选择操作系统:Other general-purpose O…

python psutil模块常用方法

psutil 是一个功能强大的跨平台第三方库,用于检索系统相关信息和进程管理。它提供了一些方便的函数和方法,可以获取 CPU 使用率、内存使用情况、磁盘信息、网络统计数据以及进程列表等。 1. 安装psutil pip install psutil2. 获取 CPU 使用率 import p…

flutter聊天界面-聊天列表 下拉加载更多历史消息

flutter聊天界面-聊天列表 下拉加载更多历史消息 在之前实现了flutter聊天界面的富文本展示内容、自定义表情键盘实现、加号【➕】更多展开相机、相册等操作Panel、消息气泡展示实现Flexible。这里把实现的聊天界面的滑动列表及下拉加载更多历史消息记录一下 聊天界面的列表使…

MySQL索引优化原则和失效情况

目录 1. 全值匹配2. 最佳左前缀法则3. 不要在索引列上做任何计算4. 范围之后全失效5. 尽量使用覆盖索引6. 使用不等于&#xff08;!或<>&#xff09;会使索引失效7. is null 或 is not null也无法使用索引8. like通配符以%开头会使索引失效9. 字符串不加单引号导致索引失…

程序员的悲哀是什么?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 切记&#xff0c;任何文章不要过度深思&#xff08;任何东西都无法经得起审视&#xff0c;因为这世上没有同样的成长环境&#xff0c;也没有同样的认知水平同时也「没有适用于所…

大模型高效训练基础知识:梯度累积(Gradient Accumulationn)

梯度累积 梯度累积&#xff08;Gradient Accumulation&#xff09;的基本思想是将一次性的整批参数更新的梯度计算变为以一小步一小步的方式进行&#xff08;如下图&#xff09;&#xff0c;具体而言该方法以小批次的方式进行模型前向传播和反向传播&#xff0c;过程中迭代计算…

变革管理中的几个不错的模型小结

其他的变革模型&#xff1a; 变革管理流程&#xff1a;

二、Java的变量

二、变量 2.1、关键字与保留字 关键字 定义&#xff1a;赋予特殊含义&#xff0c;用做专门用途的字符串 特点&#xff1a;关键字的所有字母都为小写 保留字&#xff08;reserved word&#xff09; 现有Java版本尚未使用&#xff0c;但以后版本可能会作为关键字使用。自己命名…

使用PYQT制作人才交流管理系统

利用使用PYQT制作一个人才交流管理系统&#xff0c;先使用QT designer.exe设计好人才交流管理系统的各个UI界面&#xff0c;然后利用pyuic把生成的ui界面编译为py文件&#xff0c;在主函数文件内创建一个类继承ui.py界面的类&#xff0c;即可完成数据库逻辑与 GUI 代码分离&…

小米不再忍耐,裁员三分之一强势反击印度,印度制造或因此梦破

就在小米公司表态继续投资印度之后不久&#xff0c;印度媒体报道指小米印度公司的员工数量从1500人减少到1000人左右&#xff0c;这显示出小米开始强势反击印度&#xff0c;业界人士指出此举的影响远不止于此&#xff0c;结果很可能是导致印度制造的梦想破灭。 1.小米为印度手机…

软件工程——第9章面向对象方法学引论知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.当前最好的软件开发技术是&#xff1f; 2.面向对象的原则是什么&#xff1f; 3.人们把客观世界中的实体抽象为什么&#xff1f; 4.软件系统本质上…

主诉病程时长提取

编写Python函数 import re def structured_pro(original_text,keyword,out_unitNone):pattern_split_str[。&#xff0c;]pattern_splitre.compile(pattern_split_str,re.I|re.M)original_listpattern_split.split(original_text)pattern_keywordre.compile(keyword,re.I|re.M…

目前最好的MicrosoftProject替代方案

Microsoft Project是一个功能强大的项目管理工具。然而它可能是昂贵的&#xff0c;并且可能不适合所有的项目管理需求。幸运的是&#xff0c;有几个Microsoft Project的替代方案提供了类似的特性和功能。在本文中我们将探索目前可用的一些最好的Microsoft Project替代方案。 1、…

12.4 ARM异常处理

目录 ARM异常处理&#xff08;一&#xff09; 异常 概念 异常处理机制 ARM异常源 概念 ARM异常源 ARM异常模式 ARM异常处理&#xff08;二&#xff09; ARM异常响应 异常向量表 异常返回 IRQ异常举例​编辑 ARM异常处理&#xff08;三 &#xff09; 异常优先级 …

自我介绍这样写?

已经帮小伙伴改了 500 多份简历了&#xff0c;也发现了一些大家写简历时的共性问题。其中让我印象比较深刻的一个点就是 自我介绍 &#xff0c;基本上所有同学的自我介绍都是这么写的&#xff1a; 读这篇文章的朋友们&#xff0c;你是不是也是这么写自我介绍的呢&#xff1f; 这…