O rsync já vem com o CentOS mas ele não vem configurado para o daemon iniciar com o linux.

Então precisei configurar isso via systemctl e liberar o acesso a outras pastas no selinux com o semanage.
Também atualizei o rysnc para a última versão.

```
yum -y install rsync
systemctl enable rsyncd
systemctl start rsyncd
semanage permissive -a rsync_t
adduser dype
gpasswd -a dype wheel

```

Também tive que forçar o user root e ligar o chroot para o user dype na configuração do rsyncd.conf (abaixo).
Depois disso é necessário criar o arquivo de configuração do rsync.

```
vi /etc/rsyncd.conf
```

Eu utilizei a seguinte configuração para disponibilizar o `/home/dype/rsync/desktop.release` de forma pública. Não quero neste momento ter que usar um password.

```
uid = dype
gid = dype
use chroot = yes
max connections = 4
log file = /var/log/rsync.log
timeout = 900

dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.bz2

[desktop.release]
comment = Arquivos do Desktop Release
path = /home/dype/rsync/desktop.release
readonly = false
list = yes

[clientes]
comment = Arquivos de Clientes
path = /home/dype/rsync/clientes
readonly = false
list = yes
```

E precisei deixar as permissões em 777 para funcionar. E o usuário dype como dono dos arquivos.
Não fui atrás do correto ou do motivo de precisar do execute em todos.

```
chown dype:dype -R rsync
chmod 777 -R rsync
```

Depois de ajustar o conf, usei o comando systemctl restart rsyncd_ para reiniciar o serviço.

E, obviamente, as pastas precisam existir para o rsync funcionar.

Outros links interessantes que usei para chegar nesta configuração:

Explicações sobre opções do arquivo de configuração: http://real-world-systems.com/docs/rsyncd.conf.1.html

Explicações sobre alguns problemas que podem acontecer no CentOS: https://www.centos.org/forums/viewtopic.php?t=27779

Servidor de rsync com baixo custo até 100 gb: http://rsync.net/pricing.html

Antigamente quando o serviço era no hv1.dype.com.br eu havia aproveitado o apache para configurar um acesso a pasta clientes pela web. No novo servidor isso foi feito pelo Lenon com o nginx, mas não está documentado aqui.

// todo - pedir para o Lenon documentar o acesso por http

## Texto antigo do hv1.dype.com.br.

Adicionalmente eu criei no cpanel um subdomínio chamado rsync.hv1.dype.com.br que aponta para a pasta /home/dype/rsync.

Na raíz desta pasta eu deixei um .htaccess com a instrução _deny from all_ para impedir que qualquer arquivo ou pasta filha desta seja visualizada.

A ideia é criar uma nova pasta para cada cliente de customizado onde é necessário prestar contas. Para ser o destino dos PDF de prestação de contas protegido por uma senha com basic authentication mesmo. Mas neste caso o .htaccess tem que ser criado localmente no momento de criar a pasta do cliente e fica sendo sincronizado pelo próprio rsync.

Para as pastas iniciais da WE e Thermomax eu fui através do cpanel e usei a opção de _Pastas Protegidas_ para criar a senha no local padrão do cpanel e criei o .htaccess manualmente apontando para este arquivo. 

Template para o .htaccess das pastas dos clientes. É necessário trocar o _gestor-dypecliente_ para a sigla do cliente para ficar como _gestor-we_ ou _gestor-thermomax_ por exemplo.

```
Allow From All
AuthType Basic
AuthName "Arquivos do Cliente"
AuthUserFile /home/dype/.htpasswds/rsync/clientes/gestor-dypecliente/passwd
Require valid-user
```
