Como configurar um servidor Leanote no CentOS 7

O Leanote é uma alternativa gratuita, leve e de código aberto ao Evernote, escrita em Golang. Com a experiência do usuário em mente, o Leanote oferece aos usuários muitos recursos práticos, incluindo suporte a várias plataformas, gravação na sintaxe MarkDown, blogs públicos ou privados, coleta e compartilhamento de conhecimento e colaboração em equipe.

Neste artigo, orientarei você na configuração de um servidor Leanote em uma instância do servidor CentOS 7. Por questões de segurança, a ativação do HTTPS supportuso do certificado SSL Let's Encrypt e o Nginx também serão cobertos.

Pré-requisitos

  • Uma instância do servidor Vultr CentOS 7 recém-implantada. Digamos que seu endereço IPv4 seja 203.0.113.1.
  • Um usuário sudo chamado leanote.
  • Todos os pacotes de software da máquina foram atualizados para o status estável mais recente usando o repositório EPEL YUM. Veja detalhes aqui .
  • Um domínio leanote.example.comsendo apontado para a instância do servidor mencionada acima.

Etapa 1: criar um arquivo de troca

Ao disparar uma nova instância do servidor Vultr CentOS 7, é sempre recomendável configurar um arquivo de troca para garantir que o sistema esteja funcionando sem problemas. Por exemplo, a criação de um arquivo de troca com tamanho de 2048 MB é adequado para uma máquina com 2 GB de memória.

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

Nota: Se você estiver usando um tamanho de servidor diferente, pode ser necessário modificar o tamanho do arquivo de troca.

Etapa 2: Obter arquivos binários do Leanote 2.6.1

Baixe e extraia a versão estável mais recente do Leanote para o sistema Linux de 64 bits:

cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

Etapa 3: Instalar o MongoDB Community Edition 4.0

Conforme exigido pelo Leanote, o DBMS do MongoDB NoSQL deve estar em vigor antes que você possa configurar com êxito um servidor Leanote.

Configurar o repositório MongoDB 4.0 YUM

Crie o repositório MongoDB 4.0 YUM da seguinte maneira:

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

Instale os pacotes do MongoDB 4.0 usando o YUM

Instale todos os componentes e ferramentas do MongoDB usando o repositório MongoDB 4.0 YUM criado anteriormente:

sudo yum install -y mongodb-org

Configurar o SELinux para MongoDB 4.0

Por padrão, o MongoDB usaria a 27017porta ao trabalhar, o que não é permitido se o SELinux estiver no enforcingmodo na máquina CentOS 7. Use o seguinte comando para confirmar o modo atual do SELinux:

sudo getenforce

Em uma instância do servidor Vultr CentOS 7, o SELinux é desativado por padrão. Portanto, a saída do comando acima seria:

Disabled

Nesse caso, você pode pular as seguintes instruções sobre como configurar o SELinux e seguir em frente.

No entanto, se você estiver executando uma instância original do servidor CentOS 7, a saída do comando acima seria Enforcing. Você precisa executar qualquer uma das três opções abaixo antes de poder iniciar e ativar o serviço MongoDB.

  • Opção 1: Permitir que o MongoDB use a 27017porta

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • Opção 2: Desativar SELinux

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • Opção 3: Altere o SELinux para o permissivemodo

    sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
    sudo shutdown -r now
    

Inicie o serviço MongoDB e inicie após a reinicialização do sistema:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

Etapa 4: Importar dados iniciais do Leanote para o MongoDB

Use os comandos abaixo para importar dados iniciais do Leanote para o MongoDB:

rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/

Etapa 5: habilitar a autenticação MongoDB

Por questões de segurança, você precisa habilitar o controle de acesso ao MongoDB logo após o serviço MongoDB estar em funcionamento. Para esse fim, você precisa criar pelo menos duas contas de usuário do MongoDB: uma conta de administrador e uma conta de administrador de banco de dados. Você também precisará modificar a configuração do MongoDB.

Digite o shell do MongoDB:

mongo --host 127.0.0.1:27017

Alterne para o adminbanco de dados:

use admin

Crie um administrador de usuário chamado useradminque use uma senha useradminpassword:

db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

Nota: O administrador do usuário useradmindeve gerenciar todos os usuários do MongoDB, portanto, é aconselhável escolher uma senha forte. Obviamente, uma dica mais segura é substituir useradminpor um nome de usuário difícil de adivinhar.

Alterne para o leanotebanco de dados:

use leanote

Crie um administrador de banco de dados chamado leanoteadminque use uma senha leanoteadminpassword:

db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })

Nota : Novamente, é recomendável escolher um nome de usuário menos conhecido e uma senha difícil de adivinhar.

Com a criação dos usuários do MongoDB, você pode confirmar os resultados:

use admin
db.auth("useradmin", "useradminpassword")

Confirme o administrador do banco de dados:

use leanote
db.auth("leanoteadmin", "leanoteadminpassword")

Ambos serão exibidos 1como confirmação.

Saia do shell do MongoDB:

exit

Para habilitar o controle de acesso ao MongoDB, você também precisa anexar duas linhas ao arquivo de configuração do MongoDB /etc/mongod.conf, da seguinte maneira:

sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo '  authorization: enabled' >> /etc/mongod.conf"

Reinicie o serviço MongoDB para que as modificações entrem em vigor:

sudo systemctl restart mongod.service

A partir de agora, você pode usar apenas as duas contas de usuário para acessar e gerenciar o MongoDB, useradmingerenciar todos os usuários do MongoDB e leanoteadmingerenciar leanoteapenas o banco de dados.

Etapa 6: configurar o Leanote

