Servidor Subversion · 3 min read · Jan 01, 2026

O Servidor Subversion Perfeito - Debian Lenny [ISPConfig3]

O Servidor Subversion Perfeito - Debian Lenny [ISPConfig3]

Subversion é um sistema de controle de versão livre/código aberto. Ou seja, o Subversion gerencia arquivos e diretórios, e as alterações feitas a eles, ao longo do tempo. Isso permite que você recupere versões anteriores de seus dados ou examine o histórico de como seus dados mudaram. Nesse sentido, muitas pessoas pensam em um sistema de controle de versão como uma espécie de “máquina do tempo”. Este guia ajudará você a configurar o sistema subversion e integrá-lo com sua instalação existente do ISPConfig3, permitindo que você controle o uso do disco, cota e outros fatores de uma maneira muito familiar. Talvez um dia, alguém possa usar esse processo para criar um plug-in para o ISPConfig3 que faça tudo isso automaticamente.

Requisitos

Obviamente, este guia requer que você já tenha o ISPConfig3 configurado e em funcionamento. Os passos descritos abaixo podem funcionar com o ISPConfig2 também, mas não foram testados e não serão suportados. Se você ainda não fez isso, siga o guia do falko para O Servidor Perfeito - Debian Lenny [ISPConfig3] antes de continuar.

Para permitir que um único site tenha múltiplos repositórios, colocaremos tudo em uma pasta ‘svn’, e, em última análise, o caminho público para seu repositório será algo como http://example.com/svn/myrepo. Mas antes de começarmos, você precisa criar o site para ‘example.com’. Criar o site e definir opções de cota está fora do escopo deste guia, mas é bastante simples se você nunca fez isso antes.

Instalar Subversion

A instalação do Subversion e do(s) módulo(s) Apache necessários é bastante simples (execute como root ou use sudo):

apt-get install subversion libapache2-svn

Criar um Repo(sitório)

Por padrão, o ISPConfig armazena os sites em /var/clients/clientx/weby/, você precisará saber qual ID do cliente (x) e ID do site (y) corresponde ao site em que deseja configurar o repositório. Se você fez ajustes nos caminhos padrão, precisará modificar os comandos abaixo para corresponder à sua estrutura de diretórios. Comece criando o diretório svn (você só precisa fazer isso uma vez para cada site):

mkdir /var/clients/clientx/weby/svn

Em seguida, você precisará criar o repositório e corrigir as permissões em tudo (importante para verificações de cota).

svnadmin create /var/clients/clientx/weby/svn/myrepo  
chown -R weby:clientx /var/clients/clientx/weby/svn  
chmod -R 770 /var/clients/clientx/weby/svn

Compartilhando e Protegendo o Repositório

Usaremos o apache para compartilhar e proteger o acesso ao nosso repositório e, enquanto os passos de compartilhamento são sempre os mesmos, temos três opções para proteger o repositório.

  1. Repositório Público - Um repositório público significa que qualquer usuário pode baixar e navegar (checkout) e enviar (commit) arquivos a qualquer momento sem restrições. Esta geralmente não é uma maneira recomendada de implantar um repositório, pois pode levar a vandalismo do seu código.
  2. Repositório Compartilhado - Um repositório ‘compartilhado’ significa que qualquer pessoa pode baixar e navegar (checkout) o código, mas apenas usuários autorizados podem fazer commits no repositório. Este é o método mais comum de proteger um repositório, semelhante a como sites como Sourceforge e Google Code compartilham dados.
  3. Repositório Privado - Um repositório privado significa que qualquer ação contra o repositório requer um usuário autenticado e é útil quando o código não deve ser compartilhado ou ser Open Source.

Supondo que você escolha um repositório compartilhado ou privado, você precisará criar o arquivo de senhas que armazena nomes de usuários e senhas de usuários ‘autorizados’ (para adicionar usuários adicionais, omita a opção ‘-c’ do comando).

htpasswd -c /var/clients/clientx/weby/svn/myrepo.passwd [username1] <-- você será solicitado a inserir uma senha para username1

Finalmente, você precisa adicionar a diretiva apropriada para informar ao Apache o que fazer quando um usuário solicitar http://example.com/svn/myrepo. Dependendo do método de segurança que você deseja usar, copie a diretiva apropriada abaixo e cole-a na caixa ‘Diretivas do Apache’, na aba ‘Opções’ do seu site no ISPConfig (não se esqueça de corrigir os diretórios com os valores apropriados de x e y).

Repositório Público

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
    

Repositório Compartilhado

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
        AuthType Basic  
        AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd  
          
            Require valid-user  
          
    

Repositório Privado

      
        DAV svn  
        SVNPath /var/clients/clientx/weby/svn/myrepo  
        AuthType Basic  
        AuthName "Indemnity83 Scripts"  
        AuthUserFile /var/clients/clientx/weby/svn/myrepo.passwd  
        Require valid-user  
    

Pode levar um minuto para o site começar a funcionar uma vez que você faça as alterações, mas neste ponto você deve ter um repositório Subversion funcionando e seguro. Se você quiser adicionar mais, basta repetir tudo começando em ‘Criar um Repo(sitório)’

Agradecimentos

Espero que você ache este guia útil. Sinta-se à vontade para adicionar comentários ou correções.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.