ResMan
Ressourcen- und Infrastruktur-Management Tool für Server, Domains und IPs.
🚀 Features
- 🖥️ Ressourcenverwaltung (Server, VPS, etc.)
- 🌐 Domain Management inkl. DNS Check
- 🔗 Subdomain Verwaltung
- 🌍 IP Management (CRUD + Validation)
- 💰 Kosten Dashboard (monatlich / jährlich)
- 🗺️ Infrastruktur Übersicht
- 🟢 Server Status Check (Ping)
- 🌙 Dark Mode
🧱 Tech Stack
- Backend: Node.js + Express
- Datenbank: MariaDB / MySQL
- Frontend: Vanilla JavaScript (modular)
- Deployment: Docker + NGINX Reverse Proxy
📁 Projektstruktur
backend/
routes/
controllers/
public/
index.html
css/
js/
api.js
main.js
resources.js
domains.js
modals.js
costs.js
infra.js
⚙️ Setup
1. Installation
git clone <repo>
cd resman
npm install
🗄️ Datenbank Schema
resources
CREATE TABLE resources (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
produkt VARCHAR(255),
provider VARCHAR(255),
art VARCHAR(100),
cpu VARCHAR(50),
ram VARCHAR(50),
disk VARCHAR(50),
os VARCHAR(100),
ipv6_net VARCHAR(255),
providername VARCHAR(255),
kosten_monat DECIMAL(10,2),
kosten_jahr DECIMAL(10,2),
bestelldatum DATE,
kuendbar_ab DATE,
kuendigungsdatum DATE,
status VARCHAR(50),
bemerkung TEXT
);
resource_ips
CREATE TABLE resource_ips (
id INT AUTO_INCREMENT PRIMARY KEY,
resource_id INT,
ip VARCHAR(100),
type VARCHAR(50),
comment VARCHAR(255)
);
domains
CREATE TABLE domains (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_name VARCHAR(255),
provider VARCHAR(255),
ip_address VARCHAR(100),
yearly_cost DECIMAL(10,2),
notes TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
subdomains
CREATE TABLE subdomains (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_id INT,
subdomain VARCHAR(100),
ip_address VARCHAR(100)
);
🔌 API Endpoints (Auszug)
Ressourcen
GET /resman/api/resources/active
GET /resman/api/resources/cancelled
POST /resman/api/resources
PUT /resman/api/resources/:id
DELETE /resman/api/resources/:id
IPs
GET /resman/api/resources/:id/ips
POST /resman/api/resources/:id/ips
PUT /resman/api/ips/:id
DELETE /resman/api/ips/:id
Domains
GET /resman/api/domains
POST /resman/api/domains
PUT /resman/api/domains/:id
DELETE /resman/api/domains/:id
Subdomains
GET /resman/api/subdomains
POST /resman/api/subdomains
PUT /resman/api/subdomains/:id
DELETE /resman/api/subdomains/:id
Sonstiges
GET /resman/api/domainmap
GET /resman/api/dns/:domain
GET /resman/api/ping/:ip
GET /resman/api/ipcheck/:ip
🌐 Reverse Proxy
NGINX
location /resman/ {
proxy_pass http://127.0.0.1:3000/resman/;
}
Apache
ProxyPass /resman http://127.0.0.1:3000/resman
ProxyPassReverse /resman http://127.0.0.1:3000/resman
🔒 Sicherheit (optional)
Basic Auth via NGINX empfohlen
Alternativ: nur im internen Netzwerk betreiben
API aktuell ohne Auth → nicht öffentlich exponieren
🧠 Architektur
Frontend ist modular aufgebaut:
api.js → zentrale API Kommunikation
resources.js → Ressourcen + IPs
domains.js → Domains + Subdomains
modals.js → alle Dialoge
costs.js → Kostenberechnung
infra.js → Infrastruktur Ansicht
main.js → Initialisierung + Refresh
⚠️ Bekannte Themen
DNS Requests können ohne Cache langsam sein
Keine Authentifizierung im Backend
Kein Rollen-/Rechtesystem
Description
Languages
JavaScript
82.9%
CSS
9.2%
HTML
7.7%
Dockerfile
0.2%