Skip to content

LucasDesignerF/nexus-cloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nexus Cloud Logo

⚡ Nexus Cloud

Plataforma Minimalista de Cloud Hosting, Containers, Game Hosting e Infraestrutura

Go Version License PRs Welcome Discord Website Stars Forks Issues


📑 Índice


🌟 Visão Geral

Cloud

A Nexus Cloud é uma plataforma moderna e minimalista de hospedagem automatizada desenvolvida pela Nexus Plataforms. Inspirada em soluções como Pterodactyl, PufferPanel, Docker e Kubernetes, mas seguindo uma filosofia EXTREMAMENTE MINIMALISTA:

  • 📁 Poucos arquivos — Apenas 2 arquivos principais (main.go e data/database.go)
  • 🎯 Código centralizado — Toda a lógica em um único arquivo principal
  • 🤖 Alta automação — Deploy, build, instalação e configuração automáticos
  • 🔧 Fácil manutenção — Estrutura limpa e código organizado
  • Alta performance — Go + Goroutines + SQLite WAL mode
  • 🌍 Cross-platform — Compatível com Linux e Windows
  • 🏗️ Estrutura profissional — Pronta para produção

🎯 Objetivo

Goal

A Nexus Cloud funciona como uma plataforma tudo-em-um para:

Serviço Descrição
☁️ Cloud Hosting Hospedagem de aplicações web, APIs e sites
🎮 Game Hosting Servidores de jogos (Minecraft, CS2, FiveM, etc.)
🐳 Container Hosting Gerenciamento de containers Docker
🗄️ Database Hosting Bancos de dados SQL e NoSQL gerenciados
📱 Application Manager Gerenciamento completo de aplicações
⚙️ Process Manager Gerenciamento de processos com auto-recovery
🚀 Deployment System Deploy automático via ZIP ou Docker

Alternativa moderna ao: Pterodactyl, PufferPanel, Railway, Easypanel, Coolify


🏗️ Arquitetura

Architecture

Estrutura de Diretórios

/
├── main.go              # 🔥 Código principal (toda a lógica)
├── go.mod               # 📦 Módulo Go
├── go.sum               # 🔒 Checksums de dependências
├── data/
│   └── database.go      # 🗄️ Camada de persistência
├── apps/                # 📁 Aplicações hospedadas
│   ├── bot/             # 🤖 Bots (Discord, Telegram, etc.)
│   ├── site/            # 🌐 Sites e APIs
│   ├── game/            # 🎮 Servidores de jogos
│   ├── database/        # 🗄️ Instâncias de bancos
│   └── docker/          # 🐳 Containers Docker
├── .env                 # 🔧 Variáveis de ambiente
└── README.md            # 📖 Documentação

Diagrama da Arquitetura

┌─────────────────────────────────────────────────────────────┐
│                      NEXUS CLOUD                            │
├─────────────────────────────────────────────────────────────┤
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│  │   Auth   │  │   Apps   │  │  Games   │  │   DBs    │  │
│  │  OAuth2  │  │ Manager  │  │ Manager  │  │ Manager  │  │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘  │
│       │             │             │             │         │
│  ┌────┴─────────────┴─────────────┴─────────────┴────┐   │
│  │                   API REST (Gin)                  │   │
│  └────┬─────────────┬─────────────┬─────────────┬────┘   │
│       │             │             │             │         │
│  ┌────┴────┐  ┌────┴────┐  ┌────┴────┐  ┌────┴────┐   │
│  │ Process │  │ Docker  │  │ Network │  │ Reverse │   │
│  │ Manager │  │ Manager │  │ Manager │  │  Proxy  │   │
│  └────┬────┘  └────┬────┘  └────┬────┘  └────┬────┘   │
│       │             │             │             │         │
│  ┌────┴─────────────┴─────────────┴─────────────┴────┐   │
│  │              SQLite Database (WAL Mode)           │   │
│  └──────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘

✨ Funcionalidades

Features

🚀 Deploy Automático

Modo Descrição Extensão
📦 ZIP Upload Upload de arquivo ZIP com cloud.up .zip, .tar.gz
🐳 Docker Deploy Build e deploy via Dockerfile Dockerfile, docker-compose.yml

