A mobile-friendly morse code web chat designed to learn morse and communicate with friends, without having to buy a radio. Inspired by @bkanker's web app morsecode.me
Live demo: halb.it/morsecode
This is a complete rewrite of the old morsechat, written using more modern web technologies. The old codebase is archived in the 'legacy_php_morsechat' branch of this repository, and is no longer maintained.
This rewrite is not ready to go live yet, halb.it/morsecode is still serving the old php version
Copy the file env.example into .env
in the .env configure your pusher credentials. You can generate them from your self-hosted instance of socketi (see socketi.app) Or you can use pusher.com (if you are using a free tier acount, make sure to disable authorized connections in the pusher app dashboard, as explained here https://pusher.com/docs/channels/using_channels/authorized-connections/ otherwise you will be open to ddos vulnerabilities)
clone this repository git clone https://github.com/robalb/morsechat.git
navigate into the repository cd morsechat
start the api server in development mode docker-compose up
start vite in development mode cd /web && npm run dev
The easiest way to run the webapp in a production environment is with the provided docker-compose.prod,
docker-compose -f docker-compose.prod.yml up --build
This method will also generate and manage a mariadb image, but you should replace it with something more stable
Alternatively you can deploy the app on a k8s kluster using the manifests in kubernetes/base
but first you will need to
setup a traefik ingress controller, certmanager, and a mariadb database Service.
The live website on halb.it is built using github workflows, and deployed on a k8s cluster with argoCD