Simoob Documentation

Simoob is a lightweight, real-time server and container monitoring solution. This documentation will guide you through installation, configuration, and usage of the Simoob monitoring platform.

1. System Requirements #

Before installing Simoob, ensure your system meets the following requirements:

Component Requirement Notes
Docker Version 20.10+ Required for running the agent
Git Latest stable For cloning the UI repository
Operating System Linux (Ubuntu, Debian, CentOS) macOS and Windows via Docker Desktop
Network Port 3001 open For API communication
RAM Minimum 512MB For the agent container
Tip
For production deployments, we recommend at least 1GB RAM and 2 CPU cores for optimal performance.

2. Quick Start #

Get Simoob up and running in under 5 minutes with these steps:

Step 1: Pull the Docker Image

Download the latest Simoob agent image from Docker Hub:

docker pull gayanpd/simoob

Step 2: Run the Container

Start the Simoob agent with the following command:

docker run -d \
  --name simoob-agent \
  --restart unless-stopped \
  -p 3001:3001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gayanpd/simoob

Step 3: Clone the UI

Clone the Simoob user interface repository:

git clone https://github.com/Gayan-98/simoob-ui.git
cd simoob-ui

Step 4: Open the Dashboard

Open index.html in your web browser and enter your server details:

3. Installing the Agent #

The Simoob agent runs as a Docker container and provides a REST API for monitoring system metrics, Docker containers, and services.

3.1. Pulling the Image

Pull the official Simoob agent image:

docker pull gayanpd/simoob

Verify the image was downloaded successfully:

docker images | grep simoob

3.2. Running the Container

Start the agent with the recommended configuration:

docker run -d \
  --name simoob-agent \
  --restart unless-stopped \
  -p 3001:3001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gayanpd/simoob

Command Options Explained:

Option Description
-d Run container in detached mode (background)
--name simoob-agent Assign a friendly name to the container
--restart unless-stopped Automatically restart container on system reboot
-p 3001:3001 Map port 3001 from container to host
-v /var/run/docker.sock Mount Docker socket for container monitoring
Security Warning
Mounting the Docker socket (/var/run/docker.sock) grants the container root-level access to the Docker daemon. Only run this on trusted servers and networks.

3.3. Verifying the Installation

Check that the container is running:

docker ps | grep simoob-agent

Test the API endpoint:

curl http://localhost:3001/api/system/stats

You should receive a JSON response with system statistics.

4. Setting Up the User Interface #

The Simoob UI is a static web application that connects to the agent API to display real-time monitoring data.

4.1. Clone the Repository

Clone the UI repository to your local machine:

git clone https://github.com/Gayan-98/simoob-ui.git

4.2. Opening the Dashboard

Navigate to the cloned directory:

cd simoob-ui

You have two options to run the dashboard:

Option A: Open Directly

Open index.html in your web browser:

# macOS
open index.html

# Windows
start index.html

# Linux
xdg-open index.html

Option B: Use HTTP Server (Recommended)

Serve the UI through a local HTTP server to avoid CORS issues:

python3 -m http.server 8080

Then navigate to http://localhost:8080 in your browser.

Alternative HTTP Servers
You can also use npx http-server or php -S localhost:8080 depending on what's installed on your system.

4.3. Connecting to Your Server

Once the dashboard loads:

  1. Enter your server's IP address in the Server IP field
  2. Enter 3001 in the Port field
  3. Click the Connect button

Connection Examples:

Scenario Server IP Port
Local development localhost or 127.0.0.1 3001
Remote server 139.59.248.175 3001
Cloud instance Your instance IP 3001

5. Configuration #

5.1. Environment Variables

You can customize the agent behavior using environment variables:

docker run -d \
  --name simoob-agent \
  -p 3001:3001 \
  -e API_PORT=3001 \
  -e LOG_LEVEL=info \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gayanpd/simoob

5.2. Security Considerations

When deploying Simoob in production:

Important
Never expose the Simoob API directly to the public internet without proper authentication and encryption. Always use a reverse proxy with SSL/TLS in production.

5.3. Firewall Setup

Allow incoming connections on port 3001:

UFW (Ubuntu/Debian):

sudo ufw allow 3001/tcp

Firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=3001/tcp
sudo firewall-cmd --reload

6. Troubleshooting #

Common Issues and Solutions

Issue: Connection Failed

Symptoms: Dashboard shows "Connection failed" error

Solutions:

  1. Verify the container is running: docker ps | grep simoob-agent
  2. Test API accessibility: curl http://SERVER_IP:3001/api/system/stats
  3. Check firewall rules allow port 3001
  4. Ensure the correct IP address is entered in the dashboard

Issue: CORS Error

Symptoms: Browser console shows CORS-related errors

Solution: Use an HTTP server instead of opening the HTML file directly:

python3 -m http.server 8080

Issue: Container Not Starting

Symptoms: Container exits immediately after starting

Solutions:

  1. Check container logs: docker logs simoob-agent
  2. Ensure port 3001 is not already in use
  3. Verify Docker socket is accessible

6.1. Viewing Logs

View real-time logs from the agent:

docker logs -f simoob-agent

View the last 100 lines of logs:

docker logs --tail 100 simoob-agent

6.2. Updating Simoob

To update to the latest version:

  1. Stop and remove the existing container:
docker stop simoob-agent
docker rm simoob-agent
  1. Pull the latest image:
docker pull gayanpd/simoob:latest
  1. Start a new container with the updated image:
docker run -d \
  --name simoob-agent \
  --restart unless-stopped \
  -p 3001:3001 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gayanpd/simoob
Pro Tip
Use Docker Compose for easier management and updates. Create a docker-compose.yml file to define your Simoob deployment configuration.