官方网站 [Node.js — Download Node.js® (nodejs.org)]
官方网站 PostgreSQL: Windows installers
初始化 postgreSQL,推荐使用powershell,相比cmd与linux下命令更接近,在开始菜单打开powershell,导航到 PostgreSQL 的安装目录,通常为 C:\Program Files\PostgreSQL\<version>\bin
,其中 <version>
是您安装的 PostgreSQL 版本号。
cd C:\Program Files\PostgreSQL\16\bin
初始化数据库,请将 "C:\path\to\data\directory"
替换为您希望存储 PostgreSQL 数据的目录的路径。默认情况下,它在 PostgreSQL 安装目录的 data
子目录中。
initdb -D "C:\path\to\data\directory"
执行以下命令以安装 PostgreSQL 服务:在这个命令中,-N "PostgreSQL"
指定了服务的名称,您可以根据需要更改它。-U "NT AUTHORITY\NetworkService"
指定了服务运行时使用的用户。-D "C:\path\to\data\directory"
指定了数据目录的路径。
pg_ctl register -N "PostgreSQL" -U "NT AUTHORITY\NetworkService" -D "C:\path\to\data\directory"
使用以下命令启动 PostgreSQL 服务,如果您在安装时选择了不同的服务名称,将 "PostgreSQL"
替换为您选择的名称。
net start PostgreSQL
可以使用以下命令检查 PostgreSQL 服务的状态。或者,您也可以在服务管理器中检查 PostgreSQL 服务是否已成功启动。
pg_ctl status -D "C:\path\to\data\directory"
完成上述步骤后,您的 PostgreSQL 服务应该已经初始化并成功启动。您可以使用 psql 或其他 PostgreSQL 客户端工具连接到数据库进行进一步的操作。
如果在powershell中执行以下命令没有反应,需要添加环境变量
psql --version
psql -V
右键我的电脑或者设置->关于->高级系统设置 -> 高级 -> 环境变量 -> Path -> 编辑 -> 新建
以超级用户 "postgres" 的身份连接到数据库服务器。根据您在安装时设置的密码,可能会要求您输入密码。Secure-Passwords#Windows-PostgreSQL-Admin
psql -U postgres
创建普通用户,连接到数据库服务器后,您可以使用以下命令创建一个新的数据库,将该数据库的权限给予用户:Secure-Passwords#Wiki-PostgreSQL-Database
CREATE USER your_user WITH PASSWORD "databaseUserPassword";
CREATE DATABASE databaseName;
GRANT ALL PRIVILEGES ON DATABASE databaseName TO databaseUser;
解决数据库连接异常问题可以使用以下命令
ALTER DATABASE databaseName OWNER TO databaseUser;
https://stackoverflow.com/questions/2942485/psql-fatal-ident-authentication-failed-for-user-postgres]
https://www.cybertec-postgresql.com/en/error-permission-denied-schema-public/
退出 PostgreSQL 命令行界面:
\q
官方网站 Releases · requarks/wiki (github.com)
从wiki-js-windows.tar.gz解压出来相关文件,在config.sample.yml配置文件中,观察到如果使用postgreSQL数据库,其相关配置如下:
db:
type: postgres
# PostgreSQL / MySQL / MariaDB / MS SQL Server only:
host: localhost
port: 5432
user: databaseUser
pass: databaseUserPassword
db: databaseName
ssl: false
开始菜单打开powershell
cd path_to_wiki-js-windows
cd D:\wiki-js-windows
node server
首先安装node-windows模块,暂时不知道是否与wiki-js-windows
中的node模块冲突,所以可以新建一个node-windows
的文件夹,在该目录下执行安装
npm install node-windows --save
安装完成后,目录会出现以下三个文件/文件夹
node_modules
package.json
package-lock.json
接下来创建一个javeScript脚本install-server.js,利用node-windows模块创建windows服务
// Usage:node install-server.js [-install | -uninstall | -start | -stop]
const Service = require('node-windows').Service;
// 获取命令行参数
const args = process.argv.slice(2); // 去除前两个参数,第一个是 node.exe 的路径,第二个是当前执行的脚本路径
// 创建一个新的服务对象
const svc = new Service({
name: 'wiki-js-windows',
description: 'Rings Analog IC',
script: 'D:\\DockerServer\\ob2wiki\\wiki-js-windows\\server\\index.js', // 这里替换为你的应用程序入口文件的路径
workingDirectory: 'D:\\DockerServer\\ob2wiki\\wiki-js-windows'
});
// 监听服务的一些事件
svc.on('install', () => {
svc.start();
});
// 根据命令行参数执行不同的操作
if (args.includes('-install')) {
svc.install();
} else if (args.includes('-uninstall')) {
svc.uninstall();
} else if (args.includes('-start')) {
svc.start();
} else if (args.includes('-stop')) {
svc.stop();
} else {
console.log('Usage: node install-server.js [-install | -uninstall | -start | -stop]');
}
在powershell中,执行node install-server.js -install
即可以实现安装。在windows服务(开始菜单-搜索-服务)中是可以看到wiki-js-windows的服务项目。
同时在C:\Users\lumin\Desktop\test\wiki-js-windows\server
目录下出现了一个deamon
的文件夹,这里是服务执行的.exe
文件和.log
文件,出现问题可以查询.err.log
在windows GUI界面中,改变运行用户,用来解决同步git目录时的用户权限问题
/* 图片全局居中 */
.contents img {
display: block;
margin: 0 auto
}
/* 隐藏分享等快捷卡片 */
.page-author-card {
display: none!important
}
.page-shortcuts-card {
display: none!important
}
/* 隐藏页面底部评论 */
.page-comments-card {
display: none!important
}
.comments-container {
display: none!important
}
footer .caption > span:first-child {
white-space: nowrap
}
footer .caption > span:first-child::after {
content: ""
}
解决\overline{x}显示过小的问题,https://github.com/requarks/wiki/discussions/5834
#root .v-application .katex .overline {
font-family: KaTeX_Main,Times New Roman,serif !important;
font-size: inherit !important;
font-weight: normal !important;
line-height: inherit !important;
letter-spacing: inherit !important;
text-transform: none !important;
}
在Git/GitHub上的配置,见Publish-Obisidian-to-Wiki.js
[email protected]:RingsGit/analog-ic-wiki.git
C:\Users\lumin\.ssh\id_rsa
有两个网站可以拉取镜像,分别是 Docker Hub 和 Git Hub
# 指定版本
docker pull requarks/wiki:2.5
# 最新版本
docker pull requarks/wiki
注意这里替换 databaseName, databaseUser, databaseUserPassword
Secure-Passwords#Wiki-PostgreSQL-Database
docker run -d -p 5960:3000 --name wiki --restart unless-stopped -e "DB_TYPE=postgres" -e "DB_HOST=host.docker.internal" -e "DB_PORT=5432" -e "DB_USER=databaseUser" -e "DB_PASS=databaseUserPassword" -e "DB_NAME=databaseName" -v D:/DockerServer/ob2wiki:/mnt/ob2wiki requarks/wiki
docker run
:这是Docker命令,用于创建并运行一个新的容器。-d
:这个选项告诉Docker在后台运行容器(detached mode)。这样你可以继续使用命令行,并且容器在后台运行。-p 5960:3000
:这个选项将宿主机的端口 5960
映射到容器的端口 3000
。意思是,当你访问宿主机的 http://localhost:3000
时,实际请求将被转发到容器的端口 3000
上。Wiki.js的Web服务通常运行在容器的端口 3000
上。--name wiki
:这个选项指定容器的名称为 wiki
。给容器指定一个名称有助于管理和识别。--restart unless-stopped
:重启服务-e "DB_TYPE=postgres" -e "DB_HOST=host.docker.internal" -e "DB_PORT=5432" -e "DB_USER=wikijs" -e "DB_PASS=wikijsrocks" -e "DB_NAME=wiki"
:配置必要的环境变量从而找到数据库-v D:/DockerServer/ob2wiki:/mnt/ob2wiki
:挂载windows下的文件到/mnt/ob2wiki
requarks/wiki
:这是要运行的Docker镜像名称docker update --restart=always wiki
这是一个开源免费的搜索引擎,本地部署,对中文分词的表现不错。8.x的版本默认不支持http访问,有点麻烦,还是使用7.x版本比较好。
docker run elasticsearch:7.17.24
docker run -d --name elasticsearch -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 elasticsearch:7.17.24
-Xms
和-Xmx
两个参数分别用于设置JVM的初始内存分配和最大内存分配,它们是不同的参数,不会重复。-Xms
设定了JVM初始化时分配的内存,而-Xmx
设定了JVM可使用的最大内存。
设置自动启动
docker update --restart=always elasticsearch
注意这里的host的地址为 http://host.docker.internal:9200
,APPLY
后要 REBUILD INDEX
才能生效。
Hostwiki/wikijs-sitemap: Sitemap for Wiki.js
# 指定版本
docker pull hostwiki/wikijs-sitemap:latest
docker run -d -p 3012:3012 --name wikijs-sitemap --restart unless-stopped -e "DB_TYPE=postgres" -e "DB_HOST=host.docker.internal" -e "DB_PORT=5432" -e "DB_USER=databaseUser" -e "DB_PASS=databaseUserPassword" -e "DB_NAME=databaseName" hostwiki/wikijs-sitemap:latest
docker update --restart=always wikijs-sitemap
阿里云购
Cloudflare,使用谷歌账户登陆