Mudanças entre as edições de "Gogs"

De MochilaWiki
Ir para navegaçãoIr para pesquisar
(Criou página com 'http://blog.aeciopires.com/conhecendo-o-gogs/')
 
Linha 1: Linha 1:
 +
Wiki referente a instalação e configuração do gogs.
 +
 +
## Gogs
 +
 +
Com nginx
 +
* https://gogs.io/docs/intro/faqs
 +
* https://discuss.gogs.io/t/gogs-is-not-working-with-nginx-https-proxy/309/6
 +
* https://gist.github.com/thiemok/f7ad440c2d358e531e4a3945603420cd
 +
* https://www.digitalocean.com/community/tutorials/how-to-set-up-gogs-on-ubuntu-14-04
 +
 +
 +
Client / API
 +
* https://github.com/gogs/go-gogs-client/wiki
 +
 +
## Instalação
 +
 +
```bash
 +
apt install git mysql-server
 +
wget https://cdn.gogs.io/0.11.66/gogs_0.11.66_linux_amd64.tar.gz
 +
tar zxvf gogs_0.11.66_linux_amd64.tar.gz
 +
mv gogs /opt/
 +
```
 +
 +
```bash
 +
wget -O /etc/init.d/gogs https://gist.githubusercontent.com/leo-bianchi/a9581a42e478130ad4612a185151d385/raw/7bcc42930ba457d0c1b5e5ff173ad5d6a3e6a721/gogs
 +
```
 +
