| layout | page |
|---|---|
| title | Local Development Setup |
| header | Local Development Setup |
| group | navigation |
{% include JB/setup %}
This is a Jekyll-based static site hosted on GitHub Pages. Follow these steps to run it on your local machine.
You'll need:
- Git
- Ruby 3.0 or higher
- Bundler (Ruby package manager)
On Ubuntu/Debian:
sudo apt update
sudo apt install ruby ruby-dev ruby-bundler build-essentialOn macOS:
brew install ruby
gem install bundlercd /path/to/your/jekyll-sitebundle config set --local path vendor/bundle
bundle installThis installs all required gems locally in the vendor/bundle directory, avoiding permission issues.
Sveltia CMS is a headless CMS that lets you manage your Jekyll content through a visual interface.
- Go to GitHub Developer Settings → OAuth Apps
- Click "New OAuth App" and fill in:
- Application name: My Site CMS
- Homepage URL:
https://lolandese.github.io - Authorization callback URL:
https://lolandese.github.io/admin/
- Copy your Client ID and generate a Client Secret
- Open admin/config.yml and replace
YOUR_GITHUB_APP_IDwith your Client ID
For local development, the CMS is accessible at:
http://localhost:4000/admin/
This interface allows you to:
- Create, edit, and delete blog posts
- Manage pages
- Upload images to
/assets/images/ - Preview changes before publishing
The Sveltia CMS configuration is in admin/config.yml:
- Posts collection: Manages blog posts in
_posts/ - Pages collection: Manages standalone pages (contact.md, edu.md, etc.)
- Media handling: Images stored in
assets/images/
All changes are committed directly to your GitHub repository.
bundle exec jekyll serveThe output will show:
Server address: http://127.0.0.1:4000
Server running... press ctrl-c to stop.
Open your browser to http://localhost:4000 to view the site.
Jekyll automatically rebuilds the site when you modify files. Simply refresh your browser to see changes.
Press Ctrl+C in the terminal to stop the Jekyll server.
iNotify watches exceeded: If you get an error about inotify limits, increase them:
sudo sysctl fs.inotify.max_user_watches=524288Port 4000 already in use: Run on a different port:
bundle exec jekyll serve --port 5000Then access it at http://localhost:5000
_config.yml- Site configurationGemfile- Ruby dependencies_posts/- Blog posts_layouts/- Page templates_includes/- Reusable componentsassets/- CSS, images, and other assets
The following directories are excluded from version control:
vendor/- Local gem installation.bundle/- Bundle configurationGemfile.lock- Dependency lock file
GitHub Pages will automatically resolve dependencies when deploying.