Logowanie z https://polskalokalnie.pl konczylo sie bledem 403, a nie 401 - zadanie w ogole nie docieralo do logiki uwierzytelniania. Nginx terminuje TLS i przekazuje ruch do backendu po http, wiec Spring widzi schemat http, podczas gdy przegladarka przysyla Origin z https. Schematy sie roznia, wiec zadanie jest traktowane jako cross-origin i sprawdzane wzgledem listy dozwolonych originow, na ktorej byly wylacznie adresy lokalne i LAN. Frontend pokazywal przy tym generyczny komunikat, bo odpowiedz CORS nie jest JSON-em z pole "message". Dodanie domeny produkcyjnej do listy przywraca poprawne zachowanie: zle haslo zwraca 401 z czytelnym komunikatem, poprawne 200. Poza tym: - name: polskalokalnie w obu plikach compose. Bez tego Compose wyprowadza nazwe projektu z nazwy katalogu, a na serwerze kazda z trzech aplikacji siedzi w katalogu "app" - komenda bez -p wchodzila w stack innej aplikacji i podmieniala w nim serwis backend. - restart: unless-stopped na serwisach produkcyjnych. Kontenery polskalokalnie mialy polityke "no" i jako jedyne na serwerze nie wstawaly po reboocie. W pliku deweloperskim swiadomie tego nie ma - lokalnie kontenery nie powinny startowac same przy kazdym uruchomieniu Dockera. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Polska Lokalnie
Aplikacja do ogloszen sprzedazy i wynajmu mieszkan, domow oraz apartamentow.
Stack technologiczny
- Backend: Java 21, Spring Boot, Spring Web, Spring Data JPA, Bean Validation
- Frontend: React, TypeScript, Vite
- Baza danych: PostgreSQL
- Reverse proxy i statyczny frontend: Nginx
- Uruchamianie: Docker Compose
Uruchomienie w Dockerze
Skopiuj konfiguracje srodowiskowa i uruchom caly stack:
cp .env.example .env
docker compose up --build
W PowerShell mozesz uzyc:
Copy-Item .env.example .env
docker compose up --build
Aplikacja bedzie dostepna pod adresem:
- Frontend: http://localhost
- API: http://localhost/api/listings
- PostgreSQL: localhost:5432
Dostep w sieci lokalnej
Aplikacja jest przygotowana do pracy z innych urzadzen w tej samej sieci Wi-Fi/LAN.
Najpierw sprawdz adres IP komputera, na ktorym uruchamiasz projekt:
ipconfig
Znajdz aktywna karte sieciowa i pole IPv4 Address, na przyklad 192.168.1.25.
Docker Compose
Uruchom caly stack:
docker compose up --build
Na drugim urzadzeniu w tej samej sieci wejdz w przegladarce na:
http://192.168.1.25
Port 80 jest wystawiany na siec lokalna przez Nginx. Backend i baza danych domyslnie sa dostepne tylko lokalnie na komputerze hosta, a API jest osiagalne przez Nginx pod /api.
Tryb developerski
Uruchom backend lokalnie:
cd backend
mvn spring-boot:run
Uruchom frontend lokalnie:
cd frontend
npm run dev
Na drugim urzadzeniu wejdz na:
http://192.168.1.25:5173
Vite nasluchuje na 0.0.0.0, a zapytania /api sa proxy do backendu na 127.0.0.1:8080.
Uruchomienie lokalne bez Dockera
Backend:
cd backend
mvn spring-boot:run
Frontend:
cd frontend
npm install
npm run dev
Vite przekierowuje zapytania /api do backendu na http://localhost:8080.
Struktura projektu
backend/ Spring Boot API
frontend/ React + Vite
nginx/ konfiguracja Nginx i obraz web
docker-compose.yml