目录列表和图片画廊的Web界面
项目描述
简单的Web界面,显示子目录“files/”中文件或图片的目录列表或缩略图相册。如果文件夹对所有用户都有写权限,用户可以上传文件。
可以在pix.coldfix.eu查看示例。
这个仓库是picbox php应用的python重写。
用法
您可以通过以下方式快速安装最新版本,并从您的~/Pictures目录本地提供文件
pip install pycbox --user
pycbox -w ~/Pictures
为了允许所有网络接口上的网络访问,您还需要添加--host 0.0.0.0选项,例如
pycbox -w ~/Pictures -h 0.0.0.0
或者,您可以从git checkout运行pycbox而无需安装。尽管在这种情况下,您仍然需要按照以下方式安装依赖项
pip install -r requirements.txt --user
./bin/pycbox -w ~/Pictures
然而,不建议以这种方式从命令行运行pycbox进行部署!请参阅flask文档
虽然Flask内置的服务器轻量且易于使用,但因为它扩展性不好,并且默认一次只处理一个请求,所以不适用于生产。有关在生产环境中正确运行Flask的选项,此处有文档记录。
例如,可以使用twisted运行更复杂的服务器
twistd --nodaemon --logfile=- web --port=tcp:5000 --wsgi=pycbox.app
实际上,推荐的方法是使用docker,请参阅部署。
配置
如果存在,则将从活动目录中加载 config.yml。配置文件可能成为强制性的,因此您应该始终复制并调整提供的示例配置文件
cp config.example.yml config.yml
可以通过 PYCBOX_CONFIG 环境变量指定替代的配置文件名称或路径,例如
PYCBOX_CONFIG=/path/to/alt_config.yml python pycbox.py
PYCBOX_CONFIG=/path/to/alt_config.yml twistd web --wsgi=pycbox.app
部署
建议的方法是通过 docker 运行 pycbox。可以按以下方式构建和运行镜像
docker build . -t pycbox
docker run --cap-drop=all \
-v `pwd`/files:/pycbox/files \
-p 5000:5000 \
--name=pycbox pycbox
或者简单一点
docker-compose up
将 -d 添加到任一命令行以在后台运行。
代理
为了在子域名上运行应用程序,您需要设置代理转发。以下是一个 nginx 配置示例,用于在 pix 子域名上显示网站
server {
listen 80;
listen [::]:80;
server_name pix.example.com pix.example.org;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name pix.example.com pix.example.org;
access_log /var/log/nginx/access_pics.log;
location / {
proxy_pass http://localhost:5000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
}
上传
为了启用上传到特定子文件夹,使其对所有用户可写。
mkdir -p files/public
chmod 777 files/public
调试模式
不要在生产环境中这样做,因为它允许客户端执行任意代码。
要在端口 5000 上以调试模式运行应用程序,请输入以下任一命令
python pycbox.py --debug
或者(推荐)
FLASK_APP=pycbox.py FLASK_DEBUG=1 flask run
第二个命令会在 python 模块更改时自动重新加载服务器,因此推荐用于开发。
大 TODO
使用 redis 缓存缩略图和高亮文件
使用 asciidoc 作为 markdown
使用 pygments 进行高亮显示
通过 YAML 文件进行配置:认证、配额、上传、拒绝 glob
更改
0.0.3
日期:2017.09.06
修复调试模式中的启动错误,因为端口号是字符串
修复 docker 容器中的启动错误,因为权限问题
修复尝试上传到根目录时的错误
修复 docker 容器中的权限问题
0.0.2
日期:2017.08.11
修复安装包(如果使用 pip 进行安装)
0.0.1
日期:2017.08.10
功能包括
目录索引
缩略图画廊
高亮显示(source-highlight 或 highlight)
相对于当前文件夹缓存缩略图和高亮
可配置的根文件夹
Dockerfile
项目详情
pycbox-0.0.3.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f309a285b7d78df65fa889a10576e2aca84888e2fb892db8945b19681fb5b632 |
|
MD5 | 825ba86a40bbcad206bae3a3af555418 |
|
BLAKE2b-256 | accec153d5f6f6e9e075a3b895760f88568cf07d45d9fec61550a7faae07a648 |