Quickstart
Um site novinho em qualquer servidor Debian/Ubuntu, sem pré-requisitos, em um comando:
curl -fsSL https://chinaski.net/install | sudo bash -s -- 1 --repo https://github.com/bigjohncobb/chinaskiSubstitua 1 por um nome de instância: qualquer coisa alfanumérica (2, prod, staging, o nome de um cliente). Cada instância é seu próprio site isolado, com seu próprio banco de dados; rodar várias ao mesmo tempo é normal. O script não precisa de nenhuma preparação prévia e é concluído em menos de cinco minutos.
O que o script faz
Ele cuida de tudo sozinho:
- instala os pacotes de sistema necessários e as dependências Perl (a partir de pacotes Debian pré-compilados, sem compilação em C)
- cria um usuário de sistema
chinaskidedicado - clona o código, inicializa o banco de dados, escreve o arquivo env
- inicia o serviço systemd
Depois que ele termina, aponte um navegador para o admin e continue via /setup: troque a senha de admin (pelo menos 12 caracteres, maiúsculas e minúsculas mais um dígito), defina a URL do site e escolha seus idiomas. Esse é o seu primeiro site pronto para editar; o build acontece quando você clicar nele.
Checklist do primeiro dia
Verifique isto antes de enviar tráfego real:
- O admin está vinculado ao loopback. Uma verificação de socket em escuta deve mostrar
127.0.0.1:300<N>, nunca0.0.0.0: os visitantes não devem alcançar o CMS diretamente de fora. - Certificado TLS emitido. O Caddyfile de exemplo instalado por instância lê seu DNS e renova os certificados Let's Encrypt; verifique
curl -I https://<host>assim que o DNS e as portas 80/443 resolverem e responderem. - Backups estão agendados. Um snapshot diário automático do banco de dados mais mídia roda às 03:17. Confirme que o timer do systemd está ativo e que o diretório de backup está com modo 700 e é de propriedade do usuário do serviço. Se você editar o agendamento do relógio manualmente, confirme que
systemctl list-timersmostra uma próxima execução: um erro de digitação faz o timer pular silenciosamente. - Avise seu monitor sobre
/health. O endpoint de saúde do CMS retorna um relatório JSON agregado ({"status":"ok|warning|critical", timestamp, total_checks, checks[]}) com HTTP 503 somente quando uma verificação crítica falha. (O Chinaski Manager, separado, tem seu próprio/health, que retornastatus/uptime/db/workers/pidna porta do plano de controle.) - Fuso horário: defina nas configurações de /admin. Os agendamentos usam o fuso horário do site; nomes de fuso horário com erro de digitação caem para UTC no momento de salvar. Verifique e, então, mantenha todas as suas entradas agendadas corretas.
Duas variáveis de ambiente importam em /etc/chinaski<N>/env (modo 0600): CHINASKI_SECRET, a chave aleatória de assinatura de sessão de 32+ bytes, e LISTEN_URL, que deve apontar para o loopback em produção. Os caminhos de banco de dados e saída derivam do nome da instância pela unit; normalmente você não precisa sobrescrevê-los.
Outros caminhos para rodar o Chinaski
- Primeira execução totalmente offline: um script de instalação pode ser usado em uma máquina sem internet preparando um bundle antes: rode
bash install/make-bundle.shem uma máquina conectada, o que produz um tarball contendo o código-fonte da aplicação, todos os tarballs de módulos Perl, ocpanmempacotado e o script de instalação mais um arquivo de checksum. Depois de copiar para a máquina de destino e descompactar, rodesudo bash install.sh: tudo é instalado sem acesso à internet. Em placas ARM (como Raspberry Pi), instale explicitamente as bibliotecas de imagem (libjpeg,libpng,libgif), caso contrário o ferramental de imagens falha ao compilar. - Execução sem systemd: descompacte e rode
sudo bash install.sh --no-service(opcionalmente--prefix /srv/chinaski), depois inicie via o hypnotoad empacotado; o admin responde emhttp://<host-ip>:8080/admin. O arquivo env já contém o segredo e o modo air-gap. - HTTP puro, para sempre: onde nunca existirão DNS nem autoridade certificadora, o hypnotoad pode servir diretamente sobre HTTP, sem certificados para adquirir, renovar ou expirar.
O que acontece depois
A primeira visita ao admin redireciona para /setup; uma vez que a senha provisória é substituída, essa página desaparece (ela retorna 404). A partir daí, o ciclo cotidiano de editar → build → servir (veja Como Funciona) assume. E se você algum dia perder a senha de admin, perl bin/reset-admin.pl coloca você de volta exatamente nesse mesmo estado de setup.