WIPI est un système CMS open source pour les individus qui intègre des fonctions telles que la publication d'articles, la création de pages, les livrets de connaissances, etc. Les technologies impliquées sont les suivantes:
MySQL : stockage de donnéesnext.js : Framework Front-end Pagenest.js : Framework côté serveurAliyunOSS : stockage d'objets Pour plus de fonctions, veuillez visiter le système d'expérience.
Tout d'abord, installez MySQL , il est recommandé d'utiliser Docker pour l'installation.
docker image pull mysql:5.7
docker run -d --restart=always --name wipi -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7 Créez ensuite la base de données dans MySQL .
docker container exec -it wipi bash ;
mysql -u root -p ;
CREATE DATABASE ` wipi ` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;Tout d'abord, le projet Clone.
git clone --depth=1 https://github.com/fantasticit/wipi.git your-project-nameEnsuite, installez les dépendances du projet.
# 全局安装 pnpm
npm i -g pnpm
pnpm installpnpm run dev Adresse de la page de réception: http://localhost:3001 . Adresse de gestion des antécédents: http://localhost:3002 . Adresse d'interface de service: http://localhost:3003 .
La première fois qu'il démarre, l'utilisateur de l'administrateur est créé par défaut: admin et mot de passe: admin (peut être modifié dans le fichier .env ). [PS] Si la configuration du serveur ne parvient pas à démarrer, veuillez d'abord confirmer si la configuration MySQL est correcte. Le fichier de configuration est dans .env .
Lorsque le projet est démarré pour la première fois, les paramètres du système doivent être effectués en arrière-plan. À mesure que le contenu devient plus riche, le contenu de la page deviendra également plus riche.
Le fichier .env est chargé par défaut et l'environnement de production essaiera de charger le fichier .env.prod .
# 客户端运行端口
CLIENT_PORT=3001
# 客户端站点地址(假设部署到 https://xx.com, 就将 CLIENT_SITE_URL 设置为 https://xx.com)
CLIENT_SITE_URL=http://localhost:3001
# 客户端资源地址(假设部署到 https://xx.com,就将 CLIENT_ASSET_PREFIX 设置为 https://xx.com,如果将资源上传到 cdn ,那就改为 cdn 地址)
CLIENT_ASSET_PREFIX=/
# 管理后台运行端口
ADMIN_PORT=3002
# 管理后台资源地址(假设部署到 https://xx.com,就将 CLIENT_ASSET_PREFIX 设置为 https://xx.com,如果将资源上传到 cdn ,那就改为 cdn 地址)
ADMIN_ASSET_PREFIX=/
# 服务端运行端口
SERVER_PORT=3003
# 服务端完整访问路径
SERVER_API_URL=http://localhost:3003/api
# 服务端接口前缀(假设将希望通过 http://xx:com/api 来访问,那就设置为 /api;如果 http://xx:com,那就设置为 / )
SERVER_API_PREFIX=/api
# 默认管理员账户名
ADMIN_USER=admin
# 默认管理员账密码
ADMIN_PASSWD=admin
# 以下为数据库配置,请先创建好表
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASSWD=root
DB_DATABASE=wipi
# Github 第三方登录配置
# 关于 Github OAuth 可参考 https://www.ruanyifeng.com/blog/2019/04/github-oauth.html
GITHUB_CLIENT_ID=0 # Github OAuth 登录 Id
GITHUB_CLIENT_SECRET=0 # Github OAuth 登录 SecretLes scripts de l'environnement de production sont les suivants:
node -v
npm -v
npm config set registry http://registry.npmjs.org
npm i -g pm2 @nestjs/cli pnpm
pnpm install
pnpm run build
pnpm run pm2
pm2 startup
pm2 save Utilisez le proxy inversé pour configurer nginx et définir proxy_set_header X-Real-IP $remote_addr; afin que le serveur puisse obtenir la véritable adresse IP .
upstream wipi_client {
server 127.0.0.1:3000 ;
keepalive 64 ;
}
# http -> https 重定向
server {
listen 80 ;
server_name 域名;
rewrite ^(. * )$ https:// $host $1 permanent ;
}
server {
listen 443 ssl ;
server_name 域名;
ssl_certificate 证书存放路径;
ssl_certificate_key 证书存放路径;
location / {
proxy_http_version 1.1 ;
proxy_set_header Upgrade $http_upgrade ;
proxy_set_header Connection " upgrade " ;
proxy_set_header Host $host ;
proxy_set_header X-Nginx-Proxy true ;
proxy_cache_bypass $http_upgrade ;
proxy_pass http://wipi_client ; #反向代理
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
}
}