itzbund/gsb-sitepackage

GSB 11 site package - All you need to define your GSB-11-based web project.

v6.4.0 2025-07-01 09:53 UTC

This package is auto-updated.

Last update: 2025-07-01 17:51:59 UTC


README

TYPO3 12


<img src="https://www.itzbund.de/SiteGlobals/Frontend/Images/logo.svg?__blob=normal&v=18" alt="Logo" width="300">

Jumpstart your GSB11 powered tenant development.

GSB11 Sitepackage Kickstarter

Table of Contents

Overview

The GSB11 Sitepackage Kickstarter is a Composer root package that streamlines the setup of a local GSB11 tenant development environment. Follow the steps below to:

  • Scaffold a new GSB11 project
  • Launch a Docker-based development setup with DDEV
  • Install and configure TYPO3 with core GSB11 extensions
  • Begin customizing your tenant configuration

Features Included

After a successful setup, you'll have:

  • Core GSB11 components (gsb-core) with basic configuration
  • Accessibility enhancements via a11y_backend
  • Improved user management & security through gsb-feusermanagement
  • Metadata cleaning to help prevent phishing (gsb-metadata-cleaner)
  • Dashboard favorites widget (gsb-widgets)
  • Accessible frontend (without the official federal style guide) via gsb_public_frontend

What's Not Included

Getting Started

Prerequisites

Ensure you have the following installed on your machine:

Supported Operating Systems

  • CentOS 9 / CentOS 10
  • Debian 11 "Bullseye" / Debian 12 "Bookworm"
  • Fedora 42
  • macOS 15.5 "Sequoia"
  • Ubuntu 22.04 "Jammy Jellyfish" / Ubuntu 24.04 "Noble Numbat"

Required Tools

[!IMPORTANT] Windows Users: Run DDEV inside WSL2 and execute commands in the Linux shell.

Installation Steps

  1. Create project directory
mkdir gsb11-tenant && cd $_
  1. Initialize DDEV configuration
ddev config --php-version 8.3 --docroot .build/public --project-type typo3
  1. Set up environment variables
sed -i '/^web_environment:[[:space:]]*\[\]/{s/\[\]//;a\
    - FRONTEND_DOMAIN=gsb11-tenant.ddev.site\
    - BACKEND_DOMAIN=gsb11-tenant.ddev.site\
    - TYPO3__SYS__features__brandingBackendLogin=true\
    - TYPO3__SYS__features__ITZBUNDPHP-749=true\
    - TYPO3__SYS__features__ITZBUNDPHP-1615=true\
    - TYPO3__SYS__features__ITZBUNDPHP-1996=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2040=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2328=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2877=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3176=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3288=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3289=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3327=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3435=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3878=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3969=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3979=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4070=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4079=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4083=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4133=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4329=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4379=true\
    - TYPO3__EXTENSIONS__gsb_core__additionalAllowedFileExtensionsForUploadsElement=docx,xlsx\
    - TYPO3__EXTENSIONS__gsb_core__allowedVideoDomains='*.bund.de'\
    - TYPO3__EXTENSIONS__gsb_core__allowedAudioDomains='*.bund.de'
}' .ddev/config.yaml

[!IMPORTANT] macOS users: Use -i '' instead of -i for BSD sed in-place edits:

sed -i '' '/^web_environment:[[:space:]]*\[\]/{s/\[\]//;a\
    - FRONTEND_DOMAIN=gsb11-tenant.ddev.site\
    - BACKEND_DOMAIN=gsb11-tenant.ddev.site\
    - TYPO3__SYS__features__brandingBackendLogin=true\
    - TYPO3__SYS__features__ITZBUNDPHP-749=true\
    - TYPO3__SYS__features__ITZBUNDPHP-1615=true\
    - TYPO3__SYS__features__ITZBUNDPHP-1996=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2040=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2328=true\
    - TYPO3__SYS__features__ITZBUNDPHP-2877=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3176=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3288=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3289=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3327=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3435=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3878=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3969=true\
    - TYPO3__SYS__features__ITZBUNDPHP-3979=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4070=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4079=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4083=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4133=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4329=true\
    - TYPO3__SYS__features__ITZBUNDPHP-4379=true\
    - TYPO3__EXTENSIONS__gsb_core__additionalAllowedFileExtensionsForUploadsElement=docx,xlsx\
    - TYPO3__EXTENSIONS__gsb_core__allowedVideoDomains='*.bund.de'\
    - TYPO3__EXTENSIONS__gsb_core__allowedAudioDomains='*.bund.de'
}' .ddev/config.yaml
  1. Start DDEV
ddev start
  1. Install the sitepackage
ddev composer create-project -y itzbund/gsb-sitepackage
  1. Setup TYPO3 & GSB11
ddev exec cp vendor/typo3/cms-install/Resources/Private/FolderStructureTemplateFiles/root-htaccess .build/public/.htaccess && \
ddev typo3 setup --force \
    --no-interaction \
    --server-type='apache' \
    --driver='mysqli' \
    --username='db' \
    --password='db' \
    --port=3306 \
    --host='db' \
    --dbname='db' \
    --project-name="GSB11" \
    --create-site='https://gsb11-tenant.ddev.site' \
    --admin-username='admin' \
    --admin-user-password='§Chang3Me§' \
    --admin-email=''

[!WARNING] Security Note: This password is only for local development. Use a strong, secure password in production.

  1. Enable all extensions
ddev exec vendor/bin/typo3 extension:setup
  1. Launch the site
ddev launch

Alternatively, visit: gsb11-tenant.ddev.site

  1. Access the TYPO3 backend
ddev launch /typo3

Use the admin credentials from step 6. \ Alternatively, visit: gsb11-tenant.ddev.site/typo3

  1. Start customizing! 🚀

Additional Resources

Contributing

We welcome your contributions! Please follow our Contribution Walkthrough to get started.

License

This project is licensed under the GPL-3.0-or-later.