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 install
in~/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.com
Username: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.