Este é um projeto de Sistema de Gerenciamento de Maquina virtual desenvolvido com Next.js. O projeto utiliza Prisma para gerenciamento de banco de dados e várias bibliotecas como Bootstrap, JWT, Mercado Pago, entre outras, para fornecer funcionalidades completas de autenticação, gestão de usuários e solicitações de VPS.
- Autenticação de Usuário: Registro, login e gerenciamento de sessão com tokens JWT.
- Gerenciamento de Usuários: Armazenamento seguro de senhas com bcrypt, e-mails únicos para cada usuário.
- Solicitações de VPS: Os usuários podem solicitar VPS com configurações personalizadas, como número de cores, memória, armazenamento, etc.
- Pagamentos: Integração com Mercado Pago para gerenciar pagamentos de VPS.
- Configuração de maquina virtual: Usando NodeJS para connectar ao OracleVM e Instanciar uma maquina após a conclusão do pagamento.
- Next.js: Framework React para renderização no lado do servidor.
- Prisma: ORM para gerenciamento de banco de dados PostgreSQL.
- PostgreSQL: Banco de dados relacional utilizado no projeto.
- Bootstrap: Framework CSS para design responsivo.
- JWT: Gerenciamento de autenticação segura.
- Mercado Pago: Integração de pagamento para VPS.
As seguintes rotas de API estão disponíveis no backend:
api/admin/user
: Gerenciamento de usuários pelo administrador.api/user/login
: Autenticação de usuário (login).api/user/register
: Registro de novos usuários.api/user/user
: Obtenção de dados do usuário autenticado.api/vps/id
: Consulta de informações de um VPS específico.api/vps/compdownload
: Download de componentes de VPS.api/vps/deleteUnpaid
: Exclusão de VPS não pagos.api/vps/orders
: Gerenciamento de pedidos de VPS.
- Node.js
- PostgreSQL
-
Clone o repositório:
git clone https://github.com/seu-usuario/nextjs-underhost-system.git cd nextjs-underhost-system
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente: Crie um arquivo
.env
na raiz do projeto e adicione suas configurações:DATABASE_URL=postgresql://usuario:senha@localhost:5432/nome_do_banco JWT_SECRET=sua_chave_secreta MERCADOPAGO_ACCESS_TOKEN=seu_token_de_acesso
-
Execute as migrações do banco de dados:
npm run migrate
-
Inicie o servidor de desenvolvimento:
npm run dev
dev
: Inicia o servidor de desenvolvimento.build
: Cria a build de produção.start
: Inicia o servidor em modo de produção.lint
: Executa o linter para verificar erros de código.dbreset
: Reseta o banco de dados e aplica migrações.migrate
: Aplica as migrações do banco de dados.dbmanage
: Abre a interface de gerenciamento do banco de dados com Prisma Studio.
- next.config.js: Configurações do Next.js para ignorar o ESLint durante a build de produção.
- tsconfig.json: Configurações do TypeScript para o projeto.
- schema.prisma: Definições do modelo de dados utilizando Prisma.
- User: Modelo para gerenciamento de usuários.
- VPSRequest: Modelo para solicitações de VPS.
- Payment: Modelo para gerenciamento de pagamentos.
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
Este projeto está licenciado sob a MIT License.