Saleor Store
우리 컬렉션을 쇼핑하세요
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Cardápio online com pedido, checkout, nota fiscal automática (NFC-e) e painel do dono. Roda na Vercel (site e API) com banco Supabase (Postgres e armazenamento das fotos).
Site no ar: https://garage-burger-delta.vercel.app (painel do dono em /admin/).
/): as 10 categorias e os 79 itens copiados do InstaDelivery, com fotos. O cliente pode tirar ingredientes, pôr adicionais e escrever uma observação./checkout): nome, CPF (validado), WhatsApp e localização atual (GPS) são obrigatórios. Também tem retirada no balcão e pagamento por Pix, cartão ou dinheiro com troco./pedido?c=CÓDIGO): status do pedido, QR do Pix, nota fiscal e botão do WhatsApp./admin/, link discreto no rodapé): login com e-mail e senha validado no servidor. Tem pedidos em tempo real, preços, itens, ingredientes, adicionais, estoque, financeiro com gráficos e configurações (loja, entrega, Pix e nota fiscal).server/schema.sql) e importa o cardápio.[YOUR-PASSWORD] pela senha do banco.https://abcd1234.supabase.co).service_role (clique em Reveal). Essa chave é secreta: use só na Vercel e nunca no navegador.Entre em vercel.com com a sua conta do GitHub.
Add New… → Project e importe o repositório joaovitordhdid/garage-burguer.
Em Framework Preset deixe Other. Não precisa mudar o comando de build nem a pasta: o vercel.json já configura tudo.
Abra Environment Variables e cadastre:
| Variável | Valor |
|---|---|
DATABASE_URL | a connection string do Transaction pooler (passo 1) |
ADMIN_EMAIL | o seu e-mail de login no painel |
ADMIN_PASSWORD | uma senha forte (só vale no primeiro acesso, depois troque pelo painel) |
SUPABASE_URL | Project URL do Supabase |
SUPABASE_SERVICE_ROLE_KEY | chave service_role do Supabase |
FOCUS_NFE_TOKEN, NFE_MODE | opcionais: token e modo da nota fiscal (senão vale o que estiver no painel) |
Clique em Deploy. Em um ou dois minutos o site está no ar no endereço https://<projeto>.vercel.app.
Abra o site uma vez (o primeiro acesso cria as tabelas, a conta do dono e o cardápio) e entre em /admin/.
Daqui em diante, cada git push no GitHub publica sozinho uma nova versão. Para usar um domínio próprio: Project → Settings → Domains.
Se alguma variável mudar, refaça o deploy (Deployments → ⋯ → Redeploy) para ela valer.
public/ é servido direto pela CDN da Vercel (/checkout, /pedido e /admin/ funcionam sem .html)./api/* vai para uma única função serverless (api/index.js), que é o mesmo app Express do npm start.uploads, criado sozinho no primeiro envio), porque o disco da Vercel é somente leitura.schema.sql liga o RLS em todas as tabelas, e assim a API pública do Supabase não expõe nada.Precisa do Node.js 22.
npm install
[email protected] ADMIN_PASSWORD=umaSenhaForte npm start
# abre http://localhost:3000
Sem DATABASE_URL, o sistema usa um Postgres embutido (PGlite) salvo na pasta data/, e você não precisa instalar nada. Para usar o banco do Supabase no computador, coloque a DATABASE_URL no ambiente (veja .env.example).
Sem as variáveis do Supabase Storage, as fotos enviadas ficam em public/images/uploads/.
A conta do dono é criada no primeiro start com o ADMIN_EMAIL e o ADMIN_PASSWORD informados. Se você não informar, uma senha aleatória aparece no terminal. Depois dá para trocar a senha no painel, em Configurações.
Para recomeçar do zero com o cardápio original no computador: npm run reset-db (apaga data/) e reinicie.
Veja também o arquivo .env.example.
| Variável | Para quê |
|---|---|
DATABASE_URL | Postgres do Supabase (Transaction pooler, porta 6543). Sem ela, roda o banco embutido em ./data |
ADMIN_EMAIL, ADMIN_PASSWORD | Conta do dono, criada no primeiro acesso |
SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY | Envio de fotos pelo painel (Supabase Storage) |
FOCUS_NFE_TOKEN, NFE_MODE | Opcional: substitui o token e o modo configurados no painel |
NODE_ENV=production | Cookie seguro e desliga os dados de exemplo (na Vercel isso já é automático no deploy de produção) |
ORDER_RATE_LIMIT | Pedidos por IP a cada 10 min (padrão 8, contado por instância) |
DATABASE_POOL_MAX | Conexões por instância (padrão 3) |
DATA_DIR | Só local: pasta do banco embutido (padrão ./data) |
Veja docs/NOTA-FISCAL.md. O sistema começa em modo teste: as notas saem como "sem valor fiscal". Para emitir de verdade, você precisa do certificado digital A1, do CSC da Sefaz-SE e de uma conta na Focus NFe.
server.js app Express: API pública do cardápio, login, preparo do banco
api/index.js função serverless da Vercel (exporta o app)
vercel.json rotas, arquivos estáticos e cabeçalhos de segurança
server/schema.sql tabelas do Postgres (idempotente, roda a cada start)
server/db.js banco: Supabase via DATABASE_URL ou PGlite local
server/auth.js senha bcrypt + sessão em cookie httpOnly
server/seed.js importa server/menu-source.json se o cardápio estiver vazio
server/routes/orders.js checkout, Pix, acompanhamento
server/routes/admin.js API do painel (toda protegida)
server/nfe/ emissor NFC-e (teste e Focus NFe), DANFE, Pix, QR code
public/ cardápio, checkout, pedido e painel (/admin)
scripts/ extração do cardápio original
A versão de demonstração em HTML puro (demo/, npm run demo) foi feita para o banco SQLite antigo e não gera mais. Ela fica congelada como está.