当前位置: 首页 > news >正文

Waline评论服务docker自部署手册 + 无需备案域名配置

Waline评论服务docker自部署手册 + 无需备案域名配置

写在前面,为啥要整个自己部署的waline (waline是啥就不细说了)呢。一句话:就是为了访问稍微快点!

在官方的教程中,最简单易用的是LeanCloud+Vercel部署的做法。不得不说,如果放在之前,这个部署方式觉得是简单易用的,傻瓜式部署。但是奈何,现在leancloud已经不适合大陆访问了,

并且vercel也不是很稳定。也尝试过使用腾讯云的Cloudbase和阿里云的函数计算,都是踩了无数坑。前者node版本太低,直接报错,后者需要域名备案,直接达咩放弃。

所以,最后还是选择了docker部署,这样就可以自己随便整了。

需要完成本教程的内容需要你拥有这些东西:

  • 服务器一台
  • 域名一枚
  • 或者信用卡一张(用于购买域名)
  • 给你的服务器装上宝塔用来配置域名(命令行配置也是可以的)

废话不多说,上才艺!

先把waline部署起来

我这边采用的是docker-compose的方式部署的,所以需要先安装dockerdocker-compose
安装过程就不细讲了,直接上yaml文件

version: '3.8'
services:
  web:
    image: 'lizheming/waline'
    restart: always
    ports:
      - '8360:8360'
    environment:
      MYSQL_DB: 'waline'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 'root'
      MYSQL_HOST: 'db'
      MYSQL_PORT: '3306'

  db:
    image: 'mysql:5.7'
    restart: always
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: 'root'
      MYSQL_DATABASE: 'waline'

一个极度偷懒的yaml,为了后续维护,建议大家把volume挂载起来,这样就可以真正的stateless了。
由于咱们的数据库是全新的,所以还需要手动将表创建出来。

# CREATE DATABASE waline DEFAULT CHARACTER SET utf8mb4;
use waline;

CREATE TABLE `wl_Comment` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(11) DEFAULT NULL,
  `comment` text,
  `insertedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `ip` varchar(100) DEFAULT '',
  `link` varchar(255) DEFAULT NULL,
  `mail` varchar(255) DEFAULT NULL,
  `nick` varchar(255) DEFAULT NULL,
  `pid` int(11) DEFAULT NULL,
  `rid` int(11) DEFAULT NULL,
  `sticky` int(11) DEFAULT NULL,
  `status` varchar(50) NOT NULL DEFAULT '',
  `ua` text,
  `url` varchar(255) DEFAULT NULL,
  `createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `wl_Counter` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `time` int(11) DEFAULT NULL,
  `url` varchar(255) NOT NULL DEFAULT '',
  `createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

CREATE TABLE `wl_Users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `display_name` varchar(255) NOT NULL DEFAULT '',
  `email` varchar(255) NOT NULL DEFAULT '',
  `password` varchar(255) NOT NULL DEFAULT '',
  `type` varchar(50) NOT NULL DEFAULT '',
  `url` varchar(255) DEFAULT NULL,
  `avatar` varchar(255) DEFAULT NULL,
  `github` varchar(255) DEFAULT NULL,
  `twitter` varchar(255) DEFAULT NULL,
  `facebook` varchar(255) DEFAULT NULL,
  `google` varchar(255) DEFAULT NULL,
  `weibo` varchar(255) DEFAULT NULL,
  `qq` varchar(255) DEFAULT NULL,
  `label` varchar(255) DEFAULT NULL,
  `2fa` varchar(255) DEFAULT NULL,
  `createdAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

配置完数据库,就可以测试一下咱们的页面了
当你访问host+8360的时看到这个页面,就说明你部署成功了:

当然,别忘了顺带测一下你的登陆和评论功能,如果有问题,可以去waline的github仓库提issue。

配置我们的域名

购买域名

我这边使用的是cloudflare的域名可以在cloudflare域注册中点击注册域

在里面选择咱们需要购买的域名 (这里需要你拥有一张信用卡)

配置域名

当我们拥有了我们自己的域名后,可以在服务器上配置上我们的域名了
首先,将我们域名解析绑定到我们的服务器上,这一步需要你在DNS的设置中添加一天A记录,将你的域名解析到你的服务器IP上


然后在宝塔上创建一条网站记录,将我们的域名绑定到我们的网站上

点击创建好的站点的设置,开始配置反向代理.(注:我们这边SSL可以不用部署,因为cloudflare自带一个免费的SSL证书)

这个时候,就可以在浏览器中输入我们的域名,看到waline运行起来了!!!

小结

这篇文章主要就是给大家提供一个简单的waline docker部署的思路,优点是咱们的服务是自己维护的,可以任意更改,并且可以通过域名优雅的访问,
缺点就是这个部署方式是比较简陋的,难以承载很大的并发,评论的相应速度也是取决于咱们服务器的性能。

相关文章:

  • [202209]mysql8.0 双主集群搭建 亲测可用
  • C++后台开发学习路线(已多人拿下腾讯后台开发)
  • 中值滤波器 median filter
  • 基于ssm的图书(借阅)管理系统
  • linux内核中的I2C
  • 【Java面试】如何系统准备秋招?献上一份超硬核Java学习路线图+学习资源,拿走不谢!!
  • 面试分析:你懂不懂threadlocal?
  • ESP8266-Arduino编程实例-CCS811数字气体传感器驱动
  • 【C++编程语言】之类和对象---对象初始化和清除
  • Task05|joyfulpandas|变形
  • 【SpringBoot】yaml配置文件语法—总结回顾
  • jenkins 发布项目到k8s tomcat
  • 基于ssm(非maven)学生考勤管理系统
  • C++11新特性(一)
  • WebRTC源码之摄像头视频数据采集源码分析
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Android系统模拟器绘制实现概述
  • Centos6.8 使用rpm安装mysql5.7
  • CentOS7简单部署NFS
  • ComponentOne 2017 V2版本正式发布
  •  D - 粉碎叛乱F - 其他起义
  • Docker入门(二) - Dockerfile
  • Fastjson的基本使用方法大全
  • JavaScript对象详解
  • JavaScript类型识别
  • Js基础知识(四) - js运行原理与机制
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • ng6--错误信息小结(持续更新)
  • Python进阶细节
  • 当SetTimeout遇到了字符串
  • 聊聊hikari连接池的leakDetectionThreshold
  • 区块链共识机制优缺点对比都是什么
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • 数据库巡检项
  • 组复制官方翻译九、Group Replication Technical Details
  • #1014 : Trie树
  • #vue3 实现前端下载excel文件模板功能
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)计算机毕业设计高校学生选课系统
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (算法)前K大的和
  • (一)RocketMQ初步认识
  • (转)visual stdio 书签功能介绍
  • (转)负载均衡,回话保持,cookie
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • *Django中的Ajax 纯js的书写样式1
  • .cfg\.dat\.mak(持续补充)
  • .Net MVC4 上传大文件,并保存表单
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...