第2篇【Docker项目实战】使用Docker部署Raneto知识库平台(转载)

【Docker项目实战】使用Docker部署Raneto知识库平台

一、Raneto介绍

1.1 Raneto简介

Raneto是一个免费、开放、简单的 Markdown 支持的 Node.js 知识库。

1.2 知识库介绍

  • 知识库

知识库是指存储和组织知识的系统或库,它包括了各种类型的信息和知识,如文本、图像、音频、视频等。知识库可以用于存储和检索知识,帮助人们获取特定领域的知识和解决问题。知识库通常由专业人员创建和维护,他们通过收集和整理各种资源和信息来构建一个完整的知识库。知识库可以包含大量的知识和信息,涵盖多个领域和主题。知识库可以用于多种用途,例如教育、研究、咨询等。它可以为学生提供学习资料和参考文献,为研究人员提供相关领域的最新研究成果,为咨询师提供解决问题的指导。知识库的优势在于它能够集中存储和组织大量的知识和信息,使其易于访问和使用。此外,知识库还可以通过搜索和过滤功能来帮助用户快速找到所需的知识和信息。

  • 知识库工具

知识库工具是一种用于收集、组织、存储和检索知识的软件工具。它们提供了一个集中的平台,可以方便地创建、记录和共享知识,以便团队成员或用户可以随时访问和使用。

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本
dokcer192.168.3.166centos 7.62 20.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.本次实践需要提前在自己服务器上配置好Docker环境,确保Docker环境正常; 3.在Docker环境下部署Raneto知识库平台。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2023-12-01 22:00:49 CST; 3 days agoDocs: https://docs.docker.comMain PID: 11506 (dockerd)Tasks: 10Memory: 935.8MCGroup: /system.slice/docker.service└─11506 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.2 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.01.2.

四、下载Raneto镜像

从docker hub拉取Raneto镜像,版本为latest镜像。如果镜像拉取缓慢,则可以配置国内云厂商的容器镜像加速,提高下载速度。

[root@jeven ~]#  docker pull  raneto/raneto:latest
latest: Pulling from raneto/raneto
7264a8db6415: Pull complete
d68f2f1a5d31: Pull complete
e7e6b7606c1a: Pull complete
904e9a84b7a0: Pull complete
88e752eeee15: Pull complete
14e927c1dd9e: Pull complete
a3e1caebe52b: Pull complete
Digest: sha256:ed0d2d846ed6239791d67bbe0420c6fa2c7a8d2e2d5d30d17fb726e77c9dd576
Status: Downloaded newer image for raneto/raneto:latest
docker.io/raneto/raneto:latest

五、部署Raneto知识库平台

5.1 创建挂载目录

创建挂载目录/data/raneto/

mkdir -p /data/raneto/{config,content} && cd /data/raneto

设置目录权限

chmod -R 777 /data/raneto

5.2 编辑config.js文件

Raneto的配置文件为config.js,在我们新建 /data/raneto/config目录下,编辑config.js文件。

