How to Install Open Source Uptime Monitor

How to Install Open Source Uptime Monitor

Peekaping is a modern self-hosted uptime monitoring solution and a great alternative to Uptime Kuma. Step-by-step installation with Docker, PostgreSQL, MongoDB, SSL, and backups.
DevOps Monitoring Docker Open Source Peekaping
Vladyslav Havrylevskyj
Vladyslav Havrylevskyj
Founder of Expandi Agency
08, February, 2026
18 min to read
How to Install Peekaping — The Best Open Source Uptime Monitor

Peekaping is a modern self-hosted uptime monitoring solution created as an alternative to Uptime Kuma. Built with Golang and React, it delivers high performance with minimal resource consumption. In this article, we'll cover in detail how to install Peekaping on your server using various methods.

Why It's Important to Have an Uptime Monitor on Your Website

In today's digital world, the availability of your website or service directly impacts business results, reputation, and customer trust. Even a few minutes of downtime can lead to serious consequences.

Financial losses. Every minute of website unavailability means lost sales and missed revenue. For an online store, downtime during peak hours can result in thousands of dollars in lost revenue. Research shows that 98% of organizations estimate the cost of one hour of downtime at more than $100,000.

Reputational risks. Users won't wait for your site to come back online — they'll simply go to competitors. Recurring availability issues undermine customer trust and negatively affect brand perception. Restoring reputation after serious incidents can take months.

SEO and search rankings. Search engines like Google consider response time and site availability when ranking. Frequent downtime and slow performance lead to lower positions in search results, which means less organic traffic and potential customers.

Proactive problem solving. An uptime monitor lets you learn about problems before users report them. Instant notifications enable your team to quickly respond and resolve issues, minimizing business impact. Without monitoring, you might not know for hours that your site is down.

Performance analysis and SLA. The monitoring system collects uptime and response time history, allowing you to analyze trends, identify problem areas, and plan infrastructure improvements. For companies with SLA agreements, this is critical data for client reporting.

Monitoring critical dependencies. Modern applications depend on numerous external services: payment system APIs, CDNs, cloud providers, databases. An uptime monitor helps track not only your site but all critical dependencies, providing complete visibility into infrastructure health.

Installing an open source uptime monitor like Peekaping gives you complete control over monitoring, data privacy, and no subscription fees. It's an investment in your business reliability and your team's peace of mind.

What Is Peekaping — The Best Open Source Uptime Monitor

Peekaping is an open-source monitoring system that allows you to track the health of websites, APIs, databases, Docker containers, and other services. Unlike many alternatives, Peekaping is built on API-first architecture principles and uses a modern technology stack.

Key advantages:

  • High performance: Golang-based server consumes minimal RAM (from 50 MB)
  • API-first approach: complete automation via RESTful API
  • Storage flexibility: support for SQLite, PostgreSQL, and MongoDB
  • Extensive monitoring capabilities: HTTP/HTTPS, TCP, ping, DNS, databases, Docker, gRPC, Kafka, and more
  • Multiple notification channels: Telegram, Slack, Discord, Email, WhatsApp, PagerDuty, and others
  • Beautiful status pages: public and private
  • Open source: MIT license
System Requirements

Minimum requirements for installing Peekaping:

  • CPU: 1 CPU core
  • RAM: 512 MB RAM (1 GB recommended)
  • Disk space: 1 GB free space
  • OS: Linux (Ubuntu, Debian, CentOS), macOS, or Windows with Docker
  • Software: Docker and Docker Compose (recommended installation method)

For production environments with a large number of monitors, recommended:

  • 2+ CPU cores
  • 2+ GB RAM
  • 10+ GB disk space
Method 1: Quick Open Source Uptime Monitor Installation with SQLite (Recommended for Beginners)

The simplest way to run Peekaping is to use the Docker bundle image with embedded SQLite database. This option is ideal for testing and small deployments (up to 50 monitors).

Step 1: Installing Docker

If you don't have Docker installed yet, run the following commands:

For Ubuntu/Debian:



bash
# Update package list
sudo apt update

# Install required dependencies
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# Add official Docker GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# Add user to docker group
sudo usermod -aG docker $USER

# Activate changes (or re-login)
newgrp docker

For CentOS/RHEL:



bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER
Step 2: Running Peekaping with SQLite

Create a data directory and start the container:



bash
# Create directory for data storage
mkdir -p ~/peekaping-data

# Run Peekaping
docker run -d --restart=always \
  -p 8383:8383 \
  -e DB_NAME=/app/data/peekaping.db \
  -v ~/peekaping-data:/app/data \
  --name peekaping \
  0xfurai/peekaping-bundle-sqlite:latest

