OpenShorts
Transforme vídeos longos em cortes verticais virais e publique-os no TikTok, Instagram e YouTube: detecção de momentos por IA, reenquadramento 9:16, legendas e dublagem.
Documentação
OpenShorts.app
Plataforma de vídeo com IA de código aberto com 3 ferramentas em uma: Gerador de Clipes, AI Shorts (vídeos UGC com atores de IA) e YouTube Studio.

Duas pessoas na câmera? O OpenShorts as empilha em vez de reduzir o plano aberto, coloca as legendas na divisória onde não cobrem ninguém e volta para o recorte com rastreamento facial quando o corte vai para uma pessoa. A IA escolhe o layout por vídeo; nada para configurar.
Duas formas de executar, mesmo software em ambas:
| Self-hosted (este repositório) | Hospedado em openshorts.app | |
|---|---|---|
| Preço | Gratuito para sempre, MIT | Plano gratuito, pago a partir de $12/mês |
| Velocidade | 5 a 8 min por vídeo de 8 min na CPU | Cerca de 50s na nossa GPU NVIDIA |
| Chaves de API | Traga suas próprias Gemini, ElevenLabs, fal.ai | Gemini incluída, nada para configurar |
| Marca d'água / limites | Nenhum, nunca | Marca d'água e 20 min/mês no plano gratuito, nenhum no pago |
| Configuração | Docker, 8GB+ de RAM, downloads de modelos | Entre e cole um link |
| MCP / API para agentes | Mesmo endpoint /mcp, mas apenas enquanto sua máquina estiver ligada | Endpoint sempre ativo em mcp.openshorts.app, chaves de API em um clique |
| Seus dados | Seu servidor | Nossos |
O self-hosting é genuinamente gratuito e sempre será. Custa a você uma máquina, suas próprias chaves de API e o tempo para mantê-lo funcionando. Os planos hospedados existem para cobrir esse hardware e essas chaves, não para desbloquear recursos.
https://github.com/user-attachments/assets/b45fa983-16b4-48b5-ac5b-a267836b9ad9
Tutorial em Vídeo: Como funciona
Clique na imagem acima para assistir ao passo a passo completo.
3 Ferramentas em 1 Plataforma
1. Gerador de Clipes
Transforme seus vídeos longos — podcasts, webinars, transmissões ao vivo, vlogs, entrevistas — em shorts 9:16 prontos para viralizar no TikTok, Instagram Reels e YouTube Shorts.

2. AI Shorts (Criador de Vídeos UGC)
Gere vídeos de marketing com atores de IA para qualquer produto ou negócio. Sem câmera, sem estúdio, sem orçamento para influenciadores. Basta descrever seu produto ou colar uma URL.

- Dois modos de custo: Baixo Custo (
$0,65/vídeo) e Premium ($2/vídeo) - Funciona para qualquer negócio: SaaS, restaurantes, e-commerce, coaching, negócios locais
- Atores gerados por IA com sincronização labial, narração, b-roll e legendas estilo TikTok
- Escolha entre uma galeria de avatares compartilhada ou envie sua própria foto
- Publique diretamente no TikTok, Instagram e YouTube
3. YouTube Studio
Kit completo e gratuito de ferramentas de IA para YouTube: miniaturas, títulos, descrições e publicação direta.

- Gerador de miniaturas com IA e sobreposição de rosto
- 10 sugestões de títulos virais com chat de refinamento
- Descrições geradas automaticamente com timestamps de capítulos
- Publicação com um clique no YouTube
Galeria de Vídeos UGC
Todos os vídeos e avatares gerados são salvos em uma galeria pública com páginas de SEO para cada vídeo.

