https://github.com/isnanno/stellar-blade-mod-server
API REST Node.js para catalogar e distribuir mods de Stellar Blade
https://github.com/isnanno/stellar-blade-mod-server
express mods nodejs rest-api stellar-blade
Last synced: about 4 hours ago
JSON representation
API REST Node.js para catalogar e distribuir mods de Stellar Blade
- Host: GitHub
- URL: https://github.com/isnanno/stellar-blade-mod-server
- Owner: isnanno
- Created: 2026-06-04T05:16:05.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2026-07-01T21:00:16.000Z (about 6 hours ago)
- Last Synced: 2026-07-01T21:27:25.000Z (about 5 hours ago)
- Topics: express, mods, nodejs, rest-api, stellar-blade
- Language: JavaScript
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Stellar Blade Mod Server
[](server.js)
[](routes/)
[](https://store.steampowered.com/app/3489700)
Servidor backend em Node.js para gerenciar e distribuir mods do jogo **Stellar Blade** via API REST. Alimenta um instalador automático em Python que lê os mods disponíveis e os instala na pasta correta do jogo.
---
## Funcionalidades
- **API pública** — endpoint JSON consumido pelo instalador em Python
- **Página pública** — vitrine visual dos mods disponíveis
- **Painel de administração** — cadastro, edição e exclusão de mods com autenticação por senha
- **Tratamento automático de dados** — barras invertidas (`\`) convertidas para `/`, sufixo `MB` adicionado automaticamente ao peso
- **Persistência em arquivo** — mods salvos em `mods.json`, sem banco de dados
---
## Stack
| Camada | Tecnologia |
|---|---|
| Runtime | Node.js 18+ |
| Framework | Express 4 |
| Autenticação | Cookie de sessão (`cookie-parser`) |
| Armazenamento | `mods.json` (arquivo local) |
| Deploy | Square Cloud |
---
## Estrutura do projeto
```
stellar-blade-mod-server/
├── index.js # Servidor Express (rotas, lógica, HTML inline)
├── mods.json # Banco de dados dos mods (gerado automaticamente)
├── package.json
└── squarecloud.app # Configuração de deploy na Square Cloud
```
---
## Instalação local
```bash
# Clone o repositório
git clone https://github.com/seu-usuario/stellar-blade-mod-server.git
cd stellar-blade-mod-server
# Instale as dependências
npm install
# Inicie o servidor
npm start
```
O servidor sobe em `http://localhost:3000`.
---
## Rotas
### Públicas
| Método | Rota | Descrição |
|---|---|---|
| `GET` | `/` | Página visual com todos os mods |
| `GET` | `/api/mods` | JSON com todos os mods (consumido pelo instalador Python) |
### Painel Admin (requer autenticação)
| Método | Rota | Descrição |
|---|---|---|
| `GET` | `/admin` | Painel de gerenciamento |
| `POST` | `/admin/login` | Autenticação por senha |
| `GET` | `/admin/logout` | Encerra a sessão |
| `POST` | `/admin/save` | Adiciona ou edita um mod |
| `POST` | `/admin/remover` | Remove um mod pelo ID |
---
## Formato da API
`GET /api/mods` retorna um array JSON:
```json
[
{
"id": "0001",
"nome": "Outfit Eve - White",
"peso": "512 MB",
"destino": "SB/Content/Paks/~mods",
"link_download": "https://drive.google.com/uc?export=download&id=..."
}
]
```
| Campo | Tipo | Descrição |
|---|---|---|
| `id` | string | Identificador único com 4 dígitos |
| `nome` | string | Nome exibido no instalador |
| `peso` | string | Tamanho do arquivo (ex: `512 MB`) |
| `destino` | string | Caminho relativo à pasta raiz do jogo |
| `link_download` | string | URL de download direto |
> **Destino:** Use `.` para instalar diretamente na raiz da pasta do jogo, ou um subcaminho relativo como `SB/Content/Paks/~mods`.
---
## Painel de Administração
Acesse `/admin` e insira a senha definida em `ADMIN_PASSWORD` (variável de ambiente).
### Cadastro de mod
- **Nome** — nome do mod exibido no instalador
- **Peso** — apenas o número (ex: `512`); o sufixo ` MB` é adicionado automaticamente
- **Pasta de Destino** — caminho relativo; barras invertidas (`\`) são convertidas para `/` automaticamente, então você pode colar caminhos do Windows diretamente
- **Link de Download** — URL direta, preferencialmente do Google Drive (`uc?export=download&id=...`)
### Editar e excluir
Cada mod listado na tabela possui dois botões:
- **Editar** — preenche o formulário com os dados existentes para edição
- **Excluir** — remove o mod após confirmação
---
## Deploy na Square Cloud
1. Certifique-se de que o `squarecloud.app` está configurado corretamente:
```ini
DISPLAY_NAME=Stellar Blade Mod Server
DESCRIPTION=Servidor de mods para o instalador de Stellar Blade
MAIN=index.js
MEMORY=256
VERSION=recommended
START=node index.js
```
2. Gere o zip com os arquivos necessários:
```
index.js
package.json
mods.json
squarecloud.app
```
> **Não inclua** a pasta `node_modules` — a Square Cloud instala as dependências automaticamente.
3. Faça o upload do zip no painel da [Square Cloud](https://squarecloud.app).
---
## Variáveis de ambiente
| Variável | Descrição |
|----------|-----------|
| `PORT` | Porta HTTP (padrão: `3000`) |
| `ADMIN_PASSWORD` | Senha do painel `/admin` (**obrigatória**) |
Copie `.env.example` para `.env` localmente ou configure os secrets no deploy (Square Cloud).
```bash
PORT=3000
ADMIN_PASSWORD=sua_senha_forte
```
> **Importante:** nunca commite a senha no código. Rotacione a senha se ela já apareceu em versões antigas do repositório.