Jak stworzyć własnego menedżera zakładek z linkowaniem

Jak stworzyć własnego menedżera zakładek z linkowaniem

Linkding to prosty, ale elastyczny internetowy menedżer zakładek dla systemu Linux. Podobnie jak menedżery zakładek offline, umożliwia tworzenie i opisywanie linków internetowych, które zgromadziłeś w czasie.

W tym artykule dowiesz się, jak zainstalować Linkding na komputerze z systemem Ubuntu 22.04 przy użyciu Docker i Docker Compose. Podkreśli także, w jaki sposób możesz utworzyć użytkownika innego niż administrator i zarządzać nim w nowej instancji Linkding.

Dlaczego warto hostować własnego menedżera zakładek za pomocą linkowania?

Jedną z największych zalet Linkdingu jest to, że można go szybko wdrożyć na istniejącym serwerze i używać go w ciągu kilku minut. Oznacza to, że nie musisz udostępniać nowej maszyny, fizycznej ani innej, aby hostować własnego menedżera zakładek.

Zrzut ekranu działającej instalacji Linkding.

Łączenie rozszerza także podstawowe funkcje większości menedżerów zakładek, włączając udostępnianie linków i tryb wielu użytkowników. Dzięki temu jest idealnym rozwiązaniem dla użytkowników, którzy chcą stworzyć prywatną platformę współpracy w celu udostępniania łączy między grupą.

Uzyskiwanie łączenia i tworzenia Docker Compose

Aby wdrożyć Linkding, musisz najpierw zainstalować Docker wraz z jego komponentem Docker Compose. Możesz to zrobić pobierając klucz podpisywania programu ze strony programisty:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Utwórz nowy plik repozytorium dla instalacji Dockera:

sudo nano /etc/apt/sources.list.d/docker.list

Wklej następujący wiersz kodu do nowego pliku repozytorium:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Załaduj ponownie repozytoria pakietów systemu, uruchamiając następującą komendę:

sudo apt update && sudo apt upgradesudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx

Uzyskiwanie i wdrażanie kontenera Docker Linkding

Utwórz nowy folder do łączenia w swoim katalogu domowym i wejdź do niego:

mkdir ~/linkding && cd ~/linkding

Użyj swojego ulubionego edytora tekstu, aby utworzyć pusty plik „docker-compose.yml”:

nano. /docker-compose.yml

Wklej następujący blok kodu do nowego pliku tworzenia wiadomości:

---
version: "3"
services:
linkding:
container_name: ${LD_CONTAINER_NAME:-linkding}
image: sissbruecker/linkding:latest
ports:
- ${LD_HOST_PORT:-9090}:9090
volumes:
- ${LD_HOST_DATA_DIR:-./data}:/etc/linkding/data
env_file:
-. env
restart: unless-stopped

Zapisz nowy plik docker-compose.yml, a następnie utwórz plik środowiska dla swojej instancji. Będzie zawierać wszystkie zmienne niestandardowe dla Twojej nowej instalacji:

nano ~/linkding/.env

Wklej następujący blok kodu do nowego pliku środowiska:

LD_CONTAINER_NAME="linkding"LD_HOST_PORT="9090"LD_HOST_DATA_DIR="./data"LD_SUPERUSER_NAME="linkding"# CHANGE WITH A SECURE USERNAMELD_SUPERUSER_PASSWORD="linkding"# CHANGE WITH A SECURE PASSWORDLD_DISABLE_BACKGROUND_TASKS="False"LD_DISABLE_URL_VALIDATION="False"LD_ENABLE_AUTH_PROXY="False"LD_CSRF_TRUSTED_ORIGINS="https://linkding.your-domain-name.here"

Na koniec zbuduj nowy kontener Docker, uruchamiając następujące polecenie:

docker compose up -d

Tworzenie odwrotnego proxy Nginx dla SSL

W tym momencie masz już działającą instancję Linkding działającą na porcie 9090. Aby jednak móc uzyskać do niej publiczny dostęp, musisz utworzyć odwrotne proxy , które będzie zabezpieczać połączenia przychodzące za pomocą protokołu SSL.

Utwórz nowy plik konfiguracyjny witryny dla swojej instancji:

sudo nano /etc/nginx/sites-available/linkding

Wklej następujący blok kodu do pliku nowej witryny:

server {
listen 80;
listen [::]:80;

root /var/www/html;
server_name linkding.your-domain-name.here;


location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:9090;
}}

Usuń domyślny plik konfiguracyjny witryny i utwórz dowiązanie symboliczne do nowego pliku konfiguracyjnego do „/etc/nginx/sites-enabled”:

sudo rm /etc/nginx/default
sudo ln -s /etc/nginx/sites-available/linkding /etc/nginx/sites-enabled/linkding

Uruchom i włącz demona Nginx, aby zastosował nowe ustawienia:

