使用开源在线聊天工具Fiora轻松搭建个性化聊天平台在线交流

文章目录

    • 前言
    • 1.关于Fiora
    • 2.安装Docker
    • 3.本地部署Fiora
    • 4.使用Fiora
    • 5.cpolar内网穿透工具安装
    • 6.创建远程连接公网地址
    • 7.固定Uptime Kuma公网地址

前言

今天给大家介绍一款免费开源的在线聊天工具——Fiora。它不仅是一款功能强大的即时通讯软件,更是开发者们展现创造力和技术实力的一个舞台。想象一下,在一个可以自由定制界面、扩展功能,并且完全开放源代码的平台上构建属于你自己的社交网络,这听起来是不是既刺激又充满挑战?

Fiora不仅提供了丰富的功能和优秀的用户体验,还支持高度自定义。你可以根据个人喜好调整界面风格,添加各种插件来扩展功能。无论是文字、图片、文件传输,还是语音通话,Fiora都能满足你的需求。

结合Cpolar内网穿透工具使用,你可以在任何时间、任何地点与好友进行跨平台、跨网络的在线聊天。无论你们身处何地,只要有一台可以运行Docker的设备,就能轻松部署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

sudo sh 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

在这里插入图片描述

进入到fiora里

cd fiora

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

sudo nano docker-compose.yaml

在这里插入图片描述

构建镜像

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

在这里插入图片描述

运行

sudo docker compose up -d

在这里插入图片描述

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

image-20241028161905804

4.使用Fiora

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

image-20241028162007179

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

在这里插入图片描述

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

image-20241028162107395

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

5.cpolar内网穿透工具安装

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

下面是安装cpolar步骤:

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

使用一键脚本安装命令

sudo curl https://get.cpolar.sh | sh

在这里插入图片描述

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

sudo systemctl status cpolar

img

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

在这里插入图片描述

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小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

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

image-20241028164517169

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

image-20241028164537850

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

image-20241028164608304

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

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

点击更新

image-20241028164636743

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

image-20241028164709495

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

image-20241028164759848

通过使用Fiora和Cpolar,你可以轻松构建一个安全、私密且功能强大的在线聊天平台。无论是和闺蜜分享秘密,还是和兄弟们畅所欲言,都能在不受网络限制的情况下享受流畅的聊天体验。快来试试吧!

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

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

相关文章

pm面试题

你平时都用哪些产品,这些产品好在哪里,不好在哪里,为什么?(问到概率50%) 把市面上的常见产品进行一个调研来设计一个跨境电商产品,请说明你需要多少费用和什么样的团队,将在一年内将…

VS Code Copilot 与 Cursor 对比

选手简介 VS Code Copilot:算是“老牌”编程助手了,虽然Copilot在别的编辑器上也有扩展,不过体验最好的还是VS Code,毕竟都是微软家的所以功能集成更好一些;主要提供的是Complete和Chat能力,也就是代码补全…

Java Spring Boot 项目中嵌入前端静态资源:完整教程与实战案例

言简意赅的讲解Java Spring Boot 中嵌入前端项目的静态资源解决的痛点 之前给大家讲解了如何部署一个前端项目,但大家还是好奇如何部署一个前后端一体项目。将前端构建后的静态资源嵌入 Java Spring Boot 后端项目,是现代全栈开发中一种流行的实践方式。…

R200推理

一、环境搭建 1.下载镜像 wget https://bj.bcebos.com/klx- public/kdk/project/anyinfer_x86_output/20240316/anyinfer_x86_v5.tar.gz wget https://bj.bcebos.com/klxpublic/kdk/project/anyinfer_x86_output/20240316/anyinfer_x86_v5.tar.gz tar -zxvf a…

RabbitMQ中的Topic模式

在现代分布式系统中,消息队列(Message Queue)是实现异步通信、解耦系统组件的重要工具。RabbitMQ 是一个广泛使用的开源消息代理,支持多种消息传递模式,其中 Topic 模式 是一种灵活且强大的模式,允许生产者…

可编辑99PPT | 智能工厂整体规划方案及实施细部方案

荐言分享:智能工厂是利用物联网、大数据、人工智能等先进技术,实现生产过程自动化、智能化和柔性化的现代工厂。本整体规划方案旨在通过整合信息技术、自动化技术、人工智能技术和物联网技术,构建一个高效、灵活、绿色、可持续的生产环境&…

Day13 用Excel表体验梯度下降法

Day13 用Excel表体验梯度下降法 用所学公式创建Excel表 用Excel表体验梯度下降法 详见本Day文章顶部附带资源里的Excel表《梯度下降法》,可以对照表里的单元格公式进行理解,还可以多尝试几次不同的学习率 η \eta η来感受,只需要更改学习率…

