Feito com Chinaski

Instalação Offline

Como fazer o Chinaski rodar em uma máquina que não pode (ou não deve) alcançar a internet.

Em uma máquina conectada: faça o bundle

O repositório embarca um criador de bundle:

bash install/make-bundle.sh

Isso produz um tar.gz contendo o código-fonte da aplicação, todos os tarballs de módulos CPAN, um instalador de módulos embutido e o script de instalação (com um arquivo de checksum).sha256 ao lado, para que a transferência via USB possa ser verificada. (A verificação de integridade é a finalidade do arquivo; verifique antes da transferência.)

Na máquina alvo: instale sem internet

Dois pré-requisitos rígidos e uma ressalva:

  • Os pacotes de sistema (perl, make, gcc, sqlite3, e as três dev libraries de imagem + openssl e cpanminus para o instalador) devem existir no alvo ou ser providenciados de um espelho local / um conjunto de .deb pré-baixados.
  • Em placas ARM, certifique-se de instalar explicitamente essas dev libraries de imagem, caso contrário o módulo de processamento de imagens falhará na compilação.

Então:

tar -xzf chinaski-<commit>.tar.gz
sudo bash install.sh        # instalação padrão: cria o usuário de sistema chinaski, instala a unit systemd, inicializa o banco de dados

O instalador instala os módulos CPAN estritamente do bundle, “nenhuma conexão de saída é feita”. Ele escreve o arquivo de ambiente para você, com um segredo de sessão gerado e o modo air-gap ativo, para que o app instalado seja seguro-offline desde a primeira inicialização. Duas opções: --no-service pula o systemd (bom para configurações rápidas de servidor único), e --prefix /srv/chinaski escolhe um diretório de instalação.

Executando imediatamente

Sem systemd: dê source no arquivo de env gerado, export PERL5LIB=./local/lib/perl5, execute o hypnotoad embarcado sobre a aplicação, o admin estará em host:8080. Com systemd: habilite a unit chinaski@<instance> como em uma instalação normal.

O que lembrar

  • O bundle também leva seus scripts de instalação e arquivos por instância, de modo que as máquinas alvo nunca precisam chamar o repositório para nada no momento da instalação.
  • Cada deployment é por instância: o mesmo padrão de instalação via tarball é o que uma “segunda instância” usa no mesmo host offline.
Leia este site em