📋 Formato cloud.up

NAME=Minha Aplicação    # Nome da aplicação
TYPE=bot                # Tipo: bot, site, game, database
RAM=512                 # Memória RAM em MB
CPU=1                   # Cores de CPU
MAIN=index.js           # Arquivo principal
PORT=3000               # Porta da aplicação
START=npm start         # Comando de inicialização
BUILD=npm run build     # Comando de build
VERSION=1.0.0           # Versão da aplicação

🔍 Detecção Automática

A plataforma detecta automaticamente:

Linguagem Frameworks Package Managers
Node.js Express, Fastify, NestJS, Next.js, React, Vue, Discord.js npm, yarn, pnpm, bun
Python Flask, FastAPI, Django, Discord.py pip
Go Fiber, Gin, Echo go mod
Rust cargo
Java Maven, Gradle mvn, gradle
PHP Laravel composer

⚙️ Gerenciamento de Processos

  • 🟢 Start / Stop / Restart
  • 📊 Monitoramento em tempo real (RAM, CPU, Disco, Rede)
  • 🔄 Auto-recovery com limite de restarts
  • 📝 Logs separados (stdout/stderr)
  • 🖥️ Console WebSocket em tempo real
  • 📈 Métricas por aplicação

🗄️ Bancos de Dados Suportados

SQL NoSQL
MySQL 8.0 MongoDB 7
MariaDB Redis 7
PostgreSQL 16
SQLite

📦 Stack Tecnológica

Stack
Tecnologia Uso Versão
Go Linguagem principal 1.21+
Gin HTTP Framework v1.9+
Docker SDK Gerenciamento de containers v26+
SQLite Banco de dados local WAL Mode
WebSocket Console em tempo real Gorilla
OAuth2 Autenticação Discord
JWT Tokens de acesso v5
Nginx Reverse Proxy

🚀 Instalação

Installation

Pré-requisitos

📥 Instalação Rápida

# 1. Clone o repositório
git clone https://github.com/LucasDesignerF/nexus-cloud.git
cd nexus-cloud

# 2. Inicialize o módulo Go
go mod init nexus-cloud

# 3. Instale as dependências
go get github.com/gin-gonic/gin@latest
go get github.com/gorilla/websocket@latest
go get golang.org/x/oauth2@latest
go get github.com/docker/docker@latest
go get github.com/docker/go-connections@latest
go get github.com/google/uuid@latest
go get github.com/golang-jwt/jwt/v5@latest
go get github.com/mattn/go-sqlite3@latest
go get github.com/rs/zerolog@latest
go get github.com/shirou/gopsutil/v3@latest
go get github.com/ulule/limiter/v3@latest

# 4. Organize as dependências
go mod tidy

# 5. Crie os diretórios necessários
mkdir -p data apps/bot apps/site apps/game apps/database apps/docker

# 6. Configure o ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações

# 7. Execute!
go run main.go

🪟 Instalação no Windows (PowerShell)

# Clone e entre no diretório
git clone https://github.com/LucasDesignerF/nexus-cloud.git
cd nexus-cloud

# Inicialize o módulo
go mod init nexus-cloud

# Instale dependências
go get github.com/gin-gonic/gin@latest
go get github.com/gorilla/websocket@latest
go get golang.org/x/oauth2@latest
go get github.com/docker/docker@latest
go get github.com/docker/go-connections@latest
go get github.com/google/uuid@latest
go get github.com/golang-jwt/jwt/v5@latest
go get github.com/mattn/go-sqlite3@latest
go get github.com/rs/zerolog@latest
go get github.com/shirou/gopsutil/v3@latest
go get github.com/ulule/limiter/v3@latest

# Organize
go mod tidy

# Crie diretórios
New-Item -ItemType Directory -Force -Path data
New-Item -ItemType Directory -Force -Path apps/bot
New-Item -ItemType Directory -Force -Path apps/site
New-Item -ItemType Directory -Force -Path apps/game
New-Item -ItemType Directory -Force -Path apps/database
New-Item -ItemType Directory -Force -Path apps/docker

