main
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
This project uses two git repositories:
| Repo | Contents | Purpose |
|---|---|---|
natascha-rieter-nl (this repo) |
Docker setup, Makefile, scripts | Local dev and server management |
natascha-rieter.nl-user |
Contents of user/ |
Deployed to production, synced with Git Sync |
The user/ folder in this repo is linked to the user repo via git subtree.
What goes where
| Path | Description | In git |
|---|---|---|
user/config/ |
Site and plugin configuration | user repo |
user/pages/ |
Page content | user repo |
user/themes/natascha/ |
Custom theme | user repo |
user/plugins/ |
Plugins (see plugins.txt) | no |
user/accounts/ |
Admin credentials | no |
user/data/ |
Runtime data | no |
user/cache/ |
Generated cache | no |
Deployment
Production runs on a VPS with Apache. The user repo is cloned into the Grav user/ folder on the server and kept in sync via the Git Sync plugin.
Remote config
Copy .env.example to .env and fill in your values (gitignored):
SERVER=user@example.com
WEBROOT=/path/to/public_html
USER_REPO=ssh://git@gitea.example.com/user/repo.git
First-time install
make remote-install
This SSHes into the server and runs scripts/server-install.sh, which installs Grav and clones the user repo.
Deploying content changes
make content-push # push local user/ changes to the user repo on Gitea
make content-pull # pull editor's content changes back locally
After make content-push, trigger a deploy on the server:
make remote-deploy # pull latest user repo changes and install plugins on server
Remote maintenance
make remote-install-plugins # install/update plugins from plugins.txt on server
make remote-upgrade-grav # upgrade Grav core on server
make remote-clean # clear Grav cache on server
Plugins
Plugins are not committed to git. The full list is in plugins.txt.
- Locally:
make install-plugins - Remotely:
make remote-install-plugins
Description
Languages
HTML
65.9%
Twig
17.6%
CSS
11.9%
Makefile
2.1%
Shell
1.7%
Other
0.8%