# natascha-rieter.nl — Grav CMS

## Local development

Requires Docker. To set up from scratch:

```
make setup
```

This starts the container and installs all plugins listed in `plugins.txt` via GPM.

Other commands:

```
make start    # start the container
make stop     # stop the container
make install-plugins  # (re)install plugins from plugins.txt
```

Site runs at http://localhost:8080.

## Repository structure

| Path | Description | In git |
|------|-------------|--------|
| `user/config/` | Site and plugin configuration | yes |
| `user/pages/` | Page content | yes (see deployment note) |
| `user/themes/natascha/` | Custom theme | yes |
| `user/plugins/` | Plugins (see plugins.txt) | no |
| `user/accounts/` | Admin credentials | no |
| `user/data/` | Runtime data | no |
| `user/cache/` | Generated cache | no |

## Deployment

Production is shared hosting. Deploy via FTP.

### Initial deploy
Upload the full `user/` directory (including locally installed plugins from `user/plugins/`).

### Subsequent deploys
**Only upload** `user/themes/` and `user/config/`. Do **not** overwrite `user/pages/` — content is managed online by editors after go-live and a deploy would overwrite their changes.

> **Future improvement**: once the site is live and content is stable, move `user/pages/` to `.gitignore` entirely (Option 1). Content backups should be handled separately (e.g. a server-side backup solution), not via git.

## Plugins

Plugins are not committed to git. The full list is in `plugins.txt`. To install locally, run `make install-plugins`. On the production server, plugins must be uploaded manually (no CLI access on shared hosting).
