#!/bin/bash # Instalador automático do Wiki.js no Debian 13 (sem Docker) # Autor: Diego Costa (@diegocostaroot) / Projeto Root (youtube.com/projetoroot) # Veja o link: https://wiki.projetoroot.com.br/index.php?title=WikiJS # Versão: 1.0 # 2025 set -e echo "=== Instalador Wiki.js para Debian 13 ===" echo "" echo "Aviso: Este script vai remover qualquer instalação existente do Wiki.js," echo "incluindo o banco de dados 'wikijs', o usuário 'wikijsuser' e a pasta /opt/wikijs." echo "Tenha certeza do que está fazendo antes de continuar." read -p "Deseja continuar? (S/N): " CONFIRM if [[ ! "$CONFIRM" =~ ^[Ss]$ ]]; then echo "Abortando..." exit 0 fi read -p "Digite o domínio ou IP do servidor (ex: wiki.seudominio.com.br): " DOMAIN read -p "Digite a senha do banco de dados Wiki.js: " DB_PASS read -p "Deseja configurar HTTPS com Certbot automaticamente? (S/N): " USE_HTTPS echo "Removendo instalações antigas..." # Remove banco de dados e usuário antigo com cuidado if sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='wikijs'" | grep -q 1; then # Finaliza conexões ativas antes de apagar o banco sudo -u postgres psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='wikijs';" sudo -u postgres psql -c "DROP DATABASE wikijs;" fi if sudo -u postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname='wikijsuser'" | grep -q 1; then sudo -u postgres psql -c "REASSIGN OWNED BY wikijsuser TO postgres;" sudo -u postgres psql -c "DROP OWNED BY wikijsuser;" sudo -u postgres psql -c "DROP ROLE wikijsuser;" fi sudo rm -rf /opt/wikijs echo "Atualizando sistema e instalando dependências..." sudo apt update && sudo apt upgrade -y sudo apt install -y curl wget gnupg2 unzip nano nginx postgresql postgresql-contrib # Instala Node.js 22 if ! command -v node &> /dev/null; then echo "Instalando Node.js 22..." curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs fi echo "Node.js: $(node -v), npm: $(npm -v)" echo "Criando banco de dados e usuário..." sudo -u postgres psql < config.yml < /dev/null < /dev/null <