Initial commit: Debian Manager — управление Debian-серверами

- SSH/SFTP управление без агентов
- Пакеты (apt), Docker, файлы, systemd, ufw, cron
- Плейбуки, групповые операции, планировщик
- Бэкапы, отчёты, Portainer, Proxmox VE, Gitea Deploy
- Терминал, Telegram-уведомления, тёмная/светлая тема
This commit is contained in:
dinlo
2026-09-05 19:46:45 +08:00
commit f624fee5e0
65 changed files with 6981 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
"""CRUD серверов."""
from __future__ import annotations
from typing import List, Optional
from sqlmodel import select
from app.db.database import get_session
from app.db.models import Server
def list_servers() -> List[Server]:
with get_session() as s:
return list(s.exec(select(Server).order_by(Server.name)).all())
def get_server(server_id: int) -> Optional[Server]:
with get_session() as s:
return s.get(Server, server_id)
def add_server(**fields) -> Server:
with get_session() as s:
srv = Server(**fields)
s.add(srv)
s.commit()
s.refresh(srv)
return srv
def update_server(server_id: int, **fields) -> None:
with get_session() as s:
srv = s.get(Server, server_id)
if not srv:
return
for k, v in fields.items():
setattr(srv, k, v)
s.add(srv)
s.commit()
def delete_server(server_id: int) -> None:
with get_session() as s:
srv = s.get(Server, server_id)
if srv:
s.delete(srv)
s.commit()