Projekt xyOps to kompleksowa platforma przeznaczona do automatyzacji przepływów pracy (workflow automation) oraz monitorowania serwerów. Została stworzona głównie z myślą o programistach i zespołach operacyjnych (DevOps), które chcą mieć pełną kontrolę nad swoją infrastrukturą bez wysyłania danych na zewnątrz (telemetrii).
Główne zastosowania i funkcje tego projektu to:
- Zaawansowane harmonogramowanie zadań (Job Scheduling): Narzędzie to stanowi potężniejszą alternatywę dla tradycyjnego
crona, pozwalając na precyzyjne zarządzanie zadaniami w całej flocie serwerów. - Wizualna automatyzacja (Workflow Builder): Umożliwia wizualne budowanie i łączenie zdarzeń, wyzwalaczy, akcji oraz monitorów w zaawansowane łańcuchy procesów (pipelines).
- Monitorowanie infrastruktury i powiadomienia (Monitoring & Alerts): System stale śledzi wydajność serwerów i potrafi wysyłać inteligentne alerty. Co ciekawe, powiadomienia są zintegrowane z danymi: jeśli wystąpi błąd, alert zawiera informacje o procesach uruchomionych w danym momencie, obciążeniu CPU czy logach.
- Reagowanie na incydenty (Incident Response): Gdy zadanie ulegnie awarii, xyOps potrafi automatycznie otworzyć zgłoszenie (ticket) z pełnym kontekstem problemu (historia, logi, połączone metryki, tzw. zrzuty stanu serwera).

Projekt jest w pełni otwartoźródłowy (licencja BSD-3-Clause) i darmowy do samodzielnego hostowania (posiada również płatne plany ze wsparciem dla firm). Jego celem jest zintegrowanie narzędzi do zarządzania zadaniami i monitorowania w jeden, spójny system działający w czasie rzeczywistym.
Przykładowe zadanie zrealizowane za pomocą xyOps
System pozwala na tworzenie zaawansowanych scenariuszy automatyzacji łączących harmonogram, monitorowanie oraz reakcję na błędy.
- Scenariusz: Automatyczny backup bazy danych z inteligentnym powiadamianiem i tworzeniem zgłoszeń.
- Jak to działa w xyOps:
- Harmonogram (Job Scheduler): Zadanie uruchamia się automatycznie co noc o godzinie 2:00 na wskazanych serwerach floty.
- Wykonanie akcji: Skrypt tworzy zrzut bazy danych (np. PostgreSQL) i kompresuje plik.
- Monitorowanie i powiadomienia (Smart Alerts): Jeśli proces zakończy się sukcesem, system odnotowuje to w statystykach. W przypadku awarii (np. brak miejsca na dysku lub błąd połączenia), xyOps natychmiast wysyła powiadomienie e-mail, które zawiera aktualny zrzut stanu serwera (użycie procesora, pamięci i listę aktywnych procesów) oraz automatycznie zakłada zgłoszenie (ticket) w systemie z pełnym kontekstem i logami błędu.
Sposoby instalacji xyOps
Platformę można wdrożyć na własnej infrastrukturze (self-hosting) na kilka sposobów:
- Docker / Docker Compose – najpopularniejsza i najwygodniejsza metoda uruchomienia instancji (zarówno do testów, jak i środowisk produkcyjnych).
- Instalacja ręczna (Manual Install) – bezpośrednio na systemie operacyjnym (Linux/macOS) przy użyciu środowiska Node.js i skryptu instalacyjnego (z rejestracją jako usługa systemowa, np. Systemd).
- Pakiety dla agentów (xySat) – instalowane na dodatkowych serwerach roboczych za pomocą jedno-linijkowych skryptów (dla systemów Linux, macOS, Windows lub jako kontenery Docker).
Instrukcja instalacji za pomocą Docker Compose
Aby uruchomić główny serwer zarządzający (conductor) xyOps za pomocą Docker Compose, wykonaj poniższe kroki:
- Utwórz plik
docker-compose.ymlw wybranym katalogu na swoim serwerze:
version: '3.8'
services:
xyops01:
image: ghcr.io/pixlcore/xyops:latest
container_name: xyops-conductor-01
hostname: xyops01.internal.mycompany.com
init: true
restart: unless-stopped
environment:
- XYOPS_masters=xyops01.internal.mycompany.com
- XYOPS_xysat_local=true
- TZ=Europe/Warsaw
volumes:
- xy-data:/opt/xyops/data
- ./xyops01-conf:/opt/xyops/conf
- ./xyops01-logs:/opt/xyops/logs
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "5522:5522"
- "5523:5523"
volumes:
xy-data:
Ważne dostosowanie:
- Zastąp
xyops01.internal.mycompany.comrzeczywistą nazwą hosta (hostname) swojego serwera, która jest poprawnie rozwiązywana w Twojej sieci lokalnej lub pliku/etc/hosts. Jest to kluczowe, aby agenci i inne serwery mogły łączyć się z głównym węzłem. - Zmień strefę czasową w zmiennej
TZna odpowiednią dla swojej lokalizacji.
Uruchom kontener za pomocą polecenia: docker compose up -d
Następne kroki:
- Otwórz przeglądarkę internetową i wejdź pod adres IP swojego serwera (lub
localhost, jeśli instalujesz lokalnie) z odpowiednimi portami (np. domyślnie porty zarządzania5522lub5523, w zależności od konfiguracji interfejsu webowego). - Utwórz konto administratora podczas pierwszego uruchomienia.
- Jeśli planujesz monitorować lub uruchamiać zadania na innych maszynach w swojej flocie, zainstaluj agentów
xySatna docelowych serwerach i połącz je z głównym węzłem (conductor). - Możesz definiować Trigery / Eventy – W edytorze przepływów pracy (Workflow Builder) lub sekcji harmonogramu definiujesz, co ma być „impulsem” do działania. Może to być np. webhook HTTP przychodzący z zewnątrz, zdarzenie monitorowane na serwerze (np. przekroczenie progu zużycia CPU) albo zwykły harmonogram czasowy (cron).
- Przypisujesz do stworzonego eventu konkretną akcję – na przykład uruchomienie skryptu backupu, restart usługi czy wysłanie powiadomienia.
🔗 Github: https://github.com/pixlcore/xyops


