Projekty:
🖥️Smart Home z Raspberry Pi 5
🧠 Projekt Smart Home z Raspberry Pi 5
W ramach tego projektu stworzyłem własny system Smart Home oparty na Raspberry Pi 5, który działa całkowicie lokalnie — bez chmury i bez zewnętrznych usług.
Chciałem zbudować środowisko, które pozwoli mi zarządzać urządzeniami w domu, monitorować kamery i mieć dostęp zdalny do sieci, a jednocześnie nauczyć się praktycznie, jak działa Linux, konteneryzacja, automatyzacja i bezpieczny dostęp przez VPN.
🔧 Jak to działa
Sercem całego systemu jest Raspberry Pi 5 z zainstalowanym Ubuntu Server 24.04 LTS.
Całość działa w trybie „headless” — bez monitora, a ja łączę się z serwerem zdalnie przez SSH.
Na tym serwerze uruchamiam różne usługi w kontenerach Dockera, co pozwala mi lepiej zrozumieć zarządzanie środowiskami i izolację aplikacji.
Do automatyki domowej wykorzystuję Home Assistant, z którego poziomu mogę sterować np. klimatyzacją w sypialni oraz podglądać obraz z kamer PoE.
Za zapis nagrań i monitoring odpowiada aplikacja MotionEye, która rejestruje obraz z kamer na zewnętrznym dysku USB podłączonym do Raspberry Pi.
Aby mieć bezpieczny dostęp z dowolnego miejsca, skonfigurowałem VPN WireGuard — dzięki temu mogę łączyć się z domową siecią, Home Assistantem i monitoringiem z laptopa lub telefonu, bez narażania systemu na ryzyko ataków z zewnątrz.
🧩 Wykorzystane technologie i sprzęt
Raspberry Pi 5 – główny serwer systemu
Ubuntu Server – lekki i stabilny system Linux
Docker – uruchamianie aplikacji w kontenerach
Home Assistant – centrum zarządzania urządzeniami i automatyzacją
MotionEye – system monitoringu i zapisu obrazu
WireGuard VPN – bezpieczne połączenie zdalne
Kamery PoE + switch PoE – zasilanie i połączenie sieciowe w jednym kablu
🏠 Home Assistant
Aplikacja do zarządzania automatyką domową.
- Używana do sterowania klimatyzacją w mojej sypialni oraz podglądu kamer PoE.
📹 MotionEye
System do monitoringu z zapisem wideo.
Przechowuje nagrania z kamer PoE na zewnętrznym dysku USB podpiętym do RaspberryPi5
🔌 Kamery PoE + Switch PoE
Kamery zasilane przez Ethernet.
Połączone przez switch PoE z siecią lokalną i RPi5.
🌐 WireGuard VPN
Bezpieczny dostęp zdalny do sieci domowej z laptopa i telefonu.
Możliwość połączenia z Raspberry Pi, Home Assistant i MotionEye spoza domu.
💡 Co daje mi ten projekt
Dzięki temu projektowi łączę w praktyce wiele aspektów, które są ważne w nowoczesnym podejściu do zarządzania infrastrukturą IT:
– konfigurację systemu Linux i pracę w terminalu,
– konteneryzację i utrzymanie środowisk w Dockerze,
– automatyzację i integrację usług w jednym ekosystemie,
– zapewnianie bezpieczeństwa i zdalnego dostępu poprzez VPN.
To wszystko przekłada się na realne umiejętności w kierunku zarządzania i utrzymania środowisk serwerowych — tylko że tutaj moim „środowiskiem produkcyjnym” jest… mój dom.
🚀 Co dalej
Projekt wciąż się rozwija.
Planuję zintegrować sterowanie bramą garażową i wjazdową, dodać powiadomienia push do aplikacji Home Assistant, a także rozszerzyć system o nowe urządzenia IoT i automatyzacje.
Każdy nowy element to dla mnie okazja, żeby uczyć się kolejnych narzędzi, konfiguracji i sposobów pracy, które przydadzą mi się w przyszłości.
🐳 Docker – podstawy pracy z kontenerami
Docker
W tym projekcie pokazuję swoje pierwsze praktyczne kroki z Dockerem w środowisku domowym. Na serwerze Ubuntu, uruchomionym na Raspberry Pi 5, stworzyłem trzy kontenery: jeden dla Home Assistant, drugi dla WordPressa i trzeci dla bazy danych , na której działa moja strona internetowa.
Projekt pozwola mi zrozumieć podstawy pracy z kontenerami, zarządzanie ich konfiguracją oraz integrację usług w sieci domowej. To pierwszy krok w kierunku automatyzacji i pracy w środowisku DevOps, który rozwijam i planuję dalej rozszerzać.
Docker Compose
Aby ułatwić zarządzanie kontenerami i automatyzować uruchamianie usług, zainstalowałem Docker Compose i przygotowałem plik docker-compose.yml. Dzięki temu mogę jednym poleceniem uruchomić wszystkie kontenery, zapewniając ich poprawną konfigurację, podpięcie odpowiednich wolumenów z danymi oraz zachowanie sieci między usługami.
Zastosowanie Docker Compose pozwoliło mi zrozumieć, jak:
definiować i grupować wiele usług w jednym pliku,
zarządzać zależnościami między kontenerami,
utrzymywać spójność konfiguracji przy restartach i aktualizacjach,
podpiąć istniejące dane do nowych kontenerów, zachowując ciągłość działania WordPressa i Home Assistanta.
Czego uczę się dzięki konteneryzacji i co mi to daje
Pracując z Dockerem, uczę się jak porządkować i oddzielać różne aplikacje od siebie. Dzięki temu każda działa w swoim własnym środowisku i nie wchodzi w konflikt z innymi. Widzę też, jak ważne jest przechowywanie danych w odpowiedni sposób, tak żeby po restarcie czy aktualizacji nic nie zniknęło.
Konteneryzacja daje mi dużą wygodę – mogę łatwo uruchamiać i zatrzymywać usługi, przenosić je na inne urządzenia czy do chmury i wszystko działa tak samo. Do tego jednym poleceniem mogę uruchomić cały zestaw potrzebnych aplikacji, co oszczędza czas i daje pewność, że konfiguracja zawsze jest spójna.
Co dalej chcę rozwijać
Chcę nauczyć się bardziej automatyzować to, co robię – tak, żeby kopie zapasowe, aktualizacje czy wdrożenia działy się same. Interesuje mnie też, jak takie rozwiązania są używane w większej skali – np. w Kubernetesie, gdzie zarządza się setkami kontenerów. Do tego chcę poznać narzędzia do monitorowania i pilnowania bezpieczeństwa, żeby lepiej rozumieć, jak utrzymać stabilne i bezpieczne środowisko.
🖥️Bash - skrypty
W ramach rozwoju mojego projektu opartego na Dockerze, stworzyłem własny skrypt w Bashu, który automatyzuje proces tworzenia kopii zapasowej mojej strony internetowej (WordPress + MariaDB).
Skrypt działa w następujący sposób:
📂 Archiwizuje wszystkie pliki WordPressa z katalogu var/www/html,
🗄️ Tworzy dump bazy danych MariaDB (mysqldump),
💾 Zapisuje kopie w wybranym przeze mnie katalogu na dysku zewnętrznym podpiętym do Raspberry Pi,
🧹 Automatycznie usuwa backupy starsze niż 30 dni, żeby oszczędzać miejsce.
Automatyzacja za pomocą crontab
Do uruchamiania mojego skryptu backupu wykorzystałem wbudowany w Linuxa system harmonogramu zadań – crontab.
Dodałem wpis: 0 3 * * 0 /mnt/dysk/backup_wordpres.sh >> /mnt/dysk/backup/backup.log 2>&1
Co oznacza każdy fragment?
0 3 * * 0 – harmonogram uruchamiania:
0 → minuta (00),
3 → godzina (03:00 w nocy),
* → każdy dzień miesiąca,
* → każdy miesiąc,
0 → niedziela (w cronie dni tygodnia są numerowane od 0 = niedziela do 6 = sobota).
👉 czyli raz w tygodniu w niedzielę o 3:00 w nocy.
/mnt/dysk/backup_wordpres.sh – pełna ścieżka do mojego skryptu Bash, który wykonuje backup plików i bazy danych.
/mnt/dysk/backup/backup.log 2>&1 – zapisuje wynik działania skryptu (oraz ewentualne błędy) do pliku logów backup.log. Dzięki temu mam pełną historię wykonywania kopii zapasowych i mogę łatwo sprawdzić, czy coś poszło nie tak.
🚀 Co chcę rozwijać dalej
Chcę poszerzyć wiedzę o:
bardziej zaawansowane skrypty Bash z obsługą błędów i warunków,
użycie zmiennych środowiskowych i plików .env do bezpiecznego przechowywania haseł,
integrację skryptów z powiadomieniami (np. e-mail po wykonanym backupie),
automatyzację na wyższym poziomie – np. Ansible albo CI/CD (GitHub Actions, GitLab CI).
🏫 School Portal – system rekrutacyjny online dla szkół niepublicznych (Python)
🏫 School Portal – nowoczesny portal rekrutacyjny dla szkół niepublicznych
Opis projektu:
Projekt School Portal tworzę z myślą o uczniach, którzy chcą łatwo znaleźć szkołę niepubliczną dopasowaną do swoich potrzeb — wszystko w jednym miejscu.
Aplikacja ma umożliwić:
👩🎓 uczniom – przeglądanie ofert edukacyjnych wielu szkół i składanie zgłoszeń online,
🏫 szkołom – zarządzanie swoimi profilami, aktualizowanie ogłoszeń i przeglądanie zgłoszeń uczniów,
👨💻 administratorowi – nadzór nad systemem i weryfikację szkół przed ich publikacją.
Obecnie projekt jest w fazie aktywnego rozwoju — dopieszczam stronę backendową opartą o Django REST Framework i PostgreSQL, aby w kolejnym etapie przejść do tworzenia frontendowej części aplikacji.
Docelowo interfejs użytkownika ma być intuicyjny, nowoczesny i przyjazny dla uczniów oraz szkół.
Cechy projektu:
🔐 Rejestracja i logowanie użytkowników z wykorzystaniem JWT Authentication
🧩 Dwa typy kont: Uczeń i Szkoła
🏛️ Szkoły oczekują na akceptację przez administratora przed publikacją ogłoszeń
📚 Uczniowie mogą przeglądać oferty i wysyłać zgłoszenia online
⚙️ Backend oparty o Django REST Framework, przygotowany do integracji z frontendem (np. React)
🐳 Uruchamiany w pełni w kontenerach Docker + PostgreSQL
🔧 Konfiguracja środowiska developerskiego z WSL2 i VS Code Remote
🔒 Bezpieczne przechowywanie danych i konfiguracji w pliku
.env
Technologie:Python 3.12 · Django 5.2 · Django REST Framework · PostgreSQL 15 · Docker & Docker Compose · JWT Authentication · WSL2 (Ubuntu)
Status projektu:
🚧 W trakcie prac – aktualnie rozwijana warstwa backendowa, w planach implementacja frontendu.
Link do repozytorium:
👉 GitHub – School Portal