Nebula FTP é um servidor FTP profissional que usa o Telegram como backend de armazenamento, oferecendo:
- ✨ Armazenamento Ilimitado - Sem limites de espaço (apenas do Telegram)
- ⚡ Velocidade Real - 10+ MB/s com MTProto (sem API HTTP lenta) (Velocidade Máxima com Multi-Bot)
- 🔐 Privacidade Total - Arquivos ofuscados com UUID (modo Stealth)
🎬 Streaming Inteligente- Assista vídeos 4K sem baixar tudo (Apenas no Nebula Stream)- 🤖 Multi-Bot - Distribui carga entre vários bots automaticamente, aumentando a performance. (Apenas na Versão Pro)
- 👥 Multi-Usuário - Sistema completo de permissões por pasta.
- 🐳 Docker Ready - Instalação em 1 comando
- 🛡️ Production-Grade - Retry logic, logs, métricas e graceful shutdown
Cliente FTP envia → Disco local (instantâneo) → Telegram (background)
✅ Sem timeouts
✅ Sem travamentos
✅ Compatível com RaiDrive/Windows Explorer (Não funciona para streaming)
🎬 Em breve: Tutorial completo de instalação e configuração
- Aceder ao seu Servidor via SSH
ssh seu_usuario@IP_DO_SERVIDOR
- Atualizar o Servidor
sudo apt update && sudo apt upgrade -y
- Instalar as Ferramentas Essenciais
sudo apt install git python3 python3-venv python3-pip ffmpeg -y
- Clone o repositório
git clone https://github.com/samucamg/NebulaFTP.git
cd NebulaFTP
- Configure o .env
cp .env.example .env
nano .env # Preencha seus dados
- Inicie!
docker-compose up -d
- Veja os logs
docker-compose logs -f nebulaftp
- Clone e prepare ambiente
git clone https://github.com/samucamg/NebulaFTP.git
cd NebulaFTP
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
- Instale dependências
pip install -r requirements.txt
- Configure
cp .env.example .env
nano .env
- Rode
python main.py
-
- Obter API ID e API Hash
- Criar bots com @BotFather
- Criar canais e adicionar bots como admin
-
- Windows, Linux, macOS
- Passo a passo detalhado
- Solução de problemas
-
- Docker Desktop (Windows/Mac)
- Docker Engine (Linux)
- docker-compose explicado
-
- Criar contas FTP
- Permissões (leitura/escrita)
- Limitar acesso por pasta
O Nebula FTP faz parte de um ecossistema maior:
| Projeto | Descrição | Status |
|---|---|---|
| NebulaFTP | Servidor FTP com Telegram | ✅ Você está aqui |
| NebulaStream | Interface Web + Player | 🚧 Em desenvolvimento |
| NebulaWebDAV | Servidor WebDAV para Kodi/Plex | 🚧 Em desenvolvimento |
| NebulaSFTP | Servidor SFTP (SSH) | 📋 Planejado |
📖 Saiba mais sobre o Ecossistema →
API do Telegram (obtenha em my.telegram.org)
API_ID=12345678
API_HASH=abc123def456...
Tokens dos Bots (crie com @BotFather)
BOT_TOKENS=1234567890:AABBcc...,9876543210:AAFFdd...
IDs dos Canais (copie de @userinfobot)
CHAT_ID=-1001234567890
BACKUP_CHAT_ID=-1009876543210 # Opcional
MongoDB (local ou Atlas)
MONGODB=mongodb://localhost:27017
Servidor FTP
HOST=0.0.0.0
PORT=2121
Performance
MAX_WORKERS=4 # Workers de upload
CHUNK_SIZE_MB=64 # Tamanho dos chunks
MAX_RETRIES=5 # Tentativas de retry
Logging
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
- Backup automático de fotos/vídeos
- Biblioteca de filmes/séries pessoal
- Sincronização entre dispositivos
- Servidor de arquivos para equipe pequena
- Backup de projetos e documentos
- Streaming de conteúdo educacional
- Distribuição de materiais didáticos
- Repositório de aulas gravadas
- Compartilhamento de e-books
┌─────────────────────────────────────────────┐ │ Cliente FTP (FileZilla) │ └─────────────────┬───────────────────────────┘ │ ┌─────────────────▼───────────────────────────┐ │ Nebula FTP Server (Python) │ │ ┌──────────────────────────────────────┐ │ │ │ - Multi-Bot Manager (Round Robin) │ │ │ │ - Smart Seek (Streaming) │ │ │ │ - Retry Logic (5x + Backoff) │ │ │ │ - Garbage Collector (Auto-Clean) │ │ │ └──────────────────────────────────────┘ │ └─────────────────┬───────────────────────────┘ │ ┌─────────┴─────────┐ │ │ ┌───────▼────────┐ ┌───────▼────────┐ │ MongoDB │ │ Telegram │ │ (Metadados) │ │ (Arquivos) │ └────────────────┘ └────────────────┘
- Python 3.10+ - Linguagem principal
- Pyrogram - Cliente MTProto (rápido)
- pyftpdlib - Servidor FTP assíncrono
- Motor - Driver MongoDB assíncrono
- aiofiles - I/O assíncrono de arquivos
- Docker - Containerização
Contribuições são bem-vindas! Veja nosso Guia de Contribuição.
- 🐛 Reportar bugs
- 💡 Sugerir melhorias
- 📝 Melhorar documentação
- 🌍 Traduzir para outros idiomas
- ⭐ Dar uma estrela no projeto!
Este projeto está sob a licença MIT. Veja LICENSE para detalhes.
- Telegram: t.me/NebulaFTP
- Discord: discord.gg/nebula
- Issues: GitHub Issues
- Discussões: GitHub Discussions
- Email: samuel@inglescurso.com.br apenas para assuntos comerciais, não dou suporte, não tiro dúvidas. Atendo apenas comercialmente.
Agradecimentos especiais a minha esposa e meu filho por aguentarem as longas horas de trabalho e desenvolvimento.
Feito com ❤️ por Samuel de Sousa Santos
Você necessita configurar as variáveis abaixo:
API_ID: Acesse my.telegram.org para obter o seu.
API_HASH: Acesse my.telegram.org para obter o seu.
BOT_TOKEN: Crie um novo bot utilizando BotFather.
MONGODB: Crie um DB e obtenha o link de conexão em [mongodb.com] (https://www.mongodb.com/)
CHAT_ID: Id do Chat para onde serão enviados os arquivos.
HOST: Host do FTP deixe como padrão (Padrão: 0.0.0.0).
PORT: Porta do servidor FTP (Padrão: 9021).
Setup:
Antes de iniciar o setup, verifique se você tem o python3 instalado, ou instale utilizando o comando abaixo: ```sudo apt update && sudo apt install python3-pip -y ``` A seguir:- Crie um novo bot em BotFather.
- Obtenha o API_ID e API_HASH em my.telegram.org.
- Crie um banco de dados Mongo DB com o nome de ftp MongoDB Cloud (ou use seu servidor) e copie a string de conexão. Aprenda aqui, [Como Criar gratuitamente sua base de dados Mongo DB] (https://www.youtube.com/watch?v=6b3YH0kK3ig) Caso pretenda utilizar uma quantidade muito grande de arquivos, é preferível criar o seu próprio banco de dados Mongo-db veja o tutorial sobre [Como instalar e Criar sua base de dados Mongo DB no ubuntu 20.04] (https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-20-04-pt)
- Coloque todas as variáveis em na raiz do bot no arquivo .env
- Adicione o bot ao seu canal com direito de administrador.
- Execute o arquivo 'python3 get_channel_id.py
, envie o comando/id` no seu canal para obter o id do canal. - Copie o ID para .env
- Execute 'python3 setup_database.py`.
- Execute 'python3 accounts_manager.py` para criar sua conta ftp.
- Execute
main.py.




