# sapic
即picbed,基于Flask的Web自建图床,
支持存储到本地、又拍云、七牛云、阿里云OSS、腾讯云COS、GitHub、Gitee(码云)等,
支持第三方扩展存储到[AWS S3](https://aws.amazon.com/s3/)、[sm.ms](https://sm.ms/)、[superbed聚合图床](https://www.superbed.cn)等。
[![Actions Status: ci](https://github.com/sapicd/sapic/workflows/ci/badge.svg)](https://github.com/sapicd/sapic/actions?query=workflow%3A%22build+and+test%22)
[![codecov](https://codecov.io/gh/sapicd/sapic/branch/master/graph/badge.svg)](https://codecov.io/gh/sapicd/sapic)
![Last Release](https://img.shields.io/github/release/sapicd/sapic.svg?style=flat-square)
## 手动部署
1. 要求: Python3.8+ 和 Redis(建议v4.0+)
2. 下载: `git clone https://github.com/sapicd/sapic && cd sapic`
3. 依赖: `pip install -r requirements/all.txt` # 也可以参考详情文档如何按需安装依赖包
4. 配置:
src目录下的config.py即配置文件,它会加载中 `.cfg` 文件读取配置信息,
无法找到时加载环境变量,最后使用默认值,**必需设置sapic_redis_url**
所以可以把配置项写到 `.bash_profile` 或 `.bashrc` 此类文件中在登录时加载,
也可以写入到 /path/to/sapic/src/ 下的 **.cfg** 文件里,这是推荐的方式,
它不会被提交到仓库,格式是k=v,每行一条,注意:v是所见即所得!
比如:`sapic_redis_url=redis://localhost`
5. 启动:
```bash
$ cd /path/to/sapic/src/
// 首先创建一个管理员账号 -h/--help显示帮助
$ flask sa create -u USER -p PASSWORD --isAdmin
// 如果更新了版本,注意执行命令迁移数据,详见文档:部署安装-升级部分
// flask sa upgrade --help
// 开发环境启动
$ make dev
// 正式环境,若需前台启动,将start换成run即可;其他支持stop、reload、restart、status
$ make start 或 sh online_gunicorn.sh start
```
6. Nginx:
```nginx
// 默认配置下,sapic启动监听127.0.0.1:9514,nginx配置示例:
server {
listen 80;
server_name your-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文件,可以藉此构建镜像。
```bash
git clone https://github.com/sapicd/sapic && cd sapic
docker build -t stagur/sapic .
```
- 使用已上传镜像
已设置CI实现提交代码自动构建并推送到官方Docker仓库中,直接pull即可(amd/arm):
```bash
docker pull staugur/sapic # 或者加上tag拉取某稳定版本的镜像
```
- 启动镜像
```bash
$ docker run -d --name sapic --restart=always --net=host \
-e sapic_redis_url="Your Redis URL" \
-e 其他配置=值 \
staugur/sapic
$ docker exec -i sapic flask sa create -u 管理员账号 -p 密码 --isAdmin
```
使用 *docker run* 启动镜像的命令仅供参考,sapic所用配置可以使用-e设置
环境变量,必需项sapic_redis_url,其他请参考文档。
此单一启动镜像方式不包括redis,所以还需要提前准备好redis才行。
------
如果有docker-compose的使用经验,可以使用命令 ``docker-compose up -d``
在后台快速启动项目,它会直接启动一个redis、并构建启动应用,redis开启AOF,
宿主机映射9514端口以供外部访问,且使用数据卷挂载静态资源、挂载上传目录和redis数据目录。
使用前,创建用户:
```bash
cd /path/to/sapic
docker-compose exec webapp flask sa create -u 管理员账号 -p 密码 --isAdmin
```
-------
- 镜像推送到 `Docker Hub`,latest 标签是 master 分支,dev 标签是 dev 分支,其他标签是已发布的版本。
- docker-compose.yml仅为简单定义,可以自行修改,比如加上nginx、redis挂载数据(/data)。
## 文档
### 客户端上传示例
- [使用PicGo上传到自定义的 sapic 图床](https://sapic.rtfd.vip/usage.html#picbed-upload-picgo)
- [使用uPic上传到自定义的 sapic 图床](https://sapic.rtfd.vip/usage.html#picbed-upload-upic)
- [作为自定义命令在使用Typora时上传图片到sapic](https://sapic.rtfd.vip/cli.html#picbed-upload-typora)
- [Windows系统的图片文件添加右键菜单](https://sapic.rtfd.vip/cli.html#picbed-upload-rightmenu-windows)
- [macOS系统的图片文件添加右键菜单](https://sapic.rtfd.vip/cli.html#picbed-upload-rightmenu-macos)
详细文档请访问:[Sapic Docs](https://sapic.rtfd.vip)
## 演示站
http://demo.sapicd.com
测试账号及密码:demo 123456(请勿修改)
对外服务,为防止乱传已关闭匿名上传,随意注册,但不可用于非测试用途,图片保留删除权利!
## 预览图
![首页上传](./Snapshot/homepage.png)
![管理我的图片](./Snapshot/pic.png)
![控制台管理员功能](./Snapshot/hook.png)
## Contributing
感谢您的贡献!
关于如何提交issue或pr,请参考 [contributing guidelines](./CONTRIBUTING.md)
感谢以下参与项目的人:
<a href="https://github.com/sapicd/sapic/graphs/contributors">
<img src="https://opencollective.com/sapic/contributors.svg?width=890&button=false" />
</a>
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
CSDN IT狂飙上传的代码均可运行,功能ok的情况下才上传的,直接替换数据即可使用,小白也能轻松上手 【资源说明】 Python优秀项目 基于Flask实现的Web自建图床,可存储到又拍云、七牛云、阿里云OSS、腾讯云COS、GitHub、Gitee、S3等,支持自定义扩展源码+部署文档+全部数据资料.zip 1、代码压缩包内容 代码的项目文件 部署文档文件 2、代码运行版本 python3.7或者3.7以上的版本;若运行有误,根据提示GPT修改;若不会,私信博主(问题描述要详细) 3、运行操作步骤 步骤一:将代码的项目目录使用IDEA打开(IDEA要配置好python环境) 步骤二:根据部署文档或运行提示安装项目所需的库 步骤三:IDEA点击运行,等待程序服务启动完成 4、python资讯 如需要其他python项目的定制服务,可后台私信博主(注明你的项目需求) 4.1 python或人工智能项目辅导 4.2 python或人工智能程序定制 4.3 python科研合作 Django、Flask、Pytorch、Scrapy、PyQt、爬虫、可视化、大数据、推荐系统、人工智能、大模型
资源推荐
资源详情
资源评论
收起资源包目录
Python优秀项目 基于Flask实现的Web自建图床支持自定义扩展源码+部署文档+全部数据资料 (237个子文件)
layui.css 73KB
layer.css 14KB
layui.mobile.css 10KB
laydate.css 7KB
share.min.css 4KB
cropper.min.css 4KB
ImgCropping.css 3KB
code.css 1KB
Dockerfile 573B
.dockerignore 122B
iconfont.eot 46KB
iconfont.eot 9KB
picbed_upload.gif 138KB
59.gif 10KB
22.gif 10KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
4.gif 6KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
21.gif 5KB
20.gif 5KB
29.gif 5KB
70.gif 4KB
5.gif 4KB
17.gif 4KB
27.gif 4KB
9.gif 4KB
44.gif 4KB
11.gif 4KB
8.gif 4KB
3.gif 4KB
23.gif 4KB
34.gif 4KB
41.gif 4KB
38.gif 4KB
65.gif 3KB
32.gif 3KB
45.gif 3KB
7.gif 3KB
12.gif 3KB
26.gif 3KB
60.gif 3KB
2.gif 3KB
40.gif 3KB
25.gif 3KB
19.gif 3KB
66.gif 3KB
18.gif 3KB
46.gif 3KB
10.gif 3KB
28.gif 3KB
51.gif 3KB
57.gif 3KB
67.gif 3KB
0.gif 3KB
48.gif 3KB
43.gif 3KB
30.gif 2KB
61.gif 2KB
33.gif 2KB
69.gif 2KB
14.gif 2KB
47.gif 2KB
36.gif 2KB
49.gif 2KB
58.gif 2KB
6.gif 2KB
54.gif 2KB
53.gif 2KB
56.gif 2KB
62.gif 2KB
31.gif 2KB
55.gif 2KB
35.gif 2KB
15.gif 2KB
loading-2.gif 2KB
37.gif 1KB
68.gif 1KB
52.gif 777B
loading-1.gif 701B
.gitignore 2KB
my.html 87KB
admin.html 68KB
footer.html 26KB
index.html 14KB
register.html 7KB
base.html 5KB
forgot.html 5KB
upload_show.html 4KB
login.html 3KB
nav.html 3KB
linktoken.html 2KB
共 237 条
- 1
- 2
- 3
资源评论
IT狂飙
- 粉丝: 4823
- 资源: 2654
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功