diff --git a/ci/build/code-server-user.service b/ci/build/code-server-user.service
new file mode 100644
index 000000000000..a2f48e938e55
--- /dev/null
+++ b/ci/build/code-server-user.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=code-server
+After=network.target
+
+[Service]
+Type=exec
+ExecStart=/usr/bin/code-server
+Restart=always
+
+[Install]
+WantedBy=default.target
diff --git a/ci/build/code-server.service b/ci/build/code-server.service
index a2f48e938e55..bfb62d78dea0 100644
--- a/ci/build/code-server.service
+++ b/ci/build/code-server.service
@@ -6,6 +6,7 @@ After=network.target
 Type=exec
 ExecStart=/usr/bin/code-server
 Restart=always
+User=%i
 
 [Install]
 WantedBy=default.target
diff --git a/ci/build/nfpm.yaml b/ci/build/nfpm.yaml
index ed8e1ea6d92a..6d5201d4de26 100644
--- a/ci/build/nfpm.yaml
+++ b/ci/build/nfpm.yaml
@@ -12,5 +12,6 @@ homepage: "https://github.com/cdr/code-server"
 license: "MIT"
 files:
   ./ci/build/code-server-nfpm.sh: /usr/bin/code-server
-  ./ci/build/code-server.service: /usr/lib/systemd/user/code-server.service
+  ./ci/build/code-server.service: /usr/lib/systemd/system/code-server.service
+  ./ci/build/code-server-user.service: /usr/lib/systemd/user/code-server.service
   ./release-standalone/**/*: "/usr/lib/code-server/"
diff --git a/doc/guide.md b/doc/guide.md
index 11a8781c890e..8782f57f828c 100644
--- a/doc/guide.md
+++ b/doc/guide.md
@@ -131,7 +131,7 @@ sed -i.bak 's/auth: password/auth: none/' ~/.config/code-server/config.yaml
 Restart `code-server` with (assuming you followed the guide):
 
 ```bash
-systemctl --user restart code-server
+sudo systemctl restart code-server@$USER
 ```
 
 Now forward local port 8080 to `127.0.0.1:8080` on the remote instance by running the following command on your local machine.
@@ -277,7 +277,7 @@ sudo setcap cap_net_bind_service=+ep /usr/lib/code-server/lib/node
 Assuming you have been following the guide, restart `code-server` with:
 
 ```bash
-systemctl --user restart code-server
+sudo systemctl restart code-server@$USER
 ```
 
 Edit your instance and checkmark the allow HTTPS traffic option.
@@ -295,7 +295,7 @@ Edit the `password` field in the `code-server` config file at `~/.config/code-se
 and then restart `code-server` with:
 
 ```bash
-systemctl --user restart code-server
+sudo systemctl restart code-server@$USER
 ```
 
 ### How do I securely access development web services?
diff --git a/doc/install.md b/doc/install.md
index b8ec54a8b0ae..738570b57a17 100644
--- a/doc/install.md
+++ b/doc/install.md
@@ -81,7 +81,7 @@ commands presented in the rest of this document.
 ```bash
 curl -fOL https://github.com/cdr/code-server/releases/download/v3.4.1/code-server_3.4.1_amd64.deb
 sudo dpkg -i code-server_3.4.1_amd64.deb
-systemctl --user enable --now code-server
+sudo systemctl enable --now code-server@$USER
 # Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
 ```
 
@@ -90,7 +90,7 @@ systemctl --user enable --now code-server
 ```bash
 curl -fOL https://github.com/cdr/code-server/releases/download/v3.4.1/code-server-3.4.1-amd64.rpm
 sudo rpm -i code-server-3.4.1-amd64.rpm
-systemctl --user enable --now code-server
+sudo systemctl enable --now code-server@$USER
 # Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
 ```
 
@@ -99,7 +99,7 @@ systemctl --user enable --now code-server
 ```bash
 # Installs code-server from the AUR using yay.
 yay -S code-server
-systemctl --user enable --now code-server
+sudo systemctl enable --now code-server@$USER
 # Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
 ```
 
@@ -108,7 +108,7 @@ systemctl --user enable --now code-server
 git clone https://aur.archlinux.org/code-server.git
 cd code-server
 makepkg -si
-systemctl --user enable --now code-server
+sudo systemctl enable --now code-server@$USER
 # Now visit http://127.0.0.1:8080. Your password is in ~/.config/code-server/config.yaml
 ```
 
diff --git a/install.sh b/install.sh
index 1038adc7d319..36c81aa0a0d8 100755
--- a/install.sh
+++ b/install.sh
@@ -84,7 +84,7 @@ echo_systemd_postinstall() {
   echoh
   cath << EOF
 To have systemd start code-server now and restart on boot:
-  systemctl --user enable --now code-server
+  sudo systemctl enable --now code-server@$USER
 Or, if you don't want/need a background service you can run:
   code-server
 EOF