适用于个人或团队的文档管理和知识库系统,NAS快速部署『BookStack』

适用于个人或团队的文档管理和知识库系统,NAS快速部署『BookStack』

哈喽小伙伴们好,我是Stark-C~

知识库对于很多需要和文字打交道的个人或者团队都不陌生对吧?对于我们个人来说,它可以将常用的学习资料、工作笔记、项目计划和其他重要信息集中存储并便于随时查阅,提升学习效率;对于团队来说,它可以方便地共享信息,确保团队工作的一致性,提升团队的协作能力。

最近发现了一个非常不错的项目『BookStack』,它就非常适合作为个人或者企业团队作为知识库管理系统,最主要的是它还支持私有化部署,安全性也很有保障。

而本篇内容就教大家怎么在海康存储私有云上搞定它。

🔺因为BookStack部署需要依赖mariadb数据库,所以这个时候我们可以通过docker-compose快速部署。我在前不久刚好教大家怎么在海康存储私有云上部署Portainer,Portainer对于docker-compose堆栈支持的就非常好,所以开始之前请根据我之前的教程安装Portainer:

关于BookStack

BookStack 是一个开源的文档管理和知识库系统,它提供了一个直观且功能丰富的界面,可用于组织和管理各种文档,包括文档编写、编辑和共享。它的主要功能和作用包括:

  1. 文档管理:用户可以创建书籍、章节和页面,将相关内容有序地组织在一起,适合用于企业知识库、团队文档、个人笔记等。

  2. 易于使用的界面:BookStack 提供用户友好的界面,允许通过所见即所得的编辑器来编写和格式化文本,使得内容创作变得直观。

  3. 搜索功能:系统内置搜索功能,用户可以快速查找所需信息,提高效率。

  4. 权限管理:支持用户管理和权限设置,允许不同的用户角色对内容进行不同级别的访问和编辑。

  5. 富媒体支持:除了文本,BookStack 还支持图片、视频以及其他媒体文件的嵌入,提升内容丰富性。

  6. 自托管:作为开源项目,用户可以选择在自己的服务器上安装和运行 BookStack,确保数据的安全和隐私。

BookStack也提供了Demo演示网站,部署之前小伙伴们可以先行体验。

BookStack部署

🔺我们先在文件管理器(我的空间)中的Docker目录下新建一个bookstack的文件夹,然后在该文件夹下在建“app_data”和“db_data:”两个子文件夹用于相关配置文件的持久化存储(也便于以后Docker容器迁移)。

  • app_data:bookstack项目存放路径

  • db_data:mariadb数据库存放路径

🔺打开portainer,选择“堆栈--添加堆栈“。

🔺名称“bookstack”,然后将以下docker-compose.yml文件内容复制粘贴到方框之中:

---
services:bookstack:image: lscr.io/linuxserver/bookstackcontainer_name: bookstackenvironment:- PUID=1000- PGID=1000- TZ=Asia/Shanghai- APP_URL=http://192.168.50.104:6875    # 指定应用程序访问IP:port或域名- DB_HOST=bookstack_db- DB_PORT=3306- DB_USER=bookstack- DB_PASS=123456    # 数据库密码- DB_DATABASE=bookstackappvolumes:- /drives/nvme_e1/Users/admin/Docker/bookstack/app_data:/config    # 映射app_data子文件夹本地路径ports:- 6875:80    # 本地端口设置为未被占用restart: unless-stoppeddepends_on:- bookstack_db
​bookstack_db:image: lscr.io/linuxserver/mariadbcontainer_name: bookstack_dbenvironment:- PUID=1000- PGID=1000- TZ=Asia/Shanghai- MYSQL_ROOT_PASSWORD=123456     #数据库root密码- MYSQL_DATABASE=bookstackapp- MYSQL_USER=bookstack- MYSQL_PASSWORD=123456     #数据库密码volumes:- /drives/nvme_e1/Users/admin/Docker/bookstack/db_data:/config    # 映射db_data子文件夹本地路径restart: unless-stopped

需要修改的地方并不多,我已经用“# 中文”给大家注释好了,其它的都保持默认即可,不要动它。至于子文件夹本地路径我在portainer教程中已经说的很清楚了,不知道的可以在过去检查一遍。

🔺部署成功之后可以看到2个容器全部都在正常运行。

🔺打开海康存储这边的Docker管理器,也可以看到2个容器都是正常运行中。

BookStack体验

👉打开方式:

🔺打开方式很简单,直接浏览器【本地IP:端口号】,或者在容器管理中点击immich_server容器,从端口设置中点击“访问地址”即可。

🔺首次打开需要输入账号和密码。默认账号和密码为:admin@admin.com /password。

👉设置中文:

🔺进来之后默认为英文界面,不过它是原生支持中文的。点击右上角“Admin”。

