picbed基于 Flask 的 Web 自建图床
正式名称:sapic
基于Flask的Web自建图床,默认存储在本地,支持又拍云、七牛云、阿里云OSS、腾讯云COS等对象存储。
手动部署
-
要求: Python3.8+(含PyPy)和Redis
-
下载:
git clone https://github.com/sapicd/sapic && cd sapic
-
依赖:
pip install -r requirements/prod.txt
# 也可以参考详情文档如何按需安装依赖包 -
配置:
src目录下的config.py即配置文件,它会加载中
.cfg
文件读取配置信息, 无法找到时加载环境变量,最后使用默认值,必需的配置项是picbed_redis_url。所以可以把配置项写到
.bash_profile
或.bashrc
此类文件中在登录时加载, 也可以写入到 .cfg 文件里,这是推荐的方式,它不会被提交到仓库, 格式是k=v,每行一条,注意:v是所见即所得!比如:
sapic_redis_url=redis://@localhost
-
启动:
// 首先创建一个管理员账号 -h/--help显示帮助 $ flask sa create -u USER -p PASSWORD --isAdmin // 开发环境启动 $ make dev // 正式环境,若需前台启动,将start换成run即可;其他支持stop、reload、restart、status $ make start 或 sh online_gunicorn.sh start
-
Nginx:
// 默认配置下,sapic启动监听127.0.0.1:9514,nginx配置示例: server { listen 80; server_name sapic.domain.name; charset utf-8; client_max_body_size 20M; location ~ ^\/static\/.*$ { root /path/to/sapic/src/; } location / { proxy_pass http://127.0.0.1:9514; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
使用Docker部署
-
手动构建镜像
源码中已经编写了Dockerfile文件,可以藉此构建picbed镜像。
$ git clone https://github.com/sapicd/sapic && cd sapic $ docker build -t staugur/sapic .
-
使用已上传镜像
已设置CI实现提交代码自动构建并推送到官方Docker仓库中,直接pull即可:
$ docker pull staugur/sapic # 或者加上tag拉取某稳定版本的镜像
-
启动镜像
$ docker run -tdi --name sapic --restart=always --net=host \ -e sapic_redis_url="Your Redis URL" -e other_config_key=value \ staugur/sapic $ docker exec -i sapic flask sa create -u 管理员账号 -p 密码 --isAdmin
使用 docker run 启动镜像的命令可以自行修改,picbed所用配置可以使用-e设置 环境变量,必需项sapic_redis_url,其他请参考文档。
文档
详细文档请访问:Sapic Docs
演示站
测试账号及密码:demo 123456(请勿修改)
对外服务,为防止乱传已关闭匿名上传,随意注册,但不可用于非测试用途,图片保留删除权利!
评论