12 Star 158 Fork 58

staugur / sapic

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

sapic

即picbed,基于Flask的Web自建图床, 支持存储到本地、又拍云、七牛云、阿里云OSS、腾讯云COS、GitHub、Gitee(码云)等, 支持第三方扩展存储到AWS S3sm.mssuperbed聚合图床等。

Actions Status: ci codecov Last Release

手动部署

  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. 启动:

    $ 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:

    // 默认配置下,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文件,可以藉此构建镜像。

    git clone https://github.com/sapicd/sapic && cd sapic
    docker build -t stagur/sapic .
  • 使用已上传镜像

    已设置CI实现提交代码自动构建并推送到官方Docker仓库中,直接pull即可(amd/arm):

    docker pull staugur/sapic  # 或者加上tag拉取某稳定版本的镜像
  • 启动镜像

    $ 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数据目录。

使用前,创建用户:

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)。

文档

客户端上传示例

详细文档请访问:Sapic Docs

演示站

http://demo.sapicd.com

测试账号及密码:demo 123456(请勿修改)

对外服务,为防止乱传已关闭匿名上传,随意注册,但不可用于非测试用途,图片保留删除权利!

预览图

首页上传

管理我的图片

控制台管理员功能

Contributing

感谢您的贡献!

关于如何提交issue或pr,请参考 contributing guidelines

感谢以下参与项目的人:

BSD 3-Clause License Copyright (c) 2019, Hiroshi.tao All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

基于Flask的Web自建图床 展开 收起
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/staugur/picbed.git
git@gitee.com:staugur/picbed.git
staugur
picbed
sapic
master

搜索帮助