🔺点击“My Account”。

🔺在“Preferred Language”中选择“简体中文”并保存即可。

👉其他功能:

🔺开启用户注册:设置--注册设置--启用注册。

🔺创建角色:BookStack默认有4个基础角色,我们可以跟根据使用场景划分新的角色。

🔺而它最大的亮点之一就是它的权限分配的细粒度真的是非常丰富。

🔺在“设置--类别--个性化”设置中可以自定义站点名称、站点LOGO等。

👉书架创建:

🔺点击首页”图书--立刻创建“。

🔺接着创建图书的名称、概要、封面、标签等。

🔺可以根据自己的需求选择创建页面,或者添加章节。

🔺接着就正式进入内容的编辑页面。可以看到它和我们常用的编辑器一样,支持的模式还是挺多的,包括字体、对齐、排序、插入等全部都支持。

🔺最让我喜欢的是,它也完美支持我创作所用的Markdown。

🔺并且对于docker-compose.yml文件也是完美支持!

🔺创建好的图书可以一键添加到书架中,展示的效果还是很漂亮的。

🔺首页还有页面更新信息以及个人账户最近的动态。

🔺还能一键切入到夜间(深色)模式。

最后

总体来说,BookStack这个项目作为知识库还是非常不错的,其功能强大且易于使用。它拥有非常直观友好的使用界面,支持创建、编辑和共享文档,并且对多用户多权限也有用非常不错的支持,非常适合团队协作、知识库管理和个人笔记等各种文档管理需求,有需求的小伙伴儿可以试试~

🔺本教程演示的机型是海康存储(HIKVISION)私有云R1,它是一款四盘位高性能的家庭网络存储解决方案,最大支持96TB存储容量。它采用Intel四核处理器 N100,标配一个 DDR5内存插槽与双M.2 SSD设计,强大的性能足够个人及家庭用户的数据备份和文件共享需求。

I/O接口上也是非常丰富,包括3个USB 3.2 Gen2 10Gbps接口、1个 USB3.2 Gen2 Type-C接口及1个HDMI接口(4K 60fps),两个2.5G网口,适应多种扩展需求。

比较有意思的是,它的前面板刚还配备了1块2.86寸、60Hz触控屏,支持多种功能与主题设置,可实时显示温度、CPU占用、风扇、硬盘等状态信息,侧边还配备了透明侧板以及可调控炫彩RGB氛围灯,拥有极高的可玩性。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/59577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#渗透测试#SRC漏洞挖掘#XSS跨站脚本介绍02绕过

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

封装axios、环境变量、api解耦、解决跨域、全局组件注入

官网:Axios中文文档 | Axios中文网 安装:npm install axios axios封装: // 1. 引入axios import axios from "axios"; import storage from /utils/storage // 2. 创建axios实例 const instance axios.create({baseURL: proces…

并发编程的基础:深入理解内存屏障(Memory Barriers)

内存屏障是一种基础语言,在不同的计算机架构下有不同的实现细节。本文主要在x86_64处理器下,通过Linux及其内核代码来分析和使用内存屏障 对大多数应用层开发者来说,“内存屏障”(memory Barrier)是一种陌生&#xff…

Windows转Mac过渡指南

最近由于工作原因开始使用mac电脑,说实话刚拿到手的时候,window党表示真的用不惯。坚持用一下午之后,发现真的yyds,这篇文章说说mac电脑的基本入门指南。 1. 不会使用mac的触摸板,接上鼠标发现滚轮和windows是反的。 …

poi excel数据统计导出

##poi excel导出案例 1.ajxa导出请求没有任何反应,打断点看了workBook中也有数据,网上查阅说ajax请求导出无法接收流,换成location.href,果然可以了 2.控制器代码 response.setCharacterEncoding("UTF-8");response.setContentTyp…

昆仑通态触摸屏-如何完成几个窗口的切换

一、启动窗口 想要哪一个窗口是启动时第一个显示的,就把谁设置为启动窗口就可以。 二、公共窗口 给一个窗口命名为公共窗口 然后选择一个窗口,将他的公共窗口设置为我们刚才命名的那个窗口 三、页面切换 页面切换,是通过在公共窗口内设置按…

golang 实现比特币内核:处理椭圆曲线中的天文数字

在比特币密码学中,我们需要处理天文数字,这个数字是如此巨大,以至于它很容易超出我们宇宙中原子的总数,也许 64 位的值不足以表示这个数字,而像加、乘、幂这样的操作如果使用 64 位整数会导致溢出,因此我们…

dns服务器配置

