{"id":15137671,"url":"https://github.com/miroslavpejic85/call-me","last_synced_at":"2025-04-12T23:39:58.870Z","repository":{"id":256822883,"uuid":"856521486","full_name":"miroslavpejic85/call-me","owner":"miroslavpejic85","description":"🟢 Call-Me: Your Go-To for Instant Video Calls!","archived":false,"fork":false,"pushed_at":"2025-04-12T18:21:22.000Z","size":6444,"stargazers_count":256,"open_issues_count":1,"forks_count":37,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-12T23:39:54.213Z","etag":null,"topics":["click-to-call","decentralized","docker","javascript","live-streaming","nodejs","open-source","peer-to-peer","real-time-communication","self-hosted","video-conferencing","webdev","webrtc","webrtc-signaling","websockets"],"latest_commit_sha":null,"homepage":"https://cme.mirotalk.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miroslavpejic85.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["miroslavpejic85"]}},"created_at":"2024-09-12T18:03:13.000Z","updated_at":"2025-04-12T18:21:25.000Z","dependencies_parsed_at":"2024-09-13T08:20:56.383Z","dependency_job_id":"84fbc9c1-917d-4bf1-958b-b115fa49a2de","html_url":"https://github.com/miroslavpejic85/call-me","commit_stats":{"total_commits":29,"total_committers":1,"mean_commits":29.0,"dds":0.0,"last_synced_commit":"e92dc80151088f9f1eb7459d0080f429760c582e"},"previous_names":["miroslavpejic85/call-me"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslavpejic85%2Fcall-me","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslavpejic85%2Fcall-me/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslavpejic85%2Fcall-me/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miroslavpejic85%2Fcall-me/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miroslavpejic85","download_url":"https://codeload.github.com/miroslavpejic85/call-me/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647254,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["click-to-call","decentralized","docker","javascript","live-streaming","nodejs","open-source","peer-to-peer","real-time-communication","self-hosted","video-conferencing","webdev","webrtc","webrtc-signaling","websockets"],"created_at":"2024-09-26T07:01:34.367Z","updated_at":"2025-04-12T23:39:58.844Z","avatar_url":"https://github.com/miroslavpejic85.png","language":"JavaScript","funding_links":["https://github.com/sponsors/miroslavpejic85"],"categories":["置顶","JavaScript","Projects"],"sub_categories":["04、多媒体处理中心","Video Conference"],"readme":"# Call-Me\n\nThis project enables easy one-to-one video calls directly from your web browser using WebRTC technology.\n\n![callme](./assets/doc/callme.png)\n\n## Getting Started\n\n### Overview\n\nThis project allows you to:\n\n- `Sign in` with a username.\n- `Make video calls` by entering the recipient's username.\n- `Toggle` the visibility of your video feed.\n- `Switch` between cameras.\n- `Enable/Disable` your video.\n- `Enable/Disable` your audio.\n- `Hang up` the call when finished.\n- `Use a REST API` to retrieve a list of all connected users.\n\n---\n\n### Quick Start\n\n- #### Using NodeJs\n\n![nodejs](public/assets/nodejs.png)\n\n**[Install Node.js and npm](https://nodejs.org/en/download)**\n\n```shell\n# Clone this repo\ngit clone https://github.com/miroslavpejic85/call-me.git\n\n# Go to to dir call-me\ncd call-me\n\n# Copy the config file\n$ cp public/config.template.js public/config.js\n\n# Copy .env.template to .env\ncp .env.template .env\n\n# Install dependencies\nnpm install\n\n# Start the application\nnpm start\n```\n\n---\n\n- #### Using Docker\n\n![docker](public/assets/docker.png)\n\nInstall [docker engine](https://docs.docker.com/engine/install/) and [docker compose](https://docs.docker.com/compose/install/)\n\n```shell\n# Clone this repo\ngit clone https://github.com/miroslavpejic85/call-me.git\n\n# Go to to dir call-me\ncd call-me\n\n# Copy .env.template to .env\ncp .env.template .env\n\n# Create your own docker-compose.yml\ncp docker-compose.template.yml docker-compose.yml\n\n# Get official image from Docker Hub\ndocker-compose pull\n\n# Create and start containers\ndocker-compose up\n```\n\n---\n\n1. `Open` your browser and visit [http://localhost:8000](http://localhost:8000).\n\n2. `Sign in` with your username.\n\n3. `Select` the connected recipient's username and click `Call`.\n\n4. `Enjoy` your one-to-one video call.\n\n---\n\n## Click to Call\n\nAllows a user to `join` the room as a `user1`\n\n- [http://localhost:8000/join?user=user1](http://localhost:8000/join?user=user1) (dev)\n- [https://cme.mirotalk.com/join?user=user1](https://cme.mirotalk.com/join?user=user1) (prod)\n\nLets the `user2 join` the room and initiate a `call` to the `user1`\n\n- [http://localhost:8000/join?user=user2\u0026call=user1](http://localhost:8000/join?user=user2\u0026call=user1) (dev)\n- [https://cme.mirotalk.com/join?user=user2\u0026call=user1](https://cme.mirotalk.com/join?user=user2\u0026call=user1) (prod)\n\nYou can explore a `widget` example that demonstrates this functionality [here](./integration/widget.html).\n\n---\n\n## Fast Integration\n\n![iframe](public/assets/iframe.png)\n\nEasily integrate `Call-Me` into your website or application with a [simple iframe](https://codepen.io/Miroslav-Pejic/pen/qEWBaKP). Just add the following code to your project:\n\n```html\n\u003ciframe\n    allow=\"camera; microphone; fullscreen; autoplay\"\n    src=\"https://cme.mirotalk.com/\"\n    style=\"width: 100vw; height: 100vh; border: 0px;\"\n\u003e\u003c/iframe\u003e\n```\n\n---\n\n## API\n\nGet all connected users\n\n```shell\n# Get all connected users\ncurl -X GET \"http://localhost:8000/api/v1/users\" -H \"authorization: call_me_api_key_secret\" -H \"Content-Type: application/json\"\ncurl -X GET \"https://cme.mirotalk.com/api/v1/users\" -H \"authorization: call_me_api_key_secret\" -H \"Content-Type: application/json\"\n\n# Generate call links for connected users to call\ncurl -X GET \"http://localhost:8000/api/v1/connected?user=call-me\" -H \"authorization: call_me_api_key_secret\" -H \"Content-Type: application/json\"\ncurl -X GET \"https://cme.mirotalk.com/api/v1/connected?user=call-me\" -H \"authorization: call_me_api_key_secret\" -H \"Content-Type: application/json\"\n```\n\nDocs: http://localhost:8000/api/v1/docs/ or you can check it out live in prod [here](https://cme.mirotalk.com/api/v1/docs/).\n\n---\n\n## Self-Hosting\n\nTo install this on your VPS, VDS, or personal server, please follow the instructions in **[the self-hosting documentation](./doc/self-hosting.md)**.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiroslavpejic85%2Fcall-me","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiroslavpejic85%2Fcall-me","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiroslavpejic85%2Fcall-me/lists"}