This is PingTower backend layer, based on Java and Spring.
The backend consists of several microservices:
- pinger - Service for system availability checking
- notificator - Service for managing notifications
- statistics - Service for statistics and data aggregation
- common - Shared library module with common components
For detailed architecture documentation, see Architecture Documentation.
The services use Keycloak for authentication and authorization. Keycloak is included in the Docker Compose configuration and will be automatically started with the services.
- Realm:
pingtower - Default admin user:
admin/admin - Default regular user:
user/user - Backend Client ID:
pingtower-backend - Backend Client secret:
pingtower-secret - Frontend Client ID:
pingtower-frontend - Frontend Client secret:
pingtower-frontend-secret
To access Keycloak from external applications:
- Set the
DOMAINenvironment variable in your.envfile to your public domain - Keycloak will be accessible at:
http://your-domain:8080
- Use the
pingtower-frontendclient for web/mobile applications - Use the
pingtower-backendclient for backend service-to-service communication
For detailed instructions on configuring external access, see KEYCLOAK_EXTERNAL_ACCESS.md.
-
Copy
.env.exampleto.envand adjust values if needed:cp .env.example .env
-
For external access, set your domain in the
.envfile:DOMAIN=your-public-domain.com -
Start all services:
docker compose up -d
-
Access the services:
- pinger: http://localhost:8081
- notificator: http://localhost:8082
- statistics: http://localhost:8084
- Keycloak: http://localhost:8080
- Keycloak (external): http://your-domain:8080
To build a specific service, use:
./gradlew :[service-name]:buildFor example:
./gradlew :pinger:build