{"id":23810130,"url":"https://github.com/andchir/openchatroulette","last_synced_at":"2025-08-30T04:08:46.623Z","repository":{"id":60126243,"uuid":"530415519","full_name":"andchir/openchatroulette","owner":"andchir","description":"OpenChatRoulette","archived":false,"fork":false,"pushed_at":"2024-01-26T11:00:43.000Z","size":1517,"stargazers_count":29,"open_issues_count":4,"forks_count":6,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T08:08:46.486Z","etag":null,"topics":["angular","chat","nodejs","peer-to-peer","peerjs","webrtc"],"latest_commit_sha":null,"homepage":"https://openchatr.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andchir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-08-29T22:33:21.000Z","updated_at":"2025-03-05T04:44:29.000Z","dependencies_parsed_at":"2024-01-26T12:29:26.823Z","dependency_job_id":"5f97870a-c95a-4445-903a-0f7b6d32e295","html_url":"https://github.com/andchir/openchatroulette","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andchir/openchatroulette","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andchir%2Fopenchatroulette","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andchir%2Fopenchatroulette/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andchir%2Fopenchatroulette/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andchir%2Fopenchatroulette/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andchir","download_url":"https://codeload.github.com/andchir/openchatroulette/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andchir%2Fopenchatroulette/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272800965,"owners_count":24995185,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["angular","chat","nodejs","peer-to-peer","peerjs","webrtc"],"created_at":"2025-01-02T00:12:32.785Z","updated_at":"2025-08-30T04:08:46.596Z","avatar_url":"https://github.com/andchir.png","language":"TypeScript","readme":"# OpenChatRoulette\n\nFree, Open-source Chat for a conversation with a random interlocutor. The WebRTC technology is used, which performs a peer-to-peer connection.\n\n![OpenChatRoulette logo](https://github.com/andchir/openchatroulette/blob/main/openchatroulette/src/assets/logo-big.png?raw=true)\n\n![OpenChatRoulette - screenshot #1](https://github.com/andchir/openchatroulette/blob/main/openchatroulette/openchatroulette.png?raw=true)\n\n# How to install\n\n1. `clone https://github.com/andchir/openchatroulette.git`\n2. Open and edit configuration files: \"**.env**\" and \"**openchatroulette/src/environments/environment.prod.ts**\".\n3. Back up your **env** files: `cp .env .env_copy`, `cp openchatroulette/src/environments/environment.prod.ts openchatroulette/src/environments/environment.prod.ts_copy`.\n4. Install dependencies: `cd openchatroulette` -\u003e `npm install` -\u003e `cd openchatroulette` -\u003e `npm install`.\n5. Build static production files (html, css, js): `npm run build`.\n6. Return to root folder: `cd ..`. Download and unpack MaxMind's \"**GeoLite2-Country_xxx.tar.gz**\" to \"**geoip**\" folder.\n7. Install process manager for NodeJS: `sudo npm install -g pm2`\n8. Start server: `pm2 start server/peer-server.js`.\n9. Open in browser: \"**https://yourdomain.com**\" or \"**http://localhost:9000**\".\n10. Look application status: `pm2 info peer-server` or `pm2 monit`.\n\n## Optional\n11. Install STUN/TURN server. For example: [https://github.com/coturn/coturn](https://github.com/coturn/coturn)\n12. Open and edit file \"openchatroulette/src/environments/environment.prod.ts\".  \n    You can edit \"stun_urls\", \"turn_urls\", \"turn_username\", \"turn_credential\".\n13. Build production files again: `cd openchatroulette` -\u003e `npm run build`.\n\n## Admin area\n\nURL: `https://yourdomain.com/chatadmin` or `http://localhost:9000/chatadmin`  \nUse **ADMIN_USERNAME** and **ADMIN_PASSWORD** from `.env`. \n\n# Nginx configuration\n\n~~~\nserver {\n    listen 80;\n    server_name website.domain.com;\n    return 301 https://$server_name$request_uri;\n}\n\nserver {\n    listen 443 ssl;\n    listen [::]:443 ssl;\n    server_name website.domain.com;\n    \n    client_max_body_size 250m;\n    \n    ssl_certificate          /etc/letsencrypt/live/mydomain/fullchain.pem;\n    ssl_certificate_key      /etc/letsencrypt/live/mydomain/privkey.pem;\n\n    location / {\n        proxy_pass https://localhost:9000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n        proxy_set_header X-Real-IP $remote_addr;\n    }\n}\n~~~\n\n# Libraries used\n- Angular with NGXS\n- TypeScript\n- NodeJS\n- PeerJS\n- Bootstrap\n- MaxMind GeoIP2\n- other...\n\n# Development\n\nRun in development mode:\n~~~\nnpm run start\n~~~\n\nExtract localization:\n~~~\nnpm run extract-i18n\n~~~\n\n### MIT License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandchir%2Fopenchatroulette","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandchir%2Fopenchatroulette","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandchir%2Fopenchatroulette/lists"}