Electerm-web-docker to oficjalny obraz Dockera projektu electerm-web — narzędzia, które zamienia klasycznego klienta terminalowego w pełnoprawną aplikację webową dostępną z poziomu przeglądarki. Jeśli szukasz sposobu na uruchomienie bezpiecznego, samoobsługowego klienta SSH, SFTP, Telnet, SFTP i VNC bez konieczności instalowania czegokolwiek na stacjach roboczych, to właśnie trafiłeś w dziesiątkę.
Czym jest electerm-web i dlaczego Docker?
Electerm to open-source’owy klient terminalowy znany przede wszystkim jako aplikacja desktopowa na Linux, macOS i Windows. Projekt electerm-web przenosi te same możliwości do przeglądarki internetowej — użytkownik nie instaluje nic lokalnie, a dostęp do zdalnych serwerów uzyskuje przez zwykły adres URL.
Electerm-web-docker idzie o krok dalej: pakuje całą aplikację w gotowy kontener Docker. Zamiast ręcznie konfigurować Node.js, zależności npm, SQLite i zmienne środowiskowe, wystarczy jedno polecenie docker run, a serwis działa. To rozwiązanie idealne dla zespołów DevOps, administratorów systemów oraz każdego, kto chce mieć szybki dostęp do terminala z dowolnego urządzenia — laptopa, tabletu, a nawet smartfona.
Obraz Dockera jest dostępny publicznie w Docker Hub pod nazwą zxdong262/electerm-web i jest utrzymywany w repozytorium GitHub: electerm/electerm-web-docker.


Kluczowe funkcje electerm-web dostępne przez Docker
Uruchamiając electerm-web przez kontener, otrzymujesz dostęp do wszystkich najważniejszych możliwości aplikacji:
Protokoły i połączenia: Electerm-web obsługuje SSH, SFTP, Telnet, połączenia przez port szeregowy (serial port), FTP, RDP, VNC oraz Spice. To rzadko spotykane połączenie tak wielu protokołów w jednym narzędziu webowym. Praktycznie każde urządzenie sieciowe lub zdalny serwer będzie tu obsługiwany.

Zarządzanie plikami: Wbudowany menedżer plików SFTP/FTP pozwala przeglądać, przesyłać i pobierać pliki bezpośrednio w przeglądarce. Podwójne kliknięcie otwiera małe pliki tekstowe do natychmiastowej edycji — bez konieczności używania zewnętrznego edytora.

Przykład edytowania pliku test.txt

Zaawansowane funkcje terminala: Aplikacja obsługuje Zmodem (rz/sz), Trzsz (kompatybilny z tmux), tunele SSH oraz uwierzytelnianie kombinacją klucza publicznego i hasła. Dostępna jest też funkcja szybkich poleceń (quick commands) i zbiorczego wysyłania danych do wielu terminali jednocześnie.

Synchronizacja i backup: Zakładki, motywy i szybkie polecenia można synchronizować z GitHub Gist lub Gitee, co oznacza, że ustawienia są dostępne z każdego nowego wdrożenia bez utraty konfiguracji.

Wsparcie dla AI: Electerm-web integruje się z modelami językowymi — DeepSeek, OpenAI i innymi zgodnymi API — oferując asystenta AI wbudowanego bezpośrednio w terminal. Asystent pomaga pisać polecenia, tworzyć skrypty i wyjaśnia zaznaczoną zawartość terminala.

Wielojęzyczność i responsywność: Interfejs obsługuje ponad 12 języków i jest w pełni responsywny, co oznacza wygodną pracę na urządzeniach mobilnych.

