# Instalação

Crie um projeto, rode-o localmente e entre no admin.

Um projeto Nimbly é o repositório do framework com o repositório da sua aplicação dentro dele, em `ext/`. Dois comandos dão a você um site funcionando.

## Requisitos

- PHP 8, ou Docker. Sem PHP no host, o `./nimbly` roda seus comandos PHP no Docker.
- Node.js 20 ou mais recente com npm.
- Git.

## Crie um projeto

```bash
git clone https://github.com/Nimbly-Web-Systems/nimbly-core.git my-project
cd my-project
./nimbly init
```

O `init` instala as dependências do frontend, configura o site e faz o build dos assets. O setup pede um nome para o site, um e-mail de admin e uma senha, e cria:

- o `.env` com o ambiente e um `PEPPER` gerado, o segredo usado para sessões e campos criptografados. Guarde-o; mudá-lo depois torna os valores criptografados ilegíveis.
- o `.htaccess` para o Apache.
- a pasta `ext/` com `data/`, `lib/`, `modules/`, `static/`, `tpl/` e `uri/`.
- as configurações do site, as funções padrão (`admin`, `editor`) e seu usuário admin.
- uma página inicial em `ext/uri/` que mostra onde ficam páginas, conteúdo e dados. Ela é sua para mudar ou remover.

Para trabalhar numa aplicação existente, clone-a em `ext/` antes de rodar o `init`:

```bash
git clone https://github.com/Nimbly-Web-Systems/nimbly-core.git my-project
cd my-project
git clone git@github.com:your-org/your-app.git ext
./nimbly init
```

`ext/` é um repositório Git próprio. Para uma aplicação nova, rode `git -C ext init` e adicione seu próprio remote.

## Rode o projeto

```bash
./nimbly up
```

Isso inicia o ambiente Docker local. Abra `http://localhost` para o site e `http://localhost/nb-admin/` para o admin, e entre com a conta que você criou.

Durante o desenvolvimento, mantenha os assets atualizados enquanto edita templates e estilos:

```bash
./nimbly watch
```

## Setup sem perguntas

Num script ou num contêiner, passe as respostas como variáveis de ambiente:

```bash
SITE_NAME="My Site" ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD='a long password' ./nimbly system:setup
```

O setup pode ser rodado de novo com segurança: ele cria o que falta e nunca sobrescreve arquivos ou registros existentes. As variáveis que ele lê estão em [`system:setup`](/pt/docs/reference/cli/).

## Próximos passos

- [Construa um site de projetos](/pt/docs/learn/projects/) percorre uma primeira funcionalidade.
- Trabalha com Claude Code ou Codex? Abra a pasta do projeto: as instruções para o agente já estão lá. Veja [Trabalhando com agentes de programação com IA](/pt/docs/learn/for-ai-agents/).
- [Core e ext](/pt/docs/concepts/core-and-ext/) explica os dois repositórios.
- [Configuração](/pt/docs/reference/configuration/) lista as configurações do `.env`.
