🚀 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:
- Niezależność danych: Self-hosting Excalidraw zapewnia pełną kontrolę nad Twoimi diagramami i danymi.
- Bezpieczeństwo informacji: Wrażliwe diagramy i schematy nie są przechowywane na zewnętrznych serwerach.
- Prostota wdrożenia: Docker umożliwia łatwą instalację i aktualizację bez skomplikowanej konfiguracji serwera.
- 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:
- Zainstaluj Nginx:
sudo apt install -y nginx
- Utwórz plik konfiguracyjny dla Excalidraw:
sudo nano /etc/nginx/sites-available/excalidraw
- 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;
}
}
- 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
- 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:
- Skonfigurować reverse proxy (Nginx/Apache)
- Dodać warstwę uwierzytelniania przed przekierowaniem do Excalidraw
- 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?
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