Jak uruchomić electerm-web-docker — instrukcja krok po kroku
Podstawowe uruchomienie
Najprostszy sposób to jedno polecenie:
docker run --init \
--user "$(id -u):$(id -g)" \
-v $(pwd)/electerm-web-data:/home/electerm/data \
-e "DB_PATH=/home/electerm/data" \
-e "HOST=0.0.0.0" \
-p 8082:5577 \
zxdong262/electerm-web
Po jego wykonaniu aplikacja jest dostępna pod adresem http://127.0.0.1:8082. Flaga --user "$(id -u):$(id -g)" uruchamia kontener jako bieżący użytkownik systemu, co eliminuje typowe problemy z uprawnieniami do plików na systemach Linux.
Uruchomienie z uwierzytelnianiem
Jeśli electerm-web ma być dostępny publicznie lub dla wielu użytkowników, należy włączyć mechanizm autoryzacji:
docker run --init \
--user "$(id -u):$(id -g)" \
-v $(pwd)/electerm-web-data:/home/electerm/data \
-e "DB_PATH=/home/electerm/data" \
-e "HOST=0.0.0.0" \
-e "SERVER_SECRET=twoj_tajny_klucz" \
-e "SERVER_PASS=haslo_do_logowania" \
-e "ENABLE_AUTH=1" \
-p 8082:5577 \
zxdong262/electerm-web
Zmienne środowiskowe SERVER_SECRET i SERVER_PASS powinny być silnymi, losowymi ciągami znaków. Nigdy nie używaj domyślnych wartości w środowiskach produkcyjnych.
Współdzielenie danych z desktopowym electerm
To wyjątkowo przydatna funkcja: można wskazać kontenerowi ten sam folder danych, którego używa desktopowy electerm. Dzięki temu zakładki SSH, klucze i ustawienia są dostępne zarówno w przeglądarce, jak i w aplikacji desktopowej.
Dla macOS:
docker run --init --user "$(id -u):$(id -g)" \
-v "/Users/<twoja-nazwa-uzytkownika>/Library/Application Support/electerm":/home/electerm/data \
-e "DB_PATH=/home/electerm/data" -e "HOST=0.0.0.0" \
-p 8082:5577 zxdong262/electerm-web
Dla Linux:
docker run --init --user "$(id -u):$(id -g)" \
-v "/home/<twoja-nazwa-uzytkownika>/.config/electerm":/home/electerm/data \
-e "DB_PATH=/home/electerm/data" -e "HOST=0.0.0.0" \
-p 8082:5577 zxdong262/electerm-web
Wdrożenie z Docker Compose
W środowiskach produkcyjnych i teamowych zalecanym podejściem jest Docker Compose, który upraszcza zarządzanie usługą i pozwala na jej automatyczne restartowanie:
version: '3.8'
services:
electerm-web:
image: zxdong262/electerm-web:latest
container_name: electerm-web
user: "${UID:-1000}:${GID:-1000}"
volumes:
- ./electerm-data:/home/electerm/data
environment:
- DB_PATH=/home/electerm/data
- HOST=0.0.0.0
# Opcjonalne uwierzytelnianie:
# - SERVER_SECRET=twoj_tajny_klucz
# - SERVER_PASS=haslo
# - ENABLE_AUTH=1
ports:
- "8082:5577"
init: true
restart: unless-stopped
Uruchomienie:
UID=$(id -u) GID=$(id -g) docker-compose up -d
Opcja restart: unless-stopped zapewnia, że serwis automatycznie wróci do pracy po restarcie hosta lub aktualizacji Dockera.

Bezpieczeństwo: co musisz wiedzieć przed wdrożeniem
Electerm-web uruchomiony bez uwierzytelnienia jest dostępny dla każdego, kto może się z nim połączyć. Przed udostępnieniem aplikacji w sieci lokalnej lub publicznej należy koniecznie przeanalizować kilka kwestii bezpieczeństwa.
Włącz ENABLE_AUTH. Bez tej zmiennej każda osoba z dostępem do adresu IP i portu może korzystać z terminala — bez żadnego logowania. To niedopuszczalne w jakimkolwiek środowisku poza localhost.
Ogranicz dostęp do lokalnego terminala. Zmienna DISABLE_LOCAL_TERMINAL=1 wyłącza terminal lokalny serwera, na którym działa kontener. W scenariuszu, gdzie electerm-web służy tylko do łączenia się ze zdalnymi hostami, ta opcja jest silnie rekomendowana.
Używaj HTTPS. Projekt dostarcza przykładowe konfiguracje nginx (nginx.conf i nginx-ssl.conf w repozytorium electerm-web), które pozwalają na wystawienie aplikacji za reverse proxy z certyfikatem TLS. Bez szyfrowania hasła i klucze SSH przesyłane przez sieć są narażone na przechwycenie.
Dobierz silne hasła i sekrety. Wartości SERVER_SECRET i SERVER_PASS powinny być co najmniej 32-znakowymi, losowymi ciągami. Można je wygenerować poleceniem: openssl rand -base64 32.

