{"id":16978720,"url":"https://github.com/srph/careflix","last_synced_at":"2026-03-08T02:04:31.160Z","repository":{"id":37517058,"uuid":"164371839","full_name":"srph/careflix","owner":"srph","description":"A personal Netflix clone with sync-play, invitation system, and chatting features.","archived":false,"fork":false,"pushed_at":"2023-12-28T20:34:01.000Z","size":7063,"stargazers_count":39,"open_issues_count":43,"forks_count":12,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-02T05:46:15.440Z","etag":null,"topics":["clone","laravel","netflix","pwa","react"],"latest_commit_sha":null,"homepage":"https://tv.kierb.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/srph.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-01-07T03:13:05.000Z","updated_at":"2024-11-27T07:39:31.000Z","dependencies_parsed_at":"2024-10-27T12:47:39.419Z","dependency_job_id":"5a656825-4722-4286-b4b0-f0589c6a47a7","html_url":"https://github.com/srph/careflix","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/srph/careflix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srph%2Fcareflix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srph%2Fcareflix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srph%2Fcareflix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srph%2Fcareflix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/srph","download_url":"https://codeload.github.com/srph/careflix/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/srph%2Fcareflix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"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":["clone","laravel","netflix","pwa","react"],"created_at":"2024-10-14T01:44:03.729Z","updated_at":"2026-03-08T02:04:31.140Z","avatar_url":"https://github.com/srph.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"![preview](preview.png)\r\n## Care.tv\r\nCare.tv makes it really easy to enjoy movies or watch TV shows with the people you care about, no matter how far!\r\n\r\nWorks for mobile, tablet, and desktop screens. Does not work with iOS at the moment.\r\n\r\n## API Setup\r\nYou will have to install these dependencies: [MySQL `5.7`](https://dev.mysql.com/downloads/mysql/5.7.html), [php `\u003e=7.2`](https://thishosting.rocks/install-php-on-ubuntu/) along with [Composer](https://getcomposer.org/), and [ngrok](https://ngrok.com) _(Optional)_\r\n\r\n- Move to the `api` folder.\r\n```bash\r\ncd api\r\n```\r\n- Install the dependencies\r\n```bash\r\ncomposer install\r\n```\r\n\r\n- Copy `.env.example` to `.env`, and setup your environment config. Particularly, the database credentials (`DB_*`).\r\n```bash\r\ncp .env.example .env\r\n```\r\n\r\n- Open up `.env`, then configure the cdn url \u0026 request access code\r\n```bash\r\n# Where your media is stored\r\nAPP_CDN=https://your-digital-ocean-cdn.sgp1.cdn.digitaloceanspaces.com/\r\n\r\n# This is used for the registration, but you can leave empty.\r\nAPP_REQUEST_ACCESS_CODE=\r\n```\r\n\r\n- Publish unique key for Laravel.\r\n```bash\r\nphp artisan key:generate\r\n```\r\n\r\n- Run the migrations. Don't forget to store the client id and secret output from running `php artisan passport:client`.\r\n```bash\r\nphp artisan migrate\r\nphp artisan db:seed \u0026\u0026 php artisan db:seed --class=ShowSeeder\r\nphp artisan passport:install\r\nphp artisan passport:client --password\r\n```\r\n\r\nThis installs all required tables and creates a user with the following credentials: `admin@admin.com` (email) / `admin` (password)\r\n\r\n\u003e Make sure to replace `\u003cYOUR PASSWORD HERE\u003e` with your desired password.\r\n\r\n- Setup [Pusher](https://pusher.com/) by logging in to its dashboard, and creating a client. When you're done, open up `.env`, and change the following with the details provided by Pusher:\r\n```bash\r\nPUSHER_APP_ID=\r\nPUSHER_APP_KEY=\r\nPUSHER_APP_SECRET=\r\nPUSHER_APP_CLUSTER=\r\n```\r\n\r\n- You should be good to go. Run the command below then head over to `http://localhost:8000`\r\n\r\n```bash\r\nphp artisan serve\r\n```\r\n\r\n### API Setup: Enable Active Presence Locally (Optional)\r\n\r\nActive Presence is a feature that lets you know if a user invited to a room is active or not.\r\n\r\nIf not enabled, users will simply be inactive by default.\r\n\r\n- If you're setting this up locally, [setup `ngrok`](https://dashboard.ngrok.com/get-started), then point it to port `8000` (port used by `php artisan serve`).\r\n```bash\r\nngrok http 8000\r\n```\r\n\r\n- Open up Pusher, head over to the _Web Hooks_ tab.\r\n\r\n- Either paste the api's public url or ngrok's generated url (e.g., `http://9542199e.ngrok.io`) to the _Webhook URL_ input.\r\n\r\n- Select _Presence_ for the _Event Type_, then press _Add_.\r\n\r\n## Front-end setup\r\nYou will need npm `\u003e=6` and Node.js `\u003e=11`.\r\n\r\n- Move to the `ui` folder\r\n```bash\r\ncd ui\r\n```\r\n\r\n- Install the dependencies\r\n```bash\r\nnpm i\r\n```\r\n\r\n- Copy `.env.example` to `.env`, and setup your environment config. Update the `API_CLIENT_*` based on the output from `php artisan passport:client --password` (refer to instructions above).\r\n```bash\r\ncp .env.example .env\r\n```\r\n\r\n- Start Parcel, and you're all good.\r\n```bash\r\nnpm start\r\n```\r\n\r\nIt should open up to your a new browser window shortly. However, if it doesn't, you can manually open http://localhost:3000.\r\n\r\nYou can either register or login with the following credentials: `admin@admin.com` (email) / `admin` (password)\r\n\r\n## Deployment\r\nThe API and front-end are deployed separately.\r\n\r\n### API\r\nCurrently, Care.tv is deployed on Laravel Forge. If you follow the API setup instructions properly, things should work out of the box.\r\n\r\n- Initially, make sure to setup Laravel Passport:\r\n\r\n```bash\r\nphp artisan passport:install\r\nphp artisan passport:client --password\r\n```\r\n\r\n- Make sure to also change the default admin ceredentials as soon as possible:\r\n\r\n```bash\r\nphp artisan tinker\r\n$user = User::first();\r\n$user-\u003epassword = Hash::make('\u003cYOUR PASSWORD HERE\u003e');\r\n$user-\u003esave();\r\n```\r\n\r\n- Lastly, make sure to setup active presence - can also be seen above.\r\n\r\n### Front-end\r\nThe web interface is hosted on Netlify for free.\r\n- Set the root folder to `ui`; the public folder to `dist`.\r\n- Set the environment config accordingly.\r\n- For the build command:\r\n```bash\r\nnpm run build\r\n```\r\n\r\n## Custom API Commands\r\n```bash\r\n# Lists the most recent parties since 3 days ago\r\nphp artisan app:list-pt\r\n# Lists the most recent parties since 5 days ago\r\nphp artisan app:list-pt 5\r\n\r\n# Lists the last 15 registrations\r\nphp artisan app:list-users\r\n# Lists the last 30 registrations\r\nphp artisan app:list-users 30\r\n```\r\n\r\n## Attribution\r\n- [DrawKit](https://www.drawkit.io/illustrations/drawing-woman-colour) for the free illustrations pack.\r\n- [Notification Sounds](https://notificationsounds.com/sound-effects) for the notification audio files.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrph%2Fcareflix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsrph%2Fcareflix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsrph%2Fcareflix/lists"}