Parameter explanation:

  • `-d` — run in background
  • `--restart=always` — automatic container restart on failures or server reboot
  • `-p 8383:8383` — port forwarding for port 8383 (web interface will be accessible on this port)
  • `-e DB_NAME=/app/data/peekaping.db` — path to SQLite database file
  • `-v ~/peekaping-data:/app/data` — mount local directory for data storage
  • `--name peekaping` — container name
  • `0xfurai/peekaping-bundle-sqlite:latest` — Peekaping Docker image
Step 3: Verify Installation

Check that the container is running:



bash
docker ps | grep peekaping

You should see the running container.

Step 4: First Login

Open your browser and navigate to:



text
http://your-server-ip:8383

Or, if installing on a local machine:



text
http://localhost:8383

On first launch, the system will automatically create an administrator account. Follow the on-screen instructions to complete setup.

Method 2: Installing Open Source Uptime Monitor with PostgreSQL (Recommended for Production)

For production environments and large deployments, PostgreSQL is recommended. This provides better performance, reliability, and scalability.

Preparation

Create a `docker-compose.yml` file:



bash
mkdir ~/peekaping
cd ~/peekaping
nano docker-compose.yml
docker-compose.yml Configuration

Insert the following configuration:



yaml
version: '3.8'

services:
  postgres:
    image: postgres:15-alpine
    container_name: peekaping-postgres
    restart: always
    environment:
      POSTGRES_DB: peekaping
      POSTGRES_USER: peekaping
      POSTGRES_PASSWORD: your_secure_password
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U peekaping"]
      interval: 10s
      timeout: 5s
      retries: 5

  peekaping:
    image: 0xfurai/peekaping-bundle-postgres:latest
    container_name: peekaping
    restart: always
    ports:
      - "8383:8383"
    environment:
      DB_HOST: postgres
      DB_PORT: 5432
      DB_NAME: peekaping
      DB_USER: peekaping
      DB_PASS: your_secure_password
    depends_on:
      postgres:
        condition: service_healthy
    volumes:
      - ./data/peekaping:/app/data

volumes:
  postgres_data:
  peekaping_data:

Important: Replace `your_secure_password` with your own secure password!

Starting



bash
# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down
Method 3: Installation with MongoDB

If you prefer a NoSQL database, Peekaping also supports MongoDB.

docker-compose.yml for MongoDB



yaml
version: '3.8'

services:
  mongodb:
    image: mongo:7
    container_name: peekaping-mongo
    restart: always
    environment:
      MONGO_INITDB_ROOT_USERNAME: peekaping
      MONGO_INITDB_ROOT_PASSWORD: your_secure_password
      MONGO_INITDB_DATABASE: peekaping
    volumes:
      - ./data/mongodb:/data/db
    healthcheck:
      test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
      interval: 10s
      timeout: 5s
      retries: 5

  peekaping:
    image: 0xfurai/peekaping-bundle-mongo:latest
    container_name: peekaping
    restart: always
    ports:
      - "8383:8383"
    environment:
      DB_HOST: mongodb
      DB_PORT: 27017
      DB_NAME: peekaping
      DB_USER: peekaping
      DB_PASS: your_secure_password
    depends_on:
      mongodb:
        condition: service_healthy
    volumes:
      - ./data/peekaping:/app/data

Starting is similar to the PostgreSQL variant:



bash
docker-compose up -d
Configuring Open Source Uptime Monitor After InstallationCreating the First Administrator

On first launch, Peekaping will prompt you to create an administrator account:

1. Open the web interface: `http://your-server:8383` 2. Enter administrator email 3. Create a secure password 4. Complete registration

Basic Configuration

After logging in, perform initial setup:

1. Profile settings - Go to Settings → Profile - Enter your name and contact information

2. Notification channel setup - Go to Settings → Notifications - Add at least one channel (e.g., Email or Telegram) - Test notification sending

3. Creating the first monitor - Click "Add Monitor" - Select monitoring type (e.g., HTTP) - Enter URL to monitor - Configure check interval - Select notification channels - Save monitor

Setting Up SSL/HTTPS (Recommended for Production)

For secure access to Peekaping, it's recommended to configure HTTPS via reverse proxy.

Option 1: Nginx with Let's Encrypt

Install Nginx and Certbot:



bash
sudo apt install -y nginx certbot python3-certbot-nginx

Create Nginx configuration (`/etc/nginx/sites-available/peekaping`):



nginx
server {
    listen 80;
    server_name peekaping.your-domain.com;

    location / {
        proxy_pass http://localhost:8383;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}

Activate configuration and obtain SSL certificate:



bash
sudo ln -s /etc/nginx/sites-available/peekaping /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
sudo certbot --nginx -d peekaping.your-domain.com
Option 2: Caddy (Easier for Beginners)

Caddy automatically obtains and renews SSL certificates.

Create `Caddyfile`:



text
peekaping.your-domain.com {
    reverse_proxy localhost:8383
}

Run Caddy:



bash
docker run -d \
  --name caddy \
  -p 80:80 -p 443:443 \
  -v $PWD/Caddyfile:/etc/caddy/Caddyfile \
  -v caddy_data:/data \
  caddy:latest
Updating Peekaping

To update Peekaping to the latest version:

SQLite variant:



bash
# Stop container
docker stop peekaping

# Remove old container
docker rm peekaping

# Pull new version
docker pull 0xfurai/peekaping-bundle-sqlite:latest

# Run with same parameters
docker run -d --restart=always \
  -p 8383:8383 \
  -e DB_NAME=/app/data/peekaping.db \
  -v ~/peekaping-data:/app/data \
  --name peekaping \
  0xfurai/peekaping-bundle-sqlite:latest
Docker Compose variant:



bash
cd ~/peekaping
docker-compose pull
docker-compose down
docker-compose up -d
Backing Up Open Source Uptime Monitor

Regular backups are critical for preserving monitoring data.

SQLite backup:



bash
# Create backup
docker exec peekaping sqlite3 /app/data/peekaping.db ".backup /app/data/backup.db"
cp ~/peekaping-data/backup.db ~/backups/peekaping-$(date +%Y%m%d).db
PostgreSQL backup:



bash
docker exec peekaping-postgres pg_dump -U peekaping peekaping > backup-$(date +%Y%m%d).sql
Automating backups:

Create script `/usr/local/bin/backup-peekaping.sh`:



bash
#!/bin/bash
BACKUP_DIR="/backups/peekaping"
DATE=$(date +%Y%m%d_%H%M%S)

mkdir -p $BACKUP_DIR

# For SQLite
docker exec peekaping sqlite3 /app/data/peekaping.db ".backup /app/data/backup.db"
cp ~/peekaping-data/backup.db $BACKUP_DIR/peekaping-$DATE.db

# Remove old backups (older than 30 days)
find $BACKUP_DIR -name "peekaping-*.db" -mtime +30 -delete

echo "Backup completed: $DATE"

Make script executable and add to crontab:



bash
chmod +x /usr/local/bin/backup-peekaping.sh
crontab -e

Add line for daily backup at 3:00 AM:



text
0 3 * * * /usr/local/bin/backup-peekaping.sh >> /var/log/peekaping-backup.log 2>&1
TroubleshootingContainer won't start

Check logs:



bash
docker logs peekaping

Or for Docker Compose:



bash
docker-compose logs peekaping
Database connection issues

Make sure the database is running and accessible:



bash
# For PostgreSQL
docker exec peekaping-postgres pg_isready -U peekaping

# For MongoDB
docker exec peekaping-mongo mongosh --eval "db.adminCommand('ping')"
Web interface won't open

1. Check that container is running: `docker ps` 2. Check that port 8383 is not occupied: `sudo netstat -tulpn | grep 8383` 3. Check firewall: `sudo ufw status` 4. Open port if needed: `sudo ufw allow 8383/tcp`

High resource consumption

If Peekaping is consuming too many resources:

1. Reduce monitor check frequency 2. Increase timeout for slow services 3. Check number of concurrent monitors 4. Consider increasing server resources

Useful Commands



bash
# View container status
docker ps

# View logs in real-time
docker logs -f peekaping

# Restart container
docker restart peekaping

# Enter container for diagnostics
docker exec -it peekaping sh

# View resource usage
docker stats peekaping

# Clean unused images
docker system prune -a
Conclusion

Peekaping is a powerful and flexible monitoring solution that's easy to install and configure. Thanks to its API-first approach and modern technology stack, the system delivers high performance with minimal resource consumption.

Main advantages of installing Peekaping:

  • Quick installation (5-10 minutes)
  • Minimal system requirements
  • Database choice flexibility
  • Complete control over data
  • No licensing fees
  • Active community and regular updates

Start with the simple SQLite variant for testing, then move to PostgreSQL for production environments. Don't forget about regular backups and system updates.

Useful links:

  • Official website: https://peekaping.com
  • Documentation: https://docs.peekaping.com
  • GitHub repository: https://github.com/0xfurai/peekaping
  • Docker Hub: https://hub.docker.com/u/0xfurai
  • Live demo: https://demo.peekaping.com

Happy installing and reliable monitoring!

Contact us