🚀 Self-hosting z Docker: Instalacja Excalidraw na Linuxie

Zastanawiasz się, jak uruchomić Excalidraw na własnym serwerze? Docker i Linux to doskonała kombinacja do self-hostingu. W tym przewodniku pokazujemy, jak w pełni kontrolować swoje dane i zapewnić bezpieczeństwo, instalując tę popularną aplikację do tworzenia diagramów na własnej infrastrukturze.

⚡ Ekspresowe Podsumowanie:

  1. Niezależność danych: Self-hosting Excalidraw zapewnia pełną kontrolę nad Twoimi diagramami i danymi.
  2. Bezpieczeństwo informacji: Wrażliwe diagramy i schematy nie są przechowywane na zewnętrznych serwerach.
  3. Prostota wdrożenia: Docker umożliwia łatwą instalację i aktualizację bez skomplikowanej konfiguracji serwera.
  4. Dostosowanie do potrzeb: Możliwość modyfikacji i dostosowania aplikacji do własnych potrzeb biznesowych.

🗺️ Spis Treści - Twoja Mapa Drogowa


📋 Czym jest Excalidraw i dlaczego warto go self-hostować?

Excalidraw to popularny, open-source'owy edytor do tworzenia diagramów i szkiców, który odróżnia się charakterystycznym, odręcznym stylem graficznym. Aplikacja oferuje intuicyjny interfejs i szeroki zakres funkcjonalności do tworzenia profesjonalnie wyglądających diagramów, schematów i ilustracji.

Self-hosting, czyli hostowanie aplikacji na własnym serwerze, daje wiele korzyści:

  • Pełna kontrola nad danymi - wszystkie Twoje diagramy i schematy pozostają na Twoim serwerze
  • Zwiększone bezpieczeństwo - szczególnie istotne przy tworzeniu poufnych diagramów firmowych
  • Brak limitów i ograniczeń - korzystaj z pełnej funkcjonalności bez opłat subskrypcyjnych
  • Możliwość dostosowania - modyfikuj kod źródłowy według własnych potrzeb
  • Niezależność od zewnętrznych usług - aplikacja działa nawet bez dostępu do internetu

🐳 Przygotowanie środowiska Docker

Zanim przystąpisz do instalacji Excalidraw, musisz upewnić się, że Twój system Linux ma zainstalowane i skonfigurowane niezbędne narzędzia.

Wymagania wstępne

Aby przeprowadzić instalację, potrzebujesz:

  • System Linux (Ubuntu, Debian, CentOS, itp.)
  • Docker Engine
  • Docker Compose
  • Dostęp do terminala z uprawnieniami root/sudo
  • Otwarty port sieciowy (domyślnie 80 lub 443 dla HTTPS)

Instalacja Dockera (jeśli nie jest zainstalowany)

Jeśli nie masz jeszcze zainstalowanego Dockera, wykonaj poniższe kroki:

# Aktualizacja repozytoriów
sudo apt update

# Instalacja wymaganych pakietów
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# Dodanie klucza GPG Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Dodanie repozytorium Docker do źródeł APT
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Aktualizacja źródeł
sudo apt update

# Instalacja Dockera
sudo apt install -y docker-ce docker-ce-cli containerd.io

# Instalacja Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Dodanie użytkownika do grupy docker (opcjonalnie)
sudo usermod -aG docker $USER

✨ Pro Tip: Po dodaniu użytkownika do grupy docker, przeloguj się lub uruchom newgrp docker, aby zastosować zmiany bez wylogowywania.

Weryfikacja instalacji Dockera

Sprawdź, czy Docker został poprawnie zainstalowany:

docker --version
docker-compose --version

Powinieneś zobaczyć informacje o zainstalowanych wersjach obu narzędzi.

🏗️ Instalacja Excalidraw przy użyciu Docker

Po przygotowaniu środowiska Docker możemy przystąpić do instalacji Excalidraw.

Utworzenie struktury katalogów

Najpierw stwórz odpowiedni katalog dla Twojej instalacji:

mkdir -p ~/excalidraw
cd ~/excalidraw

Konfiguracja docker-compose.yml

W katalogu excalidraw utwórz plik docker-compose.yml:

nano docker-compose.yml

Następnie wklej poniższą konfigurację:

