# Instalação e customização FileBrowser Docker

Gerenciador de upload/download de arquivos

# Tutorial instalar filebrowser com docker compose

<article class="blog-post" id="bkmrk-link%3A-https%3A%2F%2Fvinici" style="box-sizing: border-box; display: block; margin-bottom: 0px !important; color: rgb(64, 75, 85); font-family: 'Open Sans', sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(254, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Link: [https://viniciuspaes.com/docker/tutorial-instalar-filebrowser-docker-compose/](https://viniciuspaes.com/docker/tutorial-instalar-filebrowser-docker-compose/)  
[https://github.com/filebrowser/filebrowser](https://github.com/filebrowser/filebrowser)</article><article class="blog-post" id="bkmrk-objetivo-instalar-im" style="box-sizing: border-box; display: block; margin-bottom: 0px !important; color: rgb(64, 75, 85); font-family: 'Open Sans', sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(254, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">  
## Objetivo

Instalar imagem do filebrowser em formato de container com o docker. Neste exemplo vamos instalar em um ambiente linux, mas o setup é o mesmo para o windows.

## Requisitos

<div class="body-single" style="box-sizing: border-box; text-align: justify;">1. Software docker instalado e configurado no sistema operacional
2. Docker compose instalado e configurado
3. Conexão com internet para que seja possível realizar o download da imagem do filebrowser

</div>## Como instalar imagem do filebrowser com docker

### Passo 1: Ter uma pasta dedicada para gerenciar os containers

Caso esteja configurando em linha de comando no linux:

```
mkdir ~/docker
cd ~/docker
```

### Passo 2: Criar uma pasta para armazenar os arquivo de configuração do filebrowser

```
mkdir ~/docker/filebrowser
```

### Passo 3: Criar arquivos de configuração em branco do filebrowser

Na primeira execução/instalação do **filebrowser,** é necessário criar os arquivos de configuração em branco, para evitar problemas do container criar os mesmos como diretório.

Dentro da pasta **~/docker/filebrowser** vamos criar a pasta **config/** para armazenar os arquivos de configuração (que inicialmente vão estar em branco):

```
mkdir ~/docker/filebrowser/config
touch ~/docker/filebrowser/config/filebrowser.db
touch ~/docker/filebrowser/config/filebrowser.json
```

### Passo 4: Descobrindo o UID e o GID do seu usuário no linux

No terminal utilize o comando para descobrir o **UID** (user ID):

```
id -u
```

Para descobrir o **GID** (group ID):

```
id -g
```

No meu exemplo, meu **UID** e **GID** tiveram como resultado o número <span style="box-sizing: border-box; color: rgb(255, 102, 0);">**1000**</span>.

### Passo 5: Definindo corretamente o proprietário dos arquivos de configuração do filebrowser

É necessário que os arquivos filebrowser.db e filebrowser.json tenham como proprietário o **usuário** e o **grupo de usuário** corretos, no meu caso:

```
sudo chown <strong style="box-sizing: border-box; font-weight: bold;">vinicius</strong>:<strong style="box-sizing: border-box; font-weight: bold;">vinicius</strong> ~/docker/filebrowser/config/filebrowser.*
```

É possível também utilizar o **UID** e o **GID** no lugar dos nomes do **usuário** e **grupo de usuário** acima, ou seja, **1000**:**1000** (ao invés de <span style="box-sizing: border-box; color: rgb(255, 153, 0);">**vinicius**</span>:<span style="box-sizing: border-box; color: rgb(255, 153, 0);">**vinicius**</span>).

### Passo 6: Criar o arquivo de docker compose para o filebrowser

Agora precisamos criar o arquivo **docker-compose.yml** dentro da pasta **~/docker/filebrowser** com o editor de texto conhecido como nano.

```
nano ~/docker/filebrowser/docker-compose.yml
```

Dentro do **docker-compose.yml** é necessário inserir o conteúdo abaixo:

```
---
version: "2"
services:
  filebrowser:
    image: filebrowser/filebrowser
    container_name: filebrowser
    volumes:
      - /home/<strong style="box-sizing: border-box; font-weight: bold;">vinicius</strong>:/srv                                                            #Pasta onde deseja que os arquivos sejam acessados pelo filebrowser
      - /home/<strong style="box-sizing: border-box; font-weight: bold;">vinicius</strong>/docker/filebrowser/config/filebrowser.db:/database.db
      - /home/<strong style="box-sizing: border-box; font-weight: bold;">vinicius</strong>/docker/filebrowser/config/filebrowser.json:/filebrowser.json
    ports:
      - <strong style="box-sizing: border-box; font-weight: bold;">80</strong>:80                                                                          #Mapeamento porta externa (servidor) : Porta interna (container)
    user: <strong style="box-sizing: border-box; font-weight: bold;">1000</strong>:<strong style="box-sizing: border-box; font-weight: bold;">1000</strong>                                                                    #(Id do usuário) UID:GID (Id do grupo do usuário)
    restart: unless-stopped
```

Após inserir os dados acima dentro do arquivo docker-compose.yml pelo nano, lembre-se de salvar o arquivo e sair do editor.

### Passo 7: Inicializar o container

Caso a imagem do container não esteja disponível (possivelmente não estará) o docker fará o download automaticamente.  
Para iniciar a imagem do container com o docker compose, utilize o comando:

```
cd ~/docker/filebrowser
docker compose up -d
```

Caso esteja utilizando o filebrowser em seu próprio computador, é possível acessá-lo pelo browser, pela url:

```
http://localhost:<strong style="box-sizing: border-box; font-weight: bold;">porta</strong>
```

Ou se estiver utilizando o mesmo em algum computador remoto ou servidor, basta acessar pelo ip:porta, exemplo:

```
http://192.168.1.70:<strong style="box-sizing: border-box; font-weight: bold;">80</strong>
```

Caso já tenha algum serviço funcionando na porta 80, é necessário editar o arquivo docker-compose.yml e alterar o mapeamento de portas, exemplo:

```
    ports:
      - <strong style="box-sizing: border-box; font-weight: bold;">8077</strong>:80
```

Desta forma o serviço do filebrowser ficará disponível na porta <span style="box-sizing: border-box; color: rgb(255, 153, 0);">**8077**</span>.

## Conclusão

Instalar o container do filebrowser é bastante simples. Necesário ter cuidado apenas na primeira vez que inicializar o container, pois é necessário ter os arquivos de configuração criados previamente, senão o container irá criar os mesmos como diretórios e causará erros de execução.

Para demais comandos utilizando o docker em linha de comando, acesse o artigo: [https://viniciuspaes.com/raspberry-pi/tutorial-como-instalar-docker-raspberry-pi/](https://viniciuspaes.com/raspberry-pi/tutorial-como-instalar-docker-raspberry-pi/)

</article>