使用tinode架设自己的私有聊天服务

news2024/11/26 18:45:23


 

需求

众所周知的原因,使用公用的即时聊天工具并不安全,比如某企鹅家的"wei xin",我们需要一个自己的安全的聊天工具,比如我们需要传递账号以及密码等;

方案1:

使用网页工具将文本加密,然后复制粘贴;之后收到密文后,手动复制粘贴解密;效率比较低;

方案2:

使用端对端的通信工具:telegram,whatsapp等;

方案3:

自己架设一个服务器,然后使用自己的客户端来通信;

比如,我发现了一个好东西,Tinode 

服务器下载地址为:Release Bug fixes · tinode/chat · GitHub

架设流程

首先,我们需要一台公网的服务器,

1)设置mysql数据库,

参考之前的帖子,第5节:
OpenGts2.6.7 安装笔记(windows更容易些)_飞鸟真人的博客-CSDN博客

2)准备一个邮箱账号用与发送验证码

我这里使用了一个sina.com的账号,

目前很多邮件服务器,使用stmp服务时候都需要一个授权码来登录并发信,

 在服务器配置时候需要;

3)配置服务器

我下载的版本是:

tinode-alldbs.linux-amd64.tar.gz

加压后,需要编辑一下tinode.conf

mysql的设置部分:

"store_config": {
		
		"uid_key": "la6YsO+bNX/+XIkOqc5Svw==",
		"max_results": 1024,
		"use_adapter": "mysql",

		"adapters": {
			"mysql": {

				"User": "root",
				"Passwd": "123456",
				"Net": "tcp",
				"Addr": "127.0.0.1",
				"DBName": "tinode",		
				"Collation": "utf8mb4_unicode_ci",
				"ParseTime": true,
				"max_open_conns": 64,
				"max_idle_conns": 64,
				"conn_max_lifetime": 60,
				"sql_timeout": 10
			}
        }
}

重要的是地址、用户名、口令,我使用默认的端口,所以没有写;

另外就是邮件服务器的设置:

"email": {

			"add_to_tags": true,
			"required": ["auth"],

			"config": {
				
				"host_url": "http://127.0.0.1:6060/",
				"smtp_server": "smtp.sina.com",
				"smtp_port": "25",
				"sender": "\"Tinode\" <tinode@sina.com>",
				"login": "tinode@sina.com",
				"sender_password": "xxxxxxxxxxxxxxxxxxxxxx",
				"auth_mechanism": "login",
				"smtp_helo_host": "sina.com",
				"insecure_skip_verify": false,
				"languages": ["en", "es", "fr", "ru", "vi", "zh"],
				"validation_templ": "./templ/email-validation-{{.Language}}.templ",

				"reset_secret_templ": "./templ/email-password-reset-{{.Language}}.templ",
				"max_retries": 3,
				"domains": [],

			}
		},

这里需要注意的就是用户名,授权码,以及smtp服务器的名字不要写错了!!!

最后,

需要在防火墙上打开6060端口!!!

配置完成后,初始化数据库:

./init-db -config=./tinode.conf -data=./data.json

如果没有报错,就是OK 了,

启动服务器

./tinode -config=./tinode.conf -static_data=static

此时可以看到屏幕输出,调试完成后,可以在后台运行

nohup ./tinode -config=./tinode.conf -static_data=static & exit

或者使用screen 辅助在后台运行。

4)服务器的使用

服务器启动后,通过IP就可以访问了,打开网页客户端,十分贴心

http://ip:6060

如下图

点一下带加号的人头像,注册:

 这几项,分别是:

登录用户名,密码,显示的昵称,邮箱,

注意:这里需要使用真实的邮箱,然后通过邮箱接收邮件获取动态验证码完成注册!!!

登录后,就可以愉快的聊天了,比如在IM中或者手机浏览器中打开:

 备注:

搜索好友使用需要使用如下格式:

mail:zhangsan@sina.com

祝大家玩的愉快!

后记,如果需要加密传输,应该打开https方式:

1)首先创建证书

使用openssl制作https的证书_forwardMyLife的博客-CSDN博客_openssl制作https证书

2)更改配置:

