Como instalar o GitBucket no Ubuntu 16.04

Este guia aborda a instalação e configuração básicas do GitBucket para uma instância do Vultr executando o Ubuntu 16.04 e assume que você está executando comandos como non-rootusuário.

Pré-requisitos

  • Uma instância do servidor Vultr com pelo menos 1 GB de RAM (instâncias menores podem funcionar, embora lentamente).
  • openjdk-8-jre Necessário, as versões mais antigas não funcionarão.
  • wget Usado para baixar o pacote GitBucket.
  • nginx Opcional, fornece um proxy reverso para o GitBucket
  • systemd Gerencia o início e a parada do processo GitBucket

Instalando pré-requisitos

O GitBucket requer que o Java 8 ou mais recente esteja instalado no seu servidor. Se você ainda não instalou o Java 8, atualize suas listas de pacotes locais.

sudo apt update

Em seguida, instale o pacote de tempo de execução do Java 8.

sudo apt install openjdk-8-jre

Instalando o GitBucket

Criando um usuário não privilegiado

Precisamos criar um usuário sem privilégios para executar o GitBucket antes de prosseguir. A execução do GitBucket com um usuário não privilegiado restringe nossa instalação de gravar fora de seu próprio diretório de dados, fortalecendo a segurança do seu servidor. Execute o seguinte comando para criar um usuário do sistema chamado gitbucket.

sudo adduser --system gitbucket

Como criamos um usuário do sistema , o shell padrão é /bin/falsee retornaremos ao nosso shell atual, a menos que forneça um argumento adicional ao executar su. Efetue login no usuário recém-criado.

sudo su - gitbucket -s /bin/bash

O prompt do seu shell deve mudar e você será conectado ao novo usuário do sistema.

Fazendo Download / Atualizando o GitBucket

Navegue até a página de versões do GitBucket e localize a versão mais recente disponível. Copie o URL do gitbucket.warpacote, verifique se você está no diretório inicial do novo usuário e faça o download com ele wget.

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

Você precisará repetir esta etapa sempre que desejar atualizar o pacote GitBucket.

Configuração inicial do GitBucket

Depois que o pacote for baixado, precisaremos iniciar o GitBucket manualmente para executar algumas configurações iniciais.

java -jar gitbucket.war --port 8080

Se a porta 8080já estiver ocupada por outro processo, você poderá alterar a porta que o GitBucket escutará agora. Este guia assume que o GitBucket está ouvindo na porta8080 .

Isso iniciará o GitBucket na interface de rede pública do seu servidor, escutando na porta especificada. Você deve ver, após alguns instantes, a seguinte mensagem.

INFO:oejs.Server:main: Started @15891ms

Se você estiver usando o firewall do Vultr , precisará abrir a porta em que o GitBucket está ouvindo, pois o firewall do Vultr funciona como uma lista branca, rejeitando o tráfego para permitir portas, a menos que seja especificado o contrário.

