Vous êtes sur la page 1sur 26

Monte sua prpria nuvem com NextCloud +

HTTPS + OnlyOffice Ou Collabora Online

Nextcloud tem funcionalidade muito semelhante ao Dropbox, com a diferena de ser cdigo aberto,
e assim permitir que qualquer pessoa instalar e oper-lo sem custo em um servidor privado.
Nextcloud um fork do projeto ownCloud.
ATENO:
Para a instalao estou usando a distribuio: Debian 8 Jessie / Instalao Limpa
Ser necessrio a instalao do Apache2, PHP5, MySQL voc pode seguir o tutorial
Passo-a-passo como criar um servidor web Apache2, PHP5, MySQL, PHPMyAdmin LAMP no
Debian 8
Aps ter instalado seu servidor web vamos aos passos, no entrarei em detalhes de como o
funcionamento, ex criao de usurios e grupos, compartilhamento etc, pois ele bem intuitivo,
aps instalado voc pode instalar os APP-Clientes no seu PC (Linux Windows Mac) ou
dispositivo mobile (Android IOS WindowsPhone)
Na data de hoje o projeto se encontra na verso 11.0.3.
https://nextcloud.com/install/#instructions-server
https://download.nextcloud.com/server/releases/
Seguindo a instalao bsica do apache vamos usar o diretrio /var/www/html para a instalao do
nosso Nextcloud
# cd /var/www/

# wget https://download.nextcloud.com/server/releases/nextcloud-11.0.3.zip --no-


check-certificate

# apt install unzip

# unzip nextcloud*.zip

# mv /var/www/html /var/www/html_old

# mv nextcloud /var/www/html

# chown www-data. /var/www/html -R


# apt install php-pclzip php5-curl php5-xmlrpc php5-imagick php5-redis php5-
memcached php5-apcu php5-gmp php5-imap php5-ldap php5-intl

# a2enmod rewrite

# a2enmod headers

# /etc/init.d/apache2 restart

Criaremos um usurio nextcloud e uma banco com o nome de nextcloud, no esquea de alterar a
SENHA.
# mysql -uroot -p -e "CREATE DATABASE nextcloud character set utf8 collate
utf8_bin; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'
IDENTIFIED BY 'SENHA';"

Ser solicitado a senha do usurios root do mysql.


Agora acesse em seu navegador o endereo/ip do seu servidor.

Informe os dados corretamente, e clique em Concluir configurao.


# chmod 777 /var/www/html/occ
# su -s /bin/bash -c "php /var/www/html/occ config:system:set
--value='\OC\Memcache\APCu' memcache.local" www-data

Parabns, seu servido Nextcloud j est funcionado!!!


Se voc esta montando sbo um IP Vlido e um domnio continue com o tutoria!
Primeiramente vamos configurar nosso apache para que responda nosso domnio.
No exemplo vou usar cloud.remontti.com.br
# vim /etc/apache2/sites-available/cloud.remontti.com.br.conf

Como vamos habilitar o https, no vamos informar muita coisa no nosso arquivo. Deixe assim:
<VirtualHost *:80>
ServerName cloud.remontti.com.br
ServerAdmin email@seuemail.com.br

DocumentRoot /var/www/html

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>

<IfModule mod_headers.c>
Header always set Strict-Transport-Security
"max-age=15552000; includeSubDomains"
</IfModule>

LogLevel warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Agora vamos desativar a configurao default do apache e ativar o nosso arquivo, e em seguida
restart o servio.
# a2dissite 000-default.conf
# a2ensite cloud.remontti.com.br.conf
# /etc/init.d/apache2 restart

HTTPS
Podemos obter um certificado TLS/SSL grtis vamos usar o Lets Encrypt CA.
Caso queira deixar seu servidor sem https pule esta etapa.
Primeiro vamos instalar o cliente certbot/letsnecrypt. Para isso ser necessario ativar o repositrio
backports.
# echo 'deb http://ftp.debian.org/debian jessie-backports main' >>
/etc/apt/sources.list.d/backports.list
# apt update
# apt install letsencrypt python-certbot-apache -t jessie-backports

Vamos a autoconfigurao.
# letsencrypt --apache --agree-tos --email seu@email.com -d
cloud.remontti.com.br

Para atualizar certificado voc pode usar o comando: (agende no cron)


# certbot renew --dry-run

https://certbot.eff.org/#debianjessie-apache
https://certbot.eff.org/about/
Agora acesse seu domnio. Possivelmente voc ser informado que seu domnio no esta definido
em trusted_domains.

Edite o arquivo config/config.php.


