Giter VIP home page Giter VIP logo

website's Introduction

The SCS website project

The static SCS website is generated by Jekyll. The theme is originally based on the template business-frontpage by sharu725. We're heavily making use of Bootstrap 5 to layout the page content.

The website is automatically build every 15 minutes or on every push to main and subsequently pulled onto our webspace.

Locations

Published sites:

The minimal editorial workflow

  1. [Create a branch based on the main branch Step 1
  2. Select branch, if not already selected Step 2
  3. Make your changes in the branch Step 3
  4. Create a pull request to get the changes in the main branch
    • Open https://github.com/SovereignCloudStack/website
    • Select Contribute -> Open pull request
      • Verify that base: main and compare <your branch> is selected in the top of the pull request
      • Add a optional description
      • Create pull request
    • Assign one ore more persons which can review the changes and remind the person to review the change
  5. The reviewer inspects your changes and gives feedback
    • If there is something to todo, you can restart at step 2
    • If everything is fine the reviewer approves the merge request
    • Your changes are merged to the main branch and rolled out after 15 minutes

The editorial workflow

The website data is deployed by the following process:

Website workflow

The following steps describe the basic workflow how to add, change and remove content. The description is a little more detailed than it needs to be, as it aims also to provide a reliable guide for non-engineer colleagues.

  1. Create a branch based on the main branch (you can also do this using the github user interface)
    git clone [email protected]:SovereignCloudStack/website.git # you only need to do this the first time
    cd website
    git checkout main
    git pull
    git checkout -b feat/<name of your branch> # not not use spaces
    
  2. Make your changes with the tool of your choice
  3. Commit and push with signoffs
    git status
    git diff
    git add <file> ... <file>
    git status
    git commit -s -a
    gut push
    
  4. Optional: Testing complexer changes
  • Set the staging branch to the same state like the main branch
    git checkout staging
    # check the current difference
    git diff main
    
    # This abdondons everything on the staging branch
    git reset --hard origin/main
    # add changes of other branches
    git merge feat/<name of your branch>
    git merge feat/<name of your branch ... >
    
    # perform a hard overwrite of everything in the staging branch
    git push --force
    
  • Test the result: https://staging.scs.community/ (that takes ~15minutes)
  • Start at Step 2 if your are not satisfied
  1. Create a pull request to get the changes in the main branch
    • Open https://github.com/SovereignCloudStack/website
    • Select Contribute -> Open pull request
      • Verify that base: main and compare <your branch> is selected in the top of the pull request
      • Add a optional description
      • Create pull request
    • Assign one ore more persons which can review the changes and remind the person to review the change
  2. The reviewer inspects your changes and gives feedback
    • If there is something to todo, you can restart at step 2
    • If everything is fine the reviewer approves the merge request
    • Your changes are merged to the main branch and rolled out after 15 minutes

Frequently asked questions

How can I publish a community blog posting?

Create a markup document located at _i18n/en/blog and/or respectively _i18n/de/blog to add a new blog post. Be aware that the file shall be named YEAR-MONTH-DAY-title.MARKUP according to the Jekyll conventions (see Jekyll Docs).

How can I create a new page?

Due to the internalization plugin, you have to create multiple files. First of all, add a new markup document under _pages, set the desired layout, e.g. default and add the line

{% tf pagetitle.MARKUP %}

Following this step, you have to create the documents pagetitle.MARKUP located at _i18n/en and _i18n/de. Note that you have to create at least the English translation or otherwise the build process will fail.

How can I add a press release?

Add the press release to _data/news_de.yml for German speaking press release or _data/news_en.yml for English speaking releases.

How can I add a new partner?

Upload the logo to assets/images and add a entry in _data/supporter.yml

How can I add custom styling definitions (CSS code)?

As we're using Bootstrap, please add your custom styling definitions to assets/css/_sass/custom.css

Testing changes on staging branch

We're using a dedicated workflow to build a staging preview of our website that subsequently is published with GitHub Pages. To make use of this feature, simply push to staging. Please try to keep staging in sync with main, e.g. by deleting and recreating after testing your recent changes. The staging area can be reached via https://sovereigncloudstack.github.io/website/.

Testing changes locally

  • Clone Repo
    git clone [email protected]:SovereignCloudStack/website.git
    
  • Start testserver
    ./run.sh
    

website's People

Contributors

90n20 avatar akafazov avatar alexander-diab avatar almereyda avatar artificial-intelligence avatar berendt avatar bitkeks avatar dependabot[bot] avatar fkr avatar friederikezelke avatar frosty-geek avatar garloff avatar horazont avatar itrich avatar janiskemper avatar jklippel avatar jschoone avatar matfechner avatar matofeder avatar maxwolfs avatar mbuechse avatar mleberec avatar ppkuschy avatar ra-beer avatar reginametz avatar reqa avatar scoopex avatar sebastian-schmid avatar vuntz avatar yater avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

website's Issues

Add security.txt to web site

Our security advisory for log4j says
"Please contact the SCS project management team at project at scs dot sovereignit dot de to ask security questions or report security issues."
which is good, as we at least clearly communicate the communication channels.

Better would be to have a security-specific address (alias) that also offers encrypted contact options (PGP and maybe additional options). And to use a standardized way to advertize this using the security.txt standard.
See https://datatracker.ietf.org/doc/html/draft-foudil-securitytxt-12 and https://securitytxt.org/ .

Release content under CC-BY-SA 4.0

At the moment, the whole repository is licensed under MIT, which is still valid for the source code part of the containing files. However, we should release the creative content (especially our blog posts) under a CC license.

See the discussion at SovereignCloudStack/docs-page#4 for reference.

Providing the OIF Summit slides on our blog post

We have collected the various talks our community is giving at the OpenInfra Summit 2022 on our blog: https://scs.community/2022/06/02/scs-at-oifsummit2022.

Please upload - if you like - your slides until Monday evening to our website repository and I will link them to the corresponding schedule item in our blog post. This will boost the traffic on our website and hopefully on our social media accounts.

It would be great if you create a huge QR code at the end of your presentation so that visitors can directly receive the shown slides deck. The deep links are already available.

Thank you for contributing to OIF Summit and being part of our joint actions at this exciting event. Looking forward to seeing you next week!

@fkr @berendt @horazont @garloff @matfechner

Change telephone number

The telephone number in the footer needs to be replaced by the new number in Berlin.

Tel.: 030 300 149 3377

Menu button on mobile devices

The navigation menu should collapse to a menu button on mobile devices for a cleaner look of the website.

2021-07-15 09_42_21-Window

I recommend to keep the most important social icons within the navigation menu, e.g. something like this:

2021-07-15 09_42_21-Window

Drop rsync action task

In the old times (R), we built the web page by having a cron job on the web server, pulling (anonymously) from the public github repo, building the web page locally (if there was any change, otherwise the make command did nothing).
We could go back to this mechanisms, setting up a container with the jekyll build stuff on the web server.
Advantage is that we don't need to trust github with the credentials.
Disadvantage is that it's a pull mechanism, so we have 5min latency for publishing changes to the web page.
(We could trigger pulls from a github action of course ... could do this in an unauthenticated, rate-limited(!) way even, or using a port-knock scheme with a low-value secret.)
Or some middle ground where we store the github-action produced build results somewhere to pull them from the server.
(The server will need to trust the build result, so we need some trusted place for the build results.)

This should ont prevent us from merging this change though.

Originally posted by @garloff in #281 (comment)

make .dep doesn't exit successfully

When trying to build the website on a freshly cloned repository, make .dep exits with Error 1:

Makefile:17: .dep: No such file or directory
./scripts/collectdeps.py build/index.html.de build/index.html.en build/.htaccess build/robots.txt build/sitemap.xml build/blog/20200915-garloff-ovh.html.de build/blog/20200915-garloff-ovh.html.en build/test.html.de build/test.html.en >.dep
ERROR: tmp/logos.html not readable 
Makefile:15: recipe for target '.dep' failed
make: *** [.dep] Error 1 

Add a hero banner for featured blog posts on the landing page

As project team, we want to highlight new blog posts on the landing page.

I suggest to

  • add a boolean property featured to the front matter of blog posts and announcements,
  • add a Carousel to the landing page in the upper third,
  • and render the last 3 (or maybe 5?) featured posts and announcements in the Carousel with their related hero image.

Ordering of press articles

We should not order the press articles alphabetically, but put the newest first and oldest last.
This way, returning readers can actually see what's new.
We could prefix a release date as well ...

Logo exchange

Citynetwork is Cleura and ask for new logo at our website

Remove node_modules and pull them during build time

    > > node_modules folder should be added to gitignore otherwise nice!

I'd disagree. In order to reduce build time in our GitHub Actions, we've pushed all node modules directly to the repository. Especially when running build tests with every push, this will shred our free quota of using GitHub Actions.

Ok I see, but isn't this an antipattern, especially if there are more modules being added overtime? The git history will be inflated with peer dependencies of dependencies which might led to security issues aswell as maintenance issues and potential bigger scale merge conflicts.

Originally posted by @maxwolfs in #417 (comment)

Always display (English) posts on German subsite

Please don't forget to create a symlink in the de subfolder. Otherwise, the article won't be displayed on the German website.

I would have overlooked this, thanks.
(Maybe we should have functionality to always link an English article when no German version is available?)

Originally posted by @garloff in #440 (comment)

Improve website performance

We should improve the website performance and gain a performance index of at least >90 at https://web.dev/measure/.

Some ideas to accelerate page load:

Any further suggestions?

redesign the menu & some usability tweaks

This project seems to more or less public related, so I would like to suggest some improvements.

I suggest the following improvements for the menu/header:

  • Add menu point naming, and don't rely on the tool-tip of the links.
    • Tool-tips are not visible on mobile devices.
    • They are only shown if you hold your mouse still for a while, which is a bad UX.
    • They cannot not be read out by text-to-voice programs, for instance for disabled humans.
  • Behind the tel-href is no telephone number. Only in the tool-tip is the number visible.
  • Separate internal links from external Links visually. Maybe open external links in _blank. Users usually want to stay on one website until they change to foreign linked sites eventually.
  • On desktops, the logo seems to big, on mobile the logo is to small 😄

Here are some ideas for the rest of the page:

  • Make the website more accessible for disabled people.
  • Add the usage of the Cloudflare CDN to the Datenschutzerklärung/data privacy statement (important IMHO).

Cheers 🍺

Close VP09c

The deadline for VP09c ends tomorrow. We should close the tender on our website accordingly.

Replace BMWi with BMWK

We should replace all occurrences of BMWi with BMWK. Moreover, the "funded by the BMWi"-Logo needs to be replaced by a newer version as soon as it gets released.

Add pagination to news page

As the number of posts rises, we will certainly need Pagination for the news site.

General question: Would you prefer one pagination per section (announcements, blog posts, media coverage, etc.) or single pagination for the whole news page?

Add form to subscribe to Mailman3 announce mailing list

We want to lead as many users as possible to subscribe to our announce mailing list. We thus should have a form or highlighted button on the landing page redirecting users to the subscription page of this mailing list.

I already tried to implement a simple form in the footer but struggled with the CSRF-Token check implemented by Django, see https://lists.mailman3.org/archives/list/[email protected]/thread/KAPI35V45PJQ7ORS6HJQVS3VTP4ZI5RE/

Split build and deploy action

As a website maintainer, I want to know whether my branch builds successfully. Moreover, I want to be able to push my staging changes to GitHub pages.

We thus need to

  • split the current build and deploy action to a
    • build action which commits and pushes the built website into the directory /_site,
    • (maybe some further Lighthouse checks),
    • deploy the main branch to our webserver (if build process and checks were successful).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.