Faça backup do arquivo de configuração do Leanote /home/leanote/leanote/conf/app.conf:

cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak

Use o vieditor para abrir o arquivo de configuração do Leanote:

vi app.conf

Encontre as seguintes linhas, uma por uma:

site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y

Substitua-os, respectivamente, conforme mostrado abaixo:

site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA

Nota: Por questões de segurança, o valor do app.secretparâmetro DEVE ser uma sequência aleatória de 64 bits diferente da original. Substitua o valor E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sApelo seu próprio valor aleatório de 64 bits.

Salve e saia:

:wq!

Etapa 7: Iniciar o Leanote

Modifique as regras de firewall para permitir o tráfego TCP de entrada na porta 9000:

sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service

Inicie o Leanote usando o script oficial:

cd /home/leanote/leanote/bin
bash run.sh

Ao ver Listening on.. 0.0.0.0:9000, aponte seu navegador da Web favorito http://leanote.example.com:9000para começar a usar o site Leanote.

Use a conta de administrador padrão do Leanote para entrar:

  • Nome do usuário: admin
  • Senha: abc123

Por motivos de segurança, você deve alterar a senha padrão imediatamente após fazer login.

Etapa 8: ativar o HTTPSacesso

Por enquanto, você já pode acessar o servidor Leanote usando o protocolo HTTP, um protocolo menos seguro. Para melhorar a segurança do sistema, você pode ativar HTTPSimplementando um certificado SSL Let's Encrypt e o proxy reverso Nginx em sua máquina.

Configure corretamente um nome de host e um nome de domínio totalmente qualificado (FQDN)

Antes de obter o certificado SSL Let's Encrypt, é necessário configurar corretamente o nome do host e o FQDN na sua máquina.

Primeiro, pressione CTRL+ Cpara parar o script Leanote run.sh.

Em seguida, configure o nome do host e o FQDN da seguinte maneira:

sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF

Você também pode confirmar os resultados:

hostname
hostname -f

Modificar regras de firewall

Bloqueie o tráfego de entrada na porta 9000e permita o tráfego de entrada nas portas de serviços HTTPe HTTPS:

sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

Solicite um certificado SSL Let's Encrypt

Instale o utilitário Certbot:

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

Solicite um certificado SSL Let's Encrypt para o domínio leanote.example.com:

sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d leanote.example.com

O certificado e a cadeia serão salvos da seguinte forma:

/etc/letsencrypt/live/leanote.example.com/fullchain.pem

O arquivo de chave privada será salvo da seguinte maneira:

/etc/letsencrypt/live/leanote.example.com/privkey.pem

Por padrão, o certificado SSL Vamos criptografar expirará em três meses. Você pode configurar um trabalho cron, como mostrado abaixo, para renovar automaticamente seus certificados Let's Encrypt:

sudo crontab -e

Pressione Ipara entrar no insertmodo e, em seguida, insira a seguinte linha:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

Salve e saia:

:wq!

Este trabalho cron tentará renovar o certificado Let's Encrypt todos os dias ao meio-dia.

Instale o Nginx como um proxy reverso

Instale o Nginx usando o repositório EPEL YUM:

sudo yum install -y nginx

Crie um arquivo de configuração para o Leanote:

cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name leanote.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  leanote.example.com;
    ssl_certificate      /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/leanote.example.com/privkey.pem;

    # Proxy to the Leanote server
    location / {
        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 https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:9000;
        proxy_redirect                     http:// https://;
    }
}
EOF

Reinicie o Nginx para efetivar suas modificações:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

Modifique a site.urlconfiguração no arquivo de configuração do Leanote:

cd /home/leanote/leanote/conf/
vi app.conf

Encontre a seguinte linha:

site.url=http://leanote.example.com:9000

Substitua-o:

site.url=https://leanote.example.com

Salve e saia:

:wq!

Execute o script Leanote novamente:

cd /home/leanote/leanote/bin
bash run.sh

Agora, aponte seu navegador da Web favorito http://leanote.example.com/e você descobrirá que o HTTPSprotocolo é ativado automaticamente. Basta fazer login como adminusuário com a nova senha que você configurou anteriormente ou registrar novas contas de usuário para colaboração em equipe.

Mais uma vez, pressione CTRL+ Cpara interromper o script Leanote. Nós iremos daemonizar esse script mais tarde.

Etapa 9: instalar o wkhtmltopdfprograma

O Leanote escolhe usar o wkhtmltopdfprograma para exportar páginas HTML como arquivos PDF. Instalar wkhtmltopdf:

cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf

Não se esqueça de enviar o wkhtmltopdfcaminho binário /usr/local/bin/wkhtmltopdfna Export PDFseção no painel de administração da web do Leanote quando o Leanote estiver em funcionamento novamente.

Nota: Se você encontrar caracteres ilegíveis nos arquivos PDF exportados, poderá tentar corrigir o problema adicionando os arquivos de fonte necessários ao /usr/share/fonts/diretório.

Etapa 10: use o Supervisor para manter o script Leanote em funcionamento

Para manter seu site Leanote online, você pode usar o utilitário Supervisor para iniciar automaticamente o script Leanote, se ele falhar.

Instale o Supervisor usando YUM:

sudo yum install -y supervisor

Crie um .iniarquivo supervisor simples para o Leanote:

cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF

Inicie o serviço Supervisor, bem como o serviço Leanote:

sudo supervisord -c /etc/supervisord.conf

Confirme o status do serviço Leanote:

sudo supervisorctl status leanote

A saída será semelhante ao seguinte:

leanote                          RUNNING   pid 3707, uptime 0:02:36

Deixar um comentário

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.