webseite/README.md

92 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

2021-06-06 16:07:29 +02:00
[![Build Status](https://drone.wtf-eg.de/api/badges/ag_kommunikation/webseite/status.svg)](https://drone.wtf-eg.de/ag_kommunikation/webseite)
2021-04-14 01:47:24 +02:00
# Öffentliche Seite der WTF Kooperative eG
2020-12-23 16:14:08 +01:00
2021-02-06 15:09:15 +01:00
Öffentliche Website der Genossenschaft auf Basis des Static-Site-Generators [Lektor](https://www.getlektor.com/).
2020-12-23 16:14:08 +01:00
2021-04-14 01:47:24 +02:00
<a href="https://wtf-eg.de/"><img src="https://git.wtf-eg.de/ag_kommunikation/webseite/raw/branch/main/assets/images/wtf_logo.svg" width="420px" alt="WTF Logo"/></a>
2021-02-19 00:01:58 +01:00
2021-04-14 01:47:24 +02:00
Das Git Repository zur Webseite ist auf [git.wtf-eg.de/ag_kommunikation/webseite](https://git.wtf-eg.de/ag_kommunikation/webseite.git).
2021-02-19 00:01:58 +01:00
## Lokales entwickeln
### Vorbereitung
Installation von Lektor, siehe offizielle [Doku](https://www.getlektor.com/docs/installation/).
2021-03-18 22:14:51 +01:00
```
# install git requirements
sudo apt install git-lfs
# install lektor requirements
sudo apt install python3-pip imagemagick
2021-04-14 01:52:36 +02:00
# clone git repo to folder wtf-webseite
git clone https://git.wtf-eg.de/ag_kommunikation/webseite.git wtf-webseite
2021-03-18 22:14:51 +01:00
# change to repo
2021-04-14 01:52:36 +02:00
cd wtf-webseite
2021-03-18 22:14:51 +01:00
# install lfs
git lfs install
# download all LFS files
2021-04-14 01:52:36 +02:00
git lfs fetch
2021-03-18 22:14:51 +01:00
# create a virtual Python environmenty `venv`
python3 -m venv venv
# activate the virtual Python environment
source venv/bin/activate
# install the packages listed in [requirements.txt](./requirements.txt) using `pip`
pip install -r requirements.txt
2021-03-18 22:14:51 +01:00
# run lektor
lektor server
```
### Server starten
2021-03-18 22:14:51 +01:00
Der Server kann nun per `lektor server` gestartet werden und sollte unter http://127.0.0.1:5000/ erreichbar sein.
2021-06-09 21:41:59 +02:00
### Git Magie
2022-05-24 22:57:10 +02:00
Bevor du die Änderungen an der Webseite commitest, möchtest du dir vielleicht anschauen, welche Dateien sich geändert haben. Der Befehl ``git status`` ist hier dein Freund.
2021-06-09 21:41:59 +02:00
2022-05-24 22:57:10 +02:00
Da wir das direkte pushen auf den ``main`` Branch verbieten, möchtest du vermutlich einen neuen Branch erstellen. Das geht über ``git checkout -b <branch_name>``. Mit ``git status`` siehst du auch, auf welchem branch du bist. Den kannst du per ``git push origin <branch_name>`` dann auch auf den Webserver pushen.
2021-06-09 21:41:59 +02:00
Pushen kannst du, was du commitest hast. ``git commit`` Eine aussagekräftige commit-beschreibung wird gerne gesehen.
### LFS Überspringen.
2022-05-24 22:57:10 +02:00
Wir verwenden LFS zum Speichern von großen Dateien wie den Podcast, Bilder und so weiter. Wenn du ganz genau weißt, was du machen willst und in Kauf nimmst, dass nicht alle Elemente der Webseite bei dir lokal laden, kannst du das auch überspringen. Der Trick ist folgende Option:
2021-06-09 21:41:59 +02:00
```bash
export GIT_LFS_SKIP_SMUDGE=1
git clone <git_repo>
```
2021-06-09 22:15:21 +02:00
*(Da das Rendern der Startseite die Bilder benötigt, willst du dann im lektor direkt auf eine andere Unterseite wechseln. Die Seite [http://localhost:5000/admin/](http://localhost:5000/admin/) sollte nützlich sein!)*
2022-08-25 18:42:56 +02:00
## Deployment
### Per Drone
Drone testet bereits automatisch den eingecheckten Code im `main`-Branch und für Pull Requests.
Deployments finden nicht automatisch statt, sondern müssen angestoßen werden.
Wähle dazu den erfolgreichen Build, den du deployen möchtest unter https://drone.wtf-eg.de/ag_kommunikation/webseite aus.
Rechts oben findest du dann einen Knopf zum Deployment (Wolke mit Pfeil).
Als Environment kannst du _spielwiese_ oder _www_ verwenden.
### Per Hand
Das Deployment sollte für maximale Reproduzierbarkeit und Nachvollziehbarkeit immer über Drone stattfinden.
In Ausnahmesituationen kann jedoch ein manuelles Deployment nötig sein.
```bash
lektor build
lektor deploy dev # Deployment auf die Spielwiese
lektor deploy live # Deployment auf die Live-Seite
```