A lightweight, simplified, self-hosted file storage solution
in a single file.
Powered by Bun
Dashboard
Lightweight
Self-hosted
Open source
Available for Linux, MacOS and Windows.
Upload file
Upload a file to a public bucketDownload file
Download a file from a public bucketJavascript client
Use the Javascript client to interact with your PerseusFS serverimport fs from 'fs/promises';
// using node/bun to read a file
// you can also read a file using an input element in the browser
const file = await fs.readFile('test.txt');
const response = await fetch('https://perseusfs-instance.com/upload', {
method: 'POST',
headers: {
'Content-Type': 'application/octet-stream',
'X-Filename': 'test.txt',
'X-Bucket-Id': '1'
},
body: file
});
if (!response.ok) {
throw new Error('Failed to upload file');
}
const { fileName, fileId, currentPath } = await response.json();
// fileName: 'test.txt'
// fileId: 1
// currentPath: 'my-bucket/test.txt'