介绍
今天分享的是一个开源免费的图床 Picsur,按照规矩点击这里可以直接到达项目地址。
这是一个易于使用、可自行托管的图片分享服务,而且还内置转换功能,界面也非常简单。
相关地址
Github官方仓库:https://github.com/caramelfur/picsur
官方Demo:https://picsur.org/
搭建
搭建环境
- 服务器:硬盘越大越好
- 系统:Ubuntu20.04 (Debian系列也可以)
- 安装好Docker和Docker Compose
- 域名(非必须,但是推荐)
- NginxProxyManager(非必须,但是推荐)
搭建过程
创建文件夹
sudo -i
mkdir -p /root/data/docker_data/picsur
cd /root/data/docker_data/picsur
编辑Docker Compose文件
vim docker-compose.yml
# 或者下面的命令
nano docker-compose.yml
上面两个命令
vim
和nano
任选一个就可以
如果选择的是vim
,进入输入页面后英文输入法下按下字母i
就行,如果是nano
命令直接进行编辑即可
下面是我的 docker-compose.yml
文件内容,官方的最新镜像会出现跨域问题,导致资源无法访问,把版本回退到0.5.1
就可以了,截止到今天还没修复(20231121),后续有更新我会再进行更新。
version: '3'
services:
picsur:
image: ghcr.io/caramelfur/picsur:0.5.1
container_name: picsur
ports:
- '8003:8080' #8003可以改成服务器上没有用过的端口
environment:
PICSUR_HOST: '0.0.0.0'
PICSUR_PORT: 8080
PICSUR_DB_HOST: picsur_postgres
PICSUR_DB_PORT: 5432
PICSUR_DB_USERNAME: picsur
PICSUR_DB_PASSWORD: nice-long-strong-passw0rd-here # 确保和picsur_postgres:部分的 POSTGRES_PASSWORD 匹配
PICSUR_DB_DATABASE: picsur
## 默认管理员账户是 admin, 这个没法改,密码就是下面这个你设置的
PICSUR_ADMIN_PASSWORD: different-nice-long-str0n6-passw0rd-here
## 可选的,如果没有设置会默认生产随机字符
# PICSUR_JWT_SECRET: CHANGE_ME
# PICSUR_JWT_EXPIRY: 7d
## 最大可以上传的字节数
PICSUR_MAX_FILE_SIZE: 128000000 # 128 MB
## No need to touch this, unless you use a custom frontend
# PICSUR_STATIC_FRONTEND_ROOT: "/picsur/frontend/dist"
## Warning: Verbose mode might log sensitive data
# PICSUR_VERBOSE: "true"
restart: unless-stopped
picsur_postgres:
image: postgres:14-alpine
container_name: picsur_postgres
environment:
POSTGRES_DB: picsur
POSTGRES_PASSWORD: nice-long-strong-passw0rd-here
POSTGRES_USER: picsur
restart: unless-stopped
volumes:
- ./picsur-data:/var/lib/postgresql/data # 默认数据存放在当前文件夹下的picsur-data目录中,可以自行修改
如果是
vim
命令编辑的,修改完成后点击esc
然后输入:wq
然后回车即可
如果是nano
命令编辑,修改完成后按下Ctrl+X
,输入y
然后回车即可
检查端口并运行
按照你设置的端口,在终端中输入以下命令,看是否占用。如果回车后什么也没有,说明并没有占用。在Linux中,什么都没有就是最好的反馈。
lsof -i:8003 # 这里的8003换成你自己设置的端口
没有占用则可以在终端输入下面的命令进行运行
docker-compose up -d
访问
成功运行起来以后,就可以使用 ip:port
的方式进行访问了
如果出现无法访问,看看是不是服务器运营商那边的端口没有开放。
反向代理
其实到这里已经可以正常使用图床服务了,但是为了美观,我们使用解析好的域名进行反向代理后可以使用域名直接访问。这样既解决了美观问题,也更安全和好记。
这里我推荐使用NginxProxyManager进行反向代理。关于反向代理的详细步骤,过两天我会单独出一期详细的食用方法,到时候会一并附在这里。
好了,这就是今天要分享的内容,谢谢小伙伴的阅读!