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
| Feature | Docker (Self-Hosted) | Nettemp Cloud |
|---|---|---|
| Hosting | Your server | Managed cloud |
| Setup | Manual Docker install | Sign up and use |
| Maintenance | You manage updates | Automatic updates |
| Data Location | Your server | Cloud (GDPR compliant) |
| Cost | Free (your hardware) | Free tier + paid plans |
| SSL/TLS | Self-signed or manual | Automatic (Cloudflare) |
| Scalability | Limited by your hardware | Automatic scaling |
| Access | LAN or VPN required | Internet 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
- Discord: discord.gg/S4egxNvQHM - Community support
- Legacy Wiki: Legacy Documentation - Additional guides
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