Goal: Use IntelliJ IDEA Ultimate on Windows 11 to edit and run Kiwi TCMS on a GUI-less Ubuntu 24.04 server via JetBrains Gateway (SSH). All compute (indexing, run/debug) runs on the server; your Windows machine shows a thin JetBrains UI. Browse the app at http://127.0.0.1:8000/ via port forwarding.
Server prep (do this first):
 Spin Up a Kiwi TCMS Dev Environment on Ubuntu 24.04 Server (Headless) and Access It via SSH Port Forwarding
Development only. For production, use a real WSGI/ASGI server, reverse proxy, TLS, and a managed database.
Prerequisites
Windows 11
- IntelliJ IDEA Ultimate (signed in).
- JetBrains Gateway (from JetBrains Toolbox or standalone).
- Built-in OpenSSH client (PowerShell ssh).
Ubuntu 24.04 (headless)
- Prepared exactly as in the linked post: repo at ~/Kiwi, venv at~/kiwi-env, Node vianvm,npm installin~/Kiwi/tcms, DB migrated, superuser created.
- SSH access (examples use user administrator).
- Connect with Gateway → SSH
- Launch JetBrains Gateway → SSH → New Connection. 
- Host: client.maksonlee.comUsername:administrator. 
- IDE backend: IntelliJ IDEA.
- Project directory: /home/administrator/Kiwi. 
- Click Start IDE and Connect → a JetBrains Client window opens on Windows (the IDE backend runs on the server). 
- Install plugins on Host (server-side IDE)
In JetBrains Client → Settings (Ctrl+Alt+S) → Plugins → Host:
- Install Python (by JetBrains). 
- Install Django (by JetBrains). 
- Restart the remote IDE backend when prompted.
Make sure both show under Host, not only Client.
- Point IntelliJ to the server venv (IntelliJ way)
IntelliJ uses Project Structure for Python interpreters.
- Project Structure (Ctrl+Alt+Shift+S) → SDKs → + → Add Python SDK from disk… → choose: /home/administrator/kiwi-env/bin/python
- Project → SDK: select Python 3.12 virtualenv at ~/kiwi-env.  
- Modules → Dependencies → Module SDK: set the same SDK if needed.
- Enable Django
Settings → Languages & Frameworks → Django → Enable Django Support
- Django project root: /home/administrator/Kiwi
- Settings: select tcms/settings/devel.py(Kiwi TCMS dev settings)
- Manage script: manage.py 
- Create run/debug configurations
- Webpack (watch)
Use a login shell:
source ~/.bashrc; cd ~/Kiwi/tcms && ./node_modules/.bin/webpack watch

- Django (runserver)
Run → Edit Configurations… → + → Django Server
Name: Django (Kiwi)
Host: 127.0.0.1
Port: 8000
Working directory: /home/administrator/Kiwi
Python interpreter: Python 3.12 virtualenv at ~/kiwi-env
(Optional) Environment: PYTHONUNBUFFERED=1; DJANGO_SETTINGS_MODULE=tcms.settings.devel

- (Optional) One-click start for both
Run → Edit Configurations… → + → Compound
Name: Kiwi: Webpack + Django
Add: Webpack (watch), Django (Kiwi)
Start Webpack first (or the Compound), then Django.
- Open the app locally (forward 8000 → Windows)
Option A — inside IntelliJ (recommended): When Django is running, the Run window shows a listening port 8000. Click the port badge → Forward Port (or Forward & Open in Browser).
Option B — classic PowerShell SSH:
ssh -N -L 8000:127.0.0.1:8000 administrator@client.maksonlee.com
Open http://127.0.0.1:8000/.
- Verify
- Kiwi TCMS homepage opens at http://127.0.0.1:8000/; log in with the superuser.
- Webpack rebuilds on file changes.
- Django shows access logs/tracebacks in the Run tool window.