# vim /var/www/html/config/config.php

altere:
[...]
'trusted_domains' =>
array (
0 => 'cloud.remontti.com.br',
),
[...]
'overwrite.cli.url' => 'https://cloud.remontti.com.br',
[...]
OnlyOffice ou Collabora Online?
Segue duas maneiras de voc ter um editor online, eu particularmente gostei mais do OnlyOffice,
mas fica a seu critrio.
Para rodar editores online requerido:
CPU dual-core 2 GHz ou +
RAM 4 GB ou +
2 GB swap ou +
Linux OS amd64 kernel version 3.10 ou mais recente
Docker verso minima: 1.10
Se preferir no instalar nenhum editor, nosso processo acaba aqui, parabns!

Instalao: OnlyOffice
Com o ONLYOFFICE conectado instalao do ownCloud/Nextcloud, voc ser capaz de:
Trabalhar com todos os formatos principais. Edite arquivos de docx, xlsx, pptx, txt e odt, ods,
odp, doc, xls, ppt, pps, epub, rtf, html, htm.
Desfrutar de perfeita compatibilidade com os formatos do MS Office.
Usar centenas de recursos de formatao. Adicione grficos, formas automticas, equaes
matemticas complexas, decore a fonte, edite cabealhos / rodaps, crie estilos, altere o design do
documento inteiro com dois cliques e mais.
Editar documentos em tempo real com outras pessoas. Use o modo rpido para ver o que seus
colegas esto digitando no momento ou o modo estrito para trabalhar no fragmento do documento
sem ser distrado por outros.
# apt install git
# cd /var/www/html/apps/
# git clone https://github.com/ONLYOFFICE/onlyoffice-owncloud.git onlyoffice
# chown www-data. onlyoffice -R

Docker se encontra nos repositrio backports, caso voc tenha instalado o letsencrypt (https) voc ja
fez este procedimento, pode pular para a instalacao do docker.io
# echo 'deb http://ftp.debian.org/debian jessie-backports main' >>
/etc/apt/sources.list.d/backports.list
# apt update

# apt install docker.io


# systemctl enable docker
Sem NO instalou os certificados https rode o comando abaixo.
# docker run -i -t -d -p 88:80 --restart always onlyoffice/documentserver

Ou (https)
# cd /tmp/
# openssl genrsa -out onlyoffice.key 2048
# openssl req -new -key onlyoffice.key -out onlyoffice.csr
# openssl x509 -req -days 1825 -in onlyoffice.csr -signkey onlyoffice.key -out
onlyoffice.crt
# openssl dhparam -out dhparam.pem 2048
# mkdir -p /app/onlyoffice/DocumentServer/data/certs
# cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
# cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
# cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
# chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
# docker run -i -t -d -p 448:443 --restart always -v
/app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
onlyoffice/documentserver
# docker pull onlyoffice/documentserver

Agora acesse em seu navegador http://seu-ip:88/ ou https://seu-ip:448/ para verificar se o servidor


de documentos esta rodando.

Agora acesse em seu navegador, e clique em +Aplicaes


Nas categorias da esquerda, selecione Office & text Encontre OnlyOffice e Clique em Habilitar

Acesse o menu administrao e altere Document Editing Service Address para o endereo ip do
seu protocolo://servidor:porta
Ex: https://1.1.1.1:443 ou http://1.1.1.1:88

Crie um novo documento:

Ele j vai ser aberto no Onlyoffice!


Parabns, seu servidor est pronto! (Se voc optou instalar o Onlyoffice no instale o Collabora)
Links teis:
https://apps.nextcloud.com/apps/onlyoffice
https://github.com/ONLYOFFICE/onlyoffice-owncloud
https://github.com/ONLYOFFICE/Docker-DocumentServer
http://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx#RunningHTTPS

Instalao: Collabora Online


https://nextcloud.com/collaboraonline/
um poderoso pacote on-line baseado em LibreOffice que suporta todos os principais formatos de
arquivo de documentos, planilhas e apresentaes.
Recursos:
Edio bsica de documentos:
DOC, DOCX, PPT, PPTX, XLS, XLSX + ODF
Edio totalmente colaborativa
Edio annima de arquivos em pasta pblica compartilhada
# apt install docker.io
# vim /etc/default/docker

Altere DOCKER_OPTS para:


DOCKER_OPTS="--storage-driver=devicemapper"

# systemctl enable docker


# docker run -t -d -p 127.0.0.1:9980:9980 -e
'domain=cloud\\.remontti\\.com\\.br' --restart always --cap-add MKNOD
collabora/code
# docker pull collabora/code
# docker ps
# /etc/init.d/docker restart