# Execute
go run main.go

🐳 Instalação com Docker

# Construir a imagem
docker build -t nexus-cloud .

# Executar
docker run -d \
  --name nexus-cloud \
  -p 3000:3000 \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/apps:/app/apps \
  -v /var/run/docker.sock:/var/run/docker.sock \
  nexus-cloud

⚙️ Configuração

Settings

Arquivo .env

# Servidor
PORT=3000                              # Porta do servidor
DOMAIN=localhost                        # Domínio principal

# Banco de Dados
DB_PATH=./data/nexus.db                # Caminho do SQLite

# Aplicações
APPS_PATH=./apps                       # Diretório das aplicações

# Discord OAuth2
DISCORD_CLIENT_ID=your_client_id       # Client ID do Discord
DISCORD_CLIENT_SECRET=your_secret      # Client Secret do Discord
DISCORD_REDIRECT_URI=http://localhost:3000/auth/discord/callback

# JWT
JWT_SECRET=nexus-cloud-secret-key-change-me  # Chave secreta JWT

# Limites
MAX_UPLOAD_SIZE=104857600              # 100MB em bytes
MAX_BUILD_TIME=600                     # Tempo máximo de build (segundos)

# Docker
DOCKER_NETWORK=nexus-network           # Nome da rede Docker
DATABASE_NETWORK=nexus-db-network      # Rede para bancos de dados
PROXY_NETWORK=nexus-proxy              # Rede para proxy reverso

Configuração do Discord OAuth2

  1. Acesse o Discord Developer Portal
  2. Crie uma nova aplicação
  3. Vá em OAuth2General
  4. Adicione o Redirect URI: http://localhost:3000/auth/discord/callback
  5. Copie o Client ID e Client Secret
  6. Cole no arquivo .env

📚 API Reference

API

🔐 Autenticação

Método Rota Descrição Auth
GET /auth/discord Login com Discord
GET /auth/discord/callback Callback OAuth2
GET /auth/logout Logout

👤 Usuário

Método Rota Descrição Auth
GET /api/me Perfil do usuário JWT
PUT /api/me Atualizar perfil JWT
POST /api/me/api-key Regenerar API Key JWT

📦 Aplicações

Método Rota Descrição Auth
GET /api/apps Listar aplicações JWT
GET /api/apps/:id Detalhes da aplicação JWT
POST /api/apps/deploy Deploy via ZIP JWT
POST /api/apps/deploy/docker Deploy via Docker JWT
POST /api/apps/:id/start Iniciar aplicação JWT
POST /api/apps/:id/stop Parar aplicação JWT
POST /api/apps/:id/restart Reiniciar aplicação JWT
DELETE /api/apps/:id Deletar aplicação JWT
GET /api/apps/:id/logs Logs da aplicação JWT
WS /api/apps/:id/console Console WebSocket JWT
GET /api/apps/:id/metrics Métricas da aplicação JWT
PUT /api/apps/:id Atualizar aplicação JWT
POST /api/apps/:id/env Atualizar variáveis JWT
POST /api/apps/:id/domain Adicionar domínio JWT

🗄️ Bancos de Dados

Método Rota Descrição Auth
GET /api/databases Listar bancos JWT
POST /api/databases Criar banco JWT
GET /api/databases/:id Detalhes do banco JWT
DELETE /api/databases/:id Deletar banco JWT
POST /api/databases/:id/link/:appId Vincular à app JWT

🎮 Game Servers

Método Rota Descrição Auth
GET /api/games/eggs Listar eggs JWT
POST /api/games/create Criar servidor JWT

📊 Monitoramento

Método Rota Descrição Auth
GET /api/metrics Métricas do sistema JWT
GET /api/metrics/network Métricas de rede JWT

🌐 Proxy Reverso

Método Rota Descrição Auth
POST /api/proxy/add Adicionar proxy JWT
DELETE /api/proxy/:appId Remover proxy JWT

📝 Formato Padrão de Resposta

{
  "success": true,
  "message": "Operação realizada com sucesso",
  "data": {
    // Dados específicos da resposta
  }
}