Przykład konfiguracje z sekretem

Monitoruj port. Domyślnie aplikacja jest wystawiona na porcie 8082. W środowiskach z zaporą sieciową upewnij się, że port ten jest dostępny tylko dla zaufanych adresów IP.
Migracja danych z electerm-web v2 do v3
Wersja v3 electerm-web zastąpiła bazę danych NeDB silnikiem SQLite, oferującym lepszą wydajność i stabilność. Użytkownicy aktualizujący ze starszej wersji muszą przeprowadzić migrację danych.
Proces jest następujący: najpierw należy zainstalować narzędzie electerm-data-tool przez npm, następnie wyeksportować dane ze starej bazy NeDB za pomocą polecenia z flagą migrate, a na końcu zaimportować wygenerowany plik data.json przez panel Data Sync w nowej wersji aplikacji. Szczegółowa instrukcja migracji jest dostępna w repozytorium electerm-web.
Electerm-web-docker a alternatywy: porównanie
Warto umiejscowić electerm-web-docker w szerszym krajobrazie narzędzi webowych do zarządzania serwerami.
Vs. Wetty / ttyd: To proste narzędzia do wystawiania terminala w przeglądarce, ale obsługują tylko jeden protokół i jeden sesję. Electerm-web oferuje pełny wielosesyjny interfejs, wsparcie dla SFTP, zakładki i synchronizację.
Vs. Apache Guacamole: Guacamole to potężna platforma RDP/SSH/VNC, ale jej konfiguracja i utrzymanie są znacznie bardziej złożone. Electerm-web jest prostszy w wdrożeniu i bardziej przyjazny dla użytkowników przyzwyczajonych do desktopowych klientów SSH.
Vs. JumpServer / Teleport: To rozwiązania enterprise-grade z audytem, RBAC i zaawansowanym zarządzaniem dostępem. Electerm-web celuje w prostotę i natychmiastowe wdrożenie — jest idealny dla małych i średnich zespołów lub użytku osobistego.
Vs. WebSSH2: Prostszy projekt, wyłącznie SSH, bez SFTP, zakładek ani synchronizacji. Electerm-web oferuje znacznie bogatszy zestaw funkcji.
Główna przewaga electerm-web-docker to połączenie łatwości wdrożenia (jeden obraz Docker), bogatego zestawu protokołów i nowoczesnego interfejsu, który nie wymaga żadnej konfiguracji po stronie klienta.
Architektura kontenera
Dockerfile projektu bazuje na Ubuntu (plik Dockerfile.ubuntu). Repozytorium zawiera też skrypty automatyzacji: build.sh do budowania obrazu, run.sh do uruchomienia oraz publish.sh do publikacji na Docker Hub. Automatyzacja CI/CD realizowana jest przez GitHub Actions w katalogu .github/workflows.
Aplikacja wewnątrz kontenera nasłuchuje na porcie 5577. Przekierowanie na port hosta (domyślnie 8082 w przykładach) odbywa się przez standardowy mechanizm Docker -p 8082:5577. Bazę danych SQLite przechowuje w wolumenie podpiętym do /home/electerm/data.
Typowe przypadki użycia electerm-web-docker
Zespół DevOps bez dostępu do VPN: Wystawienie electerm-web za HTTPS pozwala inżynierom łączyć się ze zdalnymi serwerami z dowolnego miejsca przez przeglądarkę — bez potrzeby instalowania klienta SSH i konfigurowania VPN.
Domowy serwer/homelab: Jeden kontener na Raspberry Pi lub VPS daje wygodny dostęp do całej infrastruktury domowej z telefonu lub tabletu.
Środowiska edukacyjne: Laboratoria szkoleniowe mogą udostępniać uczniom gotowe środowisko terminala przez URL — bez instalacji i konfiguracji na każdej stacji roboczej.
Backup dostępu awaryjnego: Gdy główna stacja robocza jest niedostępna, electerm-web na zdalnym serwerze zawsze zapewnia dostęp do krytycznych systemów.
Ujednolicenie konfiguracji SSH w zespole: Dzięki synchronizacji zakładek przez GitHub Gist cały zespół może korzystać ze wspólnej, aktualnej listy hostów.
Często zadawane pytania (FAQ)
Czy electerm-web-docker jest bezpieczny do użytku produkcyjnego?
Tak, pod warunkiem włączenia uwierzytelniania (ENABLE_AUTH=1), użycia HTTPS przez reverse proxy oraz silnych haseł. Bez tych zabezpieczeń nie należy wystawiać aplikacji publicznie.
Jakie porty muszę otworzyć?
Kontener wewnętrznie używa portu 5577. Na hoście możesz zmapować go na dowolny port (np. 8082). Jeśli używasz nginx jako reverse proxy z HTTPS, otwierasz tylko port 443 (HTTPS) i ewentualnie 80 (HTTP do przekierowania).
Czy mogę używać kluczy SSH przechowywanych na hoście?
Tak. Wystarczy podmontować katalog .ssh jako dodatkowy wolumin lub skopiować klucze do folderu danych electerm, który jest już podmontowany.
Czy obraz jest aktualizowany automatycznie?
Projekt używa GitHub Actions do automatycznego budowania i publikowania nowych wersji obrazu na Docker Hub. Tagi latest i wersjonowane są dostępne pod zxdong262/electerm-web.
Czy działa na ARM (np. Raspberry Pi)?
Warto sprawdzić aktualne tagi na Docker Hub — projekt jest aktywnie rozwijany i wsparcie dla architektur ARM może się zmieniać.
Jak zaktualizować do nowej wersji?
Wystarczy pobrać nowy obraz (docker pull zxdong262/electerm-web:latest) i zrestartować kontener. Dane są trwałe dzięki wolumenowi — aktualizacja nie usuwa konfiguracji ani zakładek.
Zasoby i linki
- Repozytorium Docker: github.com/electerm/electerm-web-docker
- Repozytorium electerm-web: github.com/electerm/electerm-web
- Docker Hub: hub.docker.com/r/zxdong262/electerm-web
- Strona projektu electerm: electerm.html5beta.com
- Licencja: MIT — projekt jest w pełni open source
Podsumowanie
electerm-web-docker to jedno z najwygodniejszych rozwiązań do uruchomienia przeglądarkowego klienta SSH/SFTP/Telnet/RDP we własnej infrastrukturze. Połączenie bogatego zestawu protokołów, nowoczesnego interfejsu użytkownika, responsywnego designu i prostoty wdrożenia przez Docker czyni z niego wartościowe narzędzie zarówno dla indywidualnych administratorów, jak i dla zespołów.
Projekt jest open-source na licencji MIT, aktywnie rozwijany i posiada dobrze udokumentowane API konfiguracyjne przez zmienne środowiskowe. Migracja danych z wersji v2 do v3 wymaga jednorazowego wysiłku, ale przynosi znaczące korzyści w postaci stabilniejszej bazy SQLite.
Jeśli szukasz odpowiedzi na pytanie „jak uruchomić terminal SSH w przeglądarce bez instalowania oprogramowania na klientach”, electerm-web-docker jest jedną z najlepszych dostępnych odpowiedzi.