# a2enmod proxy
# a2enmod proxy_wstunnel
# a2enmod proxy_http

Adicione em:
# vim /etc/apache2/sites-enabled/cloud.remontti.com.br-le-ssl.conf

Antes de: /VirtualHost Ficando:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName cloud.remontti.com.br
ServerAdmin remontti@remontti.com.br

DocumentRoot /var/www/html

<IfModule mod_headers.c>
Header always set Strict-Transport-Security
"max-age=15552000; includeSubDomains"
</IfModule>

LogLevel warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile
/etc/letsencrypt/live/cloud.remontti.com.br/fullchain.pem
SSLCertificateKeyFile
/etc/letsencrypt/live/cloud.remontti.com.br/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

# ------ INCLUIR LINHAS ABAIXO ------ #

# Encoded slashes need to be allowed


AllowEncodedSlashes NoDecode

# Container uses a unique non-signed certificate


SSLProxyEngine On
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# keep the host


ProxyPreserveHost On

# static html, js, images, etc. served from loolwsd


# loleaflet is the client part of LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet

# WOPI discovery URL


ProxyPass
/hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse
/hosting/discovery https://127.0.0.1:9980/hosting/discovery
# Main websocket
ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon

# Admin Console websocket


ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws

# Download as, Fullscreen presentation and Image upload operations


ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool

</VirtualHost>
</IfModule>

# /etc/init.d/apache2 restart

Agora acesse em seu navegador, e clique em +Aplicaes

Nas categorias da esquerda, selecione Office & text Encontre Collabora Online e Clique em
Habilitar

