Skip to main content

Nettemp Docker Installation (Self-Hosted)

This guide covers installing the self-hosted Docker version of Nettemp. This is the original version that runs on your own server.

Note: This is different from Nettemp Cloud. If you want a managed cloud solution, see Getting Started with Nettemp Cloud.


What is Nettemp Docker?

Nettemp Docker is a self-hosted data collector and monitoring app with:

  • Status dashboard with grouping, sorting, gauges, mini charts, and maps
  • Multiple chart libraries (Highcharts, Chart.js, NVD3)
  • Floor plan visualization with sensor markers
  • Alarm dashboard with "no data" notifications
  • Email notifications
  • JSON API for receiving data
  • Can forward data to other Nettemp instances
  • Works with nettemp_client for sensor collection
  • Network monitoring (ping, HTTP/URL monitoring)

Lightweight: Runs smoothly even on Raspberry Pi Zero 2W


Installation Options

Option 1: Docker with SQLite (Single Container)

Simplest setup with SQLite database in a single container.

Step 1: Install Docker

# Set timezone (adjust for your region)
sudo timedatectl set-timezone Europe/Warsaw

# Update system and install dependencies
sudo apt update && sudo apt -y upgrade
sudo apt install -y curl

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

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

# Re-login to apply group changes
sudo su - ${USER}

Step 2: Create Directory (Optional)

mkdir ~/nettemp && cd ~/nettemp

Step 3: Run Nettemp Container

docker run --name nettemp \
-p 443:443 \
-v nettemp-data:/var/www/nettemp/data \
--restart unless-stopped \
-d przemeksdocker/nettemp

Option 2: Docker Compose with MariaDB (2 Containers)

Production setup with MariaDB database.

Step 1: Install Docker

# Set timezone (adjust for your region)
sudo timedatectl set-timezone Europe/Warsaw

# Update system and install dependencies
sudo apt update && sudo apt -y upgrade
sudo apt install -y curl

# Install Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

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

# Re-login to apply group changes
sudo su - ${USER}

Step 2: Download and Start

# Create directory
mkdir ~/nettemp && cd ~/nettemp

# Download docker-compose.yml
wget https://raw.githubusercontent.com/sosprz/nettemp/nettemp7/docker-compose.yml

# Start containers
docker compose up -d

Docker Compose Configuration

You can customize ports and SSL settings in docker-compose.yml:

ports:
- "443:443" # HTTPS with self-signed cert
#- "8000" # No SSL (for Traefik)
#- "8000:8000" # No SSL with explicit port
- "80:80" # HTTP redirect to 443

environment:
# HTTPS: False # Uncomment if not using HTTPS

Accessing Nettemp

Open your browser and navigate to:

https://YOUR-IP-ADDRESS

Default credentials:

  • Username: admin
  • Password: admin

⚠️ Change the default password immediately after first login!


How to Update

Single Docker Container

# Pull latest image
docker pull przemeksdocker/nettemp

# Stop and remove old container
docker stop nettemp
docker rm nettemp

# Start new container (use same command as installation)
docker run --name nettemp \
-p 443:443 \
-v nettemp-data:/var/www/nettemp/data \
--restart unless-stopped \
-d przemeksdocker/nettemp

Docker Compose

cd ~/nettemp

# Pull latest images
docker compose pull

# Stop containers
docker compose down

# Start updated containers
docker compose up -d

Sending Data to Nettemp

Get Your API Token

Navigate to:

https://YOUR-NETTEMP-IP/data/server

Copy your API token (example: y8k76HDjmuQqJDKIaFwf8rk55sa8jIh1zCzZJ6sJZ8c)

Send Data from Python

import requests
import json

# Disable SSL warnings for self-signed certificates
requests.packages.urllib3.disable_warnings()

token = 'YOUR_TOKEN_HERE'

def send(token, data):
url = "https://YOUR-NETTEMP-IP/"
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {token}'
}
r = requests.post(url, headers=headers, json=data, verify=False)
print(r.content)

# Send temperature data
data = [{
"rom": "ds18b20-sensor-1",
"type": "temp",
"name": "DS18B20",
"value": "22.5",
"group": "living-room"
}]

send(token, data)

Send Data from curl

curl -k -H "Content-Type: application/json" \
-H 'Authorization: Bearer YOUR_TOKEN_HERE' \
--request POST \
--data '[{"rom":"ds18b20-host1","type":"temp","name":"DS18b20","value":"22.5","group":"living-room"}]' \
https://YOUR-NETTEMP-IP/

Send Data from Nettemp Client

Use the nettemp_client for automated sensor data collection from Raspberry Pi devices.

Supported sensors:

  • I2C: HIH6130, TMP102, BME280, HTU21, DS2482, MPL3115A2, TSL2561, BMP180, VL53L0X, ADXL345
  • GPIO: DHT11, DHT22, DS18B20 (1-Wire)
  • USB: DS9490R (1-Wire bridge)
  • System: lm-sensors, CPU/RAM monitoring
  • Network: Ping monitoring
  • Generic: Any device sending JSON data (e.g., ESPEasy)

See Nettemp Client Installation for setup instructions.


Docker vs Cloud

FeatureDocker (Self-Hosted)Nettemp Cloud
HostingYour serverManaged cloud
SetupManual Docker installSign up and use
MaintenanceYou manage updatesAutomatic updates
Data LocationYour serverCloud (GDPR compliant)
CostFree (your hardware)Free tier + paid plans
SSL/TLSSelf-signed or manualAutomatic (Cloudflare)
ScalabilityLimited by your hardwareAutomatic scaling
AccessLAN or VPN requiredInternet access anywhere

Choose Docker if:

  • You want complete data ownership
  • You need LAN-only operation
  • You have existing infrastructure
  • You prefer self-hosting

Choose Cloud if:

  • You want zero maintenance
  • You need access from anywhere
  • You want automatic backups
  • You prefer managed service

Troubleshooting

Port Already in Use

If port 443 is already in use:

# Check what's using the port
sudo lsof -i :443

# Modify docker-compose.yml to use different port
ports:
- "8443:443" # Use port 8443 instead

Permission Issues

If you get permission errors:

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

# Re-login or restart shell
sudo su - ${USER}

Container Won't Start

Check logs:

# Single container
docker logs nettemp

# Docker Compose
docker compose logs nettemp

Support


Version History

  • Nettemp 7: Current Docker version with MariaDB/SQLite support
  • Nettemp 6: MySQL + SQLite version
  • Nettemp 5: Python, Flask, MySQL version
  • Nettemp 4 (beta): PHP, SQLite, Python - feature-rich version
  • Nettemp 3: PHP, SQLite, Python

Last updated: December 2, 2025