// Modules
var path = require('path');// Which Theme to Use?
//
// Local Directory Example (for development or custom themes)
// var theme_dir = path.join(__dirname, 'themes');
// var theme_name = 'my-theme-directory';
//
// Themes from NPM
// use "dist" as the theme name for modules (for now)
var theme_dir = path.join(__dirname,'..','node_modules','@raneto/theme-default'
);
var theme_name = 'dist';var config = {// Your site title (format: page_title - site_title)site_title: 'Raneto Docs',// The base URL of your site (can use %base_url% in Markdown files)// This should be the full path to your Raneto installation://   example 1: https://raneto.mydomain.com//   example 2: https://www.mydomain.com/raneto// Do not include a trailing "/"// Leave this as an empty string to use the defaultbase_url: '',nowrap: true,// Path Prefix// If you are running Raneto on a subpath of your domain, add it here// Leave it blank if you are not sure//// Example: if you are running Raneto at http://www.mydomain.com/raneto//          then you would enter '/raneto' belowpath_prefix: '',// Used for the "Get in touch" page footer linksupport_email: '',// Footer Text / Copyrightcopyright: `Copyright © ${new Date().getFullYear()} - <a href="https://raneto.com">Powered by Raneto</a>`,// Excerpt length (used in search)excerpt_length: 400,// The meta value by which to sort pages (value should be an integer)// If this option is blank pages will be sorted alphabeticallypage_sort_meta: 'sort',// Should categories be sorted numerically (true) or alphabetically (false)// If true category folders need to contain a "sort" file with an integer valuecategory_sort: true,// Controls behavior of home page if meta ShowOnHome is not present. If set to true// all categories or files that do not specify ShowOnHome meta property will be shownshow_on_home_default: true,// Theme (see top of file)theme_dir,theme_name,// Specify the path of your content folder where all your '.md' files are located// Fix: Cannot be an absolute pathcontent_dir: path.join(__dirname, '..', 'content', 'pages'),// Where is the public directory or document root?public_dir: path.join(theme_dir, theme_name, 'public'),// The base URL of your images folder,// Relative to config.public_dir// (can use %image_url% in Markdown files)image_url: '/images',// Add your analytics tracking code (including script tags)analytics: '',// Set to true to enable the web editorallow_editing: true,// Set to true to enable HTTP Basic Authenticationauthentication: true,// If editing is enabled, set this to true to only authenticate for editing, not for viewingauthentication_for_edit: true,// If authentication is enabled, set this to true to enable authentication for reading tooauthentication_for_read: false,// Google OAuthgoogleoauth: false,google_group_restriction: {enabled: false,api_key: 'GOOGLE_API_KEY',group_name: 'GOOGLE_GROUP_NAME',},oauth2: {client_id: 'GOOGLE_CLIENT_ID',client_secret: 'GOOGLE_CLIENT_SECRET',callback: 'http://localhost:3000/auth/google/callback',hostedDomain: 'google.com',},secret: 'someCoolSecretRightHere',// ##### WARNING #####// You MUST change the username and password for security// Do NOT use "admin" as a username as it's easily guessed.// You are encouraged to use tools to generate a password// Preferably, use a local password manager// If you absolutely must use an online tool, here are some suggestions// https://bitwarden.com/password-generator/// https://www.grc.com/passwords.htmcredentials: [{username: 'admin',password: 'password',},{username: 'admin2',password: 'password',},],locale: 'zh',// Support search with extra languagessearchExtraLanguages: ['zh'],// Sets the format for datetime'sdatetime_format: 'Do MMM YYYY',// Set to true to render suitable layout for RTL languagesrtl_layout: false,// Edit Home Page title, description, etc.home_meta: {// title       : 'Custom Home Title',// description : 'Custom Home Description'},// variables: [//   {//     name: 'test_variable',//     content: 'test variable'//   },//   {//     name: 'test_variable_2',//     content: 'test variable 2'//   }// ]// Set to true to enable generation of table of contentstable_of_contents: false,// Configure generation of table of contents (see markdown-toc's docs for details on available options)table_of_contents_options: {// append: 'Table of contents appendix',// maxdepth: 6,// firsth1: true,},menu_on_pages: true,menu_on_page_collapsible: true,
};// Exports
module.exports = config;

在config.js文件中,可以自行修改三个地方:

  • 站点名称
site_title: 'Raneto Docs',
  • 用户名和密码
credentials: [{username: 'admin',password: 'password',},{username: 'admin2',password: 'password',},],
  • 支持中文语言
locale: 'zh',// Support search with extra languagessearchExtraLanguages: ['zh'],

5.3 编辑docker-compose.yaml文件

新建raneto容器的docker-compose.yaml部署文件,内容如下:

version: "3.6"services:raneto:image: raneto/raneto:latestcontainer_name: ranetorestart: alwaysports:- 7860:3000volumes:- /data/raneto/config:/opt/raneto/config- /data/raneto/content:/opt/raneto/content

5.4 创建raneto容器

使用docker-compose.yaml文件创建raneto容器

[root@jeven raneto]# docker compose up -d
[+] Running 2/2⠿ Network raneto_default  Created                                                                                      0.1s⠿ Container raneto        Started                                                                                      0.5s

5.5 检查raneto容器状态

检查raneto容器状态,确保raneto容器正常启动。

[root@jeven raneto]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
raneto              "docker-entrypoint.s…"   raneto              running             0.0.0.0:7860->3000/tcp, :::7860->3000/tcp1.2.3.

5.6 检查raneto容器日志

检查raneto容器日志,确保raneto服务正常运行。

[root@jeven raneto]# docker compose logs
raneto  |
raneto  | > raneto@0.17.6 start
raneto  | > DEBUG=raneto node server.js
raneto  |
raneto  | 2023-12-05T09:06:05.706Z raneto Express HTTP server listening on port 3000

【Docker项目实战】使用Docker部署Raneto知识库平台_Docker

六、Raneto的基本使用

6.1 访问Raneto首页

访问地址:** http://192.168.3.166:7860/,将IP换为自己服务器IP地址,进入到Raneto首页。

