A terminal GUI for managing Warden Docker environments
Project description
WardenGUI
A terminal-based GUI for managing Warden Docker development environments.
Features
- ๐ณ Interactive Menu - Navigate and manage multiple Warden environments
- ๐ Environment Switching - Stop current and start new environments with one command
- ๐ Docker Stats - View disk usage for images and volumes
- ๐ SSH Access - Quick shell access to running containers
- ๐ Log Streaming - Follow container logs in real-time
- ๐ Hosts File Check - Windows hosts file validation
- โจ๏ธ Terminal Commands - Run warden commands directly from the GUI
Installation
From PyPI
pip install wardengui
From Source
git clone https://github.com/Genaker/WardenGUI.git
cd WardenGUI
pip install -e .
Upgrade to Latest Version
pip install --upgrade wardengui
Or force reinstall:
pip install --upgrade --force-reinstall wardengui
Check Installed Version
pip show wardengui
WSL Installation
pip3 install --break-system-packages wardengui
Troubleshooting: Command Not Found
If you see wardengui: command not found after installation, the scripts are installed in ~/.local/bin which is not in your PATH.
Fix 1: Add to PATH (permanent)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
wardengui
Fix 2: Run directly
~/.local/bin/wardengui
Fix 3: Use Python module
python3 -m wardengui
Usage
# Run with default settings (scans ~/ for projects)
wardengui
# or
warden-gui
# Specify projects directory
wardengui -p /path/to/projects
# Use 'down/up' instead of 'stop/start' (removes containers)
wardengui --down
Commands
Navigation
| Command | Description |
|---|---|
โ/โ or u/d |
Navigate menu |
0-9 |
Select environment by number |
Enter or start |
Start selected environment |
q or quit |
Exit |
Environment Commands
| Command | Description |
|---|---|
ssh or s |
SSH into running environment |
log |
Follow all container logs |
log nginx |
Follow specific service logs |
ls |
List running containers |
run <cmd> |
Run one-off command |
port <svc> |
Show port bindings |
help or ? |
Show available commands |
Requirements
- Python 3.8+
- Warden installed at
/opt/warden/bin/warden - Docker running
- WSL2 (on Windows)
Building & Publishing
Step 1: Install Build Tools
pip install build twine
Step 2: Clean Previous Builds
rm -rf build/ dist/ *.egg-info/
Step 3: Build the Package
cd C:\Users\Yshytikov\WardenGUI
python -m build
This creates:
dist/
โโโ wardengui-1.0.0-py3-none-any.whl # Wheel (binary)
โโโ wardengui-1.0.0.tar.gz # Source distribution
Step 4: Test Locally
# Install locally in editable mode
pip install -e .
# Test the command works
wardengui --help
Step 5: Create PyPI Account
- Go to https://pypi.org/account/register/
- Create an account
- Go to Account Settings โ API tokens
- Create a new API token (scope: entire account or project-specific)
- Save the token (starts with
pypi-)
Step 6: Configure Twine
Create ~/.pypirc (or C:\Users\YourName\.pypirc on Windows):
[pypi]
username = __token__
password = pypi-YOUR_API_TOKEN_HERE
Or use environment variable:
export TWINE_PASSWORD=pypi-YOUR_API_TOKEN_HERE
Step 7: Upload to TestPyPI (Optional - Recommended First)
# Upload to TestPyPI for testing
twine upload --repository testpypi dist/*
# Test install from TestPyPI
pip install --index-url https://test.pypi.org/simple/ wardengui
Step 8: Upload to PyPI
twine upload dist/*
Step 9: Verify Installation
# Install from PyPI
pip install wardengui
# Run
wardengui
Quick Build & Push Script
Use the included build_and_push.sh script:
chmod +x build_and_push.sh
./build_and_push.sh
This script will:
- Clean previous builds
- Build the package
- Check for errors
- Ask for confirmation before uploading to PyPI
Version Bump
Before publishing a new version, update version in pyproject.toml:
[project]
version = "1.0.1" # Increment this
Project Structure
wardengui/
โโโ pyproject.toml # Package configuration
โโโ README.md # This file
โโโ LICENSE # MIT License
โโโ .gitignore
โโโ src/
โโโ wardengui/
โโโ __init__.py # Package init, exports
โโโ manager.py # WardenManager class (core logic)
โโโ cli.py # CLI entry point (GUI)
Configuration
| Option | Default | Description |
|---|---|---|
-p, --projects-root |
~ |
Root directory to scan for projects |
-d, --down |
false |
Use env down/up instead of env stop/start |
Screenshot
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ณ WARDEN ENVIRONMENT MANAGER โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ Commands: 0-9=select โ ssh โ start โ up/down โ quit โ help โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Environments: 3 โ ๐พ Images: 38.18GB โ Volumes: 17.9GB
0. [lccoins] โ STOPPED - app.lc.test
1. [api] โ STOPPED - app.apitire.test
โถ 2. [pei] โ RUNNING - app.peigenesis.test
q. [Exit]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ PEI DETAILS
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Path: /home/user/pei-project
๐ URL: https://app.peigenesis.test/
๐ Hosts: โ
127.0.0.1 โ app.peigenesis.test
๐ฟ Volumes: 6 ๐ณ Containers: 8/8 running
โโ applogs: 3.528GB ๐ข php-fpm
โโ appcode: 1.088GB ๐ข nginx
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
>
License
MIT License - see LICENSE file for details.
Author
Yehor Shytikov
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wardengui-1.0.3.tar.gz.
File metadata
- Download URL: wardengui-1.0.3.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f131d598c19a18e4494e053841e834fd904dd00111d2df691c2dc7b85611efe
|
|
| MD5 |
1e019c207586fc8c36bdc8c345f453e6
|
|
| BLAKE2b-256 |
3c18b62eed8ab91c685c4a991f95f458fd07c4d9594d8bf9fc9b8d45cb392648
|
File details
Details for the file wardengui-1.0.3-py3-none-any.whl.
File metadata
- Download URL: wardengui-1.0.3-py3-none-any.whl
- Upload date:
- Size: 15.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c96bfd63c00c9a8ed5728255aa376bb2ac0739d54a4d44005ab741ff064b948
|
|
| MD5 |
0aa746e7478d7484818581035280449a
|
|
| BLAKE2b-256 |
baba77059b991c77c09d981b92a4e29212a42784d54958e8454f5d81c3d9a8d8
|