* Também pode ser encontrado [aqui](https://git.lfdb.com.br/lafabbrica/documentacao/raw/master/scripts_gogs/gogs)
 +
 +
```bash
 +
sed -i '18s/etc/opt/g' /etc/init.d/gogs
 +
chmod +x /etc/init.d/gogs
 +
useradd -m -d /home/git -s /bin/false git
 +
chown git: /home/git
 +
chown -R git: /opt/gogs/
 +
/etc/init.d/gogs restart
 +
update-rc.d -f gogs defaults
 +
```
 +
 +
## Criando base de dados
 +
 +
```bash
 +
mysql -u root -p
 +
```
 +
 +
```sql
 +
GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' identified by 'xu9AeMek';
 +
```
 +
 +
```sql
 +
CREATE DATABASE gogs CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
 +
```
 +
 +
```sql
 +
flush privileges;
 +
```
 +
 +
## SSL
 +
 +
* Para a implementação de SSL no nosso client gogs, utilizamos o [certbot](https://certbot.eff.org/).
 +
 +
### Configuração SSL
 +
 +
* Para a completa configuração do SSL no Gogs precisamos fazer alterações em dois arquivos de configuração:  `app.ini` e o `arquivo de configuração do gogs no nginx`.
 +
 +
* Configuração atual do arquivo de configuração:
 +
 +
```nginx
 +
server {
 +
    listen 80;
 +
    server_name git.lfdb.com.br;
 +
 +
    return 301 https://git.lfdb.com.br$request_uri;
 +
 +
    location / {
 +
        proxy_pass http://localhost:3000;
 +
      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_set_header        X-Forwarded-Proto $scheme;
 +
 +
      rewrite                ^/(.*) /$1 break;
 +
      rewrite                ^/$ /$1 break;
 +
      proxy_read_timeout  90;
 +
    }
 +
}
 +
 +
server {
 +
server_name git.lfdb.com.br;
 +
 +
    listen 443 ssl; # managed by Certbot
 +
    ssl_certificate /etc/letsencrypt/live/git.lfdb.com.br/fullchain.pem; # managed by Certbot
 +
    ssl_certificate_key /etc/letsencrypt/live/git.lfdb.com.br/privkey.pem; # managed by Certbot
 +
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
 +
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
 +
 +
    location / {
 +
        proxy_pass http://localhost:3000;
 +
      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_set_header        X-Forwarded-Proto $scheme;
 +
 +
      rewrite                ^/(.*) /$1 break;
 +
      rewrite                ^/$ /$1 break;
 +
      proxy_read_timeout  90;
 +
    }
 +
 +
}
 +
```
 +
* Comparativo da antiga configuração do arquivo `app.ini` para a nova configuração:
 +
    * *alterações feitas no bloco `[server]`*
 +
   
 +
```bash
 +
$ diff /opt/gogs/custom/conf/app.ini /opt/gogs/custom/conf/app.ini-old
 +
```
 +
 +
* Output:
 +
 +
<source lang="bash">
 +
17a18,20
 +
> ROOT_URL        = https://git.lfdb.com.br/
 +
> CERT_FILE      = /etc/letsencrypt/live/git.lfdb.com.br/cert.pem
 +
> KEY_FILE      = /etc/letsencrypt/live/git.lfdb.com.br/privkey.pem
 +
19,20d21
 +
< HTTP_PORT        = 3000
 +
< ROOT_URL        = http://git.lfdb.com.br/
 +
</source>
 +
 +
 
http://blog.aeciopires.com/conhecendo-o-gogs/
 
http://blog.aeciopires.com/conhecendo-o-gogs/

Edição das 23h21min de 14 de abril de 2019

Wiki referente a instalação e configuração do gogs.

    1. Gogs

Com nginx


Client / API

    1. Instalação

```bash apt install git mysql-server wget https://cdn.gogs.io/0.11.66/gogs_0.11.66_linux_amd64.tar.gz tar zxvf gogs_0.11.66_linux_amd64.tar.gz mv gogs /opt/ ```

```bash wget -O /etc/init.d/gogs https://gist.githubusercontent.com/leo-bianchi/a9581a42e478130ad4612a185151d385/raw/7bcc42930ba457d0c1b5e5ff173ad5d6a3e6a721/gogs ```

```bash sed -i '18s/etc/opt/g' /etc/init.d/gogs chmod +x /etc/init.d/gogs useradd -m -d /home/git -s /bin/false git chown git: /home/git chown -R git: /opt/gogs/ /etc/init.d/gogs restart update-rc.d -f gogs defaults ```

    1. Criando base de dados

```bash mysql -u root -p ```

```sql GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' identified by 'xu9AeMek'; ```

```sql CREATE DATABASE gogs CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; ```

```sql flush privileges; ```

    1. SSL
      1. Configuração SSL
  • Para a completa configuração do SSL no Gogs precisamos fazer alterações em dois arquivos de configuração: `app.ini` e o `arquivo de configuração do gogs no nginx`.
  • Configuração atual do arquivo de configuração:

```nginx server {

   listen 80;
   server_name git.lfdb.com.br;
   return 301 https://git.lfdb.com.br$request_uri;
   location / {
       proxy_pass http://localhost:3000;
     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_set_header        X-Forwarded-Proto $scheme;
     rewrite                 ^/(.*) /$1 break;
     rewrite                 ^/$ /$1 break;
     proxy_read_timeout  90;
   }

}

server { server_name git.lfdb.com.br;

   listen 443 ssl; # managed by Certbot
   ssl_certificate /etc/letsencrypt/live/git.lfdb.com.br/fullchain.pem; # managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/git.lfdb.com.br/privkey.pem; # managed by Certbot
   include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
   ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
   location / {
       proxy_pass http://localhost:3000;
     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_set_header        X-Forwarded-Proto $scheme;
     rewrite                 ^/(.*) /$1 break;
     rewrite                 ^/$ /$1 break;
     proxy_read_timeout  90;
   }

} ```

  • Comparativo da antiga configuração do arquivo `app.ini` para a nova configuração:
   * *alterações feitas no bloco `[server]`*
   

```bash $ diff /opt/gogs/custom/conf/app.ini /opt/gogs/custom/conf/app.ini-old ```

  • Output:
17a18,20
> ROOT_URL         = https://git.lfdb.com.br/
> CERT_FILE      = /etc/letsencrypt/live/git.lfdb.com.br/cert.pem
> KEY_FILE       = /etc/letsencrypt/live/git.lfdb.com.br/privkey.pem
19,20d21
< HTTP_PORT        = 3000
< ROOT_URL         = http://git.lfdb.com.br/


http://blog.aeciopires.com/conhecendo-o-gogs/