⚠️ Breaking Changes
- Major architectural overhaul to make the system highly available and horizontally scalable (#207) (thanks @0xfurai)
- If you are running a microservices setup with Docker Compose, make sure to update your configuration — the app has now been split into multiple microservices, also update .env file from example
- The bundled version should continue to work as before without any changes
- see architecture overview https://docs.peekaping.com/architecture/overview
Added
Changed
Fixed
Raw Commit List
- Enhance Docker release workflow by adding build and push steps for API, Worker, Producer, and Ingester images, while updating existing Server image configurations. Adjusted Dockerfile paths and manifest creation for improved organization and consistency across services. (Thanks @0xfurai) bb8916e
- Update Docker release workflow to change working directory for version files from 'src/version' to 'internal/version' for improved organization and consistency (Thanks @0xfurai) 55f99d0
- Document breaking changes due to major architectural overhaul for enhanced system availability and scalability, including updates for microservices configuration in Docker Compose. (Thanks @0xfurai) ca541be
- Document major architecture change to enhance system availability and scalability (Thanks @0xfurai) 50d2e52
- Update database host configuration in self-hosting documentation for MongoDB and PostgreSQL to 'database' for consistency (Thanks @0xfurai) fdde1e2
- Refactor health check configurations and service dependencies in Docker Compose files (Thanks @0xfurai) f6450a7
- Update Redis port configuration in Docker Compose files to use an environment variable for flexibility (Thanks @0xfurai) a34634a
- Update health check configurations in Docker Compose files for all services (Thanks @0xfurai) 116be16
- Change base image in Dockerfiles for ingester, producer, and worker from scratch to alpine for improved size and security (Thanks @0xfurai) b07262f
- Update Docker Compose files to use 'latest' image tags for all services, ensuring the most recent versions are deployed. (Thanks @0xfurai) dc4905d
- Update Docker Compose configuration to rename 'postgres' service to 'database' for consistency with naming conventions (Thanks @0xfurai) a46d488
- Update Playwright workflow to create .env file with comprehensive database and server configurations for improved deployment consistency (Thanks @0xfurai) b90c347
- Update Playwright workflow to correct PostgreSQL and MongoDB port configurations for consistency (Thanks @0xfurai) a4d351d
- Update Playwright workflow to change Redis and database host configurations for improved deployment consistency (Thanks @0xfurai) fa9fac1
- Update Redis host configuration in Playwright workflow to use localhost for local testing (Thanks @0xfurai) c7e276a
- Update environment and Docker Compose configurations for Redis integration (Thanks @0xfurai) 5d97aef
- Enhance Docker Compose configurations by adding Redis services and improving health checks (Thanks @0xfurai) 4bfd5e2
- Change base image in Dockerfile.api from scratch to alpine for improved size and security (Thanks @0xfurai) ed6790c
- Update MongoDB connection logging format to include host, port, and database name for improved clarity (Thanks @0xfurai) ee158a4
- Refactor database shutdown procedures in server, ingester, and producer modules (Thanks @0xfurai) a79e908
- Update development scripts in package.json to include a delay for nodemon execution (Thanks @0xfurai) 4b39285
- Implement graceful shutdown for server, ingester, and producer modules with SQLite support (Thanks @0xfurai) 81fa57d
- Add SQLite support with Docker Compose configuration (Thanks @0xfurai) 829b876
- Update producer configuration and scheduler to improve logging and time handling (Thanks @0xfurai) 2cab1f3
- Enhance producer module with new monitor management functions and logging improvements (Thanks @0xfurai) 412dc3c
- Update Caddyfile logging configuration to standardize service field naming and enhance JSON output structure (Thanks @0xfurai) 84658bb
- Update Caddyfile logging configuration to include service fields and wrap JSON output (Thanks @0xfurai) 38a5aba
- Add ServiceName to internal configuration in API, Ingester, Producer, and Worker modules (Thanks @0xfurai) aed6014
- Implement context management for monitor syncing in producer module (Thanks @0xfurai) 704ac4c
- Set Gin mode to Release for production/test server initialization (Thanks @0xfurai) a5f9e00
- Refactor healthcheck module by removing unused fields and simplifying constructor (Thanks @0xfurai) a5aa218
- Register event handlers for stats service in ingester initialization (Thanks @0xfurai) 9435a5e
- Enhance SQLite connection configuration for improved reliability and concurrency (Thanks @0xfurai) fa42eb8
- Refactor Caddy command in supervisord configuration files for PostgreSQL and SQLite (Thanks @0xfurai) 49d47af
- Refactor server initialization logic to differentiate between development and production modes (Thanks @0xfurai) 2cb62a1
- Remove timestamp option from logging configuration in Caddyfile for cleaner log output (Thanks @0xfurai) 1d11418
- Update Caddyfile logging configuration and modify supervisord commands to include environment variable (Thanks @0xfurai) 4e9dec7
- Consolidate environment variable definitions in supervisord configuration files (Thanks @0xfurai) b821e67
- Refactor scheduling logic in producer module for immediate first checks (Thanks @0xfurai) 26f2d9c
- Update logging format in Caddyfile and enhance environment configuration in supervisord files (Thanks @0xfurai) ab2bc78
- Enhance SQLite connection configuration for improved concurrency (Thanks @0xfurai) 5f89ea0
- Refactor Dockerfiles to remove USER directive for enhanced security (Thanks @0xfurai) b0ef62c
- Add USER directive in migration Dockerfile for non-root execution (Thanks @0xfurai) 75a15ad
- Add SQLite directory setup in Playwright workflow for testing environment (Thanks @0xfurai) 6ff51d8
- Refactor Dockerfiles to enhance security and optimize dependency installation (Thanks @0xfurai) a2485d0
- Remove SQLite database directory permission settings from Playwright workflow and set user in migration Dockerfile (Thanks @0xfurai) 053e52e
- Add permission settings for SQLite database directory in Playwright workflow (Thanks @0xfurai) c725b41
- Update 'bun' build command in Dockerfiles for consistency (Thanks @0xfurai) 4b2d098
- Refactor Dockerfiles to simplify 'bun' build command (Thanks @0xfurai) 6be061f
- Remove redundant 'bun' migration copy command and adjust permissions in MongoDB Dockerfile for a cleaner build process (Thanks @0xfurai) 00d6f3b
- Remove unused 'bun' copy command from MongoDB Dockerfile to streamline build process (Thanks @0xfurai) e02a7f0
- Refactor Dockerfiles to streamline Go build commands (Thanks @0xfurai) 1e101f6
- Remove 'scripts' from .dockerignore to streamline Docker build context (Thanks @0xfurai) f454de2
- Update token expiration duration in JWT tests for edge case handling (Thanks @0xfurai) 6c04a24
- Refactor Dockerfiles to optimize Go build process (Thanks @0xfurai) 8768f72
- Update MongoDB installation in Dockerfile to use Ubuntu jammy repository (Thanks @0xfurai) d4fc3d7
- docs: update README to enhance project description and highlight features of Peekaping as an alternative to Uptime Kuma (Thanks @0xfurai) b3e169e
- Update healthcheck and producer tests to reflect changes in monitor behavior and parameters (Thanks @0xfurai) 9e66b89
- Enhance push monitor functionality and API documentation (Thanks @0xfurai) 0108305
- Update Dockerfiles to include additional packages for improved functionality (Thanks @0xfurai) fc10433
- Refactor API key integration tests for improved clarity and consistency (Thanks @0xfurai) 6141f4c
- Refactor Dockerfiles and supervisor configurations to integrate Redis support (Thanks @0xfurai) e627563
- Refactor server components to streamline dependency management and improve documentation (Thanks @0xfurai) 451ca74
- docs: add container name to Docker run commands for MongoDB, PostgreSQL, and SQLite (Thanks @0xfurai) 92d3b67
- docs: add container name to Docker run command in README (Thanks @0xfurai) eacfa98
- Update Nginx configuration to replace 'server' references with 'api' (Thanks @0xfurai) e2be1aa
- Refactor Docker Compose files to standardize Redis configuration (Thanks @0xfurai) 106352d
- Refactor release-candidate workflow to streamline Docker image builds and pushes (Thanks @0xfurai) 074e5b3
- Enhance Docker manifest creation in release-candidate workflow (Thanks @0xfurai) 8389384
- refactor(docker): update service dependencies and configuration in Docker Compose files (Thanks @0xfurai) 6e7c534
- refactor(workflow): update service names and logs in Playwright reusable workflow (Thanks @0xfurai) 7e51d3c
- refactor(docker): update service dependencies in production Docker Compose files (Thanks @0xfurai) 63a2b43
- refactor(docker): update database configurations in Docker Compose files (Thanks @0xfurai) e183c31
- feat(tests): add certificate expiry configuration to monitor tests (Thanks @0xfurai) 46c6f17
- feat(workflow): restructure release-candidate workflow for improved build process (Thanks @0xfurai) 2869571
- feat(processor): implement certificate expiry checking in monitor configuration (Thanks @0xfurai) e54b32b
- fix(workflow): update working directory paths in release-candidate workflow (Thanks @0xfurai) 641fb29
- feat(workflow): enhance Docker image builds and manifests in release-candidate workflow (Thanks @0xfurai) ec609f6
- fix(tests): update test command path in Makefile and add new dependencies in go.mod (Thanks @0xfurai) 4722e63
- fix(docker): update SQLite Docker Compose file for service dependencies (Thanks @0xfurai) 0fefffa
- fix(docker): correct volume path for SQLite in Docker Compose (Thanks @0xfurai) a407981
- feat(docker): add volume configuration for SQLite data persistence in Docker Compose (Thanks @0xfurai) cccbe12
- feat(tests): enhance mock services and integrate Redis client for EventBus (Thanks @0xfurai) aedf81c
- fix(workflow): update test coverage path in GitHub Actions workflow (Thanks @0xfurai) cf7d316
- fix(docker): update config file paths in Dockerfiles for PostgreSQL and SQLite (Thanks @0xfurai) e5670ff
- chore(docker): add network configuration to SQLite Docker Compose file (Thanks @0xfurai) c6a3eb4
- fix(docker): update config file paths in migration Dockerfile (Thanks @0xfurai) 0d0b6e7
- fix(docker): update Dockerfile paths for migration services (Thanks @0xfurai) 3a6f2cf
- fix(docker): update service dependencies in Docker Compose files (Thanks @0xfurai) 9e3a704
- refactor(docker): update build process for API services (Thanks @0xfurai) a6eeafb
- feat(docker): refactor Docker Compose configurations for API services (Thanks @0xfurai) e584c1e
- feat(heartbeat): refactor push executor and remove heartbeat service dependency (Thanks @0xfurai) adcd146
- feat(monitor): add paginated retrieval for active monitors (Thanks @0xfurai) 2117066
- feat(producer): improve monitor scheduling logic and remove stale entries (Thanks @0xfurai) b4852cd
- chore: update development scripts and refactor API key module imports (Thanks @0xfurai) 0a4dbf2
- Merge main (Thanks @0xfurai) d96ded3
- refactor(redis, ingester): update Redis configuration and enhance task logging (Thanks @0xfurai) cd573e5
- feat(producer): enhance concurrency and task management in producer module (Thanks @0xfurai) 61791da
- feat(maintenance): add index on monitor_id in maintenance collection (Thanks @0xfurai) cd2205e
- refactor(queue, worker): comment out logging for task enqueuing and enhance health check logging (Thanks @0xfurai) 3841ec2
- refactor(healthcheck, producer, worker): implement unique task enqueuing to prevent duplicates (Thanks @0xfurai) b6d7043
- refactor(worker): improve stale task detection logic in health check processing (Thanks @0xfurai) af83999
- refactor(producer): update monitor syncing and job processing logic (Thanks @0xfurai) 2042e3a
- fix(leader_election): ensure proper cleanup on context cancellation (Thanks @0xfurai) eded31d
- feat(producer): enhance scheduling logic to prevent duplicate monitor scheduling (Thanks @0xfurai) a137675
- refactor(producer): simplify producer logic by removing unused scheduling methods (Thanks @0xfurai) 06d019b
- feat(producer): implement leader election and enhance event listener functionality (Thanks @0xfurai) 78aa14a
- feat(logging): enhance logging configuration and streamline producer dependencies (Thanks @0xfurai) 263fda9
- refactor(monitor): comment out maintenance checks and set default maintenance status (Thanks @0xfurai) c47ec79
- feat(scheduler): integrate Asynq for task scheduling and enhance Redis configuration (Thanks @0xfurai) ed76044
- feat(logging): enhance logging configuration for development mode (Thanks @0xfurai) 00e8964
- feat(api): implement new API service and update health check processing (Thanks @0xfurai) e2dcf81
- feat(ingester): add build and run targets for ingester service (Thanks @0xfurai) 4a0774b
- feat(healthcheck): enhance health check processing and queue integration (Thanks @0xfurai) f7e8755
- feat(server): add worker script and update healthcheck method names (Thanks @0xfurai) a5126b4
- feat(redis): update Redis configuration and add Asynq monitoring (Thanks @0xfurai) f8ff9a3
- chore(docs): remove outdated architecture and quick start guides for the producer service (Thanks @0xfurai) 911e725
- feat(redis): integrate Redis event bus into the application (Thanks @0xfurai) 6b8b5c9
- feat(makefile): add producer build and run targets (Thanks @0xfurai) 2931559
- feat(config): add Redis and queue configuration options to the Config struct (Thanks @0xfurai) 8c4bb1d
- refactor: migrate database connection logic to infra package and remove unused MongoDB and SQL files (Thanks @0xfurai) 08033e7
- refactor: remove unused modules and files to streamline codebase (Thanks @0xfurai) 6c09086
Release Statistics
- 125 commits since 0.0.42
- 1 contributors
Contributors
Thanks to: @0xfurai
Docker Images
GitHub Container Registry (GHCR)
- UI: ghcr.io/0xfurai/peekaping-web:0.0.44/ghcr.io/0xfurai/peekaping-web:latest
- API: ghcr.io/0xfurai/peekaping-api:0.0.44/ghcr.io/0xfurai/peekaping-api:latest
- Worker: ghcr.io/0xfurai/peekaping-worker:0.0.44/ghcr.io/0xfurai/peekaping-worker:latest
- Producer: ghcr.io/0xfurai/peekaping-producer:0.0.44/ghcr.io/0xfurai/peekaping-producer:latest
- Ingester: ghcr.io/0xfurai/peekaping-ingester:0.0.44/ghcr.io/0xfurai/peekaping-ingester:latest
- Migrate: ghcr.io/0xfurai/peekaping-migrate:0.0.44/ghcr.io/0xfurai/peekaping-migrate:latest
Bundle Containers (GHCR)
- SQLite Bundle: ghcr.io/0xfurai/peekaping-bundle-sqlite:0.0.44/ghcr.io/0xfurai/peekaping-bundle-sqlite:latest
- MongoDB Bundle: ghcr.io/0xfurai/peekaping-bundle-mongo:0.0.44/ghcr.io/0xfurai/peekaping-bundle-mongo:latest
- PostgreSQL Bundle: ghcr.io/0xfurai/peekaping-bundle-postgres:0.0.44/ghcr.io/0xfurai/peekaping-bundle-postgres:latest
Docker Hub
- UI: 0xfurai/peekaping-web:0.0.44/0xfurai/peekaping-web:latest
- API: 0xfurai/peekaping-api:0.0.44/0xfurai/peekaping-api:latest
- Worker: 0xfurai/peekaping-worker:0.0.44/0xfurai/peekaping-worker:latest
- Producer: 0xfurai/peekaping-producer:0.0.44/0xfurai/peekaping-producer:latest
- Ingester: 0xfurai/peekaping-ingester:0.0.44/0xfurai/peekaping-ingester:latest
- Migrate: 0xfurai/peekaping-migrate:0.0.44/0xfurai/peekaping-migrate:latest
Bundle Containers (Docker Hub)
- SQLite Bundle: 0xfurai/peekaping-bundle-sqlite:0.0.44/0xfurai/peekaping-bundle-sqlite:latest
- MongoDB Bundle: 0xfurai/peekaping-bundle-mongo:0.0.44/0xfurai/peekaping-bundle-mongo:latest
- PostgreSQL Bundle: 0xfurai/peekaping-bundle-postgres:0.0.44/0xfurai/peekaping-bundle-postgres:latest