An open API service indexing awesome lists of open source software.

https://github.com/isnanno/sushiproxy

Proxy Express que serve ZIPs de scripts Lua Steam via GitHub API (LuaTools / Virtuous)
https://github.com/isnanno/sushiproxy

express lua nodejs proxy steam

Last synced: 1 day ago
JSON representation

Proxy Express que serve ZIPs de scripts Lua Steam via GitHub API (LuaTools / Virtuous)

Awesome Lists containing this project

README

          

# SushiProxy

> Proxy Express que serve arquivos `.zip` de scripts Lua para jogos Steam a partir de um **repositório GitHub privado** — usado pelo ecossistema LuaTools / Virtuous.

[![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?logo=node.js&logoColor=white)](package.json)
[![Express](https://img.shields.io/badge/Express-API-000000?logo=express&logoColor=white)](server.js)
[![Steam](https://img.shields.io/badge/Steam-Lua%20scripts-1B2838?logo=steam&logoColor=white)](https://store.steampowered.com)
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)

---

## Como funciona

```
Cliente (LuaTools / Virtuous)


GET /game/:appid ──► GitHub API (repo privado)
│ │
▼ ▼
stream .zip {appid}.zip (Git LFS)
```

O servidor busca `https://api.github.com/repos/{OWNER}/{REPO}/contents/{appid}.zip` com token e devolve o ZIP como download.

## Variáveis de ambiente

| Variável | Descrição |
|----------|-----------|
| `PORT` | Porta HTTP (padrão: `3000`) |
| `GITHUB_TOKEN` | Personal Access Token com acesso ao repo privado |
| `OWNER` | Dono do repositório GitHub (editar em `server.js` ou via env) |
| `REPO` | Nome do repo com os ZIPs (padrão: `sushitools-games-repo`) |
| `BRANCH` | Branch (padrão: `main`) |

## Setup local

```bash
npm install
export GITHUB_TOKEN=ghp_...
# Edite OWNER em server.js ou mova para env
node server.js
```

Teste: `http://localhost:3000/game/730` (substitua pelo AppID desejado)

## Repositório de jogos (Git LFS)

Os arquivos `{appid}.zip` devem estar no repo privado. O `.gitattributes` neste projeto documenta tracking LFS para `*.zip`.

Estrutura esperada no repo de jogos:

```
sushitools-games-repo/
├── 730.zip
├── 570.zip
└── ...
```

## Deploy

Compatível com Square Cloud, Railway, VPS, etc. Configure `GITHUB_TOKEN` como secret.

## Projetos relacionados

- [luatools-steam-plugin](../luatools-steam-plugin) — plugin Millennium
- [virtuous-steam-installer](../virtuous-steam-installer) — instalador standalone GUI

## Licença

MIT — veja [LICENSE](LICENSE).