Following tutorial will use Ubuntu Server **22.04 minimal** as example. And especially command line procedures, because lowest price spec of VPS can't handle desktop environment.
* [Visual Studio Code](https://code.visualstudio.com)
* (Optional) Find and remember your [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), or your system's timezone will be UTC+0
> If you want to install with your local machine, I assume you install your Ubuntu Server as a virtual machine.<br>
> You will also need:
* Public IP, dynamic IP is fine, but static IP would be better
* [Ubuntu Server ISO](https://ubuntu.com/download/server)
* Ability to setup port forwarding on your ISP modem or router, if you got these devices from your ISP and don't know how to enter the admin page, please ask your ISP
If you plan to run only RustDesk Server, lowest spec should be fine, except AWS Lightsail, because its lowest spec is 512 MB RAM which may too low and crash, any spec with **1 GB RAM** should fine.
For any other hypervisor that runs on Windows or Linux with GUI, such as VirtualBox or VMware Workstation, please set your virtual network card to **bridged** mode.
This tutorial assume you install your Ubuntu Server as a virtual machine. If you decide to install on a physical machine, doing wrong procedures, may cause **data loss**.
Now, you could go to your router's DHCP settings, find and add your VM's LAN IP address to DHCP reservation, if you want, you could also assign other IP address.
{{% /notice %}}
4. It should choose mirror automatically, if yes, next
You could modify the line with `hbbs` to your server's LAN IP temporarily (If you're deploying in your LAN) to ensure it is working. After you verify your server is working, you **should** change back.
# 21114 TCP for web console, only available in Pro version
# 21115 TCP for NAT type test
# 21116 TCP TCP hole punching
# 21116 UDP heartbeat/ID server
# 21117 TCP relay
# 21118/21119 TCP for web socket if you want to run web client
```
Check [here](/docs/en/client) to set up your client. Only `ID server` and `Key` is needed. `Relay server` isn't needed because we've set it in `hbbs`, hbbs will provide this information automatically.
In your VSCode, you should see `id_ed25519`, `id_ed25519.pub` on your `docker/rustdesk-server/data` folder. You could click `id_ed25519.pub`, this is the public key that you need for your RustDesk client.
Go to your router's admin webpage, find anything related to `Port forwarding`, it should appear in `WAN` or `Firewall` settings.
If you still can't find the setting, Google search `{Router brand} + port forwarding` or `{Router model} + port forwarding`. If this device is from your ISP, ask them.
If you're using VPS, Google search `{VPS vendor name} + firewall port` to find the specific procedure for your VPS.
Open these required ports:
*`21114` TCP for web console, only available in Pro version
If you didn't specify any container name, it will update **all** of your containers.
At the following command, it will run everyday at 3 AM, for more details, check their [documentation](https://containrrr.dev/watchtower/arguments/#scheduling).
By default, Ubuntu will installing security updates automatically, Google search: `ubuntu unattended-upgrades` or check the file at `/etc/apt/apt.conf.d/50unattended-upgrades` for more details.