This project is a lightweight task tracker and action logging service that allows users to log specific task executions via a simple HTTP GET request.
It is designed for easy integration with cron jobs, scripts, and other automated systems.
- How It Works
- Example Use Cases
- System Design
- Docker Image CI Pipeline via GitHub Actions
- Docker-Based Unified Deployment Architecture
- Database Diagram
- API Reference (Swagger & Postman)
-
Users define a task via the API or system interface.
The system generates two random keys for each task:taskKey: a randomly generated identifier used in the request URLtaskSecret: a secure random token used to verify authenticity
-
The user triggers a GET request after the desired action is completed.
Example format:GET /logs/:taskKey/:taskSecret -
The request is logged in the system with:
- Timestamp
- IP address
- Task information
- If a notification service is integrated (e.g., Telegram, Slack, Discord), a message is sent to the corresponding channel so the user is instantly notified of the task execution.
Logs a scheduled task after it completes successfully.
0 3 * * * /path/to/backup.sh && curl https://example.com/logs/abc123/xyz789Tracks deployments or individual pipeline steps in GitHub Actions, GitLab CI, etc.
- name: Notify log service
run: curl https://example.com/logs/deployStepKey/deploySecretLets you track container healthcheck pings over time.
HEALTHCHECK CMD curl --silent --fail https://example.com/logs/healthcheck/abc123 || exit 1This pipeline automates testing, building, and pushing the application Docker image to Docker Hub upon changes in the application repository. The configuration for this process is defined in test-and-publish.yml
This diagram presents the Docker-based deployment architecture of the project as a unified structure. It includes the core components—such as the application and database—along with logging services like Elasticsearch, Filebeat, and Kibana.
All services are containerized and orchestrated using Docker Compose, providing a portable, isolated, and manageable deployment across development and production environments. The Docker Compose configurations are defined in /infra-configs/docker-compose.core.yml and /infra-configs/docker-compose.logging.yml. The related commands to manage these deployments can be found under the Infrastructure (infra-configs) Commands section in the project's Makefile.
Image Location: Docker Hub Repository
- Swagger UI: http://localhost:3000/swagger/index.html (Ensure the app is running locally to access this.)
- Postman Workspace