itzbund/gsb-sitepackage

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

v1.7.8-rc.1 2024-11-07 13:38 UTC

This package is auto-updated.

Last update: 2024-11-08 12:33:13 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

The GSB11 Sitepackage Kickstarter will help you to get started with GSB11 tenant development. After completing the steps below, you will have a local development environment with sample content up and running. You will be able to commit your tenant configuration and development to your tenant GitLab repository.

What do I get?

The purpose of the GSB11 Sitepackage Kickstarter is to provide developers with an easy entry into tenant development according to Option 2. See Tenant Factsheet.

Included after a successful setup are the core components of GSB11:

  • Basic configuration and core development components (gsb-core)
  • Accessibility improvements through a11y_backend
  • Enhanced user management and security adjustments (gsb-feusermanagement)
  • Prevention of phishing by removing metadata when uploading files (gsb-metadata-cleaner)
  • Display of favorites on the dashboard through gsb-widgets

What is missing?

The accessible frontend according to the federal style guide (gsb_frontend) is not published and is only accessible to authorities. Access can be requested at https://produkt.gsb.bund.de/kontakt. Pre-filled pages with showcases on how certain content is managed gsb_destribution.

Tenant Factsheet

Please have a first look into the Tenant Factsheet upfront and use it as a reference for all questions regarding your tenant GSB11 project.

Prerequisites

You need a few things upfront:

  • ddev installed on your computer
  • php version 8.2 installed on your computer including the required extensions
  • composer installed on your computer
  • Login details (Username, Password) to OpenCoDE

Preparation

  1. Authenticate with OpenCoDE

    composer config -g gitlab-domains gitlab.opencode.de
    composer config -g repositories.gsb-sitepackage vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb-sitepackage-kickstarter.git
    composer config -g repositories.a11y-backend vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/a11y_backend.git
    composer config -g repositories.captainhook-hooks vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/captainhook-hooks.git
    composer config -g repositories.gsb-core vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_core.git
    composer config -g repositories.gsb-feusermanagement vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_feusermanagement.git
    composer config -g repositories.gsb-metadata-cleaner vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_metadata_cleaner.git
    composer config -g repositories.gsb-widgets vcs https://gitlab.opencode.de/bmi/government-site-builder-11/extensions/gsb_widgets.git
    

    Set user and password (use your personal access token as password)

    composer config -g gitlab-token.gitlab.opencode.de <PASSWORD>
    

Installation

NOTE

  • We use Linux and macOS in our team, so the Windows setup may not work without errors.

  • If you are developing on Windows, use ddev in WSL2 and enter the following commands in the Linux shell.

  • If you notice an error, please contribute your solution.

Follow the steps to set up a GSB11 website with this sitepackage as a composer root package.

  1. Create GSB11 project

    composer create-project itzbund/gsb-sitepackage gsb11-mandant && cd gsb11-mandant
    

    If this command fails, try this workaround.

    cd gsb11-mandant
    composer config --unset repositories.63
    composer install
       
    

    OR remove the folowing from the composer.json

        "repositories": {
             "63": {
                 "type": "composer",
                 "url": "https://git.gsb-itzbund.de/api/v4/group/63/-/packages/composer/packages.json"
             }
         }
       
           
     than run composer install
    
  2. Start local development environment
    ddev start
    
  3. Install GSB11

    ddev exec cp .composer/vendor/typo3/cms-install/Resources/Private/FolderStructureTemplateFiles/root-htaccess .build/public/.htaccess && \
    ddev exec .composer/bin/typo3 setup --force \
    --no-interaction \
    --server-type=apache \
    --driver=mysqli \
    --username=db \
    --password=db \
    --port=3306 \
    --host=db \
    --dbname=db \
    --admin-username=admin \
    --admin-user-password=Pas§§wor1 \
    --admin-email='' \
    --project-name="GSB11" \
    --create-site="https://gsb-sitepackage.ddev.site"
    

    NOTE

    This configuration is used exclusively in the local development environment. The configuration is discarded in the deployment process! Please use a secure password

  4. Install extensions

    ddev exec .composer/bin/typo3 extension:setup
    

    GSB11 GitLab only! (optional) You can remove the Distribution Extension. The dummy content (page tree and files) is already loaded. The extension is now obsolete.

    ddev composer remove itzbund/gsb-distribution
    
  5. Launch project

    ddev launch
    
  6. Login Backend

    Visit https://gsb-sitepackage.ddev.site/typo3 in your browser or use the

    ddev launch /typo3
    

    NOTE

    You defined Username and Password in step 4 "Install GSB11".

  7. GSB11 GitLab only! Initialize Git and add remote repository

    git init --initial-branch=main
    git remote add origin https://git.gsb-itzbund.de/gsb11/sitepackages/<NAME OF YOUR TENANT SITEPACKAGE REPOSITORY>
    git add .
    git commit -m "Initial commit"
    git push --set-upstream origin main
    
  8. Configure your GSB11 tenant 🚀

Additional details

For further information, please refer to the readmes of the extensions. A list of available extensions is included in the Mandate Factsheet.

Development

Explanations about caching in GSB11 and the CI/CD pipelines in development are stored in the GSB11 GitLab documentation project.

To successfully release a mandate version of GSB11, the site package must be developed with trunk-based development, with main being the standard branch. A merge into release triggers a stable release. The branches main and release are mandatory.

Contribute

As with TYPO3, we encourage you to join the project by submitting changes. Development of the GSB11 happens mainly in the GSB11 TYPO3 extensions.

To get started, have a look at our detailed contribution walkthrough.