"tls": {

		"enabled": true,
		"http_redirect": ":80",
		"strict_max_age": 604800,
		"cert_file": "/root/certs/cert.crt",
		"key_file": "/root/certs/private.key"
	},

重启服务,使用

https://127.0.0.1:6060

访问!

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

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

相关文章

一、【redux】redux简介 mini版求和Demo

文章目录1、学习文档2、redux是什么3、什么情况下需要使用redux4、redux工作流程5、redux的三个核心概念5.1、action5.2、reducer5.3、store6、redux的核心API6.1、createStore()6.2、store对象6.3、applyMiddleware()6.4、combineReducers()7、求和Demo&#xff08;纯react版&…

拖死项目的不是团队,可能是失败的管理

项目中的活动&#xff0c;归根结底是由人来完成的&#xff0c;如何发挥项目成员的能力&#xff0c;对于项目的成败起着至关重要的作用。如何充分地发挥团队成员的能力&#xff0c;对项目经理也是一个挑战。 在团队管理者我们会遇见这些难题&#xff1a; 1、团队凝聚力不足&a…

配置CentOS

一、启动虚拟机 1、登录虚拟机 出现[rootlocalhost]#提示符&#xff0c;表明登录成功 2、查看IP 命令&#xff1a; ip addr 3、是否ping通外网 命令&#xff1a;ping www.baidu.com 二、配置静态IP地址 1、修改网卡配置文件 命令&#xff1a;vi /etc/sysconfig/net…

UBoot怎么跳转到Kernel:uboot与linux的交界

不知道你是否有这种感觉&#xff0c;就是学习了一段时间Uboot&#xff0c;学习了一段时间kernel&#xff0c;也知道Uboot是引导程序。但是总是连不起来。 我为什么来的这样的感受是因为&#xff0c;我最近在学习安全相关的东西。但是这个安全的东西应用在kernel里面进行&#…

路径规划算法之刚体变换

目录 1 一般概念 1.1 基元的变换 1.2 一个参数化的变换族 2 2D变换 2.1 translation 2.2 rotation 2.3 Combining translation and rotation 3 3D变换 3.1 Yaw, pitch, and roll rotations 3.2 Determining yaw, pitch, and roll from a rotation matrix 3.3 The ho…

模拟电路设计(35)---几种脉宽调制型开关电路

Forward单端正激变换器 在buck变换器开关与负载之间插入隔离变压器&#xff0c;这种隔离型buck变换器叫做Forward单端正激变换器。如下图所示&#xff1a; Forward单端正激变换器 简单分析可知&#xff0c;滤波电感L在开关管关断期间&#xff0c;通过续流二极管为负载提供电流…

Android JNI编程并生成so库

这里写自定义目录标题Android JNI编程并生成so库Android Studio配置下载配置NDK配置NDK路径编写native方法和c文件编写配置文件生成so库使用so库Android JNI编程并生成so库 你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编…

Python——字符串

1、再Python中&#xff0c;使用单引号或者双引号括起来的&#xff0c;就是字符串 2、字符串也可以使用六个单引号或者六个双引号括起来。 3、在Python3中&#xff0c;字符串分为两种类型&#xff0c;第一种是str&#xff0c;是unicode字符串&#xff0c;第二种是bytes&#x…

springboot酒店客房管理系统设计

随着我国市场经济的快速发展以及人们生活水平的不断提高&#xff0c;酒店&#xff0c;宾馆之间的竞争也越来越激烈&#xff0c;为了在这场竞争中取得显著的优势&#xff0c;就必须在管理上加以改善。在某种意义上&#xff0c;酒店客房方面的信息化已经成为现代化酒店的重要标志…

Python学习笔记第三十七天(NumPy 广播(Broadcast))

Python学习笔记第三十七天NumPy 广播(Broadcast)NumPy 广播(Broadcast) 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式&#xff0c; 对数组的算术运算通常在相应的元素上进行。 如果两个数组 a 和 b 形状相同&#xff0c;即满足 a.shape b.shape&…

gurobi 基于python的gurobipy库使用,具有一维变量和二维变量的复杂模型求解

