AccessMonitor Docker
Com a dockerização, o AccessMonitor pode agora ser instalado em qualquer ambiente: localmente, na rede interna da organização ou integrado noutras aplicações. Desta forma, o AccessMonitor pode avaliar mais páginas, incluindo páginas ainda não publicadas na Internet.
As instruções abaixo pressupõem que já tem o Docker instalado na máquina onde pretende correr o contentor do AccessMonitor.
Esta instalação disponibiliza apenas o backend do AccessMonitor. No final da instalação ficará disponível um endpoint da API (/amp/eval/) para executar avaliações de acessibilidade web. Com este endpoint pode integrar as avaliações de acessibilidade em qualquer aplicação web.
Eis um exemplo de como pode, no final do presente processo de instalação, invocar a API para efetuar uma avaliação de uma página web:
URL="https://www.arte.gov.pt"
ENCODED=$(echo -n "$URL" | base64)
curl -i \
-H "Referer: http://192.168.1.164" \
"http://192.168.1.74:3000/amp/eval/$ENCODED"Esta solicitação à API do AccessMonitor devolve como resposta um ficheiro JSON com todo o output da avaliação. Algo como:
HTTP/1.1 200 OK
Content-Type: application/json
...
NOTA: O exemplo anterior é um caso real de chamada da API que pressupõe que o contentor do AccessMonitor está instalado na máquina 192.168.1.74 e que o estamos a chamar, para produzir avaliações, a partir da máquina 192.168.1.164 da rede local. Pode ser a rede do escritório ou mesmo a rede wifi de casa. No exemplo solicita-se a avaliação da homepage https://www.arte.gov.pt.
Vamos então começar a instalação. :-)
Estrutura de pastas:
projetos/
└── accessmonitor-docker/
Pode criar a pasta projetos/ e entrar:
mkdir projetos
cd projetosDe dentro da pasta projetos/ vamos clonar o repositório accessmonitor-docker:
git clone https://github.com/amagovpt/accessmonitor-docker.gitO comando git clone cria automaticamente uma nova pasta com o nome do repositório - a chamada pasta de projeto.
De seguida entramos na pasta do projeto accessmonitor-docker, onde vamos criar o ficheiro de ambiente .env com as propriedades descritas no .env.example e configurar as variáveis de acordo com os requisitos da máquina hospedeira.
# entrar na pasta do projeto
cd accessmonitor-docker
# criar o ficheiro ´.env´ a partir do ´.env.example´
cp .env.example .env
# editar e configurar as variáveis do ´.env´ com o editor ´vim´ ou outro qualquer
vim .envA estrutura de variáveis do ficheiro .env tem este aspeto:
## Environment variables for AccessMonitor Docker container
NODE_ENV=
## Referer header value to allow requests to the API (e.g., from a frontend app)
REFERER=
## Comma-separated list of IP ranges to block (e.g., "192.168.0.0/24,10.0.0.0/8")
IP_BLACKLIST_RANGES=""NODE_ENV
Define o ambiente de execução. Para produção utilizeproduction.REFERER
Define a origem autorizada a efetuar pedidos à API.IP_BLACKLIST_RANGES
Lista de IPs ou gamas de IPs bloqueados.
Assim, para uma instalação em que a solicitação das avaliações será feita na mesma máquina (localhost) onde se encontra o contentor do AccessMonitor a configuração mais provável será:
## Environment variables for AccessMonitor Docker container
NODE_ENV=production
## Referer header value to allow requests to the API (e.g., from a frontend app)
REFERER=http://localhost
## Comma-separated list of IP ranges to block (e.g., "192.168.0.0/24,10.0.0.0/8")
IP_BLACKLIST_RANGES=""Para uma instalação na mesma rede em que o contentor do AccessMonitor seja instalado na máquina 192.168.1.74 (é só um exemplo) e esta máquina seja usada a partir da máquina (REFERER) 192.168.1.164 então teremos uma configuração do tipo:
## Environment variables for AccessMonitor Docker container
NODE_ENV=production
## Referer header value to allow requests to the API (e.g., from a frontend app)
REFERER=http://192.168.1.164
## Comma-separated list of IP ranges to block (e.g., "192.168.0.0/24,10.0.0.0/8")
IP_BLACKLIST_RANGES=""Definido o .env estamos prontos para avançar na instalação do contentor do AccessMonitor.
docker build -t accessmonitor-docker .docker run --env-file .env -p 3000:3000 accessmonitor-dockerApós executar o comando anterior, o AccessMonitor deverá ficar disponível na porta 3000.
http://localhost:3000O endpoint do AccessMonitor está agora disponível para integração nas suas aplicações e fluxos de desenvolvimento.
Exemplos de chamadas ao endpoint via Terminal:
Exemplo 1: contentor do AccessMonitor instalado em localhost e avaliações solicitadas a partir de localhost.
URL="https://www.arte.gov.pt"
ENCODED=$(echo -n "$URL" | base64)
curl -i \
-H "Referer: http://localhost" \
"http://localhost:3000/amp/eval/$ENCODED"Ou assim:
Exemplo 2: contentor do AccessMonitor instalado em 192.168.1.74 e avaliações solicitadas a partir de 192.168.1.164. No exemplo solicita-se a avaliação da homepage https://www.arte.gov.pt.
URL="https://www.arte.gov.pt"
ENCODED=$(echo -n "$URL" | base64)
curl -i \
-H "Referer: http://192.168.1.164" \
"http://192.168.1.74:3000/amp/eval/$ENCODED"