用 Fiora 搭个专属聊天室?开源社交工具 + cpolar让沟通更自由

用 Fiora 搭个专属聊天室?开源社交工具 + cpolar让沟通更自由

在这里插入图片描述
本文介绍了如何利用 Fiora 搭建专属聊天室并通过 cpolar 实现远程访问。Fiora 是开源即时通讯工具,支持注册登录、群组聊天等多种功能,可通过 Docker 在本地部署。为解决局域网使用限制,搭配 cpolar 内网穿透工具,无需公网 IP 和复杂设置即可映射到公网,实现异地访问。文中还提及配置固定二级子域名的方法,方便长期使用,两者结合为私域社群和协作提供了灵活方案。
在这里插入图片描述

文章目录

前言

Fiora 是一款开源即时通讯工具,支持账号注册登录、群组聊天、私聊加好友,还能发送文本、表情、图片等多种消息类型,甚至可以自定义主题和通知铃声,很适合开发者搭建私域社群或自定义协作工具。它的优点在于开源可扩展,用户能掌控数据流向,无论是资深程序员还是新手都能轻松上手。

使用 Fiora 时,本地部署很方便,用 Docker 就能快速完成,不过要注意修改端口号避免冲突。注册账号后可以自由创建群聊,还能把它当备忘录用,玩法挺灵活,但初期只能在局域网内使用。

只能在局域网内使用时,想和异地朋友用自己部署的 Fiora 聊天就很麻烦,没法像常用通讯软件那样随时随地联系,限制了工具的使用场景,尤其是需要跨网络协作的时候特别不方便。

而 Fiora 结合 cpolar 内网穿透工具后,不用公网 IP 和复杂的路由器设置,就能把本地服务映射到公网,让异地朋友通过公网地址访问。这样既保留了 Fiora 的个性化和数据可控性,又解决了远程访问的难题,适合长期远程沟通或协作使用。

image-20241028154955329

1.关于Fiora

Fiora 以其独特的设计理念和灵活的技术架构赢得了众多技术爱好者的青睐。它不仅仅满足了人们对于个性化交流空间的需求,更重要的是,通过其开源模式,激发了一股新的创意浪潮。无论是资深程序员还是初学者,都能在这个平台上找到发挥自己才能的空间。接下来,我们将深入探讨 Fiora 的核心特性、使用体验以及如何参与到这个充满活力的社区中来。

如果你对即时通讯软件背后的科技原理感兴趣,或者想要了解如何利用开源项目打造个性化应用,那么请继续阅读下去,跟随我一起探索 Fiora 这个神奇的世界吧!

image-20241028154834585

以下事Fiora的功能特性:

  1. 注册账号并登录,可以长时间保存您的数据
  2. 加入现有群组或创建自己的群组以与所有人交流
  3. 与任何人私下聊天,并将他们添加为好友
  4. 多种消息类型,包括文本/表情/图片/代码/文件/命令,您还可以搜索表情符号
  5. 推送通知 当您收到新消息时,您可以自定义通知铃声,它也可以将消息读出
  6. 选择您喜欢的主题,您可以将其设置为您喜欢的任何壁纸和主题颜色
  7. 设置管理员以管理用户

**Github地址:**https://github.com/yinxin630/fiora

2.安装Docker

软件依赖:Docker 20.10.6 版本以上

我这里演示的环境是Ubuntu22.04,Docker版本是24.0.5

在终端中执行下方命令安装docker:

curl -fsSL https://get.docker.com -o get-docker.sh 

然后再启动docker

sudosh get-docker.sh 

最后我们在docker容器中运行下 hello world 看一下是否安装成功。

sudo docker container run hello-world 

可以看到出现了hello world,说明我们已经安装docker成功,就可以进行下一步了

image-20241008151101668

3.本地部署Fiora

本项目提供了最简单的方式,使用项目的一键安装脚本将项目克隆到本地

git clone https://github.com/yinxin630/fiora.git -b master 
image-20241028160310485

进入到fiora里

cd fiora 

这里我们需要修改宿主机端口号,因为跟cpolar冲突,修改管理界面端口号改成9300

sudonano docker-compose.yaml 
image-20241028161449829

构建镜像

sudo docker compose build --no-cache --force-rm 
image-20241028161522621

运行

sudo docker compose up -d 
image-20241028161546701

现在就已经安装成功了,您可以通过打开Web浏览器输入localhost:9300,就可以访问到Fiora的页面了。

image-20241028161905804

4.使用Fiora

我们可以点击下方登录选择注册,就可以进入到属于你自己的聊天页面了

image-20241028162007179

我们可以点击左上角的头像,来修改个人信息。这里有头像以及用户名密码都可以修改。

image-20241028162215791

右上方的加号,创建群聊。

image-20241028162107395

现在就可以和你的小伙伴在你们自己创建的聊天室大聊特聊了,就算不用于聊天,也可以个人使用变成一个备忘录,更多玩法等你展开哦~

5.cpolar内网穿透工具安装

不过我们目前只能在本地局域网内使用刚刚部署的Fiora进行聊天,如果想和异地好友通过在家中部署的Fiora服务来像其他通讯软件一样远程聊天,应该怎么办呢?我们可以使用cpolar内网穿透工具来实现远程访问本地服务的需求。无需公网IP,也不用设置路由器那么麻烦。

下面是安装cpolar步骤:

Cpolar官网地址: https://www.cpolar.com

使用一键脚本安装命令

sudocurl https://get.cpolar.sh |sh
img

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)

sudo systemctl status cpolar 
img

Cpolar安装和成功启动服务后,在浏览器上输入ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:

image-20240801133735424

6.创建远程连接公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,本例使用了: fiora注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:https://localhost:9300
  • 域名类型:随机域名
  • 地区:选择China Top
image-20241028163232216

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个地址在浏览器中访问即可。

image-20241028163322357

如下图所示,成功实现使用公网地址异地远程访问本地部署的Fiora。

image-20241028163407089

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期使用Fiora与好友远程聊天,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来配置公网地址。

7.固定Uptime Kuma公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn已备案】

点击左侧的预留,选择保留二级子域名,地区选择china top,然后设置一个二级子域名名称,填写备注信息,点击保留。

image-20241028164517169

保留成功后复制保留的二级子域名地址:

image-20241028164537850

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑

image-20241028164608304

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名
  • 地区: China Top

点击更新

image-20241028164636743

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

image-20241028164709495

最后,我们使用固定的公网地址访问Fiora可以看到访问成功,一个永久不会变化的远程访问方式即设置好了。

image-20241028164759848

Fiora 的开源特性让社交工具更灵活,cpolar 则打破了网络界限,两者结合让搭建属于自己的跨网络通讯空间变得简单,为私人社群和协作场景提供了实用的解决方案。

本篇文章知识点来源 cpolar官网

联系博主

    xcLeigh 博主,全栈领域优质创作者,博客专家,目前,活跃在ZEEKLOG、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台,全网拥有几十万的粉丝,全网统一IP为 xcLeigh。希望通过我的分享,让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂,尤其对于一些复杂的技术话题,他能通过通俗的语言来解释,帮助初学者更好地理解。博客通常也会涉及一些实践经验,项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者,或者在学习一些新的编程语言或框架,关注他的文章对你有很大帮助。

    亲爱的朋友,无论前路如何漫长与崎岖,都请怀揣梦想的火种,因为在生活的广袤星空中,总有一颗属于你的璀璨星辰在熠熠生辉,静候你抵达。

     愿你在这纷繁世间,能时常收获微小而确定的幸福,如春日微风轻拂面庞,所有的疲惫与烦恼都能被温柔以待,内心永远充盈着安宁与慰藉。

    至此,文章已至尾声,而您的故事仍在续写,不知您对文中所叙有何独特见解?期待您在心中与我对话,开启思想的新交流。


     💞 关注博主 🌀 带你实现畅游前后端!

     🥇 从零到一学习Python 🌀 带你玩转Python技术流!

     🏆 人工智能学习合集 🌀 搭配实例教程与实战案例,帮你构建完整 AI 知识体系

     💦 :本文撰写于ZEEKLOG平台,作者:xcLeigh所有权归作者所有)https://xcleigh.blog.ZEEKLOG.net/,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