【Docker项目实战】使用Docker部署Raneto知识库平台_docker_02

6.2 登录Raneto

使用默认的密码admin/password,登录Raneto。

【Docker项目实战】使用Docker部署Raneto知识库平台_docker_03

【Docker项目实战】使用Docker部署Raneto知识库平台_Markdown_04

6.3 上传文档

将md格式文件上传到宿主机的/data/raneto/content/pages目录下,刷新页面即可。

[root@jeven pages]# pwd
/data/raneto/content/pages
[root@jeven pages]# ls
Linux系统之ls命令的基本使用.md

【Docker项目实战】使用Docker部署Raneto知识库平台_docker_05

【Docker项目实战】使用Docker部署Raneto知识库平台_docker_06

6.4 新建页面目录

在宿主机的/data/raneto/content/pages目录下,新建Linux技术目录。

[root@jeven pages]# mkdir Linux技术
[root@jeven pages]# ls
Linux技术  Linux系统之ls命令的基本使用.md

重新刷新页面后,可以看到Linux技术目录。

【Docker项目实战】使用Docker部署Raneto知识库平台_Docker_07

七、总结

Raneto是一款简单高效的开源知识库工具,帮助我们整理知识文档和构建知识体系。它具有简洁直观的界面,可以轻松对文档进行分组管理。而且,它还提供了友好的Markdown支持,让我们能够以更加方便的编写和浏览技术文档。如果你正在寻找一个简单易用的知识库工具,那么Raneto是值得一试的选择。

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

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

相关文章

数据分析实战-Python实现博客评论数据的情感分析

数据分析实战-Python实现博客评论数据的情感分析 学习建议SnowNLP基础什么是SnowNLP&#xff1f;SnowNLP情感分析 SnowNLP使用SnowNLP安装情感分析中文分词关键词提取拼音、词性标准 SnowNLP实战-博客评论数据的情感分析数据准备数据获取数据分析 总结 学习建议 现在很多网站、…

技术面试最重要的是什么?

技术面试最重要的是什么&#xff1f; 最重要的当然是实力&#xff0c;然而实力之外&#xff0c;也有一些基本原则。 1 让面试官听懂你在做什么 牛逼的人都是能把最复杂的事情讲简单的。 如果面试官听不懂你讲的东西&#xff0c;他就无法判断你的水平。如果这个面试官不是你…

面向IoT物联网的时间序列引擎

1、背景 随着近年来业务的发展&#xff0c;尤其是机器产生的数据占比越来越高的趋势下&#xff0c;时序数据因为其业务价值越来越被更多地关注&#xff0c;也因而催生了专用的时间序列数据库&#xff0c;简称时序数据库&#xff08;TimeSeries Database&#xff0c;TSDB&#x…

flutter选择国家或地区的电话号码区号

1.国家区号列表&#xff08;带字母索引侧边栏&#xff09; import package:generated/l10n.dart; import package:widget/login/area_index_bar_widget.dart; import package:flutter/material.dart; import package:flutter_screenutil/flutter_screenutil.dart;class LoginA…

实现更高能效的汽车级低边驱动器NRVB140ESFT1G 带温度和电流限制 自保护低压侧驱动器

一起去了解关于汽车电子AEC Q101车规认证&#xff01;&#xff01;! 是一种针对分立半导体的可靠性测试认证程序&#xff0c;由汽车电子协会发布。这个认证程序主要是为了确保汽车电子产品在各种严苛的条件下能够正常工作和可靠运行。它包括了对分立半导体的可靠性、环境适应性…

(2022级)成都工业学院Java程序设计(JAVA)实验一:编写一个简单的Java程序

写在前面 1、基于2022级软件工程/计算机科学与技术实验指导书 2、代码仅提供参考 3、如果代码不满足你的要求&#xff0c;请寻求其他的途径 运行环境 window11家庭版 IntelliJ IDEA 2023.2.2 jdk17.0.6 实验要求 1、 控制台菜单。要求如下&#xff1a; 1&#xff09;…

Docker容器化技术(互联机制实现便捷互访)

容器的互联是一种让多个容器中的应用进行快速交互的方式。它会在源和接收容器之间创建连接关系&#xff0c;接收容器可以通过容器名快速访问到源容器&#xff0c;而不用指定具体的IP地址。 1.自定义容器命名 连接系统依据容器的名称来执行。因此&#xff0c;首先需要自定义一…

DataFunSummit 2023因果推断在线峰会:解码数据与因果,引领智能决策新篇章(附大会核心PPT下载)

