{"id":22615659,"url":"https://github.com/yusufshakeel/localbox","last_synced_at":"2025-04-11T00:13:48.833Z","repository":{"id":267893026,"uuid":"898909720","full_name":"yusufshakeel/localbox","owner":"yusufshakeel","description":"Turn your laptop or desktop into a personal local cloud to easily share files with  other devices on the same Wi-Fi network.","archived":false,"fork":false,"pushed_at":"2025-02-11T12:31:17.000Z","size":8025,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T00:13:40.690Z","etag":null,"topics":["localhost","nextjs","nodejs","personal-cloud","personal-cloud-storage","reactjs"],"latest_commit_sha":null,"homepage":"","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/yusufshakeel.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-05T09:12:50.000Z","updated_at":"2025-02-11T12:31:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"1f40647d-6223-4ccf-8622-8018360d148a","html_url":"https://github.com/yusufshakeel/localbox","commit_stats":null,"previous_names":["yusufshakeel/localbox"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusufshakeel%2Flocalbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusufshakeel%2Flocalbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusufshakeel%2Flocalbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yusufshakeel%2Flocalbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yusufshakeel","download_url":"https://codeload.github.com/yusufshakeel/localbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248317730,"owners_count":21083530,"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":["localhost","nextjs","nodejs","personal-cloud","personal-cloud-storage","reactjs"],"created_at":"2024-12-08T19:08:43.144Z","updated_at":"2025-04-11T00:13:48.826Z","avatar_url":"https://github.com/yusufshakeel.png","language":"TypeScript","funding_links":["https://www.paypal.me/yusufshakeel"],"categories":[],"sub_categories":[],"readme":"# localbox\n\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/yusufshakeel/localbox)\n![Static Badge](https://img.shields.io/badge/version-v0.13.0-blue)\n\nTurn your laptop or desktop into a personal local cloud to easily share files with \nother devices on the same Wi-Fi network.\n\nFeatures:\n* Personal Drive with configurable storage limit per user\n* File upload and sharing\n* Temporary Chats (TempChats)\n* Audio/Video player\n* User management (Authentication and Authorization)\n* Dark Mode\n\nBuilding blocks:\n* Framework: [Next.js](https://github.com/vercel/next.js)\n* UI: [shadcn-ui](https://github.com/shadcn-ui/ui)\n* Video: [video.js](https://github.com/videojs/video.js)\n* Authentication and Authorization: [next-auth](https://github.com/nextauthjs/next-auth)\n* Database: [minivium](https://github.com/yusufshakeel/minivium)\n\n### Home\n\n![img-v0.9.1.png](public/assets/img-v0.9.1.png)\n\n### Personal Drive\n\n![personal-drive.png](public/assets/personal-drive.png)\n\n### Admin Dashboard\n\n![admin-dashboard-v0.11.0.png](public/assets/admin-dashboard-v0.11.0.png)\n\n## Table of Content\n\n* [Use Case](#use-case)\n* [Server Clients](#server-clients)\n* [Minimum Requirements](#minimum-requirements)\n* [Getting Started](#getting-started)\n* [First time setup](#first-time-setup)\n* [Rerun setup](#rerun-setup)\n* [Reset Admin Password](#reset-admin-password)\n* [Get Updates](#get-updates)\n* [Folders](#folders)\n* [License](#license)\n* [Donate](#donate)\n\n## Use Case\n\nImagine you’re at home or in an office:\n\n* You can quickly share files like photos, documents, or videos between your phone and computer without using cloud services (e.g., Google Drive or Dropbox).\n* Any device on the same Wi-Fi network can interact with the Local Box to upload files or retrieve hosted files.\n\n## Server Clients\n\nThe computer that is running this application will act like the server. A local IP address (like 192.168.0.151)\nwill be displayed. Clients (other users) can connect to that IP address via browsers.\n\nMake sure to add port number to the url.\n\nIf the server IP is 192.168.0.151 and is running at port 3001 then type `http://192.168.0.151:3001` in the browser.\n\n## Minimum requirements\n\nSoftware:\n* Node.js (version 16 or higher)\n* npm\n* npx\n\nHardware:\n* Any modern/older laptop or desktop should work.\n\nMy setup:\n* Laptop: HP ProBook 6450b\n* Year: 2010\n* Storage: 320GB HDD\n* Memory: 4GB\n* OS: Ubuntu 20.04LTS\n\n## Getting Started\n\n### Clone\n\n* Clone this repository from [GitHub](https://github.com/yusufshakeel/localbox).\n\n```shell\ngit clone https://github.com/yusufshakeel/localbox.git\n```\n\n### Install dependencies\n\n* Go inside the cloned directory and install the dependencies\n\n```shell\nnpm i\n```\n\n### Bootstrap\n\n* Now, run the following command in the terminal to bootstrap the project.\n\nThis will create files and folders that are needed by the application.\n\n```shell\nnpm run bootstrap\n```\n\n### Build\n\n* Now, build the application by running the following command in the terminal.\n\nThis will build the application.\n\n```bash\nnpm run build\n```\n\n### Start the server\n\n* You are now ready to start your localbox server.\n\n```bash\nnpm run start\n```\n\n\u003e\n\u003e Alternatively, run the following command if you want to run the application in dev mode.\n\u003e\n\u003e ```shell\n\u003e npm run dev\n\u003e ```\n\u003e\n\n* You will see the url of the localbox application in the terminal after it starts running.\n\n* Open the url (example [http://localhost:3000](http://localhost:3000)) in the browser.\n\n## Use port\n\nRun the following command to run the application on another port.\n\n```shell\nPORT=9000 npm run start\n```\n\n## First time setup\n\n* Go to Home page, and you will see localbox perform some setup operations.\n* You will also get the **admin** account created.\n* A `setup.lock` file will be created inside the `/private` folder.\n\nDefault credentials\n```text\nUsername: admin\nPassword: root1234\n```\nChange the password of the **admin** account after logging in.\n\n**Important! Make sure to restart the server.**\n\n## Rerun setup\n\n* Delete the `setup.lock` file from the `/private` folder.\n* Run the server `npm run start` or `npm run dev`\n* Open the Home page.\n* Setup will be performed again.\n* **Important! Make sure to restart the server.**\n\n### When to rerun the setup?\n\n- When pulling the latest code from the main branch from [GitHub](https://github.com/yusufshakeel/localbox).\n- When you re-install the npm packages by running the `npm i` command.\n- When you re-bootstrap.\n\n## Reset Admin Password\n\nGo to `/private` folder and look for `reset-admin-password.txt` file. Enter the new password like\nthe following and save the file.\n\n```text\nNEW_PASSWORD=myNewAdminPassword\n```\nPoints to note:\n- Make sure to write the password after the `=` sign.\n- Do not add space before/after the password.\n- Keep the password within one line.\n- Password length must be between 8 and 32 characters.\n\nNow, go to the home page and the admin password will be updated.\nChange the Admin password after logging in.\n\n## Get Updates\n\nPull the latest **main** branch changes to your local **main** branch.\n\n```shell\ngit pull origin main\n```\n\nIf you are pulling a newer version then run the [install dependencies](#install-dependencies), \n[bootstrap](#bootstrap), [build](#build) and the \n[rerun setup](#rerun-setup) steps again.\n\n## Folders\n\n### private\n\nThis directory contains private files. Don't change anything here.\n\n### public\n\nThis directory contains files and folders that can be viewed in browser\nwhen you are running localbox.\n\n## License\n\nIt's free :smiley:\n\n[MIT License](https://github.com/yusufshakeel/localbox/blob/main/LICENSE) Copyright (c) 2024 Yusuf Shakeel\n\n## Donate\n\nFeeling generous :smiley: [Donate via PayPal](https://www.paypal.me/yusufshakeel)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusufshakeel%2Flocalbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyusufshakeel%2Flocalbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyusufshakeel%2Flocalbox/lists"}