Git Product home page Git Product logo

docs's Introduction

soketi

CI codecov Latest Stable Version Total Downloads License

Artifact Hub

Discord

Next-gen, Pusher-compatible, open-source WebSockets server. Simple, fast, and resilient. ๐Ÿ“ฃ

๐Ÿค Supporting

Soketi is meant to be open source, forever and ever. It solves issues that many developers face - the one of wanting to be limitless while testing locally or performing benchmarks. More than that, itt is also suited for production usage, either it is public for your frontend applications or internal to your team.

The frequency of releases and maintenance is based on the available time, which is tight as hell. Recently, there were issues with the maintenance and this caused infrequent updates, as well as infrequent support.

To cover some of the expenses of handling new features or having to maintain the project, we would be more than happy if you can donate towards the goal. This will ensure that Soketi will be taken care of at its full extent.

๐Ÿ’ฐ Sponsor the development via Github Sponsors

Logos from Sponsors

Soketi

Blazing fast speed โšก

The server is built on top of uWebSockets.js - a C application ported to Node.js. uWebSockets.js is demonstrated to perform at levels 8.5x that of Fastify and at least 10x that of Socket.IO. (source)

Cheaper than most competitors ๐Ÿค‘

For a $49 plan on Pusher, you get a limited amount of connections (500) and messages (30M).

With Soketi, for the price of an instance on Vultr or DigitalOcean ($5-$10), you get virtually unlimited connections, messages, and some more!

Soketi is capable to hold thousands of active connections with high traffic on less than 1 GB and 1 CPU in the cloud. You can also get free $100 on Vultr to try out soketi โ†’

Easy to use ๐Ÿ‘ถ

Whether you run your infrastructure in containers or monoliths, soketi is portable. There are multiple ways to install and configure soketi, from single instances for development, to tens of active instances at scale with hundreds or thousands of active users.

Pusher Protocol ๐Ÿ“ก

soketi implements the Pusher Protocol v7. Your existing projects that connect to Pusher requires minimal code change to make it work with Soketi - you just add the host and port and swap the credentials.

App-based access ๐Ÿ”

Just like Pusher, you can access the API and WebSockets through the apps you define. Store the data with the built-in support for static arrays, DynamoDB and SQL-based servers like Postgres.

Production-ready! ๐Ÿค–

In addition to being a good companion during local development, soketi comes with the resiliency and speed required for demanding production applications. At scale with Redis, you get the breeze of scaling as you grow.

Built-in monitoring ๐Ÿ“ˆ

You just have to scrape the Prometheus metrics. Soketi offers a lot of metrics to monitor the deployment and

See it in action

Deployments

Community projects

๐Ÿ“ƒ Documentation

The entire documentation is available on Gitbook ๐ŸŒ

๐ŸŒŸ Stargazers

We really appreciate how this project turned to be such a great success. It will always remain open-source, free, and maintained. This is the real-time as it should be.

Stargazers over time

๐Ÿค Contributing

Please see CONTRIBUTING for details.

โ‰ Ideas or Discussions?

Have any ideas that can make into the project? Perhaps you have questions? Jump into the discussions board or join the Discord channel

๐Ÿ”’ Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

๐ŸŽ‰ Credits

docs's People

Contributors

darkghosthunter avatar gitbook-bot avatar larsnystrom avatar rennokki avatar sadeghpm avatar safemood avatar stayallive avatar taylorotwell 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

Watchers

 avatar  avatar  avatar

docs's Issues

Configuring Soketi Docker Container

Heyho!
Love the Idea of Soketi! Really helps avoiding Setup stuff and just get to work.

TLTR:
I'd like to know how to configure the soketi/pws docker in terms of:
PUSHER_APP_KEY and how to enforce Authorized connections

I have to admit, that my last dive into docker was a while ago and I'm still wearing my water wings when encountering them. And on the top of it all, I never dealt with Pusher... so sorry for what is about to come:

I'm kind'a puzzled on how to configure soketi/pws docker.
I'd assume some env variables to set, but neither the Docker Installation Guide nor the Backend Configuration Guide seem to define any.
Most probably this feature request is what I am looking for. Or do I have the completely wrong Idea?

For myself I just need the app-key and authorized connections, like mentioned above.
Some other useful lads could be: (Didn't try any of them, but just to start a list somewhere)

PUSHER_APP_KEY (this one I tried to set for the container, but nothing happend)
PUSHER_APP_SECRET
PUSHER_APP_ID
PUSHER_HOST
PUSHER_PORT
PUSHER_SCHEMA
(so far basically stolen from here)
PUSHER_AUTH_ONLY (I completely made this one up for enforcing the Auth connections behaviour mentioned earlier)
PUSHER_AUTH_TIMEOUT (for the auth connections timeout)
PUSHER_PING_PONG_TIMEOUT (the ping pong timeout)

Thanks for reading til here, if now someone could point me in an 'about-helpful' direction, that would be awesome!

Then, have a nice weekend!

Connecting with other clients?

Hello.

I would just like to know if one is able to connect to soketi server with other clients including auth.

For example using socket.io / android / ios

Thanks

[feature] Environment variables reference list

Hi,

Thank you for Soketi, it looks great.

I'm struggling to find a list of all available environment variables for soketi. As an example, I'm trying to change the port soketi listens on by default. I think it listens to 127.0.0.1:6001 inside a docker container, which makes it impossible to connect to from outside the container. This is probably pretty easy to solve if I can just find the correct environment var to change. But the general problem here is that I don't know which knobs there are to tweak.

Thank you for your time.

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.