version: '3'
services:
  excalidraw:
    image: excalidraw/excalidraw:latest
    container_name: excalidraw
    restart: unless-stopped
    ports:
      - "3000:80"
    volumes:
      - ./data:/opt/excalidraw/data
    environment:
      - NODE_ENV=production
      - EXCALIDRAW_ASSET_PATH=/

Uwaga: Port 3000 możesz zmienić na dowolny inny dostępny port w Twoim systemie. Upewnij się, że wybrany port nie jest używany przez inną usługę.

Uruchomienie kontenera Excalidraw

Po przygotowaniu pliku konfiguracyjnego, uruchom Excalidraw za pomocą docker-compose:

docker-compose up -d

Parametr -d powoduje uruchomienie kontenera w tle (tryb demona).

Weryfikacja instalacji

Sprawdź, czy kontener Excalidraw został poprawnie uruchomiony:

docker ps

Powinieneś zobaczyć uruchomiony kontener excalidraw. Następnie otwórz przeglądarkę i przejdź pod adres:

http://localhost:3000

lub, jeśli instalujesz na serwerze zdalnym:

http://adres_ip_serwera:3000

🔒 Zabezpieczenie instalacji Excalidraw

Podstawowa instalacja działa, ale zalecamy dodatkowe kroki bezpieczeństwa, szczególnie jeśli Excalidraw ma być dostępny przez internet.

Konfiguracja reverse proxy z HTTPS

Do zabezpieczenia połączenia możemy użyć Nginx jako reverse proxy:

  1. Zainstaluj Nginx:
sudo apt install -y nginx
  1. Utwórz plik konfiguracyjny dla Excalidraw:
sudo nano /etc/nginx/sites-available/excalidraw
  1. Dodaj następującą konfigurację (zastąp example.com swoją domeną):