在数据驱动的时代&#xff0c;因果推断作为数据科学领域的重要分支&#xff0c;正日益受到业界的广泛关注。DataFunSummit 2023年因果推断在线峰会&#xff0c;汇聚了国内外顶尖的因果推断领域专家、学者及业界精英&#xff0c;共同探讨因果推断的最新进展、应用与挑战。本文将…

[MYSQL数据库]--表内操作(CURD)

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、表的 Cre…

Mybatis的XML配置文件

Xml文件中写SQL 为什么要学? 学习了Mybatis中XML配置文件的开发方式了&#xff0c;大家可能会存在一个疑问&#xff1a;到底是使用注解方式开发还是使用XML方式开发&#xff1f; 官方说明&#xff1a;https://mybatis.net.cn/getting-started.html 结论&#xff1a;使用Myba…

【数据集】2023自动驾驶开源数据集-学习笔记

文章目录 1. 自动驾驶有哪些公开数据集2. 预测相关的数据集有哪些 1. 自动驾驶有哪些公开数据集 waymo open dataset 适应任务: 域适应&#xff0c;2D追踪&#xff0c;2D检测&#xff0c;3D追踪&#xff0c;3D检测&#xff0c;实时2D检测&#xff0c;实时3D检测&#xff0c;交互…

Python3 @get_time 装饰器

Python get_time 装饰器 get_time 装饰器可以用于计算函数的执行时间。 示例&#xff1a; import timedef get_time(func):def wrapper(*args, **kwargs):start_time time.time()func(*args, **kwargs)end_time time.time()print(f"函数 {func.__name__} 执行时间&am…

【数据挖掘】实验2:R入门2

实验2&#xff1a;R入门2 一&#xff1a;实验目的与要求 1&#xff1a;熟悉和掌握R数据类型。 2&#xff1a;熟悉和掌握R语言的数据读写。 二&#xff1a;实验内容 1&#xff1a;R数据类型 【基本赋值】 Eg.1代码&#xff1a; x <- 8 x Eg.2代码&#xff1a; a city …

php7.3.4连接sqlserver(windows平台)

前言 有个项目需要手上laravel连接客户的sqlserver数据库读取数据&#xff0c;故在本地开发的lnmp环境中&#xff0c;php需要增加扩展 过程 从微软官网下载sqlsrv扩展,注意注意php版本&#xff0c;下载地址 解压的文件会有nts和ts两个版本&#xff0c;本地打开phpinfo查看 将…

基于SSM框架的理发店管理系统的设计与实现【附项目源码】分享

基于SSM框架的理发店管理系统的设计与实现&#xff1a; 源码地址&#xff1a;https://download.csdn.net/download/qq_41810183/88842785 理发店管理系统设计与实现需求文档 一、引言 随着信息技术的发展和普及&#xff0c;各行业都在寻求信息化管理以提升服务效率与用户体验…

基于Springboot影城管理系统设计与实现

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 一、研究背景…

惬意上手Redis

Redis介绍 Redis&#xff08;全称为REmote Dictionary Server&#xff09;是一个开源的、内存中的数据存储结构&#xff0c;主要用作应用程序缓存或快速相应数据库。 REmote Dictionary Server: 有道翻译Redis是“远程字典服务”&#xff0c;远程不过是远程访问&#xff0c;而…

计算机网络面经八股-解释一下HTTP长连接和短连接?

在HTTP/1.0中&#xff0c;默认使用的是短连接。也就是说&#xff0c;浏览器和服务器每进行一次HTTP操作&#xff0c;就建立一次连接&#xff0c;但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的 Web页中包含有其他的Web资源&#xff0c;如JavaScript文件、图…

OpenCV和Mediapipe实现摸嘴或鼻检测

目录 引言 1.过程简介 2. 代码结构 2.1 导入库 2.2 初始化模型 2.3 读取视频流或摄像头 2.4 初始化FPS计算 2.5 主循环 2.6 转换BGR图像为RGB图像 2.7 运行姿势检测模型和手部检测模型 2.8 绘制姿势关键点及连接线 2.9 检测手部关键点 2.10 判断手部与鼻子、嘴的相对…

使用Flask快速搭建轻量级Web应用【第127篇—Flask】

使用Flask快速搭建轻量级Web应用 在Web开发领域&#xff0c;选择适合项目需求的框架至关重要。Flask&#xff0c;一个轻量级的Python Web框架&#xff0c;以其简洁、灵活和易扩展的特性而备受开发者青睐。本文将介绍如何使用Flask迅速搭建一个轻量级的Web应用&#xff0c;并通过…