====== Chaotikum-Website ======
| Verantwortung | Malte |
| Container | chaotikum-website |
| W. Ports | keine |
| OS | Debian 12.5 |
| Server | [[infrastruktur:server:magrathea]] |
| Zustand | Produktiv |
{{tag>infrasystem container magrathea productive malte}}
Dieser Container baut die Chaotikum-Website mit einem Gitlab-Runner und liefert sie mit nginx aus.
===== Services =====
^ Serviceübersicht ^ Version ^
| nginx | 1.22.1-9 |
| gitlab-runner | 17.0.0-1 |
===== Installations-Log =====
Visual-Mode in VIM deaktivieren:
echo "set mouse-=a" >> ~/.vimrc
[[https://docs.gitlab.com/runner/install/linux-repository.html|Install GitLab Runner using the official GitLab repositories]]:
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh" | bash
apt install gitlab-runner
gitlab-runner register
Install Ruby für Jekyll:
apt install ruby ruby-dev build-essentials libssl-dev
gem install bundler
Install nginx:
apt install nginx
Die Website wird über ''%%/etc/nginx/sites-enabled/default%%'' konfiguriert. Dort Fehlerseite ergänzen:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
error_page 404 /404.html;
}
===== Dependencies des CI-Skripts =====
Das Gitlab-CI-Skript der Website macht folgendes:
* Website bauen
* gebaute Webite nach ''%%/var/www/html%%'' kopieren
Das Gitlab-CI-Skript installier die Dependencies nicht. Da das ein dedizierter Runner für genau diesen Zweck ist, sind die Dependencies im Container installiert. Dann müssen sie nicht bei jedem Build neu installiert werden.
Zum Installieren von Jekyll muss die Website in diesem Container als root ausgechecked werden (oder aus dem Ordner ''/home/gitlab-runner/build/0/0/0/chaotikum/website'' kopiert werden), um dort ''bundle install'' auszuführen.
Zum Installieren der Python-Dependencies muss ein virtual env angelegt werden:
apt install python3.11-venv
su gitlab-runner
python3 -m venv /home/gitlab-runner/chaotikm-website-python-venv
In diesem venv kann man jetzt Dependencies installieren. In den Kommentaren der ''.gitlab-ci.yml'' steht, welche es braucht:
/home/gitlab-runner/chaotikm-website-python-venv/bin/pip install "requests==2.28.2" "icalendar==5.0.7" "xmltodict==0.13.0" "python-frontmatter==1.0.0" linkchecker
===== Wartung =====
In das Textfeld einfach das Datum der Wartung eintragen, am besten in der Form yyyy-mm-dd.
{{NEWPAGE>infrastruktur:wartung:website#pagetemplates:wartungstemplate:website
}}
{{topic>:infrastruktur:wartung?wartungsfenster +website &nodate&nouser&desc&table}}
~~NOCACHE~~