sudo systemctl restart nginx
sudo systemctl enable --now nginx

Włączanie SSL dla Twojej instancji łączenia

Upewnij się, że na komputerze jest zainstalowany najnowszy plik binarny Core Snap:

sudo snap install core

Zainstaluj pakiet przystawek Certbot firmy Electronic Frontier Foundation (EFF):

sudo snap install certbot --classic

Sprawdź, czy Twoja instalacja certbota działa poprawnie, rejestrując ją w EFF:

sudo certbot register --agree-tos -m ramces@email.invalid

Poproś o certyfikat SSL dla swojej instancji, uruchamiając następującą komendę:

sudo certbot --nginx -d linkding.your-domain-name.here

Sprawdź, czy Twoja nowa instancja jest bezpieczna i działa, ładując jej adres w przeglądarce internetowej.

Zrzut ekranu przedstawiający stronę logowania do łączenia.

Tworzenie nowego użytkownika w linkowaniu

Zaloguj się do swojej nowej instancji Linkding, korzystając z danych uwierzytelniających superużytkownika podanych w pliku „.env”.

Zrzut ekranu przedstawiający wypełniony monit logowania do Linkding.

Kliknij link „Ustawienia” w prawym górnym rogu strony.

Zrzut ekranu przedstawiający link Ustawienia na stronie głównej Linking.

Kliknij zakładkę „Administracja” na stronie ustawień Linkding. Spowoduje to wyświetlenie panelu administratora łączenia.

Zrzut ekranu przedstawiający kartę Administrator na stronie Ustawienia łączenia.

Aby dodać nowego użytkownika, kliknij link „Dodaj” obok wiersza Użytkownicy w kategorii „Uwierzytelnianie i autoryzacja”.

Zrzut ekranu przedstawiający link Dodaj w sekcji użytkowników w panelu administracyjnym Łączenie.

Podaj nazwę użytkownika i hasło dla nowego użytkownika Linkding, a następnie kliknij „Zapisz”, aby aktywować nowego użytkownika.

Zrzut ekranu przedstawiający wypełniony nowy monit użytkownika.

Sprawdź, czy Twój nowy użytkownik działa poprawnie, logując się do niego poprzez inną sesję przeglądarki.

Zrzut ekranu przedstawiający działającego nowego użytkownika.

Wyłączanie istniejącego użytkownika w łączeniu

Aby wyłączyć istniejącego użytkownika w Linkdingu, przejdź do panelu administracyjnego swojej instancji, a następnie wybierz link „Użytkownicy” w kategorii „Uwierzytelnianie i Autoryzacja”.

Zrzut ekranu przedstawiający link Użytkownicy w panelu administracyjnym Linkowanie.

Kliknij nazwę użytkownika, którą chcesz wyłączyć. Spowoduje to załadowanie profilu tego konkretnego użytkownika.

Przewiń w dół do kategorii „Uprawnienia”, a następnie odznacz pole wyboru obok etykiety „Aktywne”.

Zrzut ekranu przedstawiający pole wyboru Aktywne w panelu użytkownika Łączenie.

Przewiń w dół strony, a następnie kliknij „Zapisz”, aby całkowicie wyłączyć użytkownika.

Często Zadawane Pytania

Czy możesz zainstalować Linkding bez użycia Dockera?

Nie. Twórcy Linkding zaprojektowali go tak, aby działał tylko z kontenerami Docker. Dzieje się tak dlatego, że program ma wiele współzależności, które należy wdrożyć w określonej kolejności i w określony sposób, aby działał poprawnie.

Czy można zaimportować istniejące zakładki do Linkdingu?

Tak. Istnieje możliwość importu listy zakładek z innych zewnętrznych menadżerów zakładek. Możesz na przykład skopiować swoje zakładki z Google Chrome i Microsoft Edge bezpośrednio do Linkding.

Czy można wykonać kopię zapasową bazy danych Linkding poza Dockerem?

Tak. Istnieją dwa sposoby tworzenia kopii zapasowych bazy danych Linkding z jej kontenera Docker. Najpierw możesz przejść do strony Ustawienia, a następnie przejść do kategorii „Eksport” w zakładce „Ogólne”. Pod tym kliknij przycisk „Pobierz”, aby wykonać kopię zapasową zakładek bieżącego użytkownika.

Po drugie, możesz zalogować się do swojego serwera Linkding i skopiować plik „db.sqlite3” do katalogu „~/linkding/data”. Zaletą tego podejścia w porównaniu z pierwszym jest to, że plik „db.sqlite3″ zawiera całą bazę danych zakładek dla całej instancji.

Źródło obrazu: Lauren Mancke za pośrednictwem Unsplash (tło) Łączenie z Github (logo). Wszystkie zmiany i zrzuty ekranu wykonał Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *