WikiJS: mudanças entre as edições
| (14 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 7: | Linha 7: | ||
== Vídeo == | == Vídeo == | ||
<embedvideo service="youtube">https:// | <embedvideo service="youtube"> https://www.youtube.com/watch?v=2JDbpwvH2Uw | ||
</embedvideo> | </embedvideo> | ||
https://youtu.be/ | |||
👉 Aula 01: https://youtu.be/2JDbpwvH2Uw | |||
👉 Aula 02: https://youtu.be/3iF3iiLwqMs | |||
👉 Aula 03: https://youtu.be/zCvl3frbEow | |||
👉 Aula 04: https://youtu.be/eJehjHk9zRs | |||
== Script Projeto Root == | == Script Projeto Root == | ||
| Linha 16: | Linha 20: | ||
https://github.com/projetoroot/wikijs | https://github.com/projetoroot/wikijs | ||
wget https://raw.githubusercontent.com/projetoroot/wikijs/refs/heads/main/install-wikijs.sh | Para instalar automaticamente faça: | ||
bash install-wikijs.sh | |||
Acesse seu servidor/VM ( Linux que será a WIKI.JS ) por ssh com usuário root e execute a linha abaixo | |||
wget https://raw.githubusercontent.com/projetoroot/wikijs/refs/heads/main/install-wikijs.sh && bash install-wikijs.sh | |||
| Linha 58: | Linha 65: | ||
CREATE DATABASE wikijs; | CREATE DATABASE wikijs; | ||
CREATE USER wikijsuser WITH PASSWORD 'SENHA_DO_BANCO'; | CREATE USER wikijsuser WITH PASSWORD 'SENHA_DO_BANCO'; | ||
ALTER ROLE wikijsuser SET client_encoding TO 'utf8'; | ALTER ROLE wikijsuser SET client_encoding TO 'utf8'; | ||
ALTER ROLE wikijsuser SET default_transaction_isolation TO 'read committed'; | ALTER ROLE wikijsuser SET default_transaction_isolation TO 'read committed'; | ||
| Linha 70: | Linha 76: | ||
== Instalação do Node.js == | == Instalação do Node.js == | ||
Instalar Node.js | Instalar Node.js 22: | ||
curl -fsSL https://deb.nodesource.com/ | curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - | ||
sudo apt install -y nodejs | sudo apt install -y nodejs | ||
| Linha 185: | Linha 191: | ||
proxy_set_header X-Real-IP $remote_addr; | proxy_set_header X-Real-IP $remote_addr; | ||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
proxy_set_header X-Forwarded-Proto $scheme; | proxy_set_header X-Forwarded-Proto $scheme; | ||
client_max_body_size 100M; | |||
} | } | ||
| Linha 207: | Linha 214: | ||
http://SEU_DOMINIO ou http://IP_DO_SERVIDOR:3000 | http://SEU_DOMINIO ou http://IP_DO_SERVIDOR:3000 | ||
Complete a configuração inicial via interface web. | Complete a configuração inicial via interface web. | ||
== Remover opções do Share== | |||
Caso seja necessário remover o compartilhamento de redes sociais das páginas da wikiJS, é necessário inserir (injetar) um código/script na página de administração, para isso faça: | |||
Administração | |||
Tema (theme) | |||
Injeção de HTML no Head | |||
Cole o trecho abaixo e salve | |||
`<script> | |||
(function waitForBodyThenObserve() { | |||
if (!document.body) { | |||
return setTimeout(waitForBodyThenObserve, 50); | |||
} | |||
const labelsToHide = new Set([ | |||
"Facebook", | |||
"LinkedIn", | |||
"Reddit", | |||
"Telegram", | |||
"Twitter", | |||
"Viber", | |||
"Weibo", | |||
"Whatsapp", | |||
// Add more labels as needed | |||
]); | |||
const hideMenuItems = () => { | |||
let found = false; | |||
document.querySelectorAll('.v-list-item').forEach(item => { | |||
const label = item.querySelector('.v-list-item__title')?.textContent?.trim(); | |||
if (labelsToHide.has(label)) { | |||
item.style.display = 'none'; | |||
found = true; | |||
} | |||
}); | |||
return found; | |||
}; | |||
const observer = new MutationObserver(() => { | |||
if (hideMenuItems()) { | |||
observer.disconnect(); // One and done | |||
} | |||
}); | |||
observer.observe(document.body, { | |||
childList: true, | |||
subtree: true, | |||
}); | |||
})(); | |||
</script> | |||
` | |||
[[Arquivo:Opcoes-share-wikijs.PNG|400px|thumb|center|Antes]] | |||
[[Arquivo:Opcoes-share-wikijs-apos.PNG|400px|thumb|center|Depois]] | |||
Edição atual tal como às 18h01min de 4 de fevereiro de 2026
Sobre
Olá! Visitante, reunimos aqui informações sobre a instalação do Wiki.js, uma plataforma de gerenciamento de conhecimento de código aberto, que permite criar, editar e organizar conteúdo em uma interface web.
Sites Oficiais: https://wiki.js.org/
Vídeo
👉 Aula 01: https://youtu.be/2JDbpwvH2Uw 👉 Aula 02: https://youtu.be/3iF3iiLwqMs 👉 Aula 03: https://youtu.be/zCvl3frbEow 👉 Aula 04: https://youtu.be/eJehjHk9zRs
Script Projeto Root
Para facilitar deixamos um script para fazer todo o processo de forma automatizada, assim agilizando o processo de instalação, caso queira utilizar veja:
https://github.com/projetoroot/wikijs
Para instalar automaticamente faça:
Acesse seu servidor/VM ( Linux que será a WIKI.JS ) por ssh com usuário root e execute a linha abaixo
wget https://raw.githubusercontent.com/projetoroot/wikijs/refs/heads/main/install-wikijs.sh && bash install-wikijs.sh
Caso queira instalar manualmente veja abaixo os procedimentos
Aviso Importante
O processo de instalação remove completamente qualquer instalação anterior do Wiki.js, incluindo:
Banco de dados 'wikijs' Usuário 'wikijsuser' do PostgreSQL Pasta /opt/wikijs
Tenha total certeza que deseja prosseguir antes de continuar.
Preparação do Servidor
Sistema suportado: Debian 13
Atualizar o sistema:
sudo apt update && sudo apt upgrade -y
Instalar dependências essenciais:
sudo apt install curl wget gnupg2 unzip nano nginx postgresql postgresql-contrib -y
Remoção de versão Anterior
sudo -u postgres psql -tc "SELECT 1 FROM pg_database WHERE datname='wikijs'" | grep -q 1 && \ sudo -u postgres psql -c "DROP DATABASE wikijs;" 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
Criação do Banco de Dados
Criar banco de dados e usuário do Wiki.js:(Mude 'SENHA_DO_BANCO' para uma senha segura!)
sudo -u postgres psql
CREATE DATABASE wikijs; CREATE USER wikijsuser WITH PASSWORD 'SENHA_DO_BANCO'; ALTER ROLE wikijsuser SET client_encoding TO 'utf8'; ALTER ROLE wikijsuser SET default_transaction_isolation TO 'read committed'; ALTER ROLE wikijsuser SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE wikijs TO wikijsuser; \c wikijs; GRANT ALL PRIVILEGES ON SCHEMA public TO wikijsuser; ALTER SCHEMA public OWNER TO wikijsuser; \q
Instalação do Node.js
Instalar Node.js 22:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - sudo apt install -y nodejs
Verificar versão instalada:
node -v npm -v
Download e Configuração do Wiki.js
Criar pasta de instalação:
sudo mkdir -p /opt/wikijs
Baixar última versão do Wiki.js e descompactar:
cd /opt/wikijs LATEST=$(curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep "tag_name" | cut -d '"' -f4) wget "https://github.com/Requarks/wiki/releases/download/${LATEST}/wiki-js.tar.gz" tar xzf wiki-js.tar.gz rm wiki-js.tar.gz
Configuração do config.yml
Criar arquivo de configuração config.yml com os parâmetros do banco:
- Backup do arquivo padrão de configuração do config.yml
cp /opt/wikijs/config.sample.yml /opt/wikijs/config.yml.bkp
- Faça um novo igual o trecho abaixo (Mude a SENHA_DO_BANCO para senha informada na criação do banco)
nano /opt/wikijs/config.yml
port: 3000 bindIP: 0.0.0.0 logLevel: info db: type: postgres host: localhost port: 5432 user: wikijsuser pass: SENHA_DO_BANCO db: wikijs ssl: false pool: min: 2 max: 10 path: data: ./data uploads: maxFileSize: 50mb sessionSecret: 'wikijs-secret-key' analytics: enabled: false auth: local: enabled: true
Ajustar permissões:
chmod 640 config.yml sudo chown -R www-data:www-data /opt/wikijs
Serviço systemd
Criar arquivo de serviço systemd /etc/systemd/system/wikijs.service com os parâmetros necessários.
nano /etc/systemd/system/wikijs.service
[Unit] Description=Wiki.js After=network.target postgresql.service [Service] Type=simple User=www-data WorkingDirectory=/opt/wikijs ExecStart=/usr/bin/node server Restart=always Environment=NODE_ENV=production [Install] WantedBy=multi-user.target
Comandos principais:
sudo systemctl daemon-reload sudo systemctl enable wikijs sudo systemctl start wikijs sudo systemctl status wikijs
Configuração do Nginx
Criar configuração de proxy reverso /etc/nginx/sites-available/wikijs.conf:
nano /etc/nginx/sites-available/wikijs.conf
server {
listen 80;
server_name SEU_DOMINIO;
location / {
proxy_pass http://localhost:3000/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100M;
}
}
Ativar configuração e reiniciar Nginx:
sudo ln -sf /etc/nginx/sites-available/wikijs.conf /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
HTTPS com Certbot (Opcional)
Instalar Certbot:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d SEU_DOMINIO
Finalização
Acesse no navegador:
http://SEU_DOMINIO ou http://IP_DO_SERVIDOR:3000
Complete a configuração inicial via interface web.
Caso seja necessário remover o compartilhamento de redes sociais das páginas da wikiJS, é necessário inserir (injetar) um código/script na página de administração, para isso faça:
Administração Tema (theme) Injeção de HTML no Head
Cole o trecho abaixo e salve
`<script>
(function waitForBodyThenObserve() {
if (!document.body) {
return setTimeout(waitForBodyThenObserve, 50);
}
const labelsToHide = new Set([
"Facebook",
"LinkedIn",
"Reddit",
"Telegram",
"Twitter",
"Viber",
"Weibo",
"Whatsapp",
// Add more labels as needed
]);
const hideMenuItems = () => {
let found = false;
document.querySelectorAll('.v-list-item').forEach(item => {
const label = item.querySelector('.v-list-item__title')?.textContent?.trim();
if (labelsToHide.has(label)) {
item.style.display = 'none';
found = true;
}
});
return found;
};
const observer = new MutationObserver(() => {
if (hideMenuItems()) {
observer.disconnect(); // One and done
}
});
observer.observe(document.body, {
childList: true,
subtree: true,
});
})();
</script>
`