主服务器 1.挂载点 mount /dev/sr0 /mnt 2.防火墙关闭 systemctl stop firewalld setenforce 0 3.下载bind软件 dnf install bind -y 4.进行正向解析配置 vim /etc/named.conf options { listen-on port 53 { 192.168.92.128; }; directo…

GraphRAG本地部署使用及兼容千帆通义

文章目录 前言一、GraphRAG本地安装1.创建环境并安装2.准备demo数据3.初始化demo目录 二、GraphRAG兼容千帆通义等大模型1.安装 graphrag-more2.准备Demo数据3.初始化demo目录4.移动和修改 settings.yaml 文件 三、知识库构建与使用1.知识库构建2.执行查询 前言 GraphRAG是一种…

揭秘2024年最火的5个科技趋势,你准备好迎接了吗?

在这个信息化飞速发展的时代,科技正以前所未有的速度改变着我们的生活。2024年,科技行业将迎来哪些新的突破与趋势?从人工智能到量子计算,从数字货币到智能家居,未来已来,而我们正站在一个巨变的风口浪尖上…

MySQL排序查询

排序查询 在实际应用中,经常都需要按照某个字段都某种排序都结果,实现语法: select 查询列表 from 表 where 条件 order by 排序字段列表 asc | desc; 案例:查询所有员工信息,要求工资从大到小排列 select * from employees order by salary desc; /…

Python实例:爱心代码

前言 在编程的奇妙世界里,代码不仅仅是冰冷的指令集合,它还可以成为表达情感、传递温暖的独特方式。今天,我们将一同探索用 Python 语言绘制爱心的神奇之旅。 爱心,这个象征着爱与温暖的符号,一直以来都在人类的情感世界中占据着特殊的地位。而通过 Python 的强大功能,…

JS JavaScript实现h5页面间跳转

一、不在JS中跳转 如果你不想在 JavaScript 中写页面跳转&#xff0c;而是希望使用 HTML 或者其它前端方式来实现页面跳转&#xff0c;下面是一些常见的方法&#xff1a; 1. 使用 <a> 标签进行跳转 HTML 中最常见的跳转方式就是使用 <a> 标签。它可以让用户点击链…

scala学习记录,Set,Map

set&#xff1a;集合&#xff0c;表示没有重复元素的集合&#xff0c;特点&#xff1a;唯一 语法格式&#xff1a;val 变量名 Set [类型]&#xff08;元素1&#xff0c;元素2...&#xff09; 可变不可变 可变&#xff08;mutable&#xff09;可对元素进行添加&#xff0c;删…

基于SpringBoot的免税商品优选购物商城的设计与实现

一、项目背景 从古至今&#xff0c;通过书本获取知识信息的方式完全被互联网络信息化&#xff0c;但是免税商品优选购物商城&#xff0c;对于购物商城工作来说&#xff0c;仍然是一项非常重要的工作。尤其是免税商品优选购物商城&#xff0c;传统人工记录模式已不符合当前社会…

【深度学习】DreamClear:提升图片分辨率的模型

基于PixArt-XL-2模型,效果很好。 DreamClear:高容量真实世界图像修复与隐私安全数据集构建 在图像修复领域,处理真实世界中的低质量(Low-Quality, LQ)图像并恢复其高质量(High-Quality, HQ)版本一直是一个具有挑战性的任务。今天,我们将介绍一个最新的开源项目——Dr…

从零开始的c++之旅——多态

1. 多态的概念 通俗来说就是多种形态。 多态分为编译时多态&#xff08;静态多态&#xff09;和运行时多态&#xff08;动态多态&#xff09;。 编译时多态主要就是我们之前提过的函数重载和函数模板&#xff0c;同名提高传不同的参数就可以调 用不同的函数&#xff0c…

js实现blob类型转化为excel文件

需求 后端通过接口将excel文件通过blob类型数据进行返回&#xff0c;前端接收数据并将其转化为excel文件进行下载 实现 接口方法 responseType&#xff1a;值为blob&#xff0c;标记返回数据类型为blob Content-Type&#xff1a;请求头设置&#xff0c;值为application/vnd…

融云「北极星」专业版:指标异常及时告警,趋势变化预先知悉

说起程序员的痛苦时刻&#xff0c;深夜接到告警电话、短信绝对榜上有名&#xff0c;甚至可能留下“铃声 PTSD”。 这也从另一个侧面提醒我们&#xff0c;所有在前台给用户丝滑体验的互联网产品&#xff0c;背后都有庞杂的系统和大量的工程师在支撑。而这其中&#xff0c;监控平…

安全篇(1)判断安全固件

判断安全固件的方法 一、通过串口开机打印 改方法适用Android与Tina 1.开机打印为SBOOT为安全 [289]HELLO! SBOOT is starting! 2.开机打印boot0为非安全 [88]BOOT0 commit : 1cbb5ea8b3 二、通过读数据 1.getprop | grep verifiedbootstate 这条命令的输出表示设备的…