An chatting application that uses terminal as user interface. Slightly over-engineered for learning purposes.
Each component is spinned up in a Docker container using docker-compose.
chat-server: the backend API server and application that stores chat information and uses websocket to broadcast messages to clients in certain chat rooms. Its API description can be found here. Note that a certificate from CA needs to be obtained for HTTPS. For use without TLS,nginxandchat-serverneeds to be reconfigured.client: A prototype of a terminal client that can be installed.nginx: Reverse proxy.redis: User session storage.mariadb: User account persistence. (chat history using batch server in consideration)
A TLS cert needs to be generated and registered to client's computer network security settings as Client to Server communication is in HTTPS.
- Clone:
git clone https://github.com/krapeaj/term-chat.git - Server:
cdinto clone directory and./start_docker-compose(requires docker) - Client:
cdintoclientdirectory andgo build(requires go)- for client commands, see here
- Deployment to the open world on a Cloud platform.
- Requires a valid certificate from a CA unless TLS is not desired.
- Kubernetes integration
- Browser client.
- Scalability improvement and service discovery (k8s).