forked from toolshed/new-website-jekyll-theme
docker-deploy
Merge branch 'antifascista' of https://0xacab.org/sutty/jekyll/morral-jekyll-theme into antifascista
Co-op Cloud Website
Jekyll site and theme for the Co-op Cloud Federation, based on Sutty Base Bootstrap 5.
- Testing site: https://coopcloud.testing.sutty.nl
- Deployment: Sutty
- Local development: Docker Compose
What is in this repository
This repository contains both the theme and the site content:
- Jekyll 4.4 with Bootstrap 5
- English content in
_en/and Spanish content in_es/(only English is currently enabled) - Page layouts in
_layouts/and reusable components in_includes/ - Custom plugins in
_plugins/, including generated recipe and taxonomy pages - Static search with Pagefind
- ActivityPub support through
jekyll-activity-pub - JavaScript built with esbuild, Stimulus, and Turbo
Content is normally written in the Sutty CMS, which commits to this repository.
Run locally with Docker
Requirements:
- Docker with Compose v2, or Podman with
podman-compose - Git LFS
git lfs install
git lfs pull
docker compose up --build
Open http://localhost:4000.
The first run takes a few minutes because it installs gems, compiles native extensions, and builds the site.
With rootless Podman:
podman-compose -f compose.yaml -f compose.podman.yaml up --build
Docker is for local development only. It does not deploy the site.
Common commands
docker compose logs -f # follow logs
docker compose down # stop
docker compose down -v # stop and reset dependencies
docker compose run --rm setup # reinstall after dependency changes
One-off build:
docker compose run --rm jekyll \
bundle exec jekyll build --config _config.yml,_config.docker.yml
Repository layout
_en/, _es/ Site content
_data/ CMS schemas, translations, recipe data
_layouts/ Page templates
_includes/ Reusable Liquid components
_plugins/ Custom Jekyll plugins
_sass/, assets/ Styles, fonts, and JavaScript
docker/dev/ Docker image, setup script, and dev Gemfile
compose.yaml Local development environment
_config.yml Jekyll configuration
Notes
- The production
Gemfile.lockuses Sutty's gem server and musl-native gems that are not available on rubygems.org. The Docker setup therefore uses a separatedocker/dev/Gemfileand lockfile. Some versions may differ from production. - Fonts, images,
assets/js/pack.*, and_bin/pagefindare stored with Git LFS. The site will not build correctly withoutgit lfs pull. - The setup service generates
privkey.pemandpack.js. Do not commitprivkey.pem. - The Fork Awesome subset is committed. Regenerate it with
./_bin/subset_fork_awesome.shafter changing_data/fa.yml, then commit it. - Change
pack.jsonly through thejsservice; edit sources in_packs/.
Troubleshooting
- LFS error during setup: run
git lfs pull. - Connection refused from another machine: the server listens on
0.0.0.0:4000; allow TCP ports4000and35729in the host firewall. - Port already in use: change the host ports in
compose.yaml. - Broken dependency state: run
docker compose down -vand start again.
License
The theme is distributed under the Anti-Fascist MIT License. See
LICENSE.txt.
Languages
HTML
36.9%
JavaScript
24.4%
SCSS
22%
Ruby
15.9%
Shell
0.8%