# Installatie

Maak een project, draai het lokaal en log in op de admin.

Een Nimbly-project is de repository van het framework met de repository van je applicatie erin, in `ext/`. Twee commando's geven je een werkende site.

## Vereisten

- PHP 8, of Docker. Zonder PHP op de host draait `./nimbly` zijn PHP-commando's in Docker.
- Node.js 20 of nieuwer met npm.
- Git.

## Een project maken

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

`init` installeert de frontend-dependencies, richt de site in en bouwt de assets. De setup vraagt om een sitenaam, een e-mailadres voor de admin en een wachtwoord, en maakt:

- `.env` met de omgeving en een gegenereerde `PEPPER`, het geheim voor sessies en versleutelde velden. Bewaar het goed; als je het later verandert, zijn versleutelde waarden niet meer leesbaar.
- `.htaccess` voor Apache.
- de map `ext/` met `data/`, `lib/`, `modules/`, `static/`, `tpl/` en `uri/`.
- de site-instellingen, de standaardrollen (`admin`, `editor`) en je admin-gebruiker.
- een startpagina in `ext/uri/` die laat zien waar pagina's, content en data staan. Die mag je aanpassen of weghalen.

Werk je aan een bestaande applicatie, clone die dan in `ext/` voordat je `init` draait:

```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/` is een eigen Git-repository. Draai voor een nieuwe applicatie `git -C ext init` en voeg je eigen remote toe.

## Starten

```bash
./nimbly up
```

Dit start de lokale Docker-omgeving. Open `http://localhost` voor de site en `http://localhost/nb-admin/` voor de admin, en log in met het account dat je hebt aangemaakt.

Houd tijdens het ontwikkelen de assets bij terwijl je templates en styles aanpast:

```bash
./nimbly watch
```

## Setup zonder vragen

Geef in een script of container de antwoorden mee als omgevingsvariabelen:

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

De setup kun je veilig opnieuw draaien: hij maakt wat ontbreekt en overschrijft nooit bestaande bestanden of records. De variabelen die hij leest, staan bij [`system:setup`](/nl/docs/reference/cli/).

## Verder

- [Bouw een projectensite](/nl/docs/learn/projects/) loopt een eerste feature door.
- Werk je met Claude Code of Codex? Open de projectmap: de instructies voor de agent staan er al in. Zie [Werken met AI-codeeragents](/nl/docs/learn/for-ai-agents/).
- [Core en ext](/nl/docs/concepts/core-and-ext/) legt de twee repositories uit.
- [Configuratie](/nl/docs/reference/configuration/) noemt de instellingen in `.env`.