🔑 API Keys

Formato: nx_xxxxxxxxxxxxxxxxxxxxxxxxx

Uso:

curl -H "X-API-Key: nx_your_api_key" http://localhost:3000/api/apps

🔐 Autenticação JWT

# Obter token via Discord OAuth2
# Depois usar nas requisições:
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." http://localhost:3000/api/apps

🎮 Game Hosting

Game Hosting

Servidores Suportados

Jogo Tipo Egg ID Porta Padrão
🟩 Minecraft Java PaperMC minecraft-paper 25565
🟩 Minecraft Java Forge minecraft-forge 25565
🟦 FiveM GTA V fivem 30120
🟧 CS2 Steam cs2 27015

Criar Servidor de Jogo

curl -X POST http://localhost:3000/api/games/create \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "egg_id": "minecraft-paper",
    "name": "Meu Servidor Minecraft",
    "variables": {
      "SERVER_MEMORY": "2048",
      "MC_VERSION": "1.20.4"
    }
  }'

Sistema de Eggs

Inspirado no Pterodactyl, cada egg contém:

  • 📥 Installer — Script de instalação automática
  • 🚀 Startup Command — Comando de inicialização
  • 🔧 Variáveis — Configurações personalizáveis
  • 📋 Templates — Configurações pré-definidas

🗄️ Database Hosting

Database Hosting

Criar Banco de Dados

curl -X POST http://localhost:3000/api/databases \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "postgresql",
    "name": "meu_banco"
  }'

Vincular Banco à Aplicação

curl -X POST http://localhost:3000/api/databases/DB_ID/link/APP_ID \
  -H "Authorization: Bearer YOUR_JWT"

Ao vincular, as variáveis DATABASE_URL, DATABASE_USER, DATABASE_PASSWORD e DATABASE_NAME são automaticamente injetadas na aplicação.

Tipos Suportados

Tipo Versão Porta Padrão
MySQL 8.0 3306
MariaDB Latest 3306
PostgreSQL 16 5432
MongoDB 7 27017
Redis 7 Alpine 6379
SQLite Arquivo local

🐳 Docker Support

Docker

Deploy com Dockerfile

# Crie um ZIP com seu Dockerfile
zip app.zip Dockerfile src/

# Faça o deploy
curl -X POST http://localhost:3000/api/apps/deploy/docker \
  -H "Authorization: Bearer YOUR_JWT" \
  -F "file=@app.zip"

Deploy com docker-compose.yml

A plataforma detecta automaticamente docker-compose.yml e configura o ambiente.

Recursos Docker

  • 🏗️ Build automático de imagens
  • 📦 Criação de containers isolados
  • 🔗 Rede interna nexus-network
  • 📊 Limites de recursos (RAM, CPU)
  • 📝 Logs do container
  • 🔄 Restart policy configurável

🔒 Segurança

Security
Recurso Descrição
🔐 OAuth2 Discord Autenticação segura via Discord
🔑 JWT Tokens de acesso com expiração
🗝️ API Keys Chaves no formato nx_*
🛡️ Rate Limiting 100 requisições/minuto por IP
🚫 Path Traversal Protection Proteção contra acesso indevido
📦 Isolamento de Processos Cada app em seu próprio processo
💾 Limite de RAM/CPU Recursos controlados por aplicação
⏱️ Timeout de Build Build cancelado após 10 minutos
🔄 Anti Fork Bomb Limite de 5 restarts por crash
Validação de Upload Apenas ZIP e TAR.GZ permitidos

📊 Monitoramento

Monitoring

Métricas do Sistema

curl http://localhost:3000/api/metrics \
  -H "Authorization: Bearer YOUR_JWT"

Resposta:

{
  "success": true,
  "data": {
    "memory": {
      "total": 17179869184,
      "used": 8589934592,
      "free": 8589934592,
      "percent": 50.0
    },
    "cpu": {
      "percent": 25.5,
      "cores": 8
    },
    "disk": {
      "total": 256060514304,
      "used": 128030257152,
      "free": 128030257152,
      "percent": 50.0
    },
    "network": {
      "bytes_sent": 1234567890,
      "bytes_recv": 9876543210
    },
    "uptime": "72h30m15s",
    "go_version": "go1.21.5",
    "goroutines": 42
  }
}

