Após comprar meu NAS Qnap TS-109 e fuçar suas configurações, dar uma olhada no sistema de arquivos, ligar o MySQL, o FTP e o Apache, percebi que seria uma boa configurar um servidor Subversion nele.
Após consultar o Oráculo encontrei dois sites muito úteis: o Wiki e o Fórum da Qnap.Visitando o fórum percebi que existe uma maneira bem prática de se instalar um aplicativo qualquer no NAS. É só usar o IPKG.
O ipkg é um gerenciador de pacotes no estilo apt-get e yum, mas voltado para dispositivos móveis. Como a arquitetura do meu NAS é ARM, similar aos handhelds que comumente rodam o ipkg, a própria Qnap adicionou suporte à este gerenciador de pacotes, denominando o pacote QPKG.
Para adicionar suporte ao ipkg foi bem simples, foi só atualizar o firmware do NAS, e depois seguir as instruções que o próprio site da Qnap oferece.
Instalado o QPKG, ficou bem simples instalar o Subversion:
#ipkg update #ipkg install svn
E está instalado!
Instalado o Subversion, criei um diretória para conter o repositório que guardará meus dados. Para isto basta criar um Network Share, que chamei de Repos. Para criar basta entrar na página web do seu NAS e ir em Administration → Network Share Management. Por que não direto no shell? É por que os diretórios criados pela interface do NAS ficam disponíveis para o FTP, backup, Web File Manager, ACLs, sem dores de cabeça. Os diretórios criados assim ficam disponíveis como links simbólicos em /share.
Criado o diretório, foi só transformá-lo em um repositório SVN:
#svnadmin create /share/Repos
Falta apenas ligar um daemon para que o SVN fique ativo a cada reboot. Para que isto funcione, criei um script autorun.sh no diretório de configuração do NAS. Este diretório reside na memória flash do danado, então é necessário montá-lo, criar o script, tornar o script executável, desmontá-lo. E foi o que fiz:
Editei o arquivo com o Vi, inserindo o seguinte conteúdo:
#!/bin/sh #sym-link /opt to /opt rm -rf /opt ln -sf /share/MD0_DATA/.qpkg/Optware /opt #export PATH export PATH=’/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/X11:/usr/local/sbin/opt/bin:/opt/sbin’ #run Optware packages start scripts for optscript in ls /opt/etc/init.d/S* | grep -v '~' | sort
${optscript} done
Isto faz com que quaisquer scripts que residam em /opt/etc/init.d/, e cujo nome comece com S, sejam rodados em ordem alfanumérica.
Só faltou criar o script que inicia o daemon do SVN:
#mkdir /opt/etc/init.d #vi /opt/etc/init.d/S01svnserve
Com o seguinte conteúdo:
/opt/bin/svnserve -d -r /share/Repos
Testei em meu laptop com um:
svn list svn://IPdoNAS/
E tudo ok!
O Qnap TS-109 me surpreendeu por sua flexibilidade. Muitos dispositivos por aí rodam com Linux embarcado, mas poucos se preocupam em oferecer ao usuário a possibilidade de extrair mais deste excelente SO, não se diferenciando de produtos que rodam com SO proprietário.
Mas o TS-109 é uma exceção. Só o fato de disponibilizar os pacotes Optware através do ipkg já se abrem as portas para inúmeros aplicativos, dentre eles o Subversion.