Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proxy reverso para melhorar compatibilidade de sites com o Free Basics / internet.org #62

Open
fititnt opened this issue Jun 7, 2019 · 4 comments

Comments

@fititnt
Copy link
Owner

fititnt commented Jun 7, 2019


O site https://inclusao.etica.ai/, conforme issue EticaAI/inclusao-digital#1, foi enviado para avaliação no Free Basics e, exatamente dentro do prazo que deram, fomos avaliados, mas reclamaram que o site tinha JavaScript (o que era verdade) e pediram para remover.

O culpado foi isto aqui, que é adicionado automaticamente pelo template do Jekill que é a renderização mais simples do GitHub.

<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.1.0/anchor.min.js" integrity="sha256-lZaRhKri35AyJSypXXs4o6OPFTbTmUoltBbDCbdzegg=" crossorigin="anonymous"></script>
<script>anchors.add();</script>

Este issue aqui é sobre ter alguma estratégia, por exemplo algum proxy que reescreve o HTML, para que o Free Basics acesse em vez de acessar o GitHub diretamente. Talvez isso especialmente útil para outros projetos que tenham bem mais alterações a serem feitas.


[*] Caso ambos os links estiverem dando erro 404 não encontrado e ainda não foram movidos para organização https://github.com/EticaAI, quer dizer que no momento em que você esta lendo isto eles não estiverem públicos. Mande e-mail, neste momento o repositório ainda está para feedback interno.

@fititnt
Copy link
Owner Author

fititnt commented Jun 7, 2019

Potencial candidato inicial https://github.com/apache/incubator-pagespeed-ngx

fititnt added a commit that referenced this issue Jun 7, 2019
fititnt added a commit that referenced this issue Jun 7, 2019
@fititnt
Copy link
Owner Author

fititnt commented Jun 7, 2019

Ok, basico de redirecionar apenas para um site, inclusao.etica.ai.

Captura de tela de 2019-06-07 01-23-41

Vai tomar algumas várias horas, mas creio que o MVP que baste seria remover completamente javascripts da página antes que o ngxpagespeed tente perder processamento otimizando. Isso já serviria para dar saída no issue do outro repositório.

Fora isso seria deixar mais genérico, ao ponto de pessoas não precisarem criar própria imagem e poderem simplesmente chamar com parâmetros.

@fititnt
Copy link
Owner Author

fititnt commented Jun 7, 2019

Que lindo, em tese existe uma funcionalidade explicitamente não recomendada no Apache PageSpeed que é exatamente uma das coisas que a gente mais precisa: a strip_scripts.

Porém, conforme https://www.pagespeedguide.com/documentation/configuration/filters em teoria o strip_scripts é um filtro usado apenas para debug.

Caso esse filtro não possa ser usado, vamos ter que implementar o strip tags de alguma outra forma. E mesmo que ele permita isso via modo debug, pode até funcionar a curto prazo, mas não seria o ideal (em especial se passar a ser usado por outras pessoas).

@fititnt
Copy link
Owner Author

fititnt commented Jun 8, 2019

**TL;DR: **

  1. Repositório exclusivo foi extraído da pasta docker/reverse-proxy-for-free-basics e está disponível em https://github.com/fititnt/reverse-proxy-for-free-basics-docker
  2. Imagens no Dockerhub em https://cloud.docker.com/repository/docker/fititnt/reverse-proxy-for-free-basics

Pessoal, para quem estiver acompanhando, aproveito para ensinar um truque de git: é possível extrair o histórico de uma subpasta em um repositório completamente novo. O único porém é que isso (pelo menos até onde eu vou atrás para saber) não implica em commits serem assinados digitalmente.

Fiz assim:

# fititnt at bravo in /alligo/code/fititnt [21:33:47]
$ cd reverse-proxy-for-free-basics-docker

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:33:50]
$ git filter-branch --prune-empty --subdirectory-filter docker/reverse-proxy-for-free-basics master        
Rewrite 01bd20efcd14f63e556036cb58e703fe80ba7c4d (4/4) (0 seconds passed, remaining 0 predicted)    
Ref 'refs/heads/master' was rewritten

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:34:42]
$ gitk

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:35:21]
$ git remote -v
origin	[email protected]:fititnt/cplp-aiops.git (fetch)
origin	[email protected]:fititnt/cplp-aiops.git (push)

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:37:04]
$ git remote set-url origin [email protected]:fititnt/reverse-proxy-for-free-basics-docker.git

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:37:31]
$ git remote -v                                                                            
origin	[email protected]:fititnt/reverse-proxy-for-free-basics-docker.git (fetch)
origin	[email protected]:fititnt/reverse-proxy-for-free-basics-docker.git (push)

# fititnt at bravo in /alligo/code/fititnt/reverse-proxy-for-free-basics-docker on git:master o [21:37:33]
$ git push
Counting objects: 35, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (35/35), 6.35 KiB | 0 bytes/s, done.
Total 35 (delta 5), reused 31 (delta 5)
remote: Resolving deltas: 100% (5/5), done.
To [email protected]:fititnt/reverse-proxy-for-free-basics-docker.git
 * [new branch]      master -> master

O local que explica mais sobre isto está em https://help.github.com/en/articles/splitting-a-subfolder-out-into-a-new-repository (destino em inglês).

O repositório dedicado está em https://github.com/fititnt/reverse-proxy-for-free-basics-docker.

Nota: notem que isso pode desnecessariamente replicar o numero de "commits" feitos por dia na wall do github. Não que neste caso tenha feito alguma diferença significativa para quantidade de commits que eu faço (até porque eu mesmo sou bem moderado) mas que fazer isso em repositórios grandes pode causar impactos negativos caso todos os repositórios estejam no ar. Ou seja, 4 commits que estavam na pasta docker/reverse-proxy-for-free-basics do repositório https://github.com/fititnt/cplp-aiops repetiram na contagem do novo repositório em https://github.com/fititnt/reverse-proxy-for-free-basics-docker. O github (e acredito que o GitLab siga o mesmo padrão) interpreta que commits feitos com meus e-mails cadastrados no github e que meu usuário @fititnt tem poder de escrita significam que deveriam ser mencionados no meu histórico de forma individual caso os repositórios não sejam fork um do outro.

Porém neste caso faz muito sentido, pois vou manter uma imagem no dockerhub, vide https://cloud.docker.com/repository/docker/fititnt/reverse-proxy-for-free-basics

fititnt added a commit to fititnt/reverse-proxy-for-free-basics-docker that referenced this issue Jun 8, 2019
fititnt added a commit to fititnt/reverse-proxy-for-free-basics-docker that referenced this issue Jun 8, 2019
fititnt added a commit to fititnt/reverse-proxy-for-free-basics-docker that referenced this issue Jun 8, 2019
fititnt added a commit to fititnt/reverse-proxy-for-free-basics-docker that referenced this issue Jun 8, 2019
fititnt added a commit that referenced this issue Jun 10, 2019
…ovidos para repositório dedicado, atualmente em github.com/fititnt/reverse-proxy-for-free-basics-docker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant