- 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>
7.7 KiB
ServerManager
Desktop GUI for managing remote servers
CustomTkinter + Paramiko | Dark Theme
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
- Launch —
python main.pyor run the executable - Add server — click "+ Add" in sidebar, fill alias, IP, port, user, password, type
- Terminal — select server → Terminal tab → type command → Run
- Files — select server → Files tab → set paths → Upload/Download
- Keys — Keys tab → Generate Key → Install on Server
- 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.jsonis 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
Использование
- Запуск —
python main.pyили запустите скомпилированный файл - Добавить сервер — нажмите "+ Add" в боковой панели, заполните alias, IP, порт, пользователь, пароль, тип
- Терминал — выберите сервер → вкладка Terminal → введите команду → Run
- Файлы — выберите сервер → вкладка Files → укажите пути → Upload/Download
- Ключи — вкладка Keys → Generate Key → Install on Server
- Бейджи статуса обновляются автоматически (зелёный = 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/ 文件夹下载 — 独立的 .exe(Windows)或二进制文件(Linux/Mac)。
无需安装Python。
编译
为当前平台编译:
pip install pyinstaller
python build.py
输出至 releases/ServerManager-v1.0.0-{平台}.exe
使用方法
- 启动 —
python main.py或运行可执行文件 - 添加服务器 — 点击侧栏 "+ Add",填写别名、IP、端口、用户名、密码、类型
- 终端 — 选择服务器 → Terminal标签 → 输入命令 → Run
- 文件 — 选择服务器 → Files标签 → 设置路径 → Upload/Download
- 密钥 — Keys标签 → Generate Key → Install on Server
- 状态徽标自动更新(绿色 = 在线,红色 = 离线)
配置
首次启动时,config/servers.json 从模板自动创建。
通过GUI添加服务器或直接编辑JSON文件。
安全性
config/servers.json在.gitignore中 — 永不提交- 密码仅存储在本地
- SSH密钥(ed25519)— 推荐的认证方式
- sudo密码通过stdin传递(在进程列表中不可见)
License
MIT