> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Como hospedar uma aplicação Java na Vertra Cloud

> Faça deploy de uma aplicação Java na Vertra Cloud com Temurin JRE 21: fat JAR com manifesto Main-Class, no mínimo 512 MB de RAM e flags de heap.

## Requisitos

* Java 17+ instalado localmente
* Maven ou Gradle configurado
* Conta na [Vertra Cloud](https://vertracloud.app)

## Estrutura do projeto

```
my-api-java/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/
│   │   │       ├── Application.java
│   │   │       └── controller/
│   │   │           └── ItemController.java
│   │   └── resources/
│   │       └── application.properties
├── pom.xml
└── vertracloud.config
```

## Configuração

### pom.xml

```xml theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>my-api</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.0</version>
        <relativePath/>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.7.0</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
```

### application.properties

```properties theme={null}
spring.application.name=my-api-java
server.port=${PORT:8080}
server.address=0.0.0.0

# Database
spring.datasource.url=jdbc:postgresql://${DB_HOST:localhost}:${DB_PORT:5432}/${DB_NAME:vertracloud}
spring.datasource.username=${DB_USER:vertracloud}
spring.datasource.password=${DB_PASSWORD:}
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=false

# Logging
logging.level.root=INFO
logging.level.com.example=DEBUG
```

### vertracloud.config

```ini theme={null}
MAIN=pom.xml
VERSION=recommended
```

## Deploy

**Painel**

1. Compacte o projeto em um `.zip` (pastas como `node_modules`, `venv` e `target` são removidas automaticamente) ou envie para o GitHub.
2. No painel, clique em **Novo Projeto** e envie o `.zip` ou cole a URL do repositório.
3. Em **Build**, confira o runtime (**Java**), o arquivo principal e a memória. Os comandos de start e de build ficam em **Configurações Avançadas**.
4. Adicione suas variáveis de ambiente em **Ambiente**.
5. Em **Rede**, ative a **publicação web** para que a aplicação receba um endereço `*.vertraweb.app` (plano Pro ou superior, 512 MB de memória). A aplicação precisa escutar na porta 80.
6. Revise e faça o deploy. Acompanhe a saída na aba **Logs**.

**CLI**

```bash theme={null}
vertra upload
vertra logs -f
```

Veja [CLI](https://docs.vertracloud.app/pt-br/cli.md) para instalação e login.

**VS Code**

Abra a pasta com a extensão da Vertra Cloud instalada e execute **Fazer deploy do projeto atual**. Veja [Extensão do VS Code](https://docs.vertracloud.app/pt-br/vscode-extension.md).

O passo a passo completo está em [Primeiro deploy](https://docs.vertracloud.app/pt-br/how-to-host.md).

## Versões disponíveis

| Versão | Status | Descrição |
| - | - | - |
| 21 | Recomendada e mais recente | Java 21 LTS (recomendada para produção) |
| 17 | Estável | Java 17 LTS com suporte estendido |

## Observações

* **Compilação automática**: o Maven compila o projeto dentro do container durante o deploy
* **Tempo de compilação**: pode levar de 5 a 10 minutos, dependendo do tamanho
* **Memória recomendada**: 1GB para Spring Boot em produção (compilação + runtime)
* **Variáveis de ambiente**: configure pelo painel as credenciais do banco de dados
* **Logs**: disponíveis em tempo real no terminal do painel
* **Ajuste da JVM**: a JVM é configurada automaticamente para o container
* Escute em `0.0.0.0` na porta `$PORT`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.