<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samuel Starts</title>
    <description>The latest articles on DEV Community by Samuel Starts (@samuelstarts).</description>
    <link>https://dev.to/samuelstarts</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2000172%2F5263f188-b5da-428a-9313-6de80384a853.jpg</url>
      <title>DEV Community: Samuel Starts</title>
      <link>https://dev.to/samuelstarts</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samuelstarts"/>
    <language>en</language>
    <item>
      <title>Como Criar e Gerenciar Seu Próprio Repositório Git em um Servidor Particular</title>
      <dc:creator>Samuel Starts</dc:creator>
      <pubDate>Sun, 13 Oct 2024 09:46:46 +0000</pubDate>
      <link>https://dev.to/samuelstarts/como-criar-e-gerenciar-seu-proprio-repositorio-git-em-um-servidor-particular-16m</link>
      <guid>https://dev.to/samuelstarts/como-criar-e-gerenciar-seu-proprio-repositorio-git-em-um-servidor-particular-16m</guid>
      <description>&lt;p&gt;Neste tutorial, vamos aprender como configurar um repositório Git em seu servidor pessoal e sincronizar com seu computador local. Esse é um processo útil para manter seus projetos organizados e sob controle de versão.&lt;/p&gt;

&lt;h2&gt;
  
  
  Criando um Repositório Privado no Servidor
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Crie uma pasta para seus projetos Git&lt;/strong&gt;:
Para manter seus repositórios organizados, crie uma pasta dedicada para seus projetos Git dentro do diretório do seu usuário:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Crie um diretório específico para o projeto&lt;/strong&gt;:
Agora, crie um diretório para o seu projeto, adicionando o sufixo &lt;code&gt;.git&lt;/code&gt; ao nome para indicar que é um repositório Git:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   &lt;span class="nb"&gt;mkdir&lt;/span&gt; ~/git/projeto.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Inicializando um Novo Repositório Git
&lt;/h2&gt;

&lt;p&gt;Dentro da pasta do seu projeto, inicialize o repositório com o comando &lt;code&gt;git init&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/git/projeto.git
git init &lt;span class="nt"&gt;--bare&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Esse comando cria um repositório Git vazio no servidor, pronto para receber commits.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A opção &lt;code&gt;--bare&lt;/code&gt; é usada porque este repositório será o remoto, e não um repositório de trabalho. Ele apenas armazenará o histórico de commits, sem um workspace ativo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agora, executando &lt;code&gt;ls -la&lt;/code&gt;, você verá a pasta &lt;code&gt;.git&lt;/code&gt; que o Git criou para armazenar o histórico do projeto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Clonando o Repositório no Seu Computador Local
&lt;/h2&gt;

&lt;p&gt;Com o repositório configurado no servidor, é hora de cloná-lo para o seu ambiente local. Execute o comando a seguir no seu terminal local:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &lt;span class="o"&gt;[&lt;/span&gt;usuario]@[ip_do_servidor]:~/git/projeto.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso criará uma cópia local do repositório no seu computador, onde você poderá desenvolver e gerenciar os arquivos do projeto.&lt;/p&gt;

&lt;h2&gt;
  
  
  Salvando Alterações no Repositório
&lt;/h2&gt;

&lt;p&gt;Agora que você tem uma cópia do repositório, pode começar a adicionar arquivos e fazer commits. Como exemplo, crie um arquivo &lt;code&gt;README.md&lt;/code&gt; com informações básicas sobre o projeto:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Nome do Projeto&lt;/span&gt;

Uma breve descrição sobre o que o projeto faz ou o objetivo dele.

&lt;span class="gu"&gt;## Pré-requisitos&lt;/span&gt;

Certifique-se de atender aos seguintes requisitos antes de começar:
&lt;span class="p"&gt;
-&lt;/span&gt; Você tem a versão mais recente de &lt;span class="sb"&gt;`nome_da_linguagem`&lt;/span&gt; ou &lt;span class="sb"&gt;`ferramenta`&lt;/span&gt; instalada.
&lt;span class="p"&gt;-&lt;/span&gt; Sua máquina está rodando &lt;span class="sb"&gt;`&amp;lt;Windows / Linux / Mac&amp;gt;`&lt;/span&gt;.
&lt;span class="p"&gt;-&lt;/span&gt; Você leu a documentação de &lt;span class="sb"&gt;`&amp;lt;dependência / ferramenta&amp;gt;`&lt;/span&gt;.

&lt;span class="gu"&gt;## Instalando&lt;/span&gt;

Para instalar o projeto, siga estas etapas:

...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depois de adicionar esse arquivo ao projeto, você pode seguir os passos abaixo para salvar as mudanças no Git:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Adicionando arquivos para o stage&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;O comando &lt;code&gt;git add .&lt;/code&gt; adiciona todos os arquivos modificados, novos e não rastreados à área de stage, que é onde ficam os arquivos prontos para serem commitados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fazendo o commit das mudanças&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Agora, execute o commit com uma mensagem descritiva:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Adicionando o README ao projeto"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para que seus commits sejam claros e concisos, a mensagem deve refletir o que foi feito. Aqui estão algumas sugestões de como escrever boas mensagens de commit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;feat: adiciona nova funcionalidade à página inicial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;refactor: ajusta posicionamento e layout da página de login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;style: melhora o design e alinhamento da tela de login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;fix: corrige falhas no layout da página de login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chore: atualiza dependências do projeto&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use &lt;code&gt;feat&lt;/code&gt; quando estiver introduzindo uma nova funcionalidade. Para melhorias ou ajustes menores, use &lt;code&gt;refactor&lt;/code&gt; ou &lt;code&gt;style&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enviando Mudanças para o Repositório Remoto: git push
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;git push&lt;/code&gt; é utilizado para enviar seus commits locais ao repositório remoto. Depois de fazer commits, envie as alterações para o servidor com:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Isso sincroniza as mudanças no seu servidor remoto, garantindo que o repositório está atualizado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Atualizando Seu Projeto Local: git pull
&lt;/h2&gt;

