In dieser Anleitung zeige ich euch, wie ihr Lynx mittels Docker und Traefik bereitstellen könnt. Lynx ist ein schlanker und leistungsfähiger URL-Verkürzer, der mehrere Benutzerkonten, 2FA und ein schickes responsives Design unterstützt.
1. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
2. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/lynx
3. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an.
nano /opt/containers/lynx/docker-compose.yml
Inhalt
version: '3' services: db: image: mongo restart: always container_name: mongo-lynx environment: - MONGO_INITDB_ROOT_USERNAME=user #Benutzername auswählen - MONGO_INITDB_ROOT_PASSWORD=password #Sicheres Passwort volumes: - ./db:/data/db networks: - proxy lynx: image: jackbailey/lynx:1 restart: always container_name: lynx depends_on: - db volumes: - ./backups:/app/backups #Für persistente Backups environment: - NODE_ENV=production - DB_USER=user #Selbe wie oben - DB_PASSWORD=password #Selbe wie oben - JWT_KEY=54488d78d5d3d2fdcb3dc1aebcdf5ce712747448f7bdbf246a5c8342a580e41b # Erstelle einen sicheren Key mit "openssl rand -hex 32" - URL_LENGTH=8 # Länge der generieten URL Endung - URL_SET=standard # Typ der Zeichen - URL_ONLY_UNIQUE=false #Ob jede neue URL eindeutig sein muss - HOME_REDIRECT=/dash/overview - FORCE_FRONTEND_REDIRECT=false - ENABLE_REGISTRATION=false # Die Erstregistrierung wird immer zugelassen - DOMAIN=https://lynx.euredomain.org - DEMO=false # TRUE = In diesem Modus sind die Funktionen eingeschränkt und die Links werden nach 10 Minuten gelöscht. - USE_HTTPS=true - CORS=* - BACKUP=true - BACKUP_SCHEDULE=0 12 * * * # Use crontab.guru to create #täglich um 12 Uhr werden eure Links gesichert in ./backups - BACKUP_COUNT=5 # Bei einem Wert von 1 wird eine Sicherungsdatei mit dem Namen backup.json erstellt. - URL_REGEX=https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*) # Keine Anführungszeichen verwenden ## ÄNDERN SIE DIESE NICHT: - DB_HOST=db - DB_PORT=27017 labels: - "traefik.enable=true" - "traefik.http.routers.lynx.entrypoints=websecure" - "traefik.http.routers.lynx.rule=Host(`lynx.euredomain.org`)" - "traefik.http.routers.lynx.middlewares=default@file" - "traefik.http.routers.lynx.tls=true" - "traefik.http.routers.lynx.tls.certresolver=http_resolver" - "traefik.http.routers.lynx.service=lynx" - "traefik.http.services.lynx.loadbalancer.server.port=3000" - "traefik.docker.network=proxy" networks: - proxy networks: proxy: external: true
Notwendige Anpassungen:
- MONGO_INITDB_ROOT_USERNAME=user #Benutzername auswählen
- MONGO_INITDB_ROOT_PASSWORD=password #Sicheres Passwort
- DB_USER=user #Selber User wie oben
- DB_PASSWORD=password #Selbes Passwort wie oben
- DOMAIN=https://lynx.euredomain.org
- Traefik Labels Domain anpassen: Host(
lynx.euredomain.org
)” - JWT_KEY= erstelle dir einen 32 Zeichen langen Schlüssel mit:
openssl rand -hex 32
4. Lynx starten
Nun starten wir den Container mittels folgendem Befehl:
docker compose -f /opt/containers/lynx/docker-compose.yml up -d
Wenn ihr nun auf eure Webseite geht, solltet ihr folgendes sehen:
5. Admin Account erstellen und einrichten
Nun legen wir uns noch einen Admin Account an. Dazu klickt ihr auf “Register”. Hier gebt ihr jetzt eure Daten ein.
Danach ist die Registrierung standardmäßig deaktiviert, kann aber über die Variable ENABLE_REGISTRATION=true in der docker-compose Datei wieder aktiviert werden.
Weitere Environment-Variablen habe ich in der Docker-Datei kommentiert, bei Unklarheiten bitte die Quellen beachten, dort ist alles vom Entwickler nochmal genau beschrieben.
Quellen:
Stimmt, auch bei hat es gleich funktioniert.
Top Anleitung, Setup hat sofort und auf Anhieb funktioniert. Vielen Dank 🙂
Vielen Dank für deine Anleitung 2TAP2B 😀