UniBoard:私有化部署,导航笔记文件一站式管理
UniBoard 介绍
UniBoard 是一款开源的多功能个人主页平台,集成了导航管理、云笔记、短链服务、文件存储与分享等实用工具,用户可以方便地管理和使用这些功能。
🚢 项目地址
🚀UniBoard 特征
- 🍉 功能集成化: 将个人主页搭建、常用网站导航、灵感笔记记录、长网址缩短、文件直链分享等功能整合于同一平台,实现「一站式」管理。
- 🐳 开源可定制: 基于Vue3+TS 前端和 Django 后端构建,支持 Docker 部署。用户可自定义首页横幅、导航分类、媒体平台信息等,打造专属数字门户。
- 🍵 导航链接:支持三级分类和自动获取网站图标,最多可添加 50+ 常用链接。
- 📒 云笔记:随时记录灵感,方便查阅;内置 Markdown 编辑器,支持表格/超链接等高级语法。
- 🎏 短链服务:将长网址转换为短链,支持访问量统计。
- 📂文件存储和分享:上传文件,生成链接,轻松分享。
- ⏬ 直链下载:提供私有/公开/密码保护三种权限,支持直链下载和下载次数统计。
🛠️ 部署 UniBoard
👻 先决条件/要求
- 最低 1GB RAM(推荐 2GB+)
- 具备docker,docker-compose 环境
- 需要定义
POSTGRES_PASSWORD
密码,作为数据库的连接凭证
🐳 使用Docker Compose部署 (推荐)
services:
web:
#image: coolfan1024/uniboard:latest
image: docker.cnb.cool/srebro/docker-images-chrom/uniboard:latest ##CNB镜像加速
container_name: uniboard-frontend
ports:
- '8888:80'
depends_on:
- backend
backend:
#image: coolfan1024/uniboard-service:latest
image: docker.cnb.cool/srebro/docker-images-chrom/uniboard-service:latest ##CNB镜像加速
container_name: uniboard-backend
volumes:
- ./service/media:/app/service
environment:
POSTGRES_PASSWORD: UR*Bckl0Q7YXIK96 ##自定义一个密码
POSTGRES_DB: uniboard
depends_on:
- db
db:
#image: postgres:17.4-bookworm
image: docker.cnb.cool/srebro/docker-images-chrom/postgres:17.4-bookworm ##CNB镜像加速
container_name: uniboard-db
environment:
POSTGRES_PASSWORD: UR*Bckl0Q7YXIK96 ##自定义一个密码
POSTGRES_DB: uniboard
volumes:
- ./database/postgres_data:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres']
interval: 10s
timeout: 10s
retries: 10
部署完成后,通过浏览器访问 http://<你的服务器IP>:8888
即可使用 UniBoard。
🙃 UniBoard 初始化
输入用户名/密码
自定义头像,横幅,展示姓名,个人简介,个人标语
🧭 使用Nginx反向代理
为了后面演示 短链服务+ 文件共享 ,这里需要先使用Nginx 做一个HTTPS 的反向代理,Uniboard程序本身不提供ssl相关功能,直接暴露8888端口不是一个好的选择,这样你就可以用一个域名来访问UniBoard,而不是直接暴露端口。
#UniBoard
server {
listen 443 ssl;
server_name site.srebro.cn; ##替换成自己的域名
error_page 404 /404/404.html;
charset utf-8;
client_max_body_size 0; #设置最大包大小为无上限
ssl_certificate /home/application/nginx/cert/srebro.cn.pem;
ssl_certificate_key /home/application/nginx/cert/srebro.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host; # 保留代理之前的host
proxy_set_header X-Real-IP $remote_addr; # 保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; # 在多级代理的情况下,记录每次代理之前的客户端真实ip
proxy_set_header X-Forwarded-Proto $scheme; # 表示客户端真实的协议(http还是https)
proxy_redirect default; # 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
proxy_buffering off; # 禁用缓存,确保始终从后端获取最新内容
}
}
😇管理UniBoard后台
初始化完成后,你就可以通过 https://域名
来访问UniBoard了。使用你刚刚创建的用户名/密码登录。 登录方式有些许特别,见下图。
登录后的界面
📓 在线写笔记功能
🔗 短链功能
- 添加一个 https://mp.weixin.qq.com/s/4rJKGMLY39DzKB8J13AvVg 网页的短链 , 短链地址为 https://site.srebro.cn/s/3ySC
🗽 文件分享功能
支持文件快速分享,可公开,可密码保护 ;有点像🐄奶牛快传的功能。
- 复制文件分享的链接
- 输入密码后才能获取文件
- 下载后得到一张图片
🏕️ 首屏设置、外链设置
🏝️ 最终效果
🎁 获取 UniBoard
- CNB 仓库地址:UniBoard
License:
CC BY 4.0