Métricas por Aplicação

curl http://localhost:3000/api/apps/APP_ID/metrics \
  -H "Authorization: Bearer YOUR_JWT"

🌐 Network & Proxy

Network

Rede Interna

  • 🔗 Comunicação app ↔ database via rede interna
  • 🌉 Bridge networking entre containers
  • 🔒 Isolamento entre usuários

Reverse Proxy

# Adicionar domínio
curl -X POST http://localhost:3000/api/proxy/add \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": "APP_ID",
    "domain": "meuapp.nexus-cloud.com"
  }'

Integração com Nginx, Caddy e Traefik para roteamento automático.


🖥️ Interface Web (Futuro)

Web Interface

Planejado para versões futuras:

  • 🎨 Painel React/Next.js
  • 📊 Dashboard de métricas
  • 📁 File Manager integrado
  • 🖥️ Console Web em tempo real
  • 🔧 Configuração visual
  • 📈 Gráficos de monitoramento

🛠️ Desenvolvimento

Development

Estrutura do Código

Arquivo Linhas Descrição
main.go ~1500 Lógica principal completa
data/database.go ~800 Camada de persistência

Tecnologias Utilizadas

Pacote Uso
github.com/gin-gonic/gin HTTP Router
github.com/gorilla/websocket WebSocket
github.com/docker/docker/client Docker SDK
github.com/golang-jwt/jwt/v5 JWT
github.com/mattn/go-sqlite3 SQLite Driver
github.com/rs/zerolog Logger
github.com/shirou/gopsutil/v3 Monitoramento
github.com/ulule/limiter/v3 Rate Limiter
golang.org/x/oauth2 OAuth2

Compilação

# Desenvolvimento
go run main.go

# Produção
go build -o nexus-cloud .
./nexus-cloud

# Compilação cruzada
GOOS=linux GOARCH=amd64 go build -o nexus-cloud-linux .
GOOS=windows GOARCH=amd64 go build -o nexus-cloud.exe .

🤝 Contribuindo

Contributing

Como Contribuir

  1. 🍴 Fork o repositório
  2. 🌿 Crie uma branch (git checkout -b feature/amazing-feature)
  3. 💾 Commit suas mudanças (git commit -m 'Add amazing feature')
  4. 📤 Push para a branch (git push origin feature/amazing-feature)
  5. 🔄 Abra um Pull Request

Guia de Contribuição

  • ✅ Siga a filosofia minimalista do projeto
  • ✅ Mantenha o código em poucos arquivos
  • ✅ Use comentários em português
  • ✅ Teste em Linux e Windows
  • ✅ Documente novas funcionalidades

📝 Licença

License

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

MIT License

Copyright (c) 2026 Nexus Plataforms

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...

👥 Comunidade

Community

🌐 Links Oficiais

Plataforma Link
🌐 Website nexus-plataforms.com
💬 Discord discord.gg/CM3fUfF6vw
📦 GitHub github.com/LucasDesignerF

📞 Suporte

  • 💬 Discord: Canal #suporte no servidor
  • 🐛 Bugs: Abra uma Issue
  • 💡 Sugestões: Use Discussions

🏆 Créditos

Credits

Desenvolvido por

Nexus Plataforms — Tecnologia que transforma negócios.

Inspirações


⚡ Nexus Cloud — Simplicidade Extrema, Performance Máxima ⚡

Website Discord GitHub

Feito com ❤️ pela Nexus Plataforms

About

⚡ Nexus Cloud — Plataforma minimalista de Cloud Hosting, Containers, Game Hosting e Infraestrutura. Deploy automático de bots, APIs, sites, bancos de dados e servidores de jogos (Minecraft, CS2, FiveM). Suporte a Docker, OAuth2 Discord, console WebSocket em tempo real e proxy reverso. Stack: Go + SQLite. Open source. By Nexus Plataforms.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages