A website uptime monitoring web app built with Go and PostgreSQL, following a Test-Driven Development (TDD) approach. The app allows users to log in, add sites for monitoring, and receive notifications via Slack when a site goes down.
🚀 Just a fun side project! Built mainly for learning and experimenting
- ✅ User authentication
- 🌐 Add, edit, delete websites to monitor
- 🔄 Enable/disable monitoring for each site
- 🔔 Notifications via Slack
- Go (Standard Template Library for templates)
- PostgreSQL for database
git clone https://github.com/shuvo-paul/uptimebot.git
cd uptimebotCreate a .env file and set the required values:
BASE_URL=localhost:8080
PORT=8080 # Default port is 8080
# Database Configuration
DB_HOST=localhost
DB_PORT=5432
DB_USER=uptimebot
DB_PASSWORD=uptimebot
DB_NAME=uptimebot
DB_SSLMODE=disable
# Slack OAuth Credentials
SLACK_CLIENT_ID=
SLACK_CLIENT_SECRET=
SLACK_REDIRECT_URI=https://localhost:8080/targets/auth/slack/callback
# SMTP Email Configuration
SMTP_HOST=
SMTP_PORT=587
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_EMAIL_FROM=To run the application using Docker Compose, execute the following command:
docker compose upThis will build and start the application along with the PostgreSQL database in a Docker container. Ensure that your .env file is correctly configured with the necessary environment variables.
go test ./...- Login/Register
- Add website URLs for monitoring
- Enable/Disable monitoring
- Integrate Slack to receive notifications
- Get notified when a site goes down (via Slack)
- Add Email notifications
- Add SMS notifications