&lt;p&gt;Se houver mudanças no servidor feitas por outro colaborador (ou por você, de outra máquina), você pode baixá-las e integrá-las no seu projeto local usando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando puxa as atualizações do repositório remoto e mescla com seu trabalho local, garantindo que tudo esteja sincronizado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;Agora você completou o ciclo básico de configuração e uso do Git com um servidor remoto. Você pode:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar seu repositório,&lt;/li&gt;
&lt;li&gt;Fazer commits,&lt;/li&gt;
&lt;li&gt;Sincronizar suas mudanças com o servidor,&lt;/li&gt;
&lt;li&gt;Atualizar seu projeto com as últimas alterações do repositório remoto.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Com isso, seu fluxo de trabalho com Git está pronto para facilitar o gerenciamento de projetos de maneira organizada e eficiente.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como executar um script na inicialização do Ubuntu Linux</title>
      <dc:creator>Samuel Starts</dc:creator>
      <pubDate>Fri, 13 Sep 2024 10:12:14 +0000</pubDate>
      <link>https://dev.to/samuelstarts/como-executar-um-script-na-inicializacao-do-ubuntu-linux-4f7k</link>
      <guid>https://dev.to/samuelstarts/como-executar-um-script-na-inicializacao-do-ubuntu-linux-4f7k</guid>
      <description>&lt;p&gt;Os passos a seguir mostram como configurar um serviço no systemd para executar um script automaticamente ao iniciar o Linux, após uma conexão de rede estar disponível. Quando o sistema é iniciado ou reiniciado, o script será executado como root. Por isso, é importante testar seus códigos manualmente antes, para evitar problemas durante o reboot. Dependendo da sua necessidade, instale as dependências como root ou especifique o caminho completo dos diretórios, como o do Java, Node.js, ou qualquer outro que for utilizar.&lt;/p&gt;

&lt;p&gt;Estou supondo que nosso script esta dentro da pasta scripts&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/home/ubuntu/scripts/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora crie um arquivo de script com nome meu-script.sh, ou outro nome de sua escolha, no diretório criado no passo anterior.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /home/ubuntu/scripts/meu-script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicione a esse arquivo os comandos para serem executados. Neste exemplo vamos apenas gravar a data e hora do sistema e uma mensagem em um arquivo no diretório de testes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;arquivo="/diretorio/teste.txt"
dataHora=$(date "+%d/%m/%Y %H:%M:%S")
texto="$dataHora - Script executado!"
echo $texto &amp;gt;&amp;gt; $arquivo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Salve o arquivo (CTRL+O).&lt;br&gt;
Feche o editor de texto (CTRL+X).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Altere as permissões do script para torná-lo executável:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod +x /home/ubuntu/scripts/meu-script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Execute o script para testar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo /home/ubuntu/scripts/meu-script.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confira o conteúdo do arquivo criado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; cat /home/ubuntu/scripts/teste.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crie um arquivo de unidade do systemd para configurar o meu-script.sh como um serviço:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo nano /lib/systemd/system/meu-script.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Adicione o conteúdo abaixo nesse arquivo de unidade do systemd:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Unit]
Description=Start Server
Wants=network-online.target
After=network.target

[Service]
# Executa o serviço como o usuário 'user'
# Porem suas pendencia devem estar instaladas em root tambem
User=user


# Diretório de trabalho, onde o script será executado
WorkingDirectory=/home/starts/scripts

# Comando para iniciar o serviço (caminho completo para o script)
ExecStart=/bin/bash /diretorio/meu-script.sh

RemainAfterExit=yes
StandardOutput=journal
StandardError=journal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghre1u41j66i3hojiv23.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghre1u41j66i3hojiv23.png" alt="Image description" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Salve o arquivo (CTRL+O).&lt;br&gt;
Feche o editor de texto (CTRL+X).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Execute o comando abaixo agora e sempre que modificar o arquivo de unidade do systemd:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Teste o serviço recém configurado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl start meu-script
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cada vez que iniciar o serviço, uma nova linha será adicionada ao arquivo teste.txt. Use este comando para conferir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo cat /home/ubuntu/scripts/teste.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Habilite o novo serviço para iniciar junto com o sistema:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl enable meu-script
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reinicie o sistema algumas vezes para testar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo shutdown -r now
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E confira o resultado novamente:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo cat /home/ubuntu/scripts/teste.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Testado no Ubuntu Linux 20.04 LTS&lt;/p&gt;

&lt;p&gt;Caso queira ver um log no journal do linux vocêpode usar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo journalctl -u meu-script
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59vvfsxhmv8cbuqr0td8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59vvfsxhmv8cbuqr0td8.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Caso queira ver o status você pode usar:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo systemctl status meu-script.service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Links Uteis&lt;br&gt;
&lt;a href="https://mistarts.com.br/" rel="noopener noreferrer"&gt;mistarts.com.br&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/samuelprogramer" rel="noopener noreferrer"&gt;Meu GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>shell</category>
      <category>aws</category>
      <category>servidores</category>
    </item>
  </channel>
</rss>