在这里插入图片描述

     📣 亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请留言(或者关注下方公众号,看见后第一时间回复,还有海量编程资料等你来领!),博主看见后一定及时给您答复 💌💌💌

Read more

[MySQL初阶]MySQL(9)事务机制

[MySQL初阶]MySQL(9)事务机制

标题:[MySQL初阶]MySQL(9)事物机制 @水墨不写bug 文章目录 * 一、认识事务 * 1、多线程访问数据库出现的问题 * 2、对CURD的限制是通过事务机制实现的 * 3、事务的四个属性 * 4、哪些引擎支持事务 * 二、事务的提交与autocommit设置 * 三、事务的隔离性和隔离级别 * (1) 查看当前隔离级别 * (2) 设置隔离级别 * (3) 事务隔离级别的作用 * (4)MySQL InnoDB 的四种隔离级别 * (1) 读未提交(Read Uncommitted) * (2) 读已提交(Read Committed) * (3) 可重复读(Repeatable Read) * (4) 串行化(Serializable) * (5)各隔离级别对比表 * 四、事务的一致性

By Ne0inhk
SQL 多表查询:数据整合与分析的强大工具

SQL 多表查询:数据整合与分析的强大工具

SQL 多表查询:数据整合与分析的强大工具 在关系型数据库中,数据通常被组织在多个表中。这种表的分离有助于减少冗余并提高数据的管理效率。然而,在实际应用中,往往需要对多个表中的数据进行整合查询,来获得更完整的信息。这时候,多表查询(Join)就显得至关重要。本文将详细介绍 SQL 中常见的多表查询类型,并通过实际示例帮助大家理解如何高效地利用这些查询方法。 一、 多表查询概述 多表查询 是指从多个表中获取数据并将其结合在一起的查询。数据库中的表通常是通过某些共享字段(如主键和外键)关联的,进行多表查询时,我们通过这些关系将不同表的数据合并为一个结果集。多表查询在数据分析和报告中非常常见,能够帮助我们在复杂的数据库结构中提取出有意义的、综合性的数据。 1.1 为什么需要多表查询 多表查询的需求通常来源于以下几个方面: * 数据分布:在实际的数据库设计中,为了减少冗余、提高数据的组织性,往往将数据分散存储在不同的表中。例如,用户信息和订单信息一般存储在不同的表中,因此需要通过多表查询来关联这些表中的数据。 * 数据分析:多表查询可以帮助我们跨表分析数据。例如,在用户表和订

By Ne0inhk
告别小白!吃透 MySQL 基本查询,看这一篇就够了

告别小白!吃透 MySQL 基本查询,看这一篇就够了

🔥海棠蚀omo:个人主页                 ❄️个人专栏:《初识数据结构》,《C++:从入门到实践》,《Linux:从零基础到实践》,《Linux网络:从不懂到不会》,《MySQL:新手入门指南》                 ✨追光的人,终会光芒万丈 博主简介: 目录 一.Create 1.1替换 二.Retrieve 2.1SELECT列 2.1.1全列查询 2.1.2指定列查询 2.1.3查询字段为表达式 2.1.4为查询结果指定别名 2.1.5结果去重 2.2WHERE条件 2.2.1英语不及格的同学及英语成绩 2.2.2语文成绩在[80,90]分的同学及语文成绩

By Ne0inhk
【Redis】Redis内部编码 与 单线程架构

【Redis】Redis内部编码 与 单线程架构

目录 * 一、常用数据结构 * 二、 内部编码 * 三、单线程架构 一、常用数据结构 Redis 对外说values 常用的数据结构是:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序集合)等等,但是其实内部实现在不同情况下也与常见的数据结构有一定的不同。 二、 内部编码 * String类型,有 raw ,int,embstr 三种实现。 * raw : 最基本的字符串,底层就是字符数组 * int :当value就是一个整数的时候,Redis直接使用int来保存 * embstr:针对短字符串进行的特殊优化 * hash类型,有hashtable,ziplist两种实现。 * hashtable:最基本的hash表 * ziplist:在hash表元素比较少的时候,使用压缩列表,节省空间 * list类型,

By Ne0inhk