- Get a server
- Install Qwest
- Let your team in
- Keep it running
Install Qwest
Download Qwest, fill in two files and start it with Docker.
Do this on the server, once Docker is installed (VPS, Linux, Windows or macOS).
1. Make a folder for Qwest
Section titled “1. Make a folder for Qwest”mkdir ~/qwest && cd ~/qwestmkdir ~\qwest; cd ~\qwestRun every command below from this folder.
2. Download Qwest
Section titled “2. Download Qwest”-
Sign in to your account with your license key.
-
Download the latest release. It’s one file, like
qwest-1.0.0.tar. -
Put it in the
qwestfolder on the server.-
The server is your own PC: move the file into the folder.
-
The server is a VPS: copy it over from your computer (run this on your computer, not the server):
Terminal window scp qwest-1.0.0.tar root@YOUR_SERVER_IP:~/qwest/Or, on the server, download it directly with the link from your account page (links work for one hour):
Terminal window curl -fLo qwest-1.0.0.tar "PASTE_THE_DOWNLOAD_LINK"
-
-
Load it into Docker:
Terminal window docker load -i qwest-1.0.0.tarIt ends with
Loaded image: qwest:1.0.0. Note the version.
3. Get the two setup files
Section titled “3. Get the two setup files”curl -fsSLO https://docs.qwest.dev/install/compose.ymlcurl -fsSL -o .env https://docs.qwest.dev/install/env.examplecurl.exe -fsSLO https://docs.qwest.dev/install/compose.ymlcurl.exe -fsSL -o .env https://docs.qwest.dev/install/env.examplecompose.ymltells Docker to run Qwest and its database..envholds your settings.
4. Make your secrets
Section titled “4. Make your secrets”Qwest needs four long random passwords. This prints them for you (use your version number):
docker run --rm qwest:1.0.0 bun -e "const c=require('crypto');for(const k of ['BETTER_AUTH_SECRET','COLLAB_SECRET','SECRETS_KEY','POSTGRES_PASSWORD'])console.log(k+'='+c.randomBytes(32).toString('hex'))"Copy the four lines it prints.
5. Fill in .env
Section titled “5. Fill in .env”Open it:
nano .envSave with CtrlO, Enter, then quit with CtrlX. (On a Mac with a screen, open -e .env works too.)
notepad .envChange these lines:
| Line | Set it to |
|---|---|
QWEST_VERSION |
The version you loaded, like 1.0.0. |
BETTER_AUTH_SECRET, COLLAB_SECRET, SECRETS_KEY, POSTGRES_PASSWORD |
The four lines you copied (replace the empty ones). |
BETTER_AUTH_URL |
The address your team will open. See below. |
QWEST_PORT |
See below. Remove the # in front of it to use it. |
Which address? Pick how your team will reach Qwest (you can change it later):
| How | BETTER_AUTH_URL |
QWEST_PORT |
|---|---|---|
| Only on the studio’s network (old PC) | http://192.168.1.42:8080 (the PC’s address) |
leave it out |
| Privately from anywhere, with Tailscale | https://qwest.your-tailnet.ts.net (you’ll get it on that page) |
127.0.0.1:8080 |
| Publicly, with your own domain | https://qwest.yourstudio.com |
127.0.0.1:8080 |
127.0.0.1:8080 keeps Qwest’s port closed to the outside: only Tailscale or your web server on the same machine can reach it.
6. Start Qwest
Section titled “6. Start Qwest”docker compose up -dWatch it start (press CtrlC to stop watching. Qwest keeps running):
docker compose logs -f qwestIt’s ready when it prints database is up to date and stops printing errors.
7. Make the first account
Section titled “7. Make the first account”If you chose a Tailscale or domain address, finish that page first: Tailscale or domain.
- Open exactly the address you put in
BETTER_AUTH_URL. Another address for the same server (like its IP) won’t let you sign in. - Click Sign up. This first account is the instance admin.
- Activate your license.
- Make a workspace and invite your team.
Useful commands
Section titled “Useful commands”Run them from the qwest folder.
| To… | Run |
|---|---|
| See if it’s running | docker compose ps |
| See its logs | docker compose logs -f qwest |
Restart it (after changing .env) |
docker compose up -d |
| Stop it | docker compose down (your data stays) |
Qwest restarts by itself if it crashes or the server reboots.