YOLOv8改进,YOLOv8引入Hyper-YOLO的MANet混合聚合网络+HyperC2Net网络

摘要 理论介绍 MANet 的目标是通过多种卷积操作的协同作用,提高特征提取能力,并加强梯度流动,从而提升模型在不同层次的特征表示和语义深度。MANet 结合了三种卷积变体,通过混合使用它们来提高视觉特征的多样性和信息流动性。 HyperC2Net 的主要目标是通过超图结构对多层次…

Nautilus源码编译傻瓜式教程二

Nautilus源码编译傻瓜式教程一 Nautilus编译 依赖项文件 接上文,点击小锤子进行编译后出现如下的错误提示 看这个报错,未找到文件或目录,再看前面的git地址是github就知道肯定是下载有问题,查找下Nautilus项目,发现在nautilus/build-aux/flatpak/org.gnome.Nautilus.json文件…

Java中使用四叶天动态代理IP构建ip代理池,实现httpClient和Jsoup代理ip爬虫

在本次爬虫项目中,关于应用IP代理池方面,具体完成以下功能: 从指定API地址提取IP到ip池中(一次提取的IP数量可以自定义更改) 每次开始爬虫前(多条爬虫线程并发执行),从ip池中获取一…

CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)

1. 引言 在完成了所有必要工具的安装和配置后,我们进入到获取 CEF 源码的阶段。对于 macOS 平台,CEF 的源码获取过程需要特别注意不同芯片架构(Intel 和 Apple Silicon)的区别以及版本管理。本文将详细介绍如何在 macOS 系统上获…

梳理你的思路(从OOP到架构设计)_设计模式Factory Method模式

目录 1、Factory Method模式 2、范例&#xff1a; Android FM(工厂)模式 3、Android里处处可见的FM模式的应用 1、Factory Method模式 誰來創建<T>的對象呢?例如&#xff0c; 剛才的Template Method模式內含一個EIT造形&#xff0c;那麼&#xff0c; 請問&#xff…

tauri桌面应用开发入门

简介 tauri是一款基于web的桌面应用前端框架 因为使用webviews渲染,而不是像electron自带一个浏览器内核,所以打包之后的空间更小,十几mb 前端界面使用web,可以采取流行的框架,入react,vue等 前端后台采用rust,弥补前端无法直接访问操作系统,常用于访问本地文件系统 官方中…

selenium 报错 invalid argument: invalid locator

环境&#xff1a; Python3.12.2 selenium4.0 报错信息&#xff1a; invalid argument: invalid locator 错误分析&#xff1a; selenium语法错误,find_element方法少写By.XPATH参数 错误语法如下&#xff1a; driver.find_element(//div[id"myid"]) 解决办…

ESP8266 WiFi模块入门:搭建网络与测试实践

在物联网&#xff08;IoT&#xff09;应用中&#xff0c;设备联网是核心功能之一。而ESP8266串口WiFi ESP-01模块是一款低成本、功能强大的UART-WiFi透传模块&#xff0c;广泛应用于智能家居、工业控制等领域。本篇文章将从基础出发&#xff0c;讲解如何使用ESP8266模块进行WiF…

框架问题学习

1、gin 1.1、gin框架路由是怎么处理的 在 Gin 中&#xff0c;路由是通过 gin.Default() 或 gin.New() 创建的 *gin.Engine 对象来管理的。gin.Default() 是 gin.New() 的一个封装&#xff0c;它在创建路由对象时会自动添加一个默认的中间件&#xff08;如日志记录、恢复中间件…

Java模拟Mqtt客户端连接Mqtt Broker

Java模拟Mqtt客户端基本流程 引入Paho MQTT客户端库 <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.mqttv5.client</artifactId><version>1.2.5</version> </dependency>设置mqtt配置数据 …

电子电气架构 --- 队列刷写场景及刷写上位机浅析

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

springboot根据租户id动态指定数据源

代码地址 码云地址springboot根据租户id动态指定数据源: springboot根据租户id指定动态数据源,结合mybatismysql多数源下的事务管理 创建3个数据库和对应的表 sql脚本在下图位置 代码的执行顺序 先设置主数据库的数据源配置目标数据源和默认数据源有了主库的数据源&#xff…

C++简明教程(文章要求学过一点C语言)(3)

一、编程工具大揭秘——IDE 当我们准备踏入 C 编程的奇妙世界时&#xff0c;首先要认识一个重要的“魔法盒子”——集成开发环境&#xff08;IDE&#xff09;。IDE 就像是一个全能的编程工作室&#xff0c;它把我们写代码所需要的各种工具都整合到了一起&#xff0c;让编程这件…