Код-серверная IDE — это код Microsoft Visual Studio Code, запущенный на удаленном сервере и доступный напрямую из браузера. Это означает, что вы можете использовать различные устройства, работающие под управлением различных операционных систем, и всегда иметь под рукой постоянную среду разработки.
В этом обучающем руководстве вы настроите код-серверную облачную IDE-платформу на компьютере с Ubuntu 18.04 и сделаете ее доступной на вашем домене, защищенном с помощью Let’s Encrypt. Более подробную версию этого обучающего руководства см. в статье Настройка код-серверной облачной IDE-платформы в Ubuntu 18.04.
Сервер с Ubuntu 18.04 и не менее чем 2 ГБ оперативной памяти, root-доступ и учетная запись sudo без прав root. Вы можете выполнить настройку, следуя указаниям документа Начальная настройка сервера для Ubuntu 18.04.
Nginx, установленный на сервере. Выполните шаги 1–4 руководства по установке Nginx в Ubuntu 18.04.
Полное зарегистрированное доменное имя для размещения код-сервера, указывающее на ваш сервер. В этом обучающем руководстве мы будем использовать имя code-server.your-domain
. Вы можете купить доменное имя на Namecheap, получить его бесплатно на Freenom или воспользоваться услугами любого предпочитаемого регистратора доменных имен.
На вашем сервере должны быть настроены обе нижеследующие записи DNS. В руководстве Введение в DigitalOcean DNS содержится подробная информация по их добавлению.
your-domain
указывает на публичный IP-адрес вашего сервера.your-domain
указывает на публичный IP-адрес вашего сервера.Создайте каталог для хранения всех данных код-серверной IDE:
- mkdir ~/code-server
Перейдите в каталог:
- cd ~/code-server
Посетите страницу релизов Github код-серверной IDE и выберите последнюю сборку Linux. Загрузите ее с помощью следующей команды:
- wget https://github.com/cdr/code-server/releases/download/2.1692-vsc1.39.2/code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
Распакуйте архив:
- tar -xzvf code-server2.1692-vsc1.39.2-linux-x86_64.tar.gz
Перейдите в каталог, содержащий исполняемый файл код-серверной IDE:
- cd code-server2.1692-vsc1.39.2-linux-x86_64
Чтобы получить доступ к исполняемому файлу в вашей системе, скопируйте его с помощью:
- sudo cp code-server /usr/local/bin
Создайте папку для код-серверной IDE для хранения пользовательских данных:
- sudo mkdir /var/lib/code-server
Создайте службу systemd
, code-server.service
, в каталоге /lib/systemd/system
:
- sudo nano /lib/systemd/system/code-server.service
Добавьте следующие строки:
[Unit]
Description=code-server
After=nginx.service
[Service]
Type=simple
Environment=PASSWORD=your_password
ExecStart=/usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
Restart=always
[Install]
WantedBy=multi-user.target
--host 127.0.0.1
привязывает ее к localhost
.--user-data-dir /var/lib/code-server
задает каталог пользовательских данных.--auth password
указывает, что для аутентификации посетителей используется пароль.Обязательно замените your_password
на желаемый пароль.
Сохраните и закройте файл.
Запустите службу код-серверной IDE:
- sudo systemctl start code-server
Убедитесь, что она запущена корректно:
- sudo systemctl status code-server
Результат будет выглядеть примерно так:
Output● code-server.service - code-server
Loaded: loaded (/lib/systemd/system/code-server.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2019-12-09 20:07:28 UTC; 4s ago
Main PID: 5216 (code-server)
Tasks: 23 (limit: 2362)
CGroup: /system.slice/code-server.service
├─5216 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
└─5240 /usr/local/bin/code-server --host 127.0.0.1 --user-data-dir /var/lib/code-server --auth password
...
Активируйте код-серверную службу для автоматического запуска после перезагрузки сервера:
- sudo systemctl enable code-server
Теперь мы настроим Nginx в качестве обратного прокси для код-серверной IDE.
Создайте code-server.conf
для хранения конфигурации для публикации код-серверной IDE на вашем домене:
- sudo nano /etc/nginx/sites-available/code-server.conf
Добавьте следующие строки для настройки серверного блока, используя необходимые директивы:
server {
listen 80;
listen [::]:80;
server_name code-server.your_domain;
location / {
proxy_pass http://localhost:8080/;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}
}
Замените code-server.your_domain
на желаемый домен, а затем сохраните и закройте файл.
Чтобы сделать данную конфигурацию сайта активной, создайте символьную ссылку:
- sudo ln -s /etc/nginx/sites-available/code-server.conf /etc/nginx/sites-enabled/code-server.conf
Проверьте валидность конфигурации:
- sudo nginx -t
Вывод должен выглядеть так:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Чтобы новая конфигурация вступила в силу, перезапустите Nginx:
- sudo systemctl restart nginx
Теперь вы должны обеспечить защиту вашего домена с помощью TLS-сертификата Let’s Encrypt.
Добавьте хранилище пакетов Certbot на ваш сервер:
- sudo add-apt-repository ppa:certbot/certbot
Установите Certbot и его плагин Nginx:
- sudo apt install python-certbot-nginx
Настройте ufw
для принятия шифрованного трафика:
- sudo ufw allow https
Результат будет выглядеть следующим образом:
OutputRule added
Rule added (v6)
Перезапустите, чтобы конфигурация вступила в силу:
- sudo ufw reload
Результат будет выглядеть так:
OutputFirewall reloaded
Перейдите на домен код-серверной IDE.
Введите пароль код-серверной IDE. Вы увидите интерфейс, опубликованный на вашем домене.
Чтобы обеспечить его защиту, выполните установку TLS-сертификата Let’s Encrypt с помощью Certbot.
Запросите сертификат для вашего домена:
- sudo certbot --nginx -d code-server.your_domain
Предоставьте адрес электронной почты для срочных уведомлений, примите Правила и условия EFF и выберите, нужно ли перенаправить весь HTTP-трафик на HTTPS.
Результат будет выглядеть примерно следующим образом:
OutputIMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/code-server.your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/code-server.your_domain/privkey.pem
Your cert will expire on ... To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
...
Certbot успешно сгенерировал TLS-сертификаты и применил их для конфигурации Nginx для вашего домена.
Теперь у вас есть код-серверная IDE, установленная на сервере Ubuntu 18.04 и опубликованная на вашем домене с защитой в форме сертификатов Let’s Encrypt. Дополнительную информацию о других функциях и подробные инструкции по работе с прочими компонентами код-серверной IDE см. в документации для Visual Studio Code.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!