This commit is contained in:
pika 2025-04-03 16:58:01 +02:00
parent 2b36992be1
commit 25087d055c
16 changed files with 1394 additions and 816 deletions

79
run.py
View file

@ -4,7 +4,7 @@ import importlib.util
from flask import Flask, render_template
from app import create_app
from app.core.extensions import db
from app.core.models import Server, Subnet, App, Port
from app.core.models import Server, Subnet, App, Port, Location
from app.core.auth import User # Import User from auth module
from datetime import datetime
import random
@ -93,6 +93,7 @@ def make_shell_context():
"Subnet": Subnet,
"App": App,
"Port": Port,
"Location": Location,
}
@ -118,63 +119,95 @@ def seed_data():
"""Add some sample data to the database"""
with app.app_context():
# Only seed if the database is empty
if Subnet.query.count() == 0:
if User.query.count() == 0:
# Create a default admin user
admin = User(username="admin", email="admin@example.com", is_admin=True)
admin.set_password("admin")
db.session.add(admin)
db.session.commit()
# Create sample locations
office = Location(
name="Office",
description="Main office network",
user_id=admin.id
)
datacenter = Location(
name="Datacenter",
description="Datacenter network",
user_id=admin.id
)
db.session.add_all([office, datacenter])
db.session.commit()
# Create sample subnets
subnet1 = Subnet(
cidr="192.168.1.0/24", location="Office", active_hosts=json.dumps([])
cidr="192.168.1.0/24",
location_id=office.id,
user_id=admin.id,
active_hosts=json.dumps([])
)
subnet2 = Subnet(
cidr="10.0.0.0/24", location="Datacenter", active_hosts=json.dumps([])
cidr="10.0.0.0/24",
location_id=datacenter.id,
user_id=admin.id,
active_hosts=json.dumps([])
)
db.session.add_all([subnet1, subnet2])
db.session.commit()
# Create sample servers
server1 = Server(
hostname="web-server", ip_address="192.168.1.10", subnet=subnet1
hostname="web-server",
ip_address="192.168.1.10",
subnet_id=subnet1.id,
user_id=admin.id
)
server2 = Server(
hostname="db-server", ip_address="192.168.1.11", subnet=subnet1
hostname="db-server",
ip_address="192.168.1.11",
subnet_id=subnet1.id,
user_id=admin.id
)
server3 = Server(
hostname="app-server", ip_address="10.0.0.5", subnet=subnet2
hostname="app-server",
ip_address="10.0.0.5",
subnet_id=subnet2.id,
user_id=admin.id
)
db.session.add_all([server1, server2, server3])
db.session.commit()
# Create sample apps
app1 = App(
name="Website",
server=server1,
server_id=server1.id,
user_id=admin.id,
documentation="# Company Website\nRunning on Nginx/PHP",
)
app2 = App(
name="PostgreSQL",
server=server2,
server_id=server2.id,
user_id=admin.id,
documentation="# Database Server\nPostgreSQL 15",
)
app3 = App(
name="API Service",
server=server3,
server_id=server3.id,
user_id=admin.id,
documentation="# REST API\nNode.js service",
)
db.session.add_all([app1, app2, app3])
db.session.commit()
# Create sample ports
port1 = Port(app=app1, port_number=80, protocol="TCP", description="HTTP")
port2 = Port(app=app1, port_number=443, protocol="TCP", description="HTTPS")
port3 = Port(
app=app2, port_number=5432, protocol="TCP", description="PostgreSQL"
)
port4 = Port(
app=app3, port_number=3000, protocol="TCP", description="Node.js API"
)
db.session.add_all([port1, port2, port3, port4])
ports = [
Port(app_id=app1.id, port_number=80, protocol="TCP", description="HTTP"),
Port(app_id=app1.id, port_number=443, protocol="TCP", description="HTTPS"),
Port(app_id=app2.id, port_number=5432, protocol="TCP", description="PostgreSQL"),
Port(app_id=app3.id, port_number=3000, protocol="TCP", description="Node.js API")
]
db.session.add_all(ports)
db.session.commit()
print("Sample data has been added to the database")