PageSourceSearch

https://squidcloud.vercel.app/assets/SquidFSPage-BGpzxyZs.js

js squidcloud.vercel.app collected 2026-10-03 07:48:17 UTC 7,520 bytes, 148 lines download raw bytes

1import{b as d,j as e,B as l,b1 as c,aQ as m,V as u,bZ as h,a9 as n,aa as x,a8 as b,da as p,e as f,g,r as v,C as y,W as j}from"./index-Vg2u0Hz9.js";import{H as k}from"./Helmet-Bo5NJ3zT.js";import"./index-DUgSznSO.js";const S=`
2## Linux / macOS
3
4\`\`\`bash
5squidfs \\
6  -key cb_your_api_key_here \\
7  -mount /mnt/squidfs
8\`\`\`
9
10### Linux Requirements
11
12Install FUSE support:
13
14\`\`\`bash
15# Debian / Ubuntu
16sudo apt-get install fuse3
17sudo usermod -aG fuse $USER
18
19# Arch Linux
20sudo pacman -S fuse3
21\`\`\`
22
23### macOS Requirements
24
25Install macFUSE:
26
27\`\`\`bash
28brew install --cask macfuse
29\`\`\`
30
31## Windows
32
33\`\`\`bash
34squidfs \\
35  -key cb_your_api_key_here \\
36  -webdav
37\`\`\`
38
39Then map the network drive:
40
41\`\`\`cmd
42net use Z: http://localhost:8080
43\`\`\`
44
45For FUSE support on Windows, install WinFSP from winfsp.dev.
46
47## Termux / Android
48
49\`\`\`bash
50squidfs \\
51  -key cb_your_api_key_here \\
52  -webdav
53\`\`\`
54
55WebDAV mode only - FUSE is not available on Android.
56
57## Command Line Options
58
59| Option | Description | Default |
60|--------|-------------|---------|
61| \`-key\` | SquidCloud API key (cb_...) | (required) |
62| \`-url\` | SquidCloud project URL | (built-in) |
63| \`-mount\` | Mount point path | \`/mnt/squidfs\` |
64| \`-cache-dir\` | Cache directory | \`~/.squidfs/cache\` |
65| \`-cache-size\` | Cache size in bytes | \`104857600\` (100MB) |
66| \`-byok\` | BYOK encryption passphrase | (disabled) |
67| \`-webdav\` | Use WebDAV mode | \`false\` |
68| \`-port\` | WebDAV server port | \`8080\` |
69| \`-version\` | Show version | |
70| \`-help\` | Show help | |
71
72## BYOK Encryption
73
74Enable zero-knowledge encryption with your own key:
75
76\`\`\`bash
77squidfs \\
78  -key cb_your_api_key_here \\
79  -byok "your-encryption-passphrase" \\
80  -mount /mnt/squidfs
81\`\`\`
82
83Your key never leaves your device. If you lose it, your files cannot be recovered.
84
85### V3 Encryption
86
87SquidFS uses V3 HKDF key hierarchy:
88
89- **Per-file keys** derived from master key
90- **Per-chunk keys** derived from file key
91- **Deterministic IVs** for each chunk
92- **AEAD** with authenticated additional data
93
94## Caching
95
96SquidFS caches files locally for fast repeated access. Files are served from cache when available.
97
98### Cache Location
99
100\`\`\`bash
101~/.squidfs/cache/
102\`\`\`
103
104### Clear Cache
105
106\`\`\`bash
107rm -rf ~/.squidfs/cache/
108\`\`\`
109
110### Adjust Cache Size
111
112\`\`\`bash
113squidfs -cache-size 536870912 ...  # 512MB
114squidfs -cache-size 1073741824 ... # 1GB
115\`\`\`
116
117## Troubleshooting
118
119### "permission denied" on mount
120
121\`\`\`bash
122# Linux
123sudo usermod -aG fuse $USER
124# Log out and back in
125
126# macOS
127# Reinstall macFUSE and grant permissions in System Preferences
128\`\`\`
129
130### Files not appearing
131
132Refresh the directory listing:
133
134\`\`\`bash
135ls -la /mnt/squidfs
136\`\`\`
137
138Check your API key and network connection if files still don't appear.
139
140### Slow performance
141
142- Increase cache size: \`-cache-size 1073741824\`
143- Use FUSE mode instead of WebDAV when possible
144- Ensure stable network connection
145`;function o({text:t}){const[r,s]=v.useState(!1),a=async()=>{await navigator.clipboard.writeText(t),s(!0),setTimeout(()=>s(!1),2e3)};return e.jsx("button",{onClick:a,className:"absolute top-2 right-2 p-1.5 rounded-md bg-muted/80 hover:bg-muted text-muted-foreground hover:text-foreground transition-colors","aria-label":"Copy code",children:r?e.jsx(y,{className:"h-3.5 w-3.5 text-green-500"}):e.jsx(j,{className:"h-3.5 w-3.5"})})}function N(){const t=d();return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(k,{children:e.jsx("title",{children:"SquidFS - Mount as Local Disk - SquidCloud"})}),e.jsxs("div",{className:"container mx-auto px-4 py-12 max-w-4xl",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-8",children:[e.jsx(l,{variant:"ghost",size:"icon",onClick:()=>t(-1),className:"shrink-0",children:e.jsx(c,{className:"h-4 w-4"})}),e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-bold text-foreground flex items-center gap-2.5",children:[e.jsx(m,{className:"h-5 w-5 text-[#4FC3F7]"}),"SquidFS"]}),e.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:"Mount SquidCloud storage as a local filesystem"})]})]}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-8",children:[{icon:u,label:"Linux",method:"FUSE",status:"available"},{icon:h,label:"macOS",method:"FUSE",status:"available"},{icon:n,label:"Windows",method:"WebDAV",status:"available"},{icon:x,label:"Termux",method:"WebDAV",status:"available"}].map(({icon:r,label:s,method:a,status:i})=>e.jsxs("div",{className:"rounded-lg border border-border bg-card p-4 text-center",children:[e.jsx(r,{className:"h-5 w-5 mx-auto mb-2 text-muted-foreground"}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:s}),e.jsx("p",{className:"text-xs text-muted-foreground",children:a}),e.jsx("span",{className:"inline-block mt-1.5 px-1.5 py-0.5 text-[10px] font-medium bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400 rounded",children:i})]},s))}),e.jsxs("div",{className:"rounded-lg border border-border bg-card p-5 mb-8",children:[e.jsxs("h3",{className:"text-sm font-semibold text-foreground mb-2 flex items-center gap-2",children:[e.jsx(b,{className:"h-4 w-4 text-[#4FC3F7]"}),"Quick Install"]}),e.jsxs("div",{className:"relative",children:[e.jsx("pre",{className:"bg-muted rounded-md p-3 text-sm overflow-x-auto",children:e.jsx("code",{children:"go install github.com/NaveenSingh9999/squidfs/cmd/squidfs@latest"})}),e.jsx(o,{text:"go install github.com/NaveenSingh9999/squidfs/cmd/squidfs@latest"})]})]}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3 mb-8",children:[{icon:p,label:"FUSE on Linux/macOS",desc:"Native performance with kernel-level caching"},{icon:n,label:"WebDAV Fallback",desc:"Works everywhere including Windows and Termux"},{icon:f,label:"V3 HKDF Encryption",desc:"Per-file and per-chunk key derivation"}].map(({icon:r,label:s,desc:a})=>e.jsxs("div",{className:"rounded-lg border border-border bg-card p-4",children:[e.jsx(r,{className:"h-4 w-4 text-[#4FC3F7] mb-2"}),e.jsx("p",{className:"text-sm font-medium text-foreground",children:s}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:a})]},s))}),e.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:S.split("## ").slice(1).map(r=>{const s=r.split(`
146`)[0]?.trim(),a=r.split(`
147`).slice(1).join(`
148`).trim();if(!s)return null;const i=a.startsWith("```");return e.jsxs("div",{className:"mb-10",children:[e.jsx("h2",{className:"text-lg font-bold text-foreground mb-4 pb-2 border-b border-border",children:s}),e.jsx("div",{className:"space-y-3",children:i?e.jsxs("div",{className:"relative",children:[e.jsx("pre",{className:"bg-muted rounded-lg p-4 text-sm overflow-x-auto leading-relaxed",children:e.jsx("code",{children:a.replace(/```(bash|cmd)?\n?/g,"").trim()})}),e.jsx(o,{text:a.replace(/```(bash|cmd)?\n?/g,"").trim()})]}):e.jsx("div",{className:"text-sm text-muted-foreground leading-relaxed whitespace-pre-wrap font-mono text-[13px]",children:a})})]},s)})}),e.jsx("div",{className:"mt-16 pt-8 border-t border-border text-center",children:e.jsxs("p",{className:"text-xs text-muted-foreground",children:[e.jsx(g,{to:"/",className:"hover:text-foreground transition-colors",children:"SquidCloud"})," ","| SquidFS"," ",e.jsx("a",{href:"https://github.com/NaveenSingh9999/squidfs",target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-4 text-[#4FC3F7]/80 hover:text-[#4FC3F7] transition-colors",children:"View on GitHub"})]})})]})]})}export{N as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.