Unofficial Clubhouse web app client. For personal use only. It's a personal open-source project and not affiliated with any company.

Overview

Purpose of this web app

That's a personal project and not affiliated with any company.

This is the web client app to make your Club House experience better no matter what device you are using. Sometimes it's better to listen to podcasts on your PC. But CH team does not give such an opportunity for now so I decided to help someone who wants to use it besides mobile phones.It's for personal use only. I respect the job CH devs made so please use this app only as an addition to the mobile version.

It's for personal use only. I respect the job CH devs made so please use this app only as an addition to mobile version. Also please note that there are not zero chances to be banned for using it (but if you'll register from iOS device it reduces the chances in multiple times).

Also please note that you can be logged in only from one device at the same time (the previous one will be logged out).

Supported platforms (including speaking)

Windows, macOS, linux

You need to register in iOS version to decrease the chances to be banned

That's why I don't implement registration finishing step in the app. Just find someone with iPhone and register yourself there (don't forget to complete registration by typing username after you got your invite).

Technologies used

  • Spring boot (reactive), Java for backend part
  • Vue, Vuex, Vuetify, Typescript for frontend part
  • Node.js, react, electron for audio client for agora

Supported features

  • Authentication (warnings are displayed if you are in the wait list or not finished your registration)
  • Events
  • User suggestions
  • Channel joining, speaking, hands rising, muting, making moderator, banning, speaker inviting/uninviting, hands raised list.
  • Search
  • User profiles, following
  • Clubs profiles
  • Followers and following users
  • Notifications
  • Channels recommended list
  • Events recommended list
  • User profile info updating (bio, username, name)

To be done features (PRs are welcome)

  • User profile info updating (avatar, instagram/twitter profiles)
  • Room creation
  • Topics exploration
  • Pinging inside room
  • Clubs subscription
  • Inviting to CH

How to install and use

There are 2 parts - first is backend for webapp installable via docker, and the second one is the local audio client (if you want to join channels) installed via normal setup.

1.Install webapp:

Install docker if not installed (windows, macOS, linux setup).

Create container inside docker (if you run it for the first time):

docker run --restart=unless-stopped --name clubhouse -p 8080:8080 -d seovchinnikov/clubhouse-web:latest

And open http://localhost:8080/ in you browser. That's it (go to step 2)! Flag -d runs container in the background, so you can close terminal after all. Flag --restart=unless-stopped restarts container after reboot of your PC (until you don't stop it manually).

When you no longer needs the app - stop it:

docker stop clubhouse

And next time you want to resume it:

docker start clubhouse

Or (alternatively) you can download java 11, install it, open terminal/console and type:

java -jar app.jar

app.jar can be found in releases: https://github.com/seovchinnikov/clubhouse-web/releases

And open http://localhost:8080/ in you browser. That's it (go to step 2)!

2.Install audio client

If you want to join to channels and use audio features, you also need to setup audio connector on your local PC, prebuilt binaries are located in: agora-bridge/electron/prebuilds (or in https://github.com/seovchinnikov/clubhouse-web/releases)

There are binaries for Windows, MacOS; Linux is supported via wine (please look at agora-bridge/electron/prebuilds/linux_support.md).

Just run the executables (dmg in case of macOS or exe inside zip build for windows)! Note that audio client has to be run before you join the channel or you'll get error on joining.

When you'll finish your room participation and don't need audio speaking/listening anymore you can close audio client but don't forget to open it before you join the room again.


For developers only:

Web app:

Build:

./mvnw clean install -P dev

All maven profiles:

  1. -P dev (alternate to 2) => build under dev profile (Mock Server will be started to produce static json responses instead of sending requests to CH)
  2. -P default (alternate to 1) => build under prod profile (requests are going to CH)
  3. -P docker-build => build docker image
  4. -P docker-push => push docker image

And

java -jar -Dspring.profiles.active=dev backend-service/target/backend-service-0.0.2-SNAPSHOT.jar

Will start app under dev profile. Dev server serves on 8081 not 8080.

You can use -Dspring.profiles.active=default instead of dev to use prod mode.

Audio client:

Inside agora-bridge/electron:

npm install
npm run dist

Will build executables. And

npm run dev

Will start app in debug mode.

Some screenshots

Channel list

Room

Profile

WARNING

  • FOR REFERENCE AND EDUCATION PURPOSES ONLY. THIS DOES NOT COME WITH ANY KINDS OF WARRANTY.

  • PLEASE DO NOT CREATE BOTS OR DO ANY HARMFUL THINGS TO THE SERVICE. DON'T BREAK THINGS. DON'T BE EVIL.

  • THIS PROJECT WILL DISCONTINUE DEVELOPMENT ONCE DEVELOPERS RELEASE AN WEB BUILD.

QnA

Are you affiliated with Clubhouse?

No. This is just my personal project.

Why do we need a separate backend?

This is the proxy for Club House API. The main purpose of it is to validate incoming requests from user and make it as an adapter to CH backend. Also we have Mock Server for dev purposes and for comfortable integration testing. The purpose of proxy backend can be further extended by proxying agora and pubnub requests.

Why do you need another inner token (inner JWT)

It encapsulates all user-related token information in one place.

Is it safe to login in this app?

The app communicates only with Club House server, AWS cloud where CH stores images, with Agora services as well as PubNub service.

The app stores user's CH tokens only as part of inner JWT token inside local storage of your browser. But because you deploy your own version of the app on localhost this data never leaves your computer (besides CH servers).

Why don't you deploy and host the app?

I made this app for personal use and deploying it (besides your personal computer) elsewhere contradict with this idea.

Why we need a separate audio client?

CH uses Agora for audio communications, and Agora supports two kind of clients - WebRTC in browsers and native clients. CH team banned support of WebRTC for their channels so we have to use native client and run it on windows, macOS, linux. I've chosen electron sdk (but connected it via WebSockets so you can write other clients if you need to). I'm using linux and Agora does not support native clients for linux but after many trials I've found a way to run this client on Ubuntu via wine.

Where are the javadocs?

PRs are welcome.

References

Thanks to

  • @alievmirza
  • @valeyko
  • @stypr
  • @Seia-Soto
  • @grishka

Contacts

[email protected]

You might also like...

Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Dec 26, 2022

2211-01-a-OMW2PCAFYB's Web Checkers Project

WC-2211-01-a-OMW2PCAFYB 2211-01-a-OMW2PCAFYB's Web Checkers Project This is the Web Checkers Project as established by SWEN-261 @ RIT Link to page: ht

Oct 21, 2021

Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE

Messenger - A Java based project making use of Sockets for communication between the applications running on different JRE. Multiple clients can connect at the same time and can send messages to each other, they also get the information of status of their friends connected to the server .

Jan 2, 2022

Log4Shell RCE exploit using a gadget class. Not dependent on an old JDK version to work.

Log4Shell RCE exploit using a gadget class. Not dependent on an old JDK version to work.

Jan 4, 2022

Unixcounter - The new unixcounter project. Based on JavaEE + VueJS (server) and POSIX shell (client)

The Unix Counter Table of Contents Description Contributing Documentation Installation License This is the successor of the Linux Counter Project, whi

Dec 23, 2022

A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Dec 30, 2022

A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Dec 30, 2022

Java JWT: JSON Web Token for Java and Android

Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JW

Dec 30, 2022

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Dec 29, 2022
Comments
  • Docker image not working

    Docker image not working

    I am using Docker with WSL2 integration, docker image boots and I can access the web interface. I submit my phone number and I get the screen requesting the pin/code ... which I never received. (I am registred on clubhouse and its running fine on my phone). below the error in app.log @seovchinnikov

    
    
    2021-07-31 17:07:38,172 DEBUG io.netty.util.internal.NativeLibraryLoader [main] -Dio.netty.native.tryPatchShadedId: true2021-07-31 17:07:38,173 DEBUG io.netty.util.internal.NativeLibraryLoader [main] Unable to load the library 'netty_transport_native_epoll_x86_64', trying other loading mechanism.
    java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_x86_64 in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
            at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
            at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
            at java.base/java.lang.System.loadLibrary(Unknown Source)
            at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.base/java.lang.reflect.Method.invoke(Unknown Source)
            at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:385)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:377)
            at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:341)
            at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:136)
            at io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:250)
            at io.netty.channel.epoll.Native.<clinit>(Native.java:69)
            at io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:39)
            at java.base/java.lang.Class.forName0(Native Method)
            at java.base/java.lang.Class.forName(Unknown Source)
            at reactor.netty.resources.DefaultLoopEpoll.<clinit>(DefaultLoopEpoll.java:106)
            at reactor.netty.resources.DefaultLoopNativeDetector.<clinit>(DefaultLoopNativeDetector.java:35)
            at reactor.netty.resources.LoopResources.hasNativeSupport(LoopResources.java:270)
            at reactor.netty.resources.DefaultLoopResources.onServer(DefaultLoopResources.java:147)
            at reactor.netty.tcp.TcpResources.onServer(TcpResources.java:225)
            at reactor.netty.transport.ServerTransportConfig.childEventLoopGroup(ServerTransportConfig.java:205)
            at reactor.netty.transport.ServerTransport.lambda$bind$0(ServerTransport.java:109)
            at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57)
            at reactor.core.publisher.Mono.subscribe(Mono.java:4046)
            at reactor.core.publisher.Mono.block(Mono.java:1726)
            at reactor.netty.transport.ServerTransport.bindNow(ServerTransport.java:145)
            at reactor.netty.transport.ServerTransport.bindNow(ServerTransport.java:130)
            at org.springframework.boot.web.embedded.netty.NettyWebServer.startHttpServer(NettyWebServer.java:145)
            at org.springframework.boot.web.embedded.netty.NettyWebServer.start(NettyWebServer.java:100)
            at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:54)
            at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:40)
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
            at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
            at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
            at java.base/java.lang.Iterable.forEach(Unknown Source)
            at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
            at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
            at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:940)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:591)
            at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:63)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1311)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
            at edu.clubhouseapi.Application.main(Application.java:10)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.base/java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
    2021-07-31 17:07:38,174 DEBUG io.netty.util.internal.NativeLibraryLoader [main] netty_transport_native_epoll_x86_64 cannot be loaded from java.library.path, now trying export to -Dio.netty.native.workdir: /tmp
    java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_x86_64 in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
            at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
            at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
            at java.base/java.lang.System.loadLibrary(Unknown Source)
            at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
            at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:351)
            at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:136)
            at io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:250)
            at io.netty.channel.epoll.Native.<clinit>(Native.java:69)
            at io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:39)
            at java.base/java.lang.Class.forName0(Native Method)
            at java.base/java.lang.Class.forName(Unknown Source)
            at reactor.netty.resources.DefaultLoopEpoll.<clinit>(DefaultLoopEpoll.java:106)
            at reactor.netty.resources.DefaultLoopNativeDetector.<clinit>(DefaultLoopNativeDetector.java:35)
            at reactor.netty.resources.LoopResources.hasNativeSupport(LoopResources.java:270)
            at reactor.netty.resources.DefaultLoopResources.onServer(DefaultLoopResources.java:147)
            at reactor.netty.tcp.TcpResources.onServer(TcpResources.java:225)
            at reactor.netty.transport.ServerTransportConfig.childEventLoopGroup(ServerTransportConfig.java:205)
            at reactor.netty.transport.ServerTransport.lambda$bind$0(ServerTransport.java:109)
            at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57)
            at reactor.core.publisher.Mono.subscribe(Mono.java:4046)
            at reactor.core.publisher.Mono.block(Mono.java:1726)
            at reactor.netty.transport.ServerTransport.bindNow(ServerTransport.java:145)
            at reactor.netty.transport.ServerTransport.bindNow(ServerTransport.java:130)
            at org.springframework.boot.web.embedded.netty.NettyWebServer.startHttpServer(NettyWebServer.java:145)
            at org.springframework.boot.web.embedded.netty.NettyWebServer.start(NettyWebServer.java:100)
            at org.springframework.boot.web.reactive.context.WebServerManager.start(WebServerManager.java:54)
            at org.springframework.boot.web.reactive.context.WebServerStartStopLifecycle.start(WebServerStartStopLifecycle.java:40)
            at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178)
            at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54)
            at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356)
            at java.base/java.lang.Iterable.forEach(Unknown Source)
            at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155)
            at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123)
            at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:940)
            at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:591)
            at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:63)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767)
            at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)
            at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:326)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1311)
            at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
            at edu.clubhouseapi.Application.main(Application.java:10)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
            at java.base/java.lang.reflect.Method.invoke(Unknown Source)
            at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
            at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
            at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
            Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_x86_64 in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
                    at java.base/java.lang.ClassLoader.loadLibrary(Unknown Source)
                    at java.base/java.lang.Runtime.loadLibrary0(Unknown Source)
                    at java.base/java.lang.System.loadLibrary(Unknown Source)
                    at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
                    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
                    at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:385)
                    at java.base/java.security.AccessController.doPrivileged(Native Method)
                    at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:377)
                    at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:341)
                    ... 46 common frames omitted
    2021-07-31 17:07:38,195 DEBUG io.netty.util.internal.NativeLibraryLoader [main] Successfully loaded the library /tmp/libnetty_transport_native_epoll_x86_647253021268989023604.so
    2021-07-31 17:07:38,197 DEBUG io.netty.util.NetUtil [main] -Djava.net.preferIPv4Stack: false
    2021-07-31 17:07:38,198 DEBUG io.netty.util.NetUtil [main] -Djava.net.preferIPv6Addresses: false
    2021-07-31 17:07:38,201 DEBUG io.netty.util.NetUtilInitializations [main] Loopback interface: lo (lo, 127.0.0.1)
    2021-07-31 17:07:38,203 DEBUG io.netty.util.NetUtil [main] /proc/sys/net/core/somaxconn: 4096
    2021-07-31 17:07:38,204 DEBUG reactor.netty.resources.DefaultLoopEpoll [main] Default Epoll support : true
    2021-07-31 17:07:38,208 DEBUG io.netty.channel.MultithreadEventLoopGroup [main] -Dio.netty.eventLoopThreads: 24
    2021-07-31 17:07:38,223 DEBUG io.netty.util.internal.PlatformDependent [main] org.jctools-core.MpscChunkedArrayQueue: available
    2021-07-31 17:07:38,249 DEBUG io.netty.channel.DefaultChannelId [main] -Dio.netty.processId: 1 (auto-detected)
    2021-07-31 17:07:38,251 DEBUG io.netty.channel.DefaultChannelId [main] -Dio.netty.machineId: 02:42:ac:ff:fe:11:00:02 (auto-detected)
    2021-07-31 17:07:38,280 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.numHeapArenas: 10
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.numDirectArenas: 10
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.pageSize: 8192
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.maxOrder: 11
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.chunkSize: 16777216
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.smallCacheSize: 256
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.normalCacheSize: 64
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.maxCachedBufferCapacity: 32768
    2021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.cacheTrimInterval: 81922021-07-31 17:07:38,281 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.cacheTrimIntervalMillis: 0
    2021-07-31 17:07:38,282 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.useCacheForAllThreads:
    true
    2021-07-31 17:07:38,282 DEBUG io.netty.buffer.PooledByteBufAllocator [main] -Dio.netty.allocator.maxCachedByteBuffersPerChunk: 1023
    2021-07-31 17:07:38,290 DEBUG io.netty.buffer.ByteBufUtil [main] -Dio.netty.allocator.type: pooled
    2021-07-31 17:07:38,290 DEBUG io.netty.buffer.ByteBufUtil [main] -Dio.netty.threadLocalDirectBufferSize: 0
    2021-07-31 17:07:38,290 DEBUG io.netty.buffer.ByteBufUtil [main] -Dio.netty.maxThreadLocalCharBufferSize: 16384
    2021-07-31 17:07:38,315 DEBUG reactor.netty.transport.ServerTransport [reactor-http-epoll-1] [id: 0xf2143a3e, L:/0.0.0.0:8080] Bound new server
    2021-07-31 17:07:38,316 INFO org.springframework.boot.web.embedded.netty.NettyWebServer [main] Netty started on port 8080
    2021-07-31 17:07:38,334 INFO edu.clubhouseapi.Application [main] Started Application in 2.839 seconds (JVM running for 3.505)
    2021-07-31 17:12:09,887 DEBUG io.netty.buffer.AbstractByteBuf [reactor-http-epoll-2] -Dio.netty.buffer.checkAccessible:
    true
    2021-07-31 17:12:09,887 DEBUG io.netty.buffer.AbstractByteBuf [reactor-http-epoll-2] -Dio.netty.buffer.checkBounds: true2021-07-31 17:12:09,888 DEBUG io.netty.util.ResourceLeakDetectorFactory [reactor-http-epoll-2] Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@5429f0d5
    2021-07-31 17:12:09,931 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] New http connection, requesting read
    2021-07-31 17:12:09,932 DEBUG reactor.netty.transport.TransportConfig [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Initialized pipeline DefaultChannelPipeline{(reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
    2021-07-31 17:12:09,940 DEBUG io.netty.util.Recycler [reactor-http-epoll-2] -Dio.netty.recycler.maxCapacityPerThread: 4096
    2021-07-31 17:12:09,940 DEBUG io.netty.util.Recycler [reactor-http-epoll-2] -Dio.netty.recycler.maxSharedCapacityFactor: 2
    2021-07-31 17:12:09,940 DEBUG io.netty.util.Recycler [reactor-http-epoll-2] -Dio.netty.recycler.linkCapacity: 16
    2021-07-31 17:12:09,940 DEBUG io.netty.util.Recycler [reactor-http-epoll-2] -Dio.netty.recycler.ratio: 8
    2021-07-31 17:12:09,940 DEBUG io.netty.util.Recycler [reactor-http-epoll-2] -Dio.netty.recycler.delayedQueue.ratio: 8
    2021-07-31 17:12:09,971 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Increasing pending responses, now 1
    2021-07-31 17:12:09,979 DEBUG reactor.netty.http.server.HttpServer [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@65628d6a
    2021-07-31 17:12:10,150 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP response frame
    2021-07-31 17:12:10,150 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Decreasing pending responses, now 0
    2021-07-31 17:12:10,151 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP packet was sent, terminating the channel
    2021-07-31 17:12:10,168 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Increasing pending responses, now 1
    2021-07-31 17:12:10,169 DEBUG reactor.netty.http.server.HttpServer [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@65628d6a
    2021-07-31 17:12:10,170 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] New http connection, requesting read
    2021-07-31 17:12:10,170 DEBUG reactor.netty.transport.TransportConfig [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Initialized pipeline DefaultChannelPipeline{(reactor.left.httpCodec = io.netty.handler.codec.http.HttpServerCodec), (reactor.left.httpTrafficHandler = reactor.netty.http.server.HttpTrafficHandler), (reactor.right.reactiveBridge = reactor.netty.channel.ChannelOperationsHandler)}
    2021-07-31 17:12:10,179 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Increasing pending responses, now 1
    2021-07-31 17:12:10,180 DEBUG reactor.netty.http.server.HttpServer [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@65628d6a
    2021-07-31 17:12:10,197 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-1] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP response frame
    2021-07-31 17:12:10,197 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-1] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] No sendHeaders() called before complete, sending zero-length header
    2021-07-31 17:12:10,198 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Decreasing pending responses, now 0
    2021-07-31 17:12:10,199 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP packet was sent, terminating the channel
    2021-07-31 17:12:10,321 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Last HTTP response frame
    2021-07-31 17:12:10,322 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Decreasing pending responses, now 0
    2021-07-31 17:12:10,322 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Last HTTP packet was sent, terminating the channel
    2021-07-31 17:12:10,706 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Increasing pending responses, now 1
    2021-07-31 17:12:10,707 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Increasing pending responses, now 1
    2021-07-31 17:12:10,707 DEBUG reactor.netty.http.server.HttpServer [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@65628d6a
    2021-07-31 17:12:10,707 DEBUG reactor.netty.http.server.HttpServer [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Handler is being applied: org.springframework.http.server.reactive.ReactorHttpHandlerAdapter@65628d6a
    2021-07-31 17:12:10,710 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-1] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Last HTTP response frame
    2021-07-31 17:12:10,710 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP response frame
    2021-07-31 17:12:10,711 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] No sendHeaders() called before complete, sending zero-length header
    2021-07-31 17:12:10,711 DEBUG reactor.netty.http.server.HttpServerOperations [boundedElastic-1] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] No sendHeaders() called before complete, sending zero-length header
    2021-07-31 17:12:10,712 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Decreasing pending responses, now 0
    2021-07-31 17:12:10,712 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Decreasing pending responses, now 0
    2021-07-31 17:12:10,712 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-3] [id: 0x29a47dc6, L:/172.17.0.2:8080 - R:/172.17.0.1:39788] Last HTTP packet was sent, terminating the channel
    2021-07-31 17:12:10,712 DEBUG reactor.netty.http.server.HttpServerOperations [reactor-http-epoll-2] [id: 0xc0c8cbdd, L:/172.17.0.2:8080 - R:/172.17.0.1:39784] Last HTTP packet was sent, terminating the channel
    
    opened by chesal 0
  • When leaving the room, the icon is still displayed in the room

    When leaving the room, the icon is still displayed in the room

    When leaving a room, the avatar is still displayed in the room. It can happen in multiple rooms, i.e., people will see the avatar in all the rooms the user has been to. But the audio is okay, which only playing the communication of the current room.

    opened by yangcht 0
  • Error: Request failed with status code 413

    Error: Request failed with status code 413

    Hi, I followed the instructions and tried to sign in using my phone number which is already activated using iPhone.

    I do get the verification code, but when I enter it, I get this error:

    Error: Request failed with status code 413 image

    If I try again, I get a different error:

    image

    Error: Request failed with status code 500: {"error_message":"500 Internal Server Error","success":false}

    EDIT: restarting the docker container via the terminal fixes the problem

    opened by amirvenus 0
Releases(0.0.1)
Owner
Sergei Ovchinnikov
This is my personal account. Account is not affiliated with any company. All views are my own.
Sergei Ovchinnikov
A Vaadin example application that use Firebase Authentication as its user database

Vaadin + Firebase Auth example A trivial example to use Firebase Authentication with a Vaadin application. The app is built based on start.vaadin.com

Matti Tahvonen 3 Mar 9, 2022
JAP is an open source authentication middleware, it is highly decoupled from business code and has good modularity and flexiblity. Developers could integrate JAP into web applications effortlessly.

?? JAP 是什么? JAP 是一款开源的登录中间件,基于模块化设计,并且与业务高度解耦,使用起来非常灵活,开发者可以毫不费力地将 JAP 集

Fujie 140 Dec 1, 2022
Tink is a multi-language, cross-platform, open source library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse.

Tink A multi-language, cross-platform library that provides cryptographic APIs that are secure, easy to use correctly, and hard(er) to misuse. Ubuntu

Google 12.9k Jan 3, 2023
JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Connect2ID 35 Jul 1, 2022
shiro only provide the support of ehcache and concurrentHashMap. Here is an implement of redis cache can be used by shiro. Hope it will help you!

shiro only provide the support of ehcache and concurrentHashMap. Here is an implement of redis cache can be used by shiro. Hope it will help you!

alex 1.1k Dec 18, 2022
Anonymous chatting web app

Innogl This project is an anonymous web and video chat with strangers. Users can choose an online companion to discuss anything, find new friends or d

null 15 Oct 22, 2022
This application can recognize the sign language alphabets and help people who do not understand sign language to communicate with the speech and hearing impaired.

Sign Language Recognition App This application can recognize the sign language alphabets and help people who do not understand sign language to commun

Mihir Gandhi 12 Oct 7, 2021
Open Source Identity and Access Management For Modern Applications and Services

Keycloak Keycloak is an Open Source Identity and Access Management solution for modern Applications and Services. This repository contains the source

Keycloak 14.6k Jan 5, 2023
A mitigation for CVE-2021-44228 (log4shell) that works by patching the vulnerability at runtime. (Works with any vulnerable java software, tested with java 6 and newer)

Log4jPatcher A Java Agent based mitigation for Log4j2 JNDI exploits. This agent employs 2 patches: Disabling all Lookup conversions (on supported Log4

null 45 Dec 16, 2022