Files
server-manager/README.md
chrome-storm-c442 218b60f7f6 Add build system, versioning, releases, multilingual docs
- version.py with v1.0.0
- build.py (PyInstaller cross-platform build script)
- build.sh / build.bat for quick builds
- releases/ServerManager-v1.0.0-win-x64.exe (Windows x64 binary)
- README.md with docs in English, Russian, Chinese
- CHANGELOG.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 07:58:40 -05:00

7.7 KiB
Raw Blame History

ServerManager

Desktop GUI for managing remote servers
CustomTkinter + Paramiko | Dark Theme

English | Русский | 中文


English

Features

  • Server CRUD — add, edit, delete servers (SSH, Telnet, RDP, MariaDB, MSSQL, PostgreSQL)
  • SSH Terminal — execute commands with auto-sudo (password via stdin, invisible in ps)
  • SFTP Transfer — upload/download files with progress bar
  • SSH Keys — generate ed25519, install on server, copy to clipboard
  • Status Monitor — background check every 60 sec (online/offline badges)
  • Dark Theme — modern CustomTkinter interface

Installation

From source

git clone https://git.sensey24.ru/aibot777/server-manager.git
cd server-manager
pip install -r requirements.txt
python main.py

Pre-built binary

Download from releases/ folder — standalone .exe (Windows) or binary (Linux/Mac). No Python installation required.

Building

Build for your current platform:

pip install pyinstaller
python build.py

Output goes to releases/ServerManager-v1.0.0-{platform}.exe

Usage

  1. Launchpython main.py or run the executable
  2. Add server — click "+ Add" in sidebar, fill alias, IP, port, user, password, type
  3. Terminal — select server → Terminal tab → type command → Run
  4. Files — select server → Files tab → set paths → Upload/Download
  5. Keys — Keys tab → Generate Key → Install on Server
  6. Status badges update automatically (green = online, red = offline)

Configuration

On first launch, config/servers.json is created from template. Add servers via GUI or edit the JSON directly.

{
  "servers": [
    {
      "alias": "my-server",
      "ip": "1.2.3.4",
      "port": 22,
      "user": "root",
      "password": "secret",
      "type": "ssh",
      "notes": "Production"
    }
  ]
}

Security

  • config/servers.json is in .gitignore — never committed
  • Passwords stored locally only
  • SSH keys (ed25519) — recommended auth method
  • sudo password sent via stdin (not visible in process list)

Project Structure

ServerManager/
├── main.py              # Entry point
├── version.py           # Version info
├── build.py             # PyInstaller build script
├── core/                # Business logic
│   ├── server_store.py  # CRUD + JSON + observer
│   ├── ssh_client.py    # Paramiko SSH/SFTP wrapper
│   ├── status_checker.py # Background monitoring
│   └── connection_factory.py
├── gui/                 # CustomTkinter UI
│   ├── app.py           # Main window
│   ├── sidebar.py       # Server list + search
│   ├── server_dialog.py # Add/Edit modal
│   ├── tabs/            # Terminal, Files, Info, Keys
│   └── widgets/         # StatusBadge
├── config/              # Server configs
├── releases/            # Built executables
└── docs/                # Documentation

Русский

Возможности

  • Управление серверами — добавление, редактирование, удаление (SSH, Telnet, RDP, MariaDB, MSSQL, PostgreSQL)
  • SSH-терминал — выполнение команд с авто-sudo (пароль через stdin, не виден в ps)
  • SFTP — загрузка и скачивание файлов с прогресс-баром
  • SSH-ключи — генерация ed25519, установка на сервер, копирование
  • Мониторинг — фоновая проверка каждые 60 сек (бейджи online/offline)
  • Тёмная тема — современный интерфейс CustomTkinter

Установка

Из исходников

git clone https://git.sensey24.ru/aibot777/server-manager.git
cd server-manager
pip install -r requirements.txt
python main.py

Готовый бинарник

Скачайте из папки releases/ — автономный .exe (Windows) или бинарник (Linux/Mac). Python не требуется.

Сборка

Сборка под текущую платформу:

pip install pyinstaller
python build.py

Результат в releases/ServerManager-v1.0.0-{платформа}.exe

Использование

  1. Запускpython main.py или запустите скомпилированный файл
  2. Добавить сервер — нажмите "+ Add" в боковой панели, заполните alias, IP, порт, пользователь, пароль, тип
  3. Терминал — выберите сервер → вкладка Terminal → введите команду → Run
  4. Файлы — выберите сервер → вкладка Files → укажите пути → Upload/Download
  5. Ключи — вкладка Keys → Generate Key → Install on Server
  6. Бейджи статуса обновляются автоматически (зелёный = online, красный = offline)

Конфигурация

При первом запуске config/servers.json создаётся из шаблона. Добавляйте серверы через GUI или редактируйте JSON напрямую.

Безопасность

  • config/servers.json в .gitignore — никогда не коммитится
  • Пароли хранятся только локально
  • SSH-ключи (ed25519) — рекомендуемый метод аутентификации
  • sudo-пароль передаётся через stdin (не виден в списке процессов)

中文

功能特点

  • 服务器管理 — 添加、编辑、删除服务器SSH、Telnet、RDP、MariaDB、MSSQL、PostgreSQL
  • SSH终端 — 自动sudo执行命令密码通过stdin传递ps中不可见)
  • SFTP传输 — 带进度条的文件上传/下载
  • SSH密钥 — 生成ed25519、安装到服务器、复制到剪贴板
  • 状态监控 — 每60秒后台检查在线/离线徽标)
  • 深色主题 — 现代CustomTkinter界面

安装

从源码安装

git clone https://git.sensey24.ru/aibot777/server-manager.git
cd server-manager
pip install -r requirements.txt
python main.py

预编译版本

releases/ 文件夹下载 — 独立的 .exeWindows或二进制文件Linux/Mac。 无需安装Python。

编译

为当前平台编译:

pip install pyinstaller
python build.py

输出至 releases/ServerManager-v1.0.0-{平台}.exe

使用方法

  1. 启动python main.py 或运行可执行文件
  2. 添加服务器 — 点击侧栏 "+ Add"填写别名、IP、端口、用户名、密码、类型
  3. 终端 — 选择服务器 → Terminal标签 → 输入命令 → Run
  4. 文件 — 选择服务器 → Files标签 → 设置路径 → Upload/Download
  5. 密钥 — Keys标签 → Generate Key → Install on Server
  6. 状态徽标自动更新(绿色 = 在线,红色 = 离线)

配置

首次启动时,config/servers.json 从模板自动创建。 通过GUI添加服务器或直接编辑JSON文件。

安全性

  • config/servers.json.gitignore 中 — 永不提交
  • 密码仅存储在本地
  • SSH密钥ed25519— 推荐的认证方式
  • sudo密码通过stdin传递在进程列表中不可见

License

MIT

Author

aibot777