{"_id":"8storage","_rev":"12-cac86c9b9427c150e9eae9ed10a57ab1","name":"8storage","dist-tags":{"latest":"1.2.5"},"versions":{"1.0.0":{"name":"8storage","version":"1.0.0","_id":"8storage@1.0.0","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"ba632cb9873fe3db3f398ef871878ac03c3ab6de","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.0.0.tgz","fileCount":21,"integrity":"sha512-rBcadu3aZ55esyBdGGl+diTMVWi4O+OhjsoYAZjC3pNvroGQ391BuWobfGMG6GpNJaZzmKGow/35NZowptbXnw==","signatures":[{"sig":"MEQCIFSJV+QEMmfhJ6FRA/mnpjNClSttfd/y4Z4RQ7V+/MP+AiBl1ca8fR3sBdB85c3iB6sRGSrlC2dTkvRj1aCsu4Bhcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544195},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.0.0_1781516261759_0.8142838749458765","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"8storage","version":"1.0.2","_id":"8storage@1.0.2","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"02219c73b7ec6c8366d123a314fc0d833c4cb37b","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.0.2.tgz","fileCount":21,"integrity":"sha512-95dB1rR5e6jbPkgMIMyDozyVO4nBRwjvAWTA8u7TlTIE+E79u0fNdAICpRvFHpFmfYRUpqQNsobhsHCsGYe/Ng==","signatures":[{"sig":"MEYCIQCD6fuAIAyPwTDGh/HrPKOsKmpOpJksIla6PRTEFfcDwwIhAPTaFyxM89Z2hJPbwbIajknY5AQhrgAblDJ11pgBxEPP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":544193},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.0.2_1781516632460_0.053368031026546525","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"8storage","version":"1.0.3","_id":"8storage@1.0.3","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"a2cc156f6d77b38fe6bae49d3649d9fb8692b685","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.0.3.tgz","fileCount":21,"integrity":"sha512-jB75rXOnQHLK3+/MEOlCOTDlPZZahxcxOXVmA04SgD137FsOjSZepfU7FVdTLn8BWE8NGGQxDe1JGBffzj+rbg==","signatures":[{"sig":"MEYCIQCM42ybyEuWoRQmUGtxi7N4zasIUNmApsn8nfV7hhsh7AIhAP70DkF/bcfctglR1e8vsWzJnWGCVjhYYDgG3xHbqtdB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545044},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.0.3_1781516954097_0.23974315328717455","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"8storage","version":"1.1.0","_id":"8storage@1.1.0","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"c0e28313dd6be32b3980ee3da51c44a0a508a598","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.1.0.tgz","fileCount":21,"integrity":"sha512-DPWtDaQt1UNaGhdRJAGtR8AyWzTAe4/cUEJcBeJSXX/h/zUul2BpLFRYpOB3vy/tx+xet0x0HhpD43/hhA2Z3Q==","signatures":[{"sig":"MEUCIEInQMBve0e8RD7P48fipLx44xwPprVVQ9ULi5jhTR/oAiEAjhCAuh6QmTlmIv2vfkHt8DrDHyr5/umjNHHiC3OFIZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554835},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"4922a65675e9978dce84429bb1525d39eb41ee2a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.1.0_1781527469942_0.6379930945480896","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"8storage","version":"1.1.1","_id":"8storage@1.1.1","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"c05568b07da91c94dd4ac45dfc51fdd65242f201","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.1.1.tgz","fileCount":21,"integrity":"sha512-yf5dS6TpjQxY3rBQYDhx7cud8HUwIuXsHhtHV8ohb7WePYWuLNj7ndp+08ldXQHdk9e1mD0Rang6q4DYGHkjyw==","signatures":[{"sig":"MEUCIE83b82I3j4LRvQMa/xlX6jzd2wmQsk6cuInF3Z2tiUgAiEA7d7KO62nfEvb8b3S1XEw04auXhsOVw6o3oqT6CKdcCY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555757},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"13dfe9a9288da1d2d0b834c273bbd467e7653d44","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.1.1_1781540490362_0.875442727833166","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"8storage","version":"1.2.0","_id":"8storage@1.2.0","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"2831e2feee75ff77b6a02c926bed7919b1199841","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.0.tgz","fileCount":54,"integrity":"sha512-THOiCL8wOt6rMHRoGIDz76r4WA7OVLAx7WRS09czYM3gmTlrJ7Pmzwaw86xNU59J+dGN1nUNS/ufNj039j0ISQ==","signatures":[{"sig":"MEUCIQCdycK4F2pTzxCydLMmgnUAD+WITwfO4l57GOVxQx/YAQIgYuxXnc4Dz2bZSP0inXznnA+A3FMqG9ib+rolbTPUIao=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":907963},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"291d232fdc11019e30cde2a285fd5ef4b2d9ef2c","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.0_1781542179611_0.8281884782529711","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"8storage","version":"1.2.1","_id":"8storage@1.2.1","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"47bf1d633118f226cf24d955d4f208a527ec6785","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.1.tgz","fileCount":54,"integrity":"sha512-8aWqDmDoaBrsUIjwrfMkgJqUfhNMQE3cyrAtBcc1j5kTHFrQmtjI0SDFk0LmSgIdCaOtHNBb9+Ljlps+anP8mA==","signatures":[{"sig":"MEQCIBsWzhmTKDV/FuA2m6Rki4kzZ4cxgd6YMWK2EzHZGSBRAiAEFj4XI38Msq+1hWsAahVuGP93ikS5rxcrdPgLOZEJGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":908463},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"6861bd29200d50d5b1411b204fe31a36e73e05c1","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.1_1781544378861_0.719117915100216","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"8storage","version":"1.2.2","_id":"8storage@1.2.2","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"26275bb0588c3c8edc5d1b1e7baae16a16435c1b","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.2.tgz","fileCount":54,"integrity":"sha512-JV08r4nCk/LxBqFMqnc4V64muZhdoj/RW9AgBmeL4rhEtqwHp2oSp/FXQmrUQAiPt1xFR4I7BRiIgsTL+a62XQ==","signatures":[{"sig":"MEUCIQD6oVaKKE+eoQbFD4bVVm+Pkz4NXLeMhYjAofB30eebowIgZ7yvKjJ5nkLAikpzMnYpdctimFwG3WL8jpYI2OfMTac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":908450},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"fb93e46946799358258c3b507c335a899ba2aba3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.2_1781544609039_0.26471397441103917","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"8storage","version":"1.2.3","_id":"8storage@1.2.3","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"6af016e34d72a906bedabdc6b45b7795703111b1","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.3.tgz","fileCount":54,"integrity":"sha512-LZ5cXcsfItmR5TXJotpLSob8cIiuMPzhOEC8jOfudp09n1kgeNXxCx5ZcyqBltF0VtyhpEMdmtTGSFAJH/ntug==","signatures":[{"sig":"MEUCICyG203u1g2G2J+edxiDN5deHXoruxMgFmJISnHxUUPjAiEAusdA4FywGHytBZaWPm/s38hcNABydGLJyPLW3oyLkeI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":908732},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"789dbed1a1ae10238085ab7c3724f40fddbb9d2a","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.3_1781544743306_0.6698653340292542","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"8storage","version":"1.2.4","_id":"8storage@1.2.4","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"96be9bdc65414ada15e62db09ec7668996fe0485","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.4.tgz","fileCount":54,"integrity":"sha512-4dXfQwLiJ/TltT7IEqAbBdhslqXhppAOd6T0pqz+dWnLMCBsAkOC5msX7FDHpjgxSXyXb1iCczblf6PhL61F6Q==","signatures":[{"sig":"MEUCIE77EVW2MsA18jsZ69dPucz07LG505yjoZgb1xGft4UMAiEApgg+YhtdS1mfsi9J6JFfxaTACFgJbAPRgOix98ZSQW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":909004},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"c5e6bd034449bfe88fdb582237e640b743b47e70","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.4_1781545079623_0.8680998045515891","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"8storage","version":"1.2.5","_id":"8storage@1.2.5","maintainers":[{"name":"rakagusti66","email":"rakagusti171@gmail.com"}],"bin":{"8storage":"bin/cli.js"},"dist":{"shasum":"7b956b0422b391fcaca482a369f6cbb38d78a839","tarball":"https://registry.npmjs.org/8storage/-/8storage-1.2.5.tgz","fileCount":54,"integrity":"sha512-O38bPTUw5nHFds+YYpYrXDQornFbyJLue3QBE3XGmvLazz/KS7qqf/7Zh82ekT4eAZR5Lxcob8h6HrD12+eb3w==","signatures":[{"sig":"MEUCIQCC0yVhtwkpKHKXpuOA92PsUUMb30IHLj9dvHICiwgV+wIgEqOW4jvvz50b85LfL60gqon5YSnUPp16CwijEv3o+NM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":909990},"main":"bin/cli.js","engines":{"node":">=18.0.0"},"gitHead":"e2f92c0e3069d4aaaa0710eef4ebca7ec0d7eaad","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"rakagusti66","email":"rakagusti171@gmail.com"},"_npmVersion":"11.13.0","description":"Multi-Account Google Drive Storage Manager","directories":{},"_nodeVersion":"24.16.0","dependencies":{},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/8storage_1.2.5_1781545556011_0.4678977107236353","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-15T09:37:41.676Z","modified":"2026-08-18T19:25:40.380Z","1.0.0":"2026-06-15T09:37:41.899Z","1.0.2":"2026-06-15T09:43:52.637Z","1.0.3":"2026-06-15T09:49:14.269Z","1.1.0":"2026-06-15T12:44:30.096Z","1.1.1":"2026-06-15T16:21:30.537Z","1.2.0":"2026-06-15T16:49:39.802Z","1.2.1":"2026-06-15T17:26:19.070Z","1.2.2":"2026-06-15T17:30:09.192Z","1.2.3":"2026-06-15T17:32:23.466Z","1.2.4":"2026-06-15T17:37:59.828Z","1.2.5":"2026-06-15T17:45:56.168Z"},"description":"Multi-Account Google Drive Storage Manager","maintainers":[{"email":"rakagusti171@gmail.com","name":"pikaa-ai"}],"readme":"# 8Storage 🚀\r\n\r\n**8Storage** is a modern, self-hosted, multi-account Google Drive storage manager. It aggregates multiple free Google Drive accounts (15GB each) into a single large, virtual storage pool, allowing you to upload files larger than 15GB by automatically chunking, encrypting, and distributing them across your connected accounts.\r\n\r\n---\r\n\r\n## Key Features\r\n\r\n- **Storage Pooling**: Merge multiple Google Drive accounts into one combined virtual drive.\r\n- **Auto Chunking & Routing**: Automatically split large files and route chunks sequentially or via round-robin.\r\n- **Native File Indexer**: Scan and access files existing on your linked accounts that weren't uploaded through 8Storage.\r\n- **Secure Share Links**: Generate public download links with custom expiration times (1 hour to 30 days).\r\n- **Modern User Interface**: Premium dark-mode dashboard with real-time upload progress tracking.\r\n\r\n---\r\n\r\n## Installation & Setup\r\n\r\nYou can run **8Storage** using either the NPM global installer or Docker.\r\n\r\n### Method 1: NPM Global Installation (Recommended)\r\n\r\nThis method registers a global command `8storage` and manages isolated Python packages in your user home directory automatically.\r\n\r\n1. **Install the package globally**:\r\n   Run:\r\n   ```bash\r\n   npm i -g 8storage\r\n   ```\r\n\r\n2. **Run the application**:\r\n   Start the application from anywhere on your terminal:\r\n   ```bash\r\n   8storage\r\n   ```\r\n\r\n3. **Access the application**:\r\n   The launcher will automatically open [http://localhost:20151](http://localhost:20151) in your web browser once Uvicorn starts.\r\n\r\n---\r\n\r\n### Method 2: Docker Compose\r\n\r\nIf you prefer containerized deployment (includes Nginx for serving assets on port 80):\r\n\r\n1. Make sure you have **Docker** and **Docker Compose** installed and running.\r\n2. Run the startup command:\r\n   ```bash\r\n   docker compose up -d --build\r\n   ```\r\n3. Open [http://localhost](http://localhost) in your web browser.\r\n\r\n---\r\n\r\n## First-Time Configuration Guide\r\n\r\nFollow these steps to configure Google Drive access after launching the application:\r\n\r\n### Step 1: Log In\r\n- Go to the web dashboard.\r\n- Enter the default application password: `123456`\r\n- *(Highly Recommended: Change this password immediately under **Settings**)*\r\n\r\n### Step 2: Create Google Cloud OAuth Credentials\r\nTo link Google Drive accounts, you need to create a project on the Google Cloud Console:\r\n1. Go to the [Google Cloud Console](https://console.cloud.google.com/).\r\n2. Create a new project.\r\n3. Enable the **Google Drive API** for your project.\r\n4. Configure the **OAuth Consent Screen**:\r\n   - Select **External** user type.\r\n   - Add the scope: `https://www.googleapis.com/auth/drive` (Full access to Drive files).\r\n   - Add your Google Accounts as **Test Users** (since the app is in testing/draft mode).\r\n5. Go to **Credentials** -> **Create Credentials** -> **OAuth Client ID**:\r\n   - Application type: **Web Application**.\r\n   - Authorized redirect URI: `http://localhost:20151/api/auth/callback`\r\n6. Copy the generated **Client ID** and **Client Secret**.\r\n\r\n### Step 3: Configure 8Storage Settings\r\n1. In the 8Storage dashboard, click **Settings** on the left menu.\r\n2. Paste your Google **Client ID** and **Client Secret** into the fields.\r\n3. Click **Save Settings**.\r\n\r\n### Step 4: Link Your Google Drive Accounts\r\n1. Click **Virtual Drives** in the sidebar.\r\n2. Click **Connect GDrive Account**.\r\n3. Log in with your Google account and grant the requested permissions.\r\n4. Repeat this for as many Google Accounts as you'd like to pool together!\r\n","readmeFilename":"README.md"}