OpenSource

[Code Server] 웹상에서 VS Code 띄우기

아르비스 2020. 9. 24. 08:26

Pad 사용 혹은 Notebook 사용이 어려운 경우 쓰기 딱 좋다.

리눅스 서버에 VS Code IDE 자체를 웹상에 띄워놓고, 원격에서 웹브라우저를 이용해서 코딩을 하는 방법입니다.

  • 일정한 환경: 윈도우 노트북이건, 아이패드건, 심지어 휴대폰이건 상관 없이 항상 동일한 개발환경을 사용할 수 있습니다. 리눅스 서버에 띄워놓고, 웹브라우저로 접속해서 간편하게 개발이나 연구를 할 수 있습니다.
  • Server-powered: 개인용 GPU 리눅스 서버 뿐만 아니라, 클라우드 서버 역시 Deploy할 수 있습니다. 노트북은 그저 웹브라우저 화면만 띄워주고 실제 연산은 서버상에서 이루어지므로, 노트북의 부하가 전혀 없습니다.
  • VS Code 그대로: VS Code에서 사용하던 편리함과 사용성을 그대로 느낄 수 있습니다. 확장 플러그인 역시 사용할 수 있습니다.


더욱 자세한 내용은, code-server github repository을 참고해주세요. (https://github.com/cdr/code-server)

 

(갱신)

아래와 같이 간단하게 바뀌었다... 참.. 좋네..

curl -fsSL https://code-server.dev/install.sh | sh
vi ~/.config/code-server/config.yaml

bind-addr: 0.0.0.0:8080
auth: password
password: 1234


0. Linux(Ubuntu)에 설치하기.

1. 다운로드 및 설치 

cd ~/vscode
wget https://github.com/cdr/code-server/releases/download/2.1665-vsc1.39.2/code-server2.1665-vsc1.39.2-linux-x86_64.tar.gz
tar -xvf code-server2.1665-vsc1.39.2-linux-x86_64.tar.gz
mv code-server2.1665-vsc1.39.2-linux-x86_64 coder
cd coder
chmod +x ./code-server

 

2. 방화벽 설정

$ iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT
$ iptables -I OUTPUT 1 -p tcp --sport 8080 -j ACCEPT

 

3. 암호설정

서버를 웹 주소로 오픈하기 때문에, 암호가 없으면 누구라도 들어올 수 있어 굉장히 위험합니다. 꼭 어려운 암호로 설정해주세요.

echo "export PASSWORD='{내가설정하고싶은비밀번호}'" >> ~/.bashrc
source ~/.bashrc

 

4. code-server  실행하기

./code-server

실행결과

info  Server listening on http://localhost:8080
info    - Using custom password for authentication
info    - Not serving HTTPS

 

5. 웹브라우저로 접속하기

크롬으로 다음 주소로 접속한다.

localhost:8080
(내.ip.주소):8080

 

6. 비밀번호 입력


자동 실행 설정하기

code-server가 마음에 드셨나요?
그렇다면 리눅스를 실행시킬 때 자동으로 code-server가 실행되도록 init service를 설정하겠습니다.

먼저, 바이너리 파일을 옮겨줍니다. 보통 일반 사용자를 위한 바이너리 파일은 /usr/local/bin의 경로에 보관합니다.

5-1. 바이너리 파일 옮겨주기

sudo mv ~/Downloads/coder /usr/local/bin/coder

5-2. 자동실행 systemd 설정하기

sudo vi /etc/systemd/system/code-server.service

아래 내용을 입력해줍니다. 이때 <USER>는 리눅스의 user명으로 바꾸어주세요.

  • Systemd

[Unit] Description=Code Server IDE After=network.target [Service] Type=simple User=<USER> EnvironmentFile=~/.profile EnvironmentFile=/etc/systemd/system/code-server.service.d/override.conf WorkingDirectory=~ Restart=on-failure RestartSec=10 ExecStart=/usr/local/bin/coder/code-server $(pwd) StandardOutput=file:/var/log/code-server-output.log StandardError=file:/var/log/code-server-error.log [Install] WantedBy=multi-user.target

5-3. 암호 설정파일 만들기

  • 설정파일 만들기

sudo vi /etc/systemd/system/code-server.service.d/override.conf

아래와 같이 작성합니다.
{내 비밀번호}를 내가 원하는 비밀번호로 바꾸어주세요.
꼭! 어려운걸로 만드시길 바랍니다.

PASSWORD='{내 비밀번호}'

입력했으면, esc+:wq!로 저장 후 빠져나옵니다.

5-4. 서비스 시작하기

servicemd를 시작해줍니다.

systemctl restart code-server

output

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to start 'code-server.service'. Authenticating as: eungbean,,, (eungbean) Password: ==== AUTHENTICATION COMPLETE ===

위와같이 나오면 성공입니다.
혹시 나중에 서비스를 중지하려면, 다음 명령어로 중지할 수 있습니다.

#(선택) 서비스 중지하기 sudo service stop code-server


6. 접속해보세요!