feat(db): Initialen Admin-User beim ersten Start anlegen

Wenn beim Start keine User in der Datenbank vorhanden sind, wird
automatisch ein verifizierter Admin angelegt:
  E-Mail: admin@localhost
  Passwort: changeme

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ppfeiffer 2026-02-20 22:03:19 +01:00
parent 57182c5412
commit fd9eb99b6a
3 changed files with 21 additions and 2 deletions

View file

@ -1,5 +1,12 @@
# Changelog
## [0.08.19] - 2026-02-20
### Added
- **Initialer Admin-User**: Existiert beim Start keine Datenbank, wird automatisch ein
verifizierter Admin-Account angelegt (`admin@localhost` / `changeme`).
Passwort-Änderung nach dem ersten Login empfohlen.
## [0.08.18] - 2026-02-20
### Changed

View file

@ -1,4 +1,4 @@
version: "0.08.18"
version: "0.08.19"
bot:
name: "MeshDD-Bot"

14
main.py
View file

@ -4,6 +4,7 @@ import signal
import threading
from meshbot import config
from meshbot.auth import hash_password
from meshbot.database import Database
from meshbot.bot import MeshBot
from meshbot.nina import NinaBot
@ -21,9 +22,20 @@ async def main():
logger.info("Starting %s v%s", config.get("bot.name"), config.get("version"))
# Database
db = Database(config.get("database.path", "meshdd.db"))
db = Database(config.get("database.path", "data/meshdd.db"))
await db.connect()
# Seed initial admin if no users exist
if not await db.get_all_users():
await db.create_user(
email="admin@localhost",
password=hash_password("changeme"),
name="Administrator",
role="admin",
is_verified=1,
)
logger.info("Initial admin created: admin@localhost / changeme <- bitte Passwort aendern!")
# WebSocket Manager
ws_manager = WebSocketManager()