docs: redesign all READMEs with centered header, emojis and language links
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,12 @@
|
||||
# <img src="frontend/public/favicon.svg" width="22" height="22" alt="" /> Stupid Simple Network Inventory
|
||||
<div align="center">
|
||||
|
||||
<img src="frontend/public/favicon.svg" width="96" height="96" alt="" />
|
||||
|
||||
# Stupid Simple Network Inventory
|
||||
|
||||
**Self-hosted network inventory and logical topology visualisation**
|
||||
|
||||
[Français](README.fr.md) · [Español](README.es.md)
|
||||
|
||||

|
||||

|
||||
@@ -7,22 +15,26 @@
|
||||

|
||||

|
||||
|
||||
Self-hosted web application for manual network inventory and logical network topology visualisation.
|
||||
</div>
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
---
|
||||
|
||||
- **Manual inventory** — add and manage devices (18 types) with IPs, VLANs, descriptions and optional web links
|
||||
- **Topology view** — card-based layout per network (LAN / VLAN 802.1Q), with WAN and gateway sections
|
||||
- **ICMP ping sweep** — check reachability of all known hosts in one click
|
||||
- **Auto-discovery** — ping sweep + PTR DNS lookup on a subnet to import new hosts
|
||||
- **Authentication** — JWT-based login with forced password change on first use
|
||||
- **Dark mode** — light / dark theme toggle
|
||||
- **Brand logos** — automatic detection and display of vendor/manufacturer logos (Proxmox, Cisco, Synology, Docker, and 30+ more)
|
||||
- **i18n** — French, English, Spanish
|
||||
## ✨ Features
|
||||
|
||||
## Stack
|
||||
- 🗂️ **Manual inventory** — add and manage devices (18 types) with IPs, VLANs, descriptions and optional web links
|
||||
- 🗺️ **Topology view** — card-based layout per network (LAN / VLAN 802.1Q), with WAN and gateway sections
|
||||
- 📡 **ICMP ping sweep** — check reachability of all known hosts in one click
|
||||
- 🔍 **Auto-discovery** — ping sweep + PTR DNS lookup on a subnet to import new hosts
|
||||
- 🏷️ **Brand logos** — automatic detection and display of vendor logos (Proxmox, Cisco, Synology, Docker, 30+ more)
|
||||
- 🔐 **Authentication** — JWT-based login with forced password change on first use
|
||||
- 🌙 **Dark mode** — light / dark theme toggle
|
||||
- 🌍 **i18n** — French, English, Spanish
|
||||
|
||||
## 🛠️ Stack
|
||||
|
||||
| Layer | Technology |
|
||||
|-------|-----------|
|
||||
@@ -33,7 +45,7 @@ Self-hosted web application for manual network inventory and logical network top
|
||||
|
||||
---
|
||||
|
||||
## Quick start
|
||||
## 🚀 Quick start
|
||||
|
||||
```bash
|
||||
# 1. Clone and enter the project
|
||||
@@ -64,7 +76,7 @@ docker compose --env-file .env up --build -d
|
||||
|
||||
---
|
||||
|
||||
## Configuration
|
||||
## ⚙️ Configuration
|
||||
|
||||
All configuration is via environment variables. See `.env.example` for the full list with descriptions.
|
||||
|
||||
@@ -76,8 +88,6 @@ All configuration is via environment variables. See `.env.example` for the full
|
||||
| `BIND_ADDRESS` | `0.0.0.0` | IP address to listen on. Set to the interface facing the reverse proxy. |
|
||||
| `DOCKER_UID` / `DOCKER_GID` | `1000` | UID/GID for the backend process. Must match the host user owning `./db_data/`. |
|
||||
|
||||
### Using .env with Docker Compose
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Edit .env — at minimum set DOCKER_UID, DOCKER_GID, INITIAL_ADMIN_PASSWORD
|
||||
@@ -86,7 +96,7 @@ docker compose --env-file .env up --build -d
|
||||
|
||||
---
|
||||
|
||||
## Security
|
||||
## 🔒 Security
|
||||
|
||||
### Secret management
|
||||
|
||||
@@ -120,8 +130,6 @@ Then uncomment the `secrets:` blocks in `docker-compose.yml` (see comments in th
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Key rotation
|
||||
|
||||
To rotate the JWT secret (invalidates all active sessions):
|
||||
@@ -142,7 +150,6 @@ docker compose start backend
|
||||
This application does not terminate TLS. For production use, place it behind a reverse proxy that handles HTTPS:
|
||||
|
||||
```nginx
|
||||
# Example nginx reverse-proxy (external, on the host or a dedicated container)
|
||||
server {
|
||||
listen 443 ssl;
|
||||
server_name inventory.example.com;
|
||||
@@ -172,8 +179,6 @@ services:
|
||||
|
||||
### Container hardening
|
||||
|
||||
The containers run with reduced privileges:
|
||||
|
||||
| Measure | Backend | Frontend |
|
||||
|---------|---------|----------|
|
||||
| Non-root user | `DOCKER_UID:DOCKER_GID` (host user) | `nginx` (UID 101) |
|
||||
@@ -186,7 +191,7 @@ The containers run with reduced privileges:
|
||||
|
||||
---
|
||||
|
||||
## Data persistence
|
||||
## 💾 Data persistence
|
||||
|
||||
All data is stored in `./db_data/`:
|
||||
|
||||
@@ -201,7 +206,7 @@ All data is stored in `./db_data/`:
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
## 🧑💻 Development
|
||||
|
||||
### Backend tests
|
||||
|
||||
@@ -227,6 +232,6 @@ npm run dev # Vite dev server on :5173, proxies /api/ to :8000
|
||||
|
||||
---
|
||||
|
||||
## Architecture
|
||||
## 🏗️ Architecture
|
||||
|
||||
See [`docs/architecture.md`](docs/architecture.md) for the detailed request flow, Docker setup, and authentication model.
|
||||
|
||||
Reference in New Issue
Block a user