Безлимитное облачное хранилище на базе Telegram
Используй Telegram как бесплатный бэкенд без ограничений по размеру
Автоматическое распределение между ботами и каналами
Все файлы шифруются перед отправкой в Telegram
Автоматически сохраняется в cookie
Работает на ПК, планшетах и телефонах
Для интеграции с другими сервисами
Делись файлами по публичной ссылке
Организуй файлы как хочешь
git clone https://github.com/hakeroneh1/nimbus-file.git
cd nimbus-file
pip install -r requirements.txt
@BotFather в Telegram/newbot123456:ABCdef...@getidsbot (формат -1001234567890)ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin
ENCRYPTION_KEY=your-secret-key-change-in-production
BOT_TOKEN_1=123456:ABCdef...
BOT_TOKEN_2=123456:ABCdef...
CHANNEL_ID_1=-1001234567890
CHANNEL_ID_2=-1001234567891
PORT=8000
python main.py
Открой браузер: http://localhost:8000
Войди с логином/паролем из .env
Зайди на render.com и зарегистрируйся через GitHub
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/hakeroneh1/nimbus-file.git
git push -u origin main
pip install -r requirements.txt, Start Command: python main.pyВ разделе Environment Variables добавь все переменные из .env
DATABASE_URL=postgresql://...После запуска доступна по адресу /api/docs
/api/login
— вход в систему
/api/logout
— выход
/api/me
— информация о текущем пользователе
/api/upload
— загрузить файл
/api/files?path=/
— список файлов и папок
/api/file/{id}
— информация о файле
/api/file/{id}/download
— скачать файл
/api/file/{id}
— удалить файл
/api/file/{id}
— переименовать файл
/api/folder
— создать папку
/api/share/{file_id}
— создать ссылку
/api/share/{share_id}
— скачать по ссылке
/api/key/create
— создать API ключ
/api/key/{key}
— удалить API ключ
/api/key/upload
— загрузить файл по API ключу
import requests
API_URL = "http://localhost:8000"
API_KEY = "ваш_api_ключ"
# Загрузка файла
files = {"file": open("video.mp4", "rb")}
data = {"api_key": API_KEY, "path": "/"}
response = requests.post(f"{API_URL}/api/key/upload", files=files, data=data)
print(response.json())
# Скачивание файла
file_id = response.json()["id"]
response = requests.get(f"{API_URL}/api/file/{file_id}/download")
with open("downloaded.mp4", "wb") as f:
f.write(response.content)
# Создание папки
response = requests.post(
f"{API_URL}/api/folder",
data={"name": "Мои видео", "path": "/"}
)
# Создание ссылки
response = requests.post(f"{API_URL}/api/share/{file_id}")
share_url = response.json()["url"]
print(f"Ссылка: {API_URL}{share_url}")
const API_URL = "http://localhost:8000";
const API_KEY = "ваш_api_ключ";
const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("api_key", API_KEY);
formData.append("path", "/");
fetch(`${API_URL}/api/key/upload`, {
method: "POST",
body: formData
}).then(res => res.json()).then(data => console.log(data));
// Скачать файл
window.open(`${API_URL}/api/file/${fileId}/download`);
// Создать папку
fetch(`${API_URL}/api/folder`, {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({ name: "Новая папка", path: "/" })
});
# Загрузка файла
curl -X POST http://localhost:8000/api/key/upload \
-F "file=@video.mp4" \
-F "api_key=ваш_api_ключ" \
-F "path=/"
# Скачивание файла
curl -OJ http://localhost:8000/api/file/FILE_ID/download
# Создание папки
curl -X POST http://localhost:8000/api/folder \
-d "name=Моя папка" \
-d "path=/"
ADMIN_USERNAME — логин для входаADMIN_PASSWORD — пароль для входаENCRYPTION_KEY — ключ шифрования (сохраните!)BOT_TOKEN_* — токены Telegram ботовCHANNEL_ID_* — ID Telegram каналовDATABASE_URL — PostgreSQL connection stringPORT — порт сервера (по умолчанию 8000)Nimbus File — Твои файлы. Твои правила. Без лимитов. ☁️
GitHub • MIT License