## Telegram Web K Based on Webogram, patched and improved. Available for everyone here: https://web.telegram.org/k/ ### Developing Install dependencies with: ```lang=bash pnpm install ``` This will install all the needed dependencies. #### Running web-server Just run `pnpm start` to start the web server and the livereload task. Open http://localhost:8080/ in your browser. #### Running in production Run `node build` to build the minimized production version of the app. Copy `public` folder contents to your web server. ### Running in docker #### Developing: * Install dependencies `docker-compose up tweb.dependencies`. * Run develop container `docker-compose up tweb.develop `. * Open http://localhost:8080/ in your browser. #### Production: * Run `docker-compose up tweb.production -d` nginx image and container to serve the build * Open http://localhost:80/ in your browser. I also created an image https://hub.docker.com/r/elgammalx/tweb/tags based on Nginx ready to be deployed. You can use `docker build -f ./.docker/Dockerfile_production -t {dockerhub-username}/{imageName}:{latest} .` to build your production ready image. My build use in `docker-compose.yaml` file ```yaml services: tweb.production: image: elgammalx/tweb ports: - 80:80 ``` ### Dependencies * [BigInteger.js](https://github.com/peterolson/BigInteger.js) ([Unlicense](https://github.com/peterolson/BigInteger.js/blob/master/LICENSE)) * [pako](https://github.com/nodeca/pako) ([MIT License](https://github.com/nodeca/pako/blob/master/LICENSE)) * [cryptography](https://github.com/spalt08/cryptography) ([Apache License 2.0](https://github.com/spalt08/cryptography/blob/master/LICENSE)) * [emoji-data](https://github.com/iamcal/emoji-data) ([MIT License](https://github.com/iamcal/emoji-data/blob/master/LICENSE)) * [twemoji-parser](https://github.com/twitter/twemoji-parser) ([MIT License](https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md)) * [rlottie](https://github.com/rlottie/rlottie.github.io) ([MIT License](https://github.com/Samsung/rlottie/blob/master/licenses/COPYING.MIT)) * [fast-png](https://github.com/image-js/fast-png) ([MIT License](https://github.com/image-js/fast-png/blob/master/LICENSE)) * [opus-recorder](https://github.com/chris-rudmin/opus-recorder) ([BSD License](https://github.com/chris-rudmin/opus-recorder/blob/master/LICENSE.md)) * [Prism](https://github.com/PrismJS/prism) ([MIT License](https://github.com/PrismJS/prism/blob/master/LICENSE)) * [Solid](https://github.com/solidjs/solid) ([MIT License](https://github.com/solidjs/solid/blob/main/LICENSE)) * [TinyLD](https://github.com/komodojp/tinyld) ([MIT License](https://github.com/komodojp/tinyld/blob/develop/license)) * [libwebp.js](https://libwebpjs.appspot.com/) * fastBlur * [mp4-muxer](https://github.com/Vanilagy/mp4-muxer) ([MIT License](https://github.com/Vanilagy/mp4-muxer/blob/main/LICENSE)) ### Debugging You are welcome in helping to minimize the impact of bugs. There are classes, binded to global context. Look through the code for certain one and just get it by its name in developer tools. Source maps are included in production build for your convenience. #### Additional query parameters * **test=1**: to use test DCs * **debug=1**: to enable additional logging * **noSharedWorker=1**: to disable Shared Worker, can be useful for debugging * **http=1**: to force the use of HTTPS transport when connecting to Telegram servers Should be applied like that: http://localhost:8080/?test=1 #### Taking local storage snapshots You can also take and load snapshots of the local storage and indexed DB using the `./snapshot-server` [mini-app](/snapshot-server/README.md). Check the `README.md` under this folder for more details. #### Preview all icons You can see all the available svg icons by calling the `showIconLibrary()` global function in the browser's console. ### Troubleshooting & Suggesting If you find an issue with this app or wish something to be added, let Telegram know using the [Suggestions Platform](https://bugs.telegram.org/c/4002). ### Licensing The source code is licensed under GPL v3. License is available [here](/LICENSE).