- Página de galeria pública com reprodução ao passar o mouse (
/gallery) - Páginas de vídeo individuais com SEO e meta tags og:video (
/video/{id}) - Dados estruturados JSON-LD para mecanismos de busca
- Galeria de avatares com histórico de prompts
Recursos Principais
Gerador de Clipes
- Detecção de Momentos Virais: Google Gemini 3.1 Flash-Lite analisa transcrições e limites de cenas para detectar 3-15 momentos de alto potencial
- Funciona totalmente local se você quiser: aponte
LLM_BASE_URLpara Ollama, LM Studio, vLLM ou qualquer servidor compatível com OpenAI e o seletor de momentos roda no seu próprio modelo, sem necessidade de chave Google (veja Executar sem chave Google) - Recorte Inteligente 9:16: Reenquadramento com IA por cena — modo TRACK (rastreamento facial MediaPipe + YOLOv8), modo GENERAL (fundo desfocado), modo SPLIT (dois falantes empilhados, legendas na divisória) e modo SCREENCAST (tela sobre o apresentador); o layout é escolhido por vídeo pelo Gemini ou forçado pelo painel
- Legendas Automáticas: faster-whisper com timestamps em nível de palavra, estilizadas e gravadas nos clipes
- Dublagem de Voz com IA: Integração ElevenLabs para 30+ idiomas com clonagem de voz
- Sobreposições de Texto de Gancho: Sobreposições de texto geradas por IA para chamar atenção
- Efeitos de Vídeo com IA: Filtros FFmpeg gerados pelo Gemini para efeitos profissionais
Pipeline AI Shorts
- Analisar: Raspar URL do site + pesquisa na web, ou gerar a partir de descrição manual
- Roteiro: IA escreve roteiros virais (formato gancho - problema - solução - CTA)
- Ator: Gerar atores de IA com Flux 2 Pro ou selecionar da galeria compartilhada
- Voz: Narração TTS ElevenLabs (inglês/espanhol, masculino/feminino)
- Vídeo: Geração de cabeça falante (Hailuo 2.3 Fast img2video + VEED Lipsync)
- B-roll: Visuais gerados por IA com efeito Ken Burns
- Composição: Montagem final FFmpeg com legendas e sobreposições de gancho
- Publicar: Postagem direta no TikTok, Instagram Reels, YouTube Shorts via Upload-Post
YouTube Studio
- Geração de títulos com IA com 10 opções virais
- Chat interativo de refinamento para títulos
- Geração de miniaturas com IA com rosto e fundo personalizados
- Descrições automáticas com timestamps de capítulos da transcrição Whisper
- Publicação direta no YouTube via Upload-Post
Publicação Automática em Redes Sociais
- Postagem com um clique para TikTok, Instagram Reels e YouTube Shorts simultaneamente
- Agende uploads para qualquer data e hora — planeje seu calendário de conteúdo e deixe o OpenShorts publicar automaticamente
- Distribuição multi-plataforma — publique em todas as suas redes sociais de uma só vez a partir de uma única interface
- Integração Upload-Post com uploads assíncronos
Infraestrutura
- Backup em nuvem S3 (bucket privado para clipes, bucket público para galeria/avatares)
- Páginas de galeria com SEO servidas por FastAPI com dados estruturados JSON-LD
- Galeria de avatares compartilhada entre todos os usuários
- Fila de trabalhos assíncrona com concorrência configurável
Para Quem É Isso?
- Criadores de conteúdo — Transforme vídeos longos em shorts automaticamente, publique em todas as plataformas de uma vez
- Agências de marketing — Gere vídeos UGC para clientes em escala, sem atores ou estúdios
- Fundadores de SaaS — Crie demonstrações de produto e shorts de marketing a partir de apenas uma URL
- Marcas de e-commerce — Vídeos de produto com atores de IA para TikTok Shop, Instagram, YouTube
- Negócios locais — Restaurantes, academias, imobiliárias, coaching — marketing em vídeo acessível
- Desenvolvedores — Self-hosted, personalize o pipeline, integre via API
Vitrine AI Shorts
Vídeos gerados com OpenShorts AI Shorts — sem câmera, sem estúdio, sem atores:
![]() | ![]() | ![]() |
| Biohacking para Investidores · BAIXO CUSTO | Arma Secreta para Devs · BAIXO CUSTO | El Secreto de los Agentes de IA · PREMIUM |
Veja todos os vídeos em openshorts.app/gallery
OpenShorts vs Concorrentes
| Recurso | OpenShorts | Opus Clip | CapCut | Vizard | Klap | Descript |
|---|---|---|---|---|---|---|
| Preço | Self-hosted gratuito hospedado a partir de $12/mês | $15-29/mês | $8/mês | $15-20/mês | $23-63/mês | $24-65/mês |
| Self-hosted | Sim | Não | Não | Não | Não | Não |
| Código aberto | Sim | Não | Não | Não | Não | Não |
| Marca d'água | Nunca no self-hosted apenas no plano gratuito quando hospedado | Nível gratuito | Alguns | Nível gratuito | Nível gratuito | Nível gratuito |
| Limites de upload | Nenhum no self-hosted por plano quando hospedado | 10-30GB | Baseado em créditos | 60min-10hr | 10-100 vídeos/mês | 60min-40hr |
| Detecção de clipes com IA | Sim | Sim | Sim | Sim | Sim | Sim |
| Reenquadramento inteligente 9:16 | Sim | Sim | Sim | Sim | Sim | Não |
| Legendas automáticas | Sim | Sim | Sim | Sim | Sim | Sim |
| Dublagem de voz (30+ idiomas) | Sim | Não | Apenas Pro | Não | Apenas Pro | Apenas Business |
| Atores UGC com IA | Sim | Não | Não | Não | Não | Não |
| Efeitos de vídeo com IA | Sim | Não | Sim | Não | Não | Não |
| Sobreposições de texto de gancho | Sim | Não | Não | Não | Não | Não |
| YouTube Studio (títulos, miniaturas) | Sim | Não | Não | Não | Não | Não |
| Publicação automática em redes sociais | Sim | Apenas Pro | Apenas TikTok | Apenas pago | Apenas pago | Não |
| Agendar uploads | Sim | Apenas Pro | Não | Apenas pago | Apenas pago | Não |
| Privacidade de dados | Seu servidor | Nuvem deles | Nuvem deles | Nuvem deles | Nuvem deles | Nuvem deles |
| Funciona com LLM local (Ollama) | Sim | Não | Não | Não | Não | Não |
Quanto Custa?
O self-hosting do OpenShorts é gratuito. Você fornece a máquina e paga apenas pelas APIs de IA que usa, e a maioria tem níveis gratuitos generosos:
| Serviço | Nível Gratuito | Custo Pago | Usado Para |
|---|---|---|---|
| Google Gemini | Teste gratuito com limites generosos | < $0,01 por vídeo de 10 min | Detecção de momentos virais, geração de roteiros, pesquisa na web |
| LLM Local (Ollama, LM Studio, vLLM...) | Gratuito, seu hardware | $0 | Detecção de momentos virais em vez do Gemini (LLM_BASE_URL) |
| fal.ai | Pague por uso | ~$0,50-1,50 por AI Short | Geração de atores, vídeo de cabeça falante, sincronização labial |
| ElevenLabs | Nível gratuito disponível | Pague por uso | Narração, dublagem de voz |
| Upload-Post | 10 uploads gratuitos/mês para todas as redes (sem cartão de crédito) | Pague por uso | Publicação automática no TikTok, Instagram, YouTube |
| AWS S3 | Opcional | ~$0,023/GB | Backup em nuvem para clipes e galeria |
Resumo: Você pode gerar clipes praticamente de graça com Gemini e publicar 10 vídeos/mês em todas as redes sociais a custo zero com Upload-Post.
Não quer executar nada disso? openshorts.app é o mesmo software no nosso hardware: nossa GPU NVIDIA gera clipes de um vídeo de 8 minutos em cerca de 50 segundos em vez dos 5 a 8 minutos que leva em uma CPU típica, a chave Gemini está incluída e a publicação automática já está configurada. O plano gratuito é de 20 minutos por mês com marca d'água e sem cartão de crédito; planos pagos começam em $12/mês por 100 minutos sem marca d'água.
Requisitos
- Docker e Docker Compose
- Chave de API Google Gemini (Grátis — obtenha aqui) — necessária para todos os recursos de IA
- Chave de API fal.ai (Pague por uso) — necessária para AI Shorts (geração de atores, vídeo, sincronização labial)
- Chave de API ElevenLabs (Nível gratuito) — necessária para narração/dublagem
- Chave de API Upload-Post (nível gratuito) — necessária para postagem direta em redes sociais
Começando
1. Clone
git clone https://github.com/mutonby/openshorts.git
cd openshorts
2. Configure (opcional)
cp .env.example .env
# Edit .env with your AWS keys for S3 backup
3. Inicie
docker compose up --build
4. Abra o Painel
Navegue até http://localhost:5175
- Vá para Configurações e insira suas chaves de API (Gemini, fal.ai, ElevenLabs, Upload-Post)
- Gerador de Clipes: Envie um vídeo longo para gerar shorts virais
- AI Shorts: Descreva seu produto ou cole uma URL para gerar vídeos de marketing UGC
- YouTube Studio: Gere miniaturas, títulos e descrições para YouTube
- Galeria UGC: Navegue por todos os vídeos e avatares gerados
5. Aceleração por GPU (opcional, NVIDIA)
A imagem padrão é apenas CPU. Com uma placa NVIDIA (qualquer placa com NVENC, ex.: RTX 4060), um vídeo de 8 minutos é transformado em clipes em cerca de um minuto em vez de 5 a 8. Nada é passado no sentido de VM — o contêiner apenas recebe acesso à GPU do host.
Host: instale o driver NVIDIA (nvidia-smi deve funcionar) e o NVIDIA Container Toolkit:
sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi # sanity check
No Windows, use o Docker Desktop com o backend WSL2 e o driver NVIDIA do Windows; nenhum driver dentro do WSL.
Compose: crie docker-compose.override.yml ao lado de docker-compose.yml (detectado automaticamente). GPU: "1" adiciona cuBLAS/cuDNN e onnxruntime-gpu à imagem (~2 GB); video é necessário para NVENC.
services:
backend:
build:
context: .
args:
GPU: "1"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu, video]
.env:
WHISPER_MODEL=large-v3-turbo
WHISPER_DEVICE=cuda
WHISPER_COMPUTE=float16
FFMPEG_ENCODER=auto # probes h264_nvenc at startup, falls back to x264
TRANSCRIBE_BACKEND=parakeet # optional: ~2x faster than whisper, 25 European languages, auto-falls back to whisper
ASR_GPU_CONCURRENCY=1
**Verificação:**
```bash
docker compose up --build -d
docker exec openshorts-backend nvidia-smi -L
docker exec openshorts-backend ffmpeg -hide_banner -f lavfi -i testsrc=size=256x256:rate=1 -frames:v 1 -c:v h264_nvenc -f null -
```
O log do backend no primeiro job relata o codificador escolhido e o dispositivo de transcrição. Um erro de CUDA no whisper (ex.: VRAM esgotada) tenta novamente uma vez na CPU automaticamente. 8 GB de VRAM são suficientes para `large-v3-turbo` fp16 mais os modelos de detecção.
6. Executar sem chave do Google (LLM local, opcional)
A única chamada em nuvem no pipeline de clipes é o seletor de momentos: ele envia a transcrição (nunca o vídeo) para o Gemini. Aponte-o para qualquer servidor compatível com OpenAI e todo o pipeline permanece na sua máquina:
# .env
LLM_BASE_URL=http://host.docker.internal:11434/v1 # Ollama on the host
LLM_MODEL=qwen2.5:14b # any chat model that follows instructions
# LLM_API_KEY=... # only if your server checks one (vLLM --api-key, OpenRouter)
Funciona com Ollama, LM Studio, vLLM, servidor llama.cpp, LocalAI e OpenRouter. O painel para de pedir uma chave do Gemini quando isso é configurado. Duas coisas para saber:
- Tamanho do contexto. Uma chamada de pontuação carrega três janelas de transcrição
(~2-3k tokens) e a chamada de detalhes até dez (~5k em um podcast longo).
O Ollama usa como padrão um contexto de 4096 tokens e trunca silenciosamente, então execute-o
com
OLLAMA_CONTEXT_LENGTH=16384(ou definanum_ctxem um Modelfile); aumenteLLM_SCORE_BATCHacima de 3 somente se seu contexto permitir. Modelos de 7-8B retornam JSON válido de forma confiável; os de 3B não. - O que ainda precisa do Gemini. Qualquer coisa que precise olhar para frames: o
seletor automático de layout (
AUTO_LAYOUT), o detector de conteúdo na tela e vídeos silenciosos (sem fala para recortar). Sem uma chave do Gemini, esses recursos voltam ao corte simples com rastreamento facial, e um vídeo silencioso falha com uma mensagem que explica isso. Adicione uma chave junto comLLM_BASE_URLe você terá ambos.
Pipeline Técnico
Gerador de Clipes
- Ingestão — Upload de vídeo local (ou ingestão por URL auto-hospedada via yt-dlp)
- Transcrição — faster-whisper com timestamps em nível de palavra
- Detecção — PySceneDetect para limites de cena
- Análise — Gemini identifica 3-15 momentos virais (15-60s cada)
- Extração — Corte preciso de clipes com FFmpeg
- Reenquadramento — Corte vertical com IA e rastreamento de assunto
- Efeitos — Legendas, ganchos, efeitos de vídeo com IA
- Publicação — Backup em S3 + distribuição social Upload-Post
AI Shorts
- Análise — Raspagem de site + pesquisa web com Gemini (ou descrição manual)
- Roteiro — Gemini gera roteiros virais com segmentos
- Ator — Geração de retrato com Flux 2 Pro (ou galeria/upload)
- Voz — Narração com ElevenLabs TTS
- Vídeo — Hailuo 2.3 Fast img2video + Lipsync VEED (Baixo Custo) ou Kling Avatar v2 (Premium)
- B-roll — Geração de imagem com Flux 2 Pro + efeito Ken Burns
- Composição — Montagem com FFmpeg, legendas ASS e sobreposições de gancho
- Galeria — Upload para S3 público com metadados para páginas de SEO
- Publicação — Upload-Post para TikTok, Instagram, YouTube
Automatize: Servidor MCP, API REST e Webhooks
Você não precisa do painel. Todo o pipeline pode ser chamado por agentes de IA e scripts.
Servidor MCP (/mcp)
O OpenShorts inclui um servidor MCP integrado, então Claude, ChatGPT, Cursor ou qualquer cliente MCP pode recortar e publicar vídeos para você:
claude.ai e ChatGPT: cole https://mcp.openshorts.app/mcp como um conector personalizado (Configurações → Conectores) e aprove o acesso em openshorts.app. O servidor usa OAuth 2.1 com registro dinâmico de clientes, então não há chave para copiar; a conexão aparece em Conta → Chaves de API, onde revogá-la desconecta o aplicativo.
# Claude Code / Cursor / n8n (hosted): create an API key in your account page
claude mcp add --transport http openshorts https://mcp.openshorts.app/mcp \
--header "Authorization: Bearer osk_..."
# Self-hosted (no key needed, BYOK rules apply):
claude mcp add --transport http openshorts http://localhost:8000/mcp
# Self-hosted without running the web server: same tools over stdio
claude mcp add openshorts -- python mcp_stdio.py
Ferramentas: process_video (URL ou upload_id; captions: false quando a fonte já tem legendas, auto_hook: false para pular a linha de gancho, queimada por padrão como no painel), create_upload (entregue um arquivo local ao agente: envie os bytes via PUT, depois processe), get_job_status, list_clips, get_quota, add_subtitles, recut_clip, publish_clip. Um prompt como "recorte este podcast e agende os 3 melhores para o TikTok" agora é uma linha no agente de sua escolha.
API REST + chaves de API
Contas hospedadas podem gerar chaves de API osk_... (página da conta). Uma chave autentica você em todos os lugares — mesmo plano, mesmos minutos, mesma propriedade de jobs:
curl -X POST https://api.openshorts.app/api/process \
-H "Authorization: Bearer osk_..." -H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=...", "acknowledged": true,
"webhook_url": "https://your-server.com/hooks/openshorts"}'
Documentação interativa em /docs (OpenAPI) em qualquer instância.
Webhooks de conclusão
Passe webhook_url (e opcionalmente webhook_secret) para POST /api/process e você recebe exatamente um POST quando o job atinge um estado terminal — sem loops de polling nos seus pipelines n8n / Zapier / cron:
{"event": "job.completed", "job_id": "…",
"clips": [{"index": 0, "title": "…", "video_url": "…", "download_url": "…"}]}
Com um segredo, o corpo é assinado: X-OpenShorts-Signature: sha256=<hmac-sha256(body)>.
CLI
A mesma API do terminal, zero dependências (cli/):
pip install openshorts # or: uvx openshorts
export OPENSHORTS_API_KEY=osk_... # hosted
# export OPENSHORTS_API_URL=http://localhost:8000 # self-hosted, no key
openshorts process "https://youtube.com/watch?v=..." --wait
openshorts clips <job_id>
openshorts publish <job_id> 0 --platforms tiktok,youtube
Habilidade de agente
skills/openshorts/SKILL.md segue o padrão aberto
Agent Skills, então funciona em qualquer
agente com suporte a habilidades:
# Claude Code (and most agents): copy the folder into the skills directory
cp -r skills/openshorts ~/.claude/skills/
# Hermes Agent: install straight from this repo
hermes skills install mutonby/openshorts/skills/openshorts
# OpenClaw: from ClawHub
openclaw skills install @mutonby/openshorts
n8n
Um workflow importável (URL de vídeo na entrada, clipes prontos para publicação na saída, sem polling)
está em examples/n8n/.
Stack Tecnológica
| Camada | Tecnologia |
|---|---|
| Backend | Python 3.11, FastAPI, google-genai, faster-whisper, ultralytics (YOLOv8), mediapipe, opencv-python, yt-dlp, FFmpeg, httpx |
| Frontend | React 18, Vite 4, Tailwind CSS 3.4 |
| APIs de IA | Google Gemini, fal.ai (Flux, Hailuo, VEED, Kling), ElevenLabs |
| Infraestrutura | Docker + Docker Compose, AWS S3 |
| Publicação | API Upload-Post (TikTok, Instagram, YouTube) |
Variáveis de Ambiente
Lado do servidor (.env):
| Variável | Descrição |
|---|---|
AWS_ACCESS_KEY_ID | Chave de acesso AWS para S3 |
AWS_SECRET_ACCESS_KEY | Chave secreta AWS |
AWS_REGION | Região AWS (padrão: us-east-1) |
AWS_S3_BUCKET | Bucket privado para backup de clipes |
AWS_S3_PUBLIC_BUCKET | Bucket público para galeria/avatares |
MAX_CONCURRENT_JOBS | Limite de processamento concorrente (padrão: 5) |
LLM_BASE_URL | Servidor compatível com OpenAI para o seletor de momentos (Ollama, vLLM, LM Studio...). Defina-o e a chave do Gemini se torna opcional |
LLM_MODEL | Nome do modelo nesse servidor (padrão llama3.1:8b) |
LLM_API_KEY | Token Bearer para esse servidor, se ele verificar um |
LLM_SCORE_BATCH | Janelas de transcrição por chamada de pontuação (padrão 3 local, 8 Gemini) |
Lado do cliente (criptografado no localStorage):
| Chave | Descrição |
|---|---|
GEMINI_API_KEY | Google Gemini — obrigatória, a menos que LLM_BASE_URL esteja definido (então apenas para seleção de layout e vídeos silenciosos) |
FAL_KEY | fal.ai — obrigatória para AI Shorts |
ELEVENLABS_API_KEY | ElevenLabs — obrigatória para narração/dublagem |
UPLOAD_POST_API_KEY | Upload-Post — obrigatória, para publicação social |
Segurança e Desempenho
- Execução sem root: Contêineres rodam como
appuserdedicado - Controle de concorrência: Fila de jobs baseada em semáforo (
MAX_CONCURRENT_JOBS) - Limpeza automática: Purga automática de jobs antigos (retenção de 1h)
- Chaves criptografadas: Chaves de API criptografadas no lado do cliente, nunca armazenadas no servidor
- Validação de upload: Uploads de imagem validados quanto a formato e tamanho mínimo
- Limites de arquivo: Proteção de limite de upload de 2GB
Configuração de Mídias Sociais (Upload-Post)
- Registre-se: app.upload-post.com/login
- Crie um perfil: Vá para Manage Users
- Conecte contas: Vincule TikTok, Instagram e/ou YouTube
- Obtenha a chave de API: Navegue até API Keys
- Use no OpenShorts: Cole a chave em Configurações
Histórico de Estrelas
Contribuições
Contribuições são bem-vindas! Seja adicionando novos modelos de IA, melhorando o pipeline de sincronização labial ou construindo novos recursos — sinta-se à vontade para abrir um PR.
Licença
Licença MIT para o aplicativo principal — o OpenShorts é seu para usar, modificar e escalar.
Exceção: o diretório cloud/ (cobrança, chaves gerenciadas e a infraestrutura do serviço hospedado por trás do flag opcional BILLING_ENABLED) é de código-fonte disponível sob a Licença Comercial OpenShorts. Você pode lê-lo, modificá-lo e auto-hospedá-lo para uso pessoal ou interno, mas não pode oferecê-lo a terceiros como um serviço pago/hospedado. Auto-hospedar o aplicativo principal nunca requer este diretório.