Entre nas configuraes de Admin e selecione Collabora Online, e adicione seu domnio completo
(https://)
Note que agora possvel criar novos formatos de arquivo.

Crie um arquivo e o edite!


Configurando certificado grtis no Apache2
Debian 8/9

Distribuio utilizada: Debian 8 Jessie & / Debian 9 Stretch Instalao Limpa


Verso Apache: 2.4.10 >
Para obter um certificado grtis vamos usar o Lets Encrypt CA.
Lets Encrypt entrega certificados digitais que permite HTTPS (SSL/TLS) para sites gratuitamente,
de maneira fcil. um servio fornecido pelo Internet Security Research Group (ISRG).
Seus principais princpios por trs de Lets Encrypt so:
Grtis: Qualquer pessoa que possua um nome de domnio pode usar Lets Encrypt para obter um
certificado confivel a custo zero.
Automtico: o software em execuo em um servidor web pode interagir com o Lets Encrypt para
obter um certificado sem dor, configur-lo com segurana para uso e cuidar automaticamente da
renovao.
Seguro: Lets Encrypt servir como uma plataforma para avanar as melhores prticas de
segurana TLS, tanto no lado da CA quanto ao ajudar os operadores do site a proteger
adequadamente seus servidores.
Transparente: Todos os certificados emitidos ou revogados sero publicamente registrados e
disponveis para qualquer pessoa a inspecionar.
Aberto: O protocolo automtico de emisso e renovao ser publicado como um padro aberto
que outros podem adotar.
Cooperativo: Assim como os prprios protocolos de Internet subjacentes, Lets Encrypt um
esforo conjunto para beneficiar a comunidade, alm do controle de qualquer organizao.
Lets Encrypt apresentado, vamos instalar o cliente certbot/letsnecrypt.
No Debian 8 ser necessrio ativar o repositrio backports.
# echo 'deb http://ftp.debian.org/debian jessie-backports main' >>
/etc/apt/sources.list.d/backports.list
# apt update
# apt upgrade
# apt install letsencrypt python-certbot-apache -t jessie-backports
No Debian 9
# apt update
# apt upgrade
# apt install letsencrypt python-certbot-apache

Tenha configurado um/ou mais domnio(s) em seu apache. Vou deixar aqui um exemplo de
configurao:

1 <VirtualHost *:80>
2 ServerName meuhttps.remontti.com.br
3 ServerAdmin seu@email.com.br
4
5 DocumentRoot /var/www/html
6
7 <Directory /var/www/html/>
8 Options Indexes FollowSymLinks
9 AllowOverride All
10 </Directory>
11
12 LogLevel warn
13
14 ErrorLog ${APACHE_LOG_DIR}/error.log
15 CustomLog ${APACHE_LOG_DIR}/access.log combined
16
</VirtualHost>

Vamos a autoconfigurao.
# letsencrypt --apache --agree-tos --email seu@email.com -d
meuhttps.remontti.com.br

Atualizando
Para atualizar os certificados de seus domnio voc pode usar o comando: # certbot renew --dry-run
Como instalar o MySQL Server (Oracle) no
Debian 9 Stretch

Recentemente tivemos o lanamento do Debian 9, e se voc solicitar a instalao do mysql-server,


voc ir se deparar com a instalao do mariadb automaticamente, sem nenhuma maneira (fcil) de
instalar o MySQL da Oracle. Qualquer migrao importante de base de dados deve ser feita com
cuidado, Migrar o MySQL 5.5 para o MariaDB 10.1 pode causar dores de cabea.
Adicione o Repositrios da Oracle
A equipe do MySQL Release Engineering fornece repositrios apt para usar com a maioria do
software, incluindo o servidor e muitos de seus utilitrios. Vou optar por instalar o MySQL 5.7,
porm 5.6 e 8.0 tambm esto disponveis para o Debian stable. Vamos criar o arquivo
/etc/apt/sources.list.d/mysql.list.
# echo -e "deb http://repo.mysql.com/apt/debian/ stretch mysql-5.7\ndeb-src
http://repo.mysql.com/apt/debian/ stretch mysql-5.7" >
/etc/apt/sources.list.d/mysql.list

Antes de atualizar nosso repositrio voc deve adicionar a chave pblica como confivel:
# wget -O /tmp/RPM-GPG-KEY-mysql https://repo.mysql.com/RPM-GPG-KEY-mysql --no-
check-certificate
# apt-key add /tmp/RPM-GPG-KEY-mysql

J pode instale mysql-sever da Oracle


# apt update
# apt install mysql-server
Defina senha para o usurio root do MySQL.

Verifique se o mesmo esta rodando:


systemctl status mysql
J pode fazer a conexo ao seu banco!
mysql -p
Instalao do Zabbix 3.0.x no Debian 9 Stretch
com banco de dados MariaBD

O Zabbix uma soluo de nvel enterprise, de cdigo aberto. O Zabbix um software que
monitora vrios parmetros da rede, dos servidores e da sade dos servios. Utiliza-se de um
mecanismo flexvel de notificao que permite configurar alertas por e-mail entre outros como
Telegram, para praticamente qualquer evento. As notificaes permitem que se reaja rapidamente
problemas no ambiente. O Zabbix oferece excelentes recursos de relatrios e visualizao de dados
armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.
Distribuio utilizada: Debian 9 (Stretch ) / Instalao Limpa (Tutorial de instalao aqui)
Requisitos:
Servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin LAMP no Debian 9 Stretch
Atualize o repositrio:
# apt update && apt upgrade
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

Vamos criar uma base de dados chamada zabbix e um usurio tambm chamado de zabbix no
MariaDB.
# mariadb -u root -p

create database zabbix character set utf8 collate utf8_bin;


1
2 grant all privileges on zabbix.* to
3 zabbix@localhost identified by 'SENHA-USUARIO-ZABBIX';
quit;

Importe o esquema de tabelas e dados padres.


# zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz | mysql
-uzabbix -p zabbix
Digite a senha de seu usurio zabbix criada no passo anterior para importar as tabelas.
Agora vamos editar o arquivo zabbix_server.conf para informar os dados para conexo com o
MySQL.
# vim /etc/zabbix/zabbix_server.conf

1 #...
2 DBHost=localhost
3 #...
4 DBName=zabbix
5 #...
6 DBUser=zabbix
7 #...
8 DBPassword=SENHA-USUARIO-ZABBIX
9 #...

Iniciando o Zabbix Server e o Agente.


# /etc/init.d/zabbix-server start
# /etc/init.d/zabbix-agent start

Editando a configurao do PHP para a interface web do Zabbix


Crie o arquivo de configurao para o Apache
# vim /etc/apache2/conf-enabled/zabbix.conf

## Zabbix
1
2 <IfModule mod_alias.c>
3
Alias /zabbix /usr/share/zabbix
4
</IfModule>
5
6
7 <Directory "/usr/share/zabbix">
8 Options FollowSymLinks
9 AllowOverride None
10
11 <IfModule mod_php7.c>
12 php_value max_execution_time 300
13 php_value memory_limit 128M
14 php_value post_max_size 16M
15 php_value upload_max_filesize 2M
16 php_value max_input_time 300
17 php_value always_populate_raw_post_data -1
18 php_value date.timezone America/Sao_Paulo
19 </IfModule>
20
</Directory>
21
22
<Directory ~ "^/usr/share/zabbix/(conf|app|include|local)/">
23
24 <files *.php>
25 </files>
</Directory>

Aps a alterao do arquivo de configurao ser necessrio o reinicio do processo do servidor web
(Apache).
# /etc/init.d/apache2 restart
A interface web do Zabbix estar disponvel em http://SEU-IP/zabbix atravs do seu navegador.
O usurio e senha padres so: Admin/zabbix

[Next step]

Tudo deve estar ok [Next step]

Informe sua senha de conexo ao banco de dados MariaDB. [Next step]


[Next step]

Vamos preparar o nosso arquivo para receber as configuraes web:


# touch /etc/zabbix/zabbix.conf.php
# chown www-data. /etc/zabbix/zabbix.conf.php

[Next step]

[Finish]
Usurio: Admin Senha: zabbix
Passo-a-passo como criar um servidor web
Apache2, PHP 7.0, MariaDB, PHPMyAdmin
LAMP no Debian 9 Stretch

Com o lanamento do Debian 9 alguns pacotes foram substitudo como:


PHP5 -> PHP7.0
Mysql -> MariaDB (MariaDB um banco de dados que surgiu como fork do MySQL, criado pelo
prprio fundador do projeto aps sua aquisio pela Oracle.)
Vamos a instalao
# apt update
# apt upgrade
# apt install apache2 libapache2-mod-php7.0 php7.0 mariadb-client mariadb-server
phpmyadmin

Instale todos os pacotes dependentes. (S)


OBS: Se voc instalar o pacote mysql-server ele vai estar instalando o mariadb-client mariadb-
server.
Na prxima tela selecione a opo apache2.

Configurando o banco do phpmyadmin:


Responda Sim.

Defina uma senha para a base do phpmyadmin:


Repita a senha:

Instalao concluda!
Acesse http://ip-do-seu-servidor/

No sentiu que faltou algo nessa instalao?


Sim! No MySQL voc definia uma senha para para o usurio root do mysql na instalao, com o
MariaDB isso no acontece pois ele vem sem senha de root! Como usurio root no tem senha voc
no vai conseguir logar com ele no PHPMyAdmin.
Para alterar a senha do usurio root do MariaDB faa:
# mariadb -u root

1 USE mysql;
2 UPDATE user SET password=PASSWORD('SUA-SENHA') WHERE User='root';
3 UPDATE user SET plugin="mysql_native_password";
4 FLUSH PRIVILEGES;
5 quit;

Mas no se assuste! MariaDB praticamente o seu velho MySQL. Para saber mais acesse:
MariaDB versus MySQL Compatibilidade. Veja pelo lado bom, no permitindo login com root
temos mais segurana!
O que fazer ento? Simples crie uma base de dados e um usurio para acessa-la. Eu sempre
recomendei usar para cada aplicao um usurio com a sua base, assim numa falha voc no deixa
exposto o que no deveria!
Acesse via linha de comando nosso o mariadb (o comando mysql -p funciona tambm)
# mariadb -p

Por padro vem sem senha.


CREATE DATABASE minhabase;
1
GRANT ALL PRIVILEGES ON minhabase.* TO
2
3 'meuusuario'@'localhost' IDENTIFIED BY 'minhasenha';
4 FLUSH PRIVILEGES;
quit;

Agora pode acessar seu PHPMyAdmin com seu seu usurio e senha. http://ip-do-seu-
servidor/phpmyadmin

Agora vamos habilitar o mod_rewrite do Apache que muito utilizado. Este um mdulo do
Apache que utiliza um mecanismo baseado em regras de reescrita.
Diretrio de configuraes do Apache fica em /etc/apache2/
Vamos ao comando para habilita-lo:
# a2enmod rewrite

A pgina que vimos ao abri o ip do nosso servidor no navegador fica no diretrio /var/www/html,
isso est sendo informado no arquivo default do apache que fica em /etc/apache2/sites-
enabled/000-default.conf, e para que nosso mod_rewrite funcione corretamente ser necessrio
adicionar alguma linhas.
Edite o arquivo /etc/apache2/sites-enabled/000-default.conf (vou usar o editor vim, que no vem
instalado por padro no sistema, mas se voc pode usar qualquer edito ex o nano)
# vim /etc/apache2/sites-enabled/000-default.conf

Adicione abaixo de DocumentRoot /var/www/html o seguinte:

1 <Directory /var/www/html/>
2 Options Indexes FollowSymLinks
3 AllowOverride All
4 </Directory>

Agora precisamos restartar o apache para que tenha efeito nossas alteraes.
# /etc/init.d/apache2 restart

Ou
# systemctl restart apache2

Vous aimerez peut-être aussi