写在前面 可以参考下pulp和scip两篇的&#xff0c;比较详细&#xff0c;尤其pulp篇。举一反三&#xff0c;很好入门。 步骤 定义问题&#xff1a;m Model(name) 定义变量&#xff1a;x m.addVars(range(len), vtypeGRB.BINARY) 定义目标函数&#xff1a;m.setObjective&…

Springboot+ssm(Spring+SpringMVC+MyBatis)旧物置换网站

目 录 摘 要 I 目 录 III 第1章 概述 1 1.1 研究背景 1 1.2 研究现状 1 1.3 研究内容 2 第二章 开发技术介绍 2 2.1 系统开发平台 2 2.2 平台开发相关技术 3 2.2.1 B/S架构 3 2.2.2 Java技术介绍 4 2.2.3 mysql数据库介绍 4 2.2.4 …

【Electron】开发实战

文章目录第一章 征程第二章-主进程与渲染进程第三章-H5拖拽读取本地文件第四章-快捷键注册及复制粘贴第五章-渲染进程调用主进程模块第六章-菜单模块第七章-渲染进程与主进程间的通信第八章-渲染进程与渲染进程间的通信第九章-管理应用程序文件及url的加载方式第十章-系统对话框…

机械硬盘HDD

硬盘&#xff08;英语&#xff1a;Hard Disk Drive&#xff0c;缩写&#xff1a;HDD&#xff0c;有时为了与固态硬盘相区分称“机械硬盘”或“传统硬盘”&#xff09;是电脑上使用坚硬的旋转盘片为基础的非易失性存储器&#xff0c;它在平整的磁性表面存储和检索数字数据&#…

三维重建之PIFuHD

Fackbook AI 研究出从一张图片生成Mesh模型的算法PIFuHD ​ Paper: https://arxiv.org/pdf/2004.00452.pdf Code: https://github.com/facebookresearch/pifuhd 一&#xff0c;Demo数据预处理 这里面需要先编译pifuhd和lightweight-human-pose-estimation.pytorch&#xf…

Unknown custom element: <el-image>无法使用该组件,升级element-ui版本后项目报错

需求背景&#xff1a; 项目中需要使用图片点击放大&#xff0c;想要使用<el-image>组件&#xff0c;引入后报了下面的错&#xff0c;需要升级element版本&#xff0c;element-ui版本过低&#xff0c;没有该组件。 过程&#xff1a; cnpm i element-ui2.14.1 --save-dev…

代码随想录67——额外题目【动态规划】:5最长回文子串、132分割回文串II、673最长递增子序列的个数

文章目录1.5最长回文子串1.1.题目1.2.解答2.132分割回文串II2.1.题目2.2.解答3.673最长递增子序列的个数3.1.题目3.2.解答1.5最长回文子串 参考&#xff1a;代码随想录&#xff0c;5最长回文子串&#xff1b;力扣题目链接 1.1.题目 1.2.解答 本题和 647.回文子串 差不多是一…

Codeforces Round #574 (Div. 2) C. Basketball Exercise

翻译&#xff1a; 最后&#xff0c;SIS已经开放了一个篮球场&#xff0c;所以Demid决定举办一个篮球训练课程。有2个⋅&#x1d45b;的学生参加了Demid的练习课&#xff0c;他将他们排成两排&#xff0c;大小相同(每排正好有&#x1d45b;人)。学生按从左到右的顺序&#xff0…

【毕业设计】15-基于单片机的交通灯系统设计(原理图+仿真+论文)

【毕业设计】15-基于单片机的交通灯系统设计&#xff08;原理图、仿真、源代码工程答辩论文答辩PPT&#xff09; 文章目录【毕业设计】15-基于单片机的交通灯系统设计&#xff08;原理图、仿真、源代码工程答辩论文答辩PPT&#xff09;任务书设计说明书摘要设计框架架构设计说明…

婴幼儿牛奶蛋白过敏危害多,教你四招早期预防

牛奶蛋白过敏&#xff08;cowsmilkproteinallergy&#xff0c;CMPA&#xff09;这是婴幼儿最常见的食物过敏之一。牛奶蛋白过敏的临床表现CMPA儿童的临床表现多种多样[1]&#xff0c;特别是对严重的牛奶蛋白过敏&#xff0c;会导致拒绝进食、腹泻、呕吐或反流&#xff0c;导致生…