Coder Social home page Coder Social logo

privoce / vocechat-server-rust Goto Github PK

View Code? Open in Web Editor NEW
303.0 6.0 63.0 1.74 MB

VoceChat is a superlight rust written social server. Easy integration to your site/app.

Home Page: https://voce.chat

License: Other

Shell 1.44% Dockerfile 0.08% HTML 1.72% Rust 96.76%
audio chat chat-application chatroom chatsdk rust rust-lang sdk self-hosted self-hosting

vocechat-server-rust's Introduction

Re-decentralized the Internet through personal cloud computing.

VoceChat is the lightest chat server prioritizes private hosting! Easy integratation to your app with our open API!

Quick run

docker run -d --restart=always \
  -p 3009:3000 \
  --name vocechat-server \
  Privoce/vocechat-server:latest

On browser visit: http://localhost:3009/

Contact us

Doc: https://doc.voce.chat
Chat with us: https://voce.chat
Email: [email protected]

Welcome your help of any form--code, issues, blog articles, social media shares.

Goal

The goal of Voce is to provide a space owned by "you" on the Internet, just as the name "voce" means in portguese. As cloud computing getting matured, there will be a time in the foreseeable future that netizens like you and me can enjoy the benefit of having a personal cloud space on the Internet--like iCloud, while not only will you have storage, but also a personalized computing layer.

Why do we need a private cloud space? The short answer is that information will become our private property and means of communication will be under the control of every netizen.

Digital technologies including Internet and the Web make information duplicable and transferable, yet platforms are controlling the ownership and means of production and transmission of most information (content) on the Internet. We are building Voce as an open-sourced tool (not a platform) to empower smaller groups and individuals to become a platform themselves. When various servers get connected to each other, all the information shared among the servers will be duplicated and become the server owner's private data under private storages.

Personal cloud

We need a "home" as our private property on the Internet, and this home should have features more than just storage. No matter you choose NAS, AWS, Raspberry Pi or your local PC to run VoceChat, it is your own private property--yes, public cloud services like AWS purchased by you is commercially your own property and the data in your cloud is protected from accessing by the public cloud service providers. Features including but not limited to instant messaging, activity posts, private video calls, notes, whiteboard are all desiring and useful on your personal cloud server. Personal cloud is the new PC, and there will be a new software layer with some shared traits--distributed by URL(web app), good API, interoperable profiles. Privoce is currently working on this software layer of personal cloud.

Why Rust

Personal cloud needs efficent solutions. This Rust written server is less than 20MB and runs with great efficiency. Hosting a 20MB private social media server is much more accessible than a 300MB one. Just like cars v. bus, or single family home v. hotels, if Facebook is a grand hotel, VoceChat is like a house. If Matrix and Mastodon are buses, VoceChat is like a car. The next paradigm of the internet is serverless functions + personal storage. Making VoceChat serverless is also a next step.

Webhook, bot, and ways to get interconnected (work in progress)

Social media cannot always stay private if people want new information to be transferred among different servers. The word "social" in social media means multiple nodes communicate with multiple nodes in a synced space (mass to mass). A channel (private or public) should serve the end of this mass to mass data sharing and syncing space. Channel should function as a shared good where members who joined should have the right to store the same chat data (use their server)--this may one day functions like Bitcoin, yet currently, efficiency should be more prioritiezed and admin of the channel could have the right to assign different "power" to members. We have implemented both inbound and outbound webhooks so that it's possible to sync messages from a VoceChat channel to another channel (slack, discord, or VoceChat) though you will need to write your own server side code to personalize this process (this could be troublesome, and again, serverless could be a good solution).

We also found bot super interesting and personal bot services may replace platforms--e.g., we are training some bots based on GPT api that can be added to VoceChat.

If you have a proposal on how multiple servers could get interconnected, e.g., should we support Matrix protocal, or other protocal, feel free to share your thougts in the discussions, or directly discuss it with at our chat at https://voce.chat.

Free for personal use, require license for non-personal use.

VoceChat is an open-source commercial software. The VoceChat server is the smallest, stablest and most efficient independent chat server on today's market, which is good for integration to your own app. VoceChat official image is free for personal use, which we define as equal or less than 20 registered users, if you want to integrate VoceChat to your own app/site for a larger user base, you have to purchase a license. The license is 49$/version.

Our team also provide customization service. We also provide resale license for NAS and cloud providers who want to collaborate with us.

Project composition:

Name Tech Project License Comment
Server Rust vocechat-server Big Time Public License Server supports Linux, Windows, ARM32/64
Server image Docker, Shell vocechat-docker Creative Commons Attribution-NonCommercial 4.0 International Official image supports Linux, ARM64
APP Client Flutter vocechat-client GPLv3 Client supports Android and IOS platforms
Web Client React vocechat-web GPLv3 Web App, integrated management
Documentation docusaurus vocechat-doc GPLv3 Vocechat document website

Feature list & roadmap

  • DM & Group Chating / 2021-Q4
  • Reply, @ to mention a person / 2021-Q4
  • Images and large files transmission / 2021-Q4
  • Pin / 2022-Q1
  • Forward / 2022-Q1
  • Favorate / 2022-Q1
  • Auto-delete my messages / 2022-Q2
  • Voice (now support agora) / 2022-Q4
  • Video (now support agora)/ 2022-Q4
  • Bot and Webhook (inbound and outbound)/ 2022-Q4
  • Role based permission control/ Undecided
  • Post, based on ActivityPub/ Undecided
  • Matrix Bridge/ Undecided

Chat with us: https://voce.chat Email: [email protected]

vocechat-server-rust's People

Contributors

suhan1996 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

vocechat-server-rust's Issues

SMTP可以支持其它服务商嘛?

我看文档是写的gmail,但是我不想用gmail,我有一个网易域名邮箱,它的smtps端口不是标准的465,是用的994,但是直接填进去会报错,或许可以通过增加一个enable_ssl按钮解决问题。很想Pr,但是Rust这玩意儿属实学不进去,三过其门而不入了已经,只能厚着脸皮来求作者解决了!

[feature request]增加 vocechat-server 文件存储方式

问题描述

在使用 vocechat 的过程中,因为文件分发的时占用带宽太大,而且 cloud server 因为价格原因存储和带宽经常性的资源不足,如果是企业用户还好说,但是往往也会有许多的个人用户使用该项目时,却因为带宽和存储的问题成为部署该项目的瓶颈,例如我。

HOPE

  1. 希望增加多存储方式选择
  2. 可选为本地与云存储
  3. 是否能将 file 与 id 绑定为一体,在上传后该文件绑定一个 fileID

bot 上传文件返回 null

我使用 cargo run 运行项目,然后在 swagger UI 测试API /api/bot/file/upload, 不应该应该返回一个path吗?

image

随后我根据file_id搜索,发现文件被放在了这个目录

image
如果我要发送这个文件,path该怎么写呢?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.