Sua instalação do GitBucket agora deve estar online e acessível na Internet. Usando um navegador da web, conecte-se ao endereço público do servidor (não se esqueça de especificar a porta em que o GitBucket está sendo executado ( http://203.0.113.0:8080ou seja http://example.com:8080)) e você chegará à página inicial do GitBucket.

No entanto, a senha da conta de administrador padrão precisa ser alterada. Para fazer isso, faça login na conta de administrador através do Sign inbotão no canto superior direito da interface da web. O login padrão para a conta de administrador é rootpara o nome de usuário e, em seguida, rootnovamente para a senha. Uma vez logado, o botão será substituído por um ícone de perfil e pelo menu suspenso. Expanda o menu suspenso e selecione Account Settingse defina uma senha nova e mais segura no assistente de configurações da conta.

Depois de atualizar as credenciais da conta de administrador padrão e verificar se o GitBucket inicia nesta configuração mínima, mate o processo Java com " CTRL+C" e feche o shell atual com exit.

Criando o serviço Systemd

Atualmente, só podemos executar o GitBucket acessando nosso servidor através do SSH e iniciando o processo manualmente a partir de um shell. Felizmente, o Ubuntu vem pré- Systemdempacotado, o que nos permite criar um serviço com o qual o GitBucket será iniciado e mantido automaticamente pelo sistema.

Usando nano, crie um novo arquivo de unidade no /etc/systemd/systemdiretório

sudo nano /etc/systemd/system/gitbucket.service

Em seguida, copie o seguinte conteúdo no arquivo.

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

Esse arquivo de unidade define o comportamento básico de inicialização e desligamento do GitBucket e executa o serviço com nosso usuário de sistema não privilegiado na interface de rede local.

Se você alterou o número da porta que o GitBucket atenderá, altere o --portargumento do ExecStartcomando.

Salve (" CTRL+O") o novo arquivo de unidade e saia do editor (" CTRL+X"). Você precisará recarregar o Systemd para que o novo arquivo de unidade seja descoberto.

sudo systemctl daemon-reload

Após o Systemd recarregar, verifique se a nova unidade foi descoberta e carregada.

sudo systemctl status gitbucket

Você deve ver a seguinte saída.

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

Por fim, habilite a nova unidade para iniciar automaticamente quando o servidor inicializar e, em seguida, inicie o serviço pela primeira vez.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

Após o início do serviço, você poderá acessar o GitBucket no seu navegador usando o endereço IP e o número da porta novamente.

Configurando o proxy reverso do Nginx

Embora seja possível expor o GitBucket diretamente pela porta 8080, você pode melhorar o desempenho e configurar recursos como regras de cache HTTP / 2, criptografia TLS e cache, expondo o GitBucket pelo Nginx.

Configuração inicial do Nginx

Se você ainda não instalou o Nginx, atualize suas listas de pacotes.

sudo apt update

Em seguida, instale o pacote Nginx.

sudo apt install nginx

Após a instalação do Nginx, verifique se você consegue acessar o servidor da web através do endereço IP do servidor sem o número da porta ( http://203.0.113.0ou seja http://example.com). Se for bem-sucedido, você verá a página de destino padrão do Nginx para o Ubuntu.

Criando o proxy reverso

Copiaremos a configuração padrão do site /etc/nginx/sites-availablecomo ponto de partida para o proxy reverso.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

Abra o arquivo de configuração recém-criado com nano.

sudo nano /etc/nginx/sites-available/gitbucket

Localize o location /bloco existente na linha 43.

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

Atualmente, o Nginx tentará retornar arquivos localizados nos /var/www/htmlquais correspondam às HTTPsolicitações recebidas . Precisamos alterar esse comportamento configurando um proxy reverso neste bloco, que enviará todas as solicitações HTTP feitas ao nosso servidor Nginx para a instância GitBucket. Atualize o location /bloco para corresponder ao seguinte.

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

Se você alterou o número da porta na qual o GitBucket escutará, atualize a proxy_passopção para refletir isso.

Para habilitar nossa nova configuração, você precisará desativar a configuração padrão existente /etc/nginx/sites-enablede vincular novamente a nova configuração com /etc/nginx/sites-enabledo seguinte.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

Depois que o arquivo de configuração estiver ativado, verifique se há erros de sintaxe.

sudo nginx -t

Em seguida, reinicie o servidor Nginx para ativar a nova configuração do site.

sudo systemctl restart nginx

Agora você deve conseguir acessar a instalação do GitBucket no endereço público do servidor sem um número de porta.

Protegendo o processo GitBucket da Internet pública

Atualmente, nossa instância GitBucket está escutando na interface de rede pública do nosso servidor . Isso permitirá que os usuários ignorem o proxy Nginx conectando-se ao endereço em que o GitBucket está ouvindo no momento, o que provavelmente é indesejável. Precisamos modificar o arquivo de unidade que criamos anteriormente para resolver isso. Abra o arquivo da unidade com nano.

sudo nano /etc/systemd/system/gitbucket.service

Acrescente --host 127.0.0.1ao ExecStartcomando, assim.

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

Isso fará com que o GitBucket aceite apenas conexões na interface de rede local do nosso servidor. Mais uma vez, salve (" CTRL+O") o arquivo, feche (" CTRL+X") o editor, recarregue o Systemd e reinicie nossa unidade GitBucket.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Se você estiver usando o Vultr's Firewall, também deverá remover todas as regras de porta adicionadas para acessar o servidor GitBucket durante a configuração inicial.



Leave a Comment

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.