Visual Studio Code se stalo jedním z nejoblíbenějších IDE pro kódování. Má integrovanou podporu Git a Docker, debugger kódu, automatické dokončování kódu, schopnost pracovat se vzdálenými soubory a podporuje různé pluginy.
Vzhledem k tomu, že se vše přesouvá do cloudu, přístup k IDE dle vašeho výběru odkudkoli je perfektní pro moderní vývoj. Cloud IDE umožňuje spolupráci mezi vývojáři v reálném čase, čímž zvyšuje produktivitu. coder-server je aplikace, která vám umožňuje spouštět Visual Studio Code ze vzdáleného serveru a zpřístupňuje jej prostřednictvím libovolného prohlížeče.
Tento tutoriál vás naučí, jak nainstalovat Visual Studio Code IDE pomocí aplikace kódového serveru na vašem serveru Rocky Linux 8. Budete jej také vystavovat prostřednictvím veřejné domény spolu s podporou SSL.
Předpoklady
-
Server se systémem Rocky Linux s alespoň 2 GB paměti RAM a 2 jádry CPU.
-
Uživatel bez oprávnění root s právy sudo.
-
Registrovaná doména a odkazující na server.
-
Nginx nainstalovaný na vašem serveru.
-
Ujistěte se, že je vše aktualizováno.
$ sudo dnf update
Krok 1 – Konfigurace brány firewall
Prvním krokem je konfigurace firewallu. Rocky Linux je dodáván s firewallem Firewalld.
Zkontrolujte, zda je spuštěna brána firewall.
$ sudo firewall-cmd --state
Následující výstup dokazuje, že firewall běží.
running
Zkontrolujte aktuální povolené služby/porty.
$ sudo firewall-cmd --permanent --list-services
Měl by ukazovat následující výstup.
dhcpv6-client mdns ssh
Otevřete port 8080 pro kódový server.
$ sudo firewall-cmd --permanent --add-port=8080/tcp
Povolit porty HTTP a HTTPS.
$ sudo firewall-cmd --permanent --add-service=http $ sudo firewall-cmd --permanent --add-service=https
Znovu zkontrolujte stav brány firewall.
$ sudo firewall-cmd --permanent --list-all
Měli byste vidět podobný výstup.
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http https ssh ports: 8080/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Chcete-li změny povolit, znovu načtěte bránu firewall.
$ sudo systemctl reload firewalld
Krok 2 – Instalace kódového serveru
code-server je dodáván s instalačním skriptem, který dokáže detekovat verzi Linuxu a nainstalovat příslušnou binárku pro váš server. Můžete otestovat instalační skript a zkontrolovat, zda bude nebo nebude na vašem serveru fungovat.
Spusťte následující příkaz pro provedení suché instalace.
$ curl -fsSL https://code-server.dev/install.sh | sh -s -- --dry-run Rocky Linux 8.4 (Green Obsidian) Installing v3.12.0 of the amd64 rpm package from GitHub. + mkdir -p ~/.cache/code-server + curl -#fL -o ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete -C - https://github.com/cdr/code-server/releases/download/v3.12.0/code-server-3.12.0-amd64.rpm + mv ~/.cache/code-server/code-server-3.12.0-amd64.rpm.incomplete ~/.cache/code-server/code-server-3.12.0-amd64.rpm + sudo rpm -i ~/.cache/code-server/code-server-3.12.0-amd64.rpm rpm package has been installed. To have systemd start code-server now and restart on boot: sudo systemctl enable --now [email protected]$USER Or, if you don't want/need a background service you can run: code-server
Po úspěšném suchém běhu spusťte nastavení.
$ curl -fsSL https://code-server.dev/install.sh | sh
Instalační skript může vyžadovat vaše heslo sudo.
Povolte službu kódového serveru.
$ sudo systemctl enable [email protected]$USER
Pokud chcete aktualizovat svou instanci kódového serveru, opakujte proces instalace. code-server zachová vaše soubory a nastavení.
Krok 3 – Konfigurace kódového serveru
code-server ukládá svůj konfigurační soubor na ~/.config/code-server/config.yaml
. Otevřete jej pro úpravy.
$ sudo nano ~/.config/code-server/config.yaml
Zde jsou výchozí nastavení nastavená během instalace.
bind-addr: 127.0.0.1:8080
auth: password
password: a4768b3439e5e93b5d62489b
cert: false
Výchozí konfigurační soubor umožňuje následující chování:
- Poslouchejte na portu IP 8080 se zpětnou smyčkou
- Umožňuje autorizaci hesla pomocí náhodně vygenerovaného hesla
- Nepoužívá TLS
Heslo můžete změnit změnou jeho hodnoty v souboru.
Pokud chcete uložit hašovanou verzi hesla, musíte nejprve nainstalovat npm. Po instalaci spusťte následující příkaz pro nastavení hashovaného hesla.
$ echo -n "thisismypassword" | npx argon2-cli -e $argon2i$v=19$m=4096,t=3,p=1$wst5qhbgk2lu1ih4dmuxvg$ls1alrvdiwtvzhwnzcm1dugg+5dto3dt1d5v9xtlws4
Hašovanou hodnotu získáte na svém terminálu. Zkopírujte jej a vložte do konfiguračního souboru.
auth: password hashed-password: "$argon2i$v=19$m=4096,t=3,p=1$wST5QhBgk2lu1ih4DMuxvg$LS1alrVdIWtvZHwnzCM1DUGg+5DTO3Dt1d5v9XtLws4"
Nezapomeňte zabalit hashované heslo do uvozovek. Pokud chcete telemetrii zakázat, přidejte do souboru následující řádek.
disable-telemetry: false
V souboru můžete definovat další možnosti. Chcete-li zkontrolovat všechny další možnosti, které můžete přidat, použijte následující příkaz k zobrazení všech příznaků.
$ code-server --help
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni po dokončení.
Krok 4 – Instalace protokolu SSL
Pro instalaci SSL certifikátu pomocí Let's Encrypt si musíme stáhnout nástroj Certbot. Nejprve však musíme nainstalovat úložiště EPEL.
Spuštěním následujících příkazů nainstalujte Certbot.
$ sudo dnf install epel-release $ sudo dnf install certbot
Vygenerujte certifikát SSL.
$ sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d code-server.example.com -m [email protected]
Výše uvedený příkaz stáhne certifikát do /etc/letsencrypt/live/code-server.example.com
adresář na vašem serveru. Nezapomeňte nahradit [email protected]
s vaším skutečným e-mailem.
Vytvořte skupinu Diffie-Hellman certifikát.
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Vytvořte adresář webroot s výzvou pro automatické obnovení Let's Encrypt.
$ sudo mkdir -p /var/lib/letsencrypt
Vytvořte úlohu Cron pro obnovení SSL. Poběží každý den, aby se zkontroloval certifikát a v případě potřeby se obnoví. Nejprve vytvořte soubor /etc/cron.daily/certbot-renew
a otevřete jej pro úpravy.
$ sudo nano /etc/cron.daily/certbot-renew
Vložte následující kód.
#!/bin/sh certbot renew --cert-name example.com --webroot -w /var/lib/letsencrypt/ --post-hook "systemctl reload nginx"
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Změňte oprávnění k souboru úlohy, aby byl spustitelný.
$ sudo chmod +x /etc/cron.daily/certbot-renew
Krok 5 – Instalace a konfigurace Nginx
Vytvořte a otevřete /etc/yum.repos.d/nginx.repo
soubor pro vytvoření oficiálního úložiště Nginx.
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Nainstalujte server Nginx.
$ sudo dnf install nginx
Povolte službu Nginx.
$ sudo systemctl enable nginx
Vytvořte konfigurační soubor pro kódový server v /etc/nginx/conf.d
adresář.
$ sudo nano /etc/nginx/conf.d/code-server.conf
Vložte do něj následující kód.
server { listen 80; listen [::]:80; server_name code-server.example.com; return 301 https://$host$request_uri; } server { server_name code-server.example.com; listen 443 ssl http2; listen [::]:443 ssl http2; access_log /var/log/nginx/code-server.access.log; error_log /var/log/nginx/code-server.error.log; ssl_certificate /etc/letsencrypt/live/code-server.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/code-server.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/code-server.example.com/chain.pem; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; location / { proxy_pass http://localhost:8080/; proxy_set_header Host $host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Accept-Encoding gzip; } }
Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.
Ověřte konfigurační soubor.
$ sudo nginx -t
Pokud se zobrazí následující chyba, budete muset upravit soubor /etc/nginx/nginx.conf
přidat/upravit velikost proměnné server_names_hash_bucket_size
.
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size
Otevřete soubor /etc/nginx/nginx.conf
pro úpravy.
$ sudo nano /etc/nginx/nginx.conf
Přidejte následující řádek před řádek include /etc/nginx/conf.d/*.conf;
.
server_names_hash_bucket_size 64;
Uložte soubor stisknutím Ctrl + X a zadáním Y po výzvě. Znovu ověřte Nginx.
Spusťte server Nginx.
$ sudo systemctl start nginx
Krok 6 – Použití kódového serveru
Spusťte doménu https://code-server.example.com
ve vašem prohlížeči a zadejte heslo pro ověření vaší instalace kódového serveru. Zadejte heslo z konfiguračního souboru.
code-server se zeptá na nastavení kódu VS při prvním spuštění.
Vyberte barevné schéma, projděte zbývající části a klikněte na Označit jako hotové až skončí.
Závěr
Nyní máte na serveru Rocky Linux nainstalovanou instanci Visual Studio Code. Ve srovnání s oficiálním kodexem VS existují určitá upozornění. Dostupná rozšíření nejsou oficiální rozšíření, ale nabízená z neoficiálního úložiště kódového serveru. Chcete-li nainstalovat oficiální rozšíření, můžete se podívat na jejich oficiální dokumenty. Bude to vyžadovat určité úsilí. Pokud máte nějaké dotazy, napište je do komentářů níže.