server {
    listen 80;
    server_name excalidraw.example.com;

    location / {
        return 301 https://$host$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name excalidraw.example.com;

    ssl_certificate /etc/letsencrypt/live/excalidraw.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/excalidraw.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  1. Utwórz link symboliczny i uruchom ponownie Nginx:
sudo ln -s /etc/nginx/sites-available/excalidraw /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
  1. Zainstaluj certyfikat SSL za pomocą Certbot:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d excalidraw.example.com

🔒 Zwiększone bezpieczeństwo: Rozważ dodanie uwierzytelniania podstawowego, aby chronić dostęp do Twojej instancji Excalidraw, szczególnie jeśli będzie ona zawierać poufne dane biznesowe.

🛠️ Zarządzanie i aktualizacja Excalidraw

Aktualizacja do najnowszej wersji

Aby zaktualizować Excalidraw do najnowszej wersji, wykonaj poniższe polecenia:

cd ~/excalidraw
docker-compose down
docker pull excalidraw/excalidraw:latest
docker-compose up -d

Zarządzanie kopią zapasową

Ważne jest, aby regularnie tworzyć kopie zapasowe swoich danych:

# Tworzenie kopii zapasowej katalogu z danymi
tar -czvf excalidraw-backup-$(date +%Y%m%d).tar.gz -C ~/excalidraw data

# Opcjonalnie - przeniesienie kopii zapasowej do bezpiecznej lokalizacji
mv excalidraw-backup-*.tar.gz /path/to/backup/location/

Monitorowanie stanu kontenera

Monitoruj logi i stan kontenera za pomocą poniższych poleceń:

# Wyświetlanie logów kontenera
docker logs excalidraw

# Monitorowanie zasobów używanych przez kontener
docker stats excalidraw

# Sprawdzenie statusu kontenera
docker ps -a | grep excalidraw

🔧 Rozwiązywanie typowych problemów

Problem: Kontener nie uruchamia się

Jeśli kontener nie chce się uruchomić, sprawdź logi:

docker logs excalidraw

Najczęstsze problemy:

  • Konflikt portów - inny serwis może już używać portu 3000
  • Problemy z uprawnieniami do katalogu data
  • Niewystarczające zasoby systemowe

Problem: Strona nie ładuje się w przeglądarce

Jeśli strona nie ładuje się mimo uruchomionego kontenera:

  • Sprawdź, czy port 3000 jest otwarty w zaporze sieciowej
  • Upewnij się, że kontener działa: docker ps | grep excalidraw
  • Sprawdź, czy Nginx (jeśli używasz) prawidłowo przekierowuje ruch

Problem: Błędy podczas aktualizacji

Jeśli występują problemy podczas aktualizacji:

  • Utwórz kopię zapasową danych przed aktualizacją
  • Sprawdź kompatybilność nowej wersji
  • Usuń stary kontener i obrazy: docker-compose down --rmi all

🎨 Dostosowanie i rozszerzenie funkcjonalności

Konfiguracja zmiennych środowiskowych

Excalidraw oferuje różne opcje konfiguracyjne poprzez zmienne środowiskowe. Oto kilka przydatnych zmiennych:

environment:
  - NODE_ENV=production
  - EXCALIDRAW_ASSET_PATH=/
  - REACT_APP_BACKEND_V2_GET_URL=https://your-backend-url/api/v2/scenes/
  - REACT_APP_BACKEND_V2_POST_URL=https://your-backend-url/api/v2/scenes/
  - REACT_APP_LIBRARY_URL=https://your-library-url/
  - REACT_APP_GOOGLE_ANALYTICS_ID=your-ga-id

Integracja z własnym systemem uwierzytelniania

Jeśli chcesz zintegrować Excalidraw z własnym systemem uwierzytelniania, musisz:

  1. Skonfigurować reverse proxy (Nginx/Apache)
  2. Dodać warstwę uwierzytelniania przed przekierowaniem do Excalidraw
  3. Zmodyfikować źródła, jeśli potrzebujesz głębszej integracji

✨ Pro Tip: Dla organizacji korporacyjnych rozważ integrację z LDAP/Active Directory poprzez dodatkową warstwę autentykacji.

❓ FAQ - Odpowiedzi na Twoje Pytania

Czy Excalidraw działa offline po zainstalowaniu na własnym serwerze?
Tak, po zainstalowaniu na własnym serwerze Excalidraw działa całkowicie offline w ramach Twojej sieci lokalnej.

Czy instalacja Excalidraw na własnym serwerze jest zgodna z licencją?
Tak, Excalidraw jest udostępniany na licencji MIT, która pozwala na self-hosting i modyfikacje.

Ile zasobów serwera potrzebuje Excalidraw?
Excalidraw jest relatywnie lekką aplikacją. Nawet na serwerze z 1GB RAM i 1 vCPU powinien działać płynnie.

Czy mogę używać własnej domeny dla Excalidraw?
Tak, możesz skonfigurować Nginx jako reverse proxy i używać własnej domeny z certyfikatem SSL.

Jak często powinienem aktualizować Excalidraw?
Zalecamy regularne aktualizacje, szczególnie gdy pojawiają się poprawki bezpieczeństwa, ale częstotliwość zależy od Twoich potrzeb i polityki bezpieczeństwa.

🏁 Podsumowanie - Gotowy na Sukces?

Self-hosting Excalidraw za pomocą Dockera to doskonały sposób na zapewnienie sobie niezależności, bezpieczeństwa i kontroli nad danymi. W tym przewodniku przeprowadziliśmy Cię przez:

  • Instalację i konfigurację Dockera
  • Wdrożenie Excalidraw w kontenerze
  • Zabezpieczenie instalacji za pomocą HTTPS
  • Zarządzanie i aktualizację aplikacji
  • Rozwiązywanie problemów i dostosowywanie funkcjonalności

Dzięki self-hostingowi masz pełną kontrolę nad swoją instancją Excalidraw - możesz ją dostosować, zabezpieczyć i integrować z innymi systemami według własnych potrzeb.

🚀 Wzmocnij swoją infrastrukturę IT

Sprawdź nasze rozwiązania hostingowe

Potrzebujesz pomocy z konfiguracją? Nasi eksperci są gotowi, by Ci pomóc w optymalizacji Twojego środowiska self-hostingowego!

Czy ten artykuł był pomocny?

Wróć do listy wpisów

Twoja strona WordPress działa wolno?

Sprawdź nasz hosting WordPress z ultraszybkimi dyskami NVMe i konfiguracją serwera zoptymalizowaną pod kątem wydajności. Doświadcz różnicy już dziś!

Sprawdź ofertę hostingu
30-dniowa gwarancja zwrotu pieniędzy