This website is used to generate the https://beethovens-werkstatt.de website.
This project uses Docker to provide a consistent developFor more information about Jekyll, visit the official documentation.
Project: Beethovens Werkstatt Website
Framework: Jekyll with Docker
Documentation: See docs/
folder for detailed technical documentationt environment that works on both x86_64 and ARM64 (Apple M1/M2) architectures without requiring Ruby or Jekyll installation on your local machine.
- Docker
- Docker Compose (included with Docker Desktop)
-
Clone the repository (if you haven't already):
git clone <your-repo-url> cd Website
-
Start the development server:
# Using the helper script (recommended) ./dev.sh start # Or using docker-compose directly docker-compose up jekyll
-
View the site: Open
http://localhost:4000
in your browser -
Stop the server: Press
Ctrl+C
or run:docker-compose down
🚀 Recommended approach - using the helper script:
# Start development server (recommended)
./dev.sh start
# Site will be available at http://localhost:4000
Or using docker-compose directly:
docker-compose up jekyll
# Site will be available at http://localhost:4000
The dev.sh
script provides convenient commands for common development tasks:
./dev.sh start # Start development server (default)
./dev.sh build # Build site for production
./dev.sh clean # Clean up Docker containers and volumes
./dev.sh rebuild # Rebuild Docker image
./dev.sh shell # Open shell in Jekyll container
./dev.sh logs # Show container logs
./dev.sh help # Show help message
# Start development server with live reload
docker-compose up jekyll
# Start in background
docker-compose up -d jekyll
# View logs
docker-compose logs -f jekyll
# Build the site for production
docker-compose run --rm build
# The built site will be in the _site/ directory
# Install/update dependencies
docker-compose run --rm jekyll bundle install
# Add a new post
docker-compose run --rm jekyll bundle exec jekyll post "Your Post Title"
# Check for issues
docker-compose run --rm jekyll bundle exec jekyll doctor
- Live Reload: Changes to files are automatically reflected in the browser
- Consistent Environment: Same Ruby and Jekyll versions for everyone
- No Local Dependencies: No need to install Ruby, Jekyll, or manage versions
- Port Forwarding: Access the site at
localhost:4000
- Volume Mounting: Changes to your local files are immediately available in the container
If you prefer not to use Docker, you can set up Jekyll traditionally:
- Ruby 3.1+
- Bundler
bundle install
bundle exec jekyll serve
This repository uses GitHub Actions for automated building and deployment. The Jekyll site is built in a container environment that matches the Docker setup.
The deployment workflow:
- Triggers: Push to main branch or manual trigger
- Environment: Uses the same Jekyll Docker image
- Build: Generates static site files
- Deploy: Publishes to GitHub Pages
You can trigger deployments manually through the GitHub Actions interface:
- Go to the Actions tab in GitHub
- Select "Build and Deploy Jekyll Site"
- Click "Run workflow"
├── _config.yml # Jekyll configuration
├── _posts/ # Blog posts
├── _layouts/ # Page layouts (if customizing)
├── _includes/ # Reusable page components
├── _sass/ # Sass stylesheets
├── assets/ # Static assets (images, CSS, JS)
├── index.md # Homepage
├── about.md # About page
├── contact.md # Contact page
├── Dockerfile # Docker container definition
├── docker-compose.yml # Docker Compose configuration
└── .github/workflows/ # GitHub Actions workflows
- Site configuration: Edit
_config.yml
- Content: Add pages as Markdown files in the root directory
- Blog posts: Add to
_posts/
following the naming conventionYYYY-MM-DD-title.md
- Styling: The default theme is Minima, which can be customized
Comprehensive technical documentation is available in the docs/
folder:
- Project Status - Complete feature overview and current state
- SCSS Architecture - Modular styling system documentation
- Font Setup - Local font serving configuration
- Navigation Structure - Site navigation setup
- Styling Guide - Design system and color schemes
- File Organization - Recent structural changes
For a complete overview, see the Documentation Index.
If you encounter Docker-related issues:
# Rebuild the container
docker-compose build --no-cache
# Remove all containers and volumes
docker-compose down -v
docker system prune -a
# Start fresh
docker-compose up jekyll
If port 4000 is already in use:
# Use a different port
docker-compose run --rm -p 4001:4000 jekyll bundle exec jekyll serve --host 0.0.0.0
Docker handles all permissions internally, so you shouldn't encounter the Ruby permission issues that can occur with local installations.
- No Local Dependencies: Works regardless of your local Ruby setup
- Consistent Environment: Everyone gets the same Jekyll version
- Easy Setup: One command to get started
- No Permission Issues: All handled within the container
- Production Parity: Local environment matches deployment environment
For more information about Jekyll, visit the official documentation.eethovens Werkstatt – Website Repository
This website is used to generate the https://beethovens-werkstatt.de website.