Yourls ermöglicht euch, dass ihr URLs zu langen Webseiten verkürzen könnt. Hier zeige ich euch, wie ihr diesen Dienst mittels Docker und Traefik sehr schnell installieren könnt. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Datum | Änderungen |
---|---|
05.04.2020 | Erstellung dieser Anleitung. |
18.08.2021 | Kapitel 4 hinzugefügt. Danke an Neko und Dr.R00T für die Hinweise. |
29.05.2022 | Kapitel 4 entfernt. Wird nicht mehr benötigt. |
30.05.2023 | Anpassung an neue Traefik Anleitung |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- Traefik v2 + 3 – Reverse-Proxy mit CrowdSec im Stack einrichten
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/yourls
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Yourls Compose genommen und diese abgeändert für Traefik.
nano /opt/containers/yourls/docker-compose.yml
version: '3.1' services: yourls: image: yourls restart: unless-stopped container_name: yourls environment: YOURLS_DB_HOST: yourls-db YOURLS_DB_PASS: password ### Hier ein Passwort eingeben ### YOURLS_SITE: https://yourls.euredomain.de ## Hier Domain anpassen ### YOURLS_USER: admin ## Hier anpassen ## YOURLS_PASS: password ## Hier anpassen ## networks: - default - proxy labels: - "traefik.enable=true" - "traefik.http.routers.yourls.entrypoints=websecure" - "traefik.http.routers.yourls.rule=Host(`yourls.euredomain.de`)" - "traefik.http.routers.yourls.tls=true" - "traefik.http.routers.yourls.tls.certresolver=http_resolver" - "traefik.http.routers.yourls.service=yourls" - "traefik.http.services.yourls.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.yourls.middlewares=default@file" yourls-db: image: mysql restart: unless-stopped environment: MYSQL_DATABASE: yourls MYSQL_ROOT_PASSWORD: password ### Hier ein selbes Passwort eingeben ### networks: - default networks: proxy: external: true
Notwendige Anpassungen:
- MySQL User Kennwort ändern
- YOURLS_Site anpassen
- YOURLS_USER anpassen
- eure Domain bei Traefik anpassen („yourls.euredomain.de“)
3. Yourls starten
Nun könnt ihr wie gewohnt den Container starten:
docker compose -f /opt/containers/yourls/docker-compose.yml up -d
Nun geht ihr auf folgende Webseite: yourls.euredomain.de/admin
Hier klickt ihr dann auf “Install YOURLS”.
Nach der Installation gelangt ihr zur Admin Seite.
Hier meldet ihr euch nun mit den Daten an, welche ihr im Docker Compose File angegeben habt.
Und jetzt seht ihr das Interface von YOURLS.
4. Quellen
https://hub.docker.com/_/yourls
Ich hab die Anleitung mal versucht in die Praxis umzusetzen, aber leider hat der Punkt 4 bei mir nicht geklappt. Die Meldung ging nicht weg. Ist die Anleitung noch auf dem aktuellen Stand?
Die Anleitung müsste man überarbeiten
Seit YOURLS 1.7 führte automatische Passwortverschlüsselung ein, wodurch er die config.php schreibfähig haben will. Siehe auch https://github.com/YOURLS/YOURLS/wiki/Username-Passwords#faq
Lösen lässt es sich in dem die config.php aus dem Container (Pfad: /var/www/html/user/config.php) herauskopiert wird.
docker cp $(docker ps | grep yourls:latest | cut -f 1 -d ‘ ‘):/var/www/html/user/config.php config.php
Dann chown 33:33 config.php (www-data:www-data), mit chmod 0666 config.php (zumindest temporär) schreibfähig gemacht wird und im Anschluss als binding wieder in den Container gebunden wird.
volumes:
– $(PWD)/config.php:/var/www/html/user/config.php:rw
Dann hört das die Fehlermeldung auf. Ärgerlich ist das YOURLS das leider nicht auf der DockerHub Seite dokumentiert.