====== Installing the PWstudio GPU version ======
This page assumes you already have the GPU driver, Docker, and nvidia-container-toolkit installed (if not, go back to the [[en:pwstudio:start|home page]] and pick the installation chapter for your system). If you're new to this and not yet comfortable with the terminal, we also recommend reading [[en:pwstudio:readme|Read this before installing]] and [[en:pwstudio:mobaxterm|the MobaXterm beginner tutorial]] first.
===== 1. Requirements =====
* NVIDIA GPU driver installed (supporting CUDA 12.1 or later), and the GPU is correctly detected
* Docker installed
* nvidia-container-toolkit installed
You can verify all three of the above yourself using the commands from earlier chapters (''nvidia-smi'', ''docker --version'', and a test container with ''--gpus all''). Once you've confirmed everything is fine, continue with the steps below.
===== 2. Install the server.py service on the host machine =====
Installation instructions: click the link, [[en:pwstudio:server|Installing the server.py service on Linux]], and follow the guide to set up the license service before moving to the next step. This step is what lets you obtain a valid qflow license afterward — if you skip it, you won't be able to log in and use the container properly even after it's running.
===== 3. Import the image =====
sudo docker pull ccr.ccs.tencentyun.com/lxkt/qflowgpu:latest
This step downloads the PWstudio GPU image (about 12GB — a complete, pre-packaged environment) from the remote registry to your server; there's no requirement for which directory you run it from. **Depending on your network, this may take around 15 minutes — please be patient, and don't close the terminal just because it looks "stuck."** The terminal will keep showing a download progress bar the whole time, which is normal.
===== 4. Start the container =====
sudo docker run -d --name qflowgpu \
-v /var/tmp/pwmat_host_secret:/var/tmp/pwmat_host_secret:ro \
--ulimit memlock=-1:-1 --ulimit stack=-1:-1 \
--gpus all --shm-size=128G --privileged -e SELINUX=disabled \
-p 80:80 -p 81:81 -p 2297:2297 -p 5010:5010 --hostname=mstation ccr.ccs.tencentyun.com/lxkt/qflowgpu:latest
This command creates and starts, in the background, a container named ''qflowgpu'' based on the image you just downloaded. If it succeeds, it will usually print a long string of letters and numbers (the container ID), which means the container has started — no further confirmation is needed.
81:81 must not be changed. Port 81 inside the container must be mapped to port 81 on the host machine.
Check which containers are currently running:
docker ps
Check all containers (running or stopped):
docker ps -a
After running this you'll see a table. If there's a row with ''qflowgpu'' under ''NAMES'' and ''Up ...'' under ''STATUS'' (e.g. "Up 5 minutes"), the container is running normally.
Before starting a new container, if a container with the same name already exists, you need to stop and remove the old one first:
docker stop qflowgpu
Remove the old container of the same type:
docker rm qflowgpu
After stopping and removing it, just run the ''docker run'' command above again.
- Removing a container also removes the data stored inside it❗
- Qflow workflows stored inside the container cannot be exported
===== 5. Logging into the container, uploading/downloading files =====
Once the container is running, if you need to log into it to view files or upload/download data, there are two ways:
* Log in / upload / download via an SSH clientrecommended
^ Address ^ Port ^ Username ^ Password ^
| [host IP] | 2297 | pwmat | PWmat2022 |
| [host IP] | 2297 | root | PWmatSimplyBest |
In the table above, replace ''[host IP]'' with your server's real IP address (ask your administrator, or run ''hostname -I'' on the server to check). The port, username, and password are fixed — just use them as shown in the table, **no changes needed**.
If you don't yet know how to log in with an SSH client or upload/download files, we've written a dedicated step-by-step tutorial: [[en:pwstudio:mobaxterm|Beginner tutorial: How to log in to a server and upload/download files with MobaXterm]] — follow it once and you'll have it down.
If you don't want to use a graphical tool and would rather log in directly with the ''ssh'' command from the command line, you can do this:
ssh username@host_ip -p port
# The first time you connect to a new host over SSH, you'll get a security prompt asking whether to continue connecting — type "yes" and press Enter; then enter the password (it won't be displayed) and press Enter
Replace "username", "host_ip", and "port" above with the actual values from the table, e.g.: ''ssh pwmat@192.168.1.100 -p 2297''. **While typing the password, the terminal won't display any characters at all, not even asterisks — this is normal security behavior, not the computer freezing. Just type it and press Enter.**
* Or you can access the container directly with a docker command
docker exec -it qflowgpu bash
# When you're done, exit back to the host
exit
This approach works well if you're already logged into the host machine's terminal and just want to briefly peek inside the container. Running ''exit'' takes you back to the host machine (it does not log you out).
By default, Qflow runs from the path /share/home/pwmat/Q-Flow/xxx — you can perform file operations in this directory from the command line.
===== 6. Accessing Qstudio and Qflow =====
The steps so far were all done on the server's command line. From this point on, **switch to using a web browser** (Google Chrome or Microsoft Edge give the best results) — you won't need to go back to the terminal.
In a browser on your own computer (this can be a completely different Windows/Mac machine, as long as it can reach this server), go to: %%http://[host IP]%%
(again, replace ''[host IP]'' with your server's real IP address)
^ Account ^ Password ^
| 15000000000 | PWmat2022 |
If pasting the password with Ctrl+V says the password is wrong, this may be a browser compatibility issue — just type the password manually instead.
~~DISCUSSION:off~~