O Gitea nao envia Access-Control-Allow-Origin, entao o navegador bloqueava a leitura do Markdown a partir de cursos.overia.com.br e toda aula mostrava "Failed to fetch". Novo /aulas/<caminho>.md no nginx busca o arquivo no Gitea e o serve no proprio dominio. So aceita GET/HEAD de .md sob courses/ do repositorio ai-bot/cursos, rejeita "..", resolve o DNS em tempo de execucao (o nginx nao deixa de subir se o Gitea estiver fora) e nao repassa cookies. No banco, as 8 aulas passaram a apontar para /aulas (backup das linhas em ~/backups/learnhouse-20261003 no NAS4). README: GITEA_RAW_BASE agora deve ser https://cursos.overia.com.br/aulas, senao uma nova publicacao desfaz a correcao. O conf tambem referencia theme-toggle.js, que entra no commit seguinte. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1.3 KiB
1.3 KiB
cursos
Pipeline + conteúdo de cursos para publicar em cursos.overia.com.br (LearnHouse), um curso por tecnologia.
Estrutura
courses/<slug>/course.json
courses/<slug>/<NN> - <Nome do Capítulo>/<NN> - <Nome da Aula>.md
course.json guarda os metadados do curso (name, description, about,
public). Nome de capítulo/aula vem do nome da pasta/arquivo, prefixado por
um número de ordem (ex: 01 - Introdução, 02 - Instalando o Python.md).
.env
LEARNHOUSE_API_TOKEN=
LEARNHOUSE_BASE_URL=
LEARNHOUSE_ORG_ID=
LEARNHOUSE_ORG_SLUG=
GITEA_RAW_BASE=
GITEA_RAW_BASE é a base usada pra montar a URL de cada aula Markdown. Use
https://cursos.overia.com.br/aulas: o nginx do LearnHouse repassa /aulas/<caminho>.md
pra https://git.xenserver.com.br/ai-bot/cursos/raw/branch/main/courses/<caminho>.md.
Não use a URL raw do Gitea direto: ela não envia Access-Control-Allow-Origin e o
navegador bloqueia a leitura (a aula mostra "Failed to fetch").
Uso
uv run python -m scripts.publish <slug> [--dry-run|--publish]
--dry-run: mostra a árvore de curso/capítulos/aulas e as URLs geradas, sem chamar a API.--publish: além de criar/atualizar o curso, marca atividades e curso como publicados. Sem essa flag, tudo fica em rascunho.