Shared on Tensorflow KR facebook group. 텐ㅡ하!

얼마 전 ipad를 구입하고 코딩할 방법을 찾다가, 재미있는 repository를 찾았습니다.
리눅스 서버에 VS Code IDE 자체를 웹상에 띄워놓고, 원격에서 웹브라우저를 이용해서 코딩을 하는 방법입니다.

누가 써야하는가?

심지어, 이런 것도 가능합니다!

191104-vscode-ipad

아이패드 뿐 아니라, 랩탑 (윈도우/맥/크롬북), 스마트폰, TV, 냉장고 웹브라우저만 있다면 바로 코딩할 수 있습니다.

더욱 자세한 내용은, code-server github repository을 참고해주세요.

그럼 이제부터 시작해보겠습니다. 한줄한줄 따라오세요!

via GIPHY

0. (선택) Docker로 설치하기

2019.11.11 추가 : Docker 이미지를 만들었어요!

간편한 설치를 위해서, dockerfile을 만들어 배포합니다. 설치되는 내용을 보시고 싶으면 이곳 Dockerfile 을 참고해주세요. 그리고, github ⭐️도 잊지마세요 😉

아래 명령어를 실행시키되, 아래 두가지만 수정해주세요.

sudo docker run --gpus all -it \
-p 7000:8080 -p 7006-7015:6006-6015 \
-v ~/docker:/data \
--name code \
-e PASSWORD="0000" \
--ipc=host eungbean/deepo:code /coder/code-server

1. 리눅스 서버에 code-server 설치하기

먼저 github의 바이너리를 다운받겠습니다.

1-1. 다운로드 및 권한 부여

cd ~/Downloads
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

1-2. 방화벽 설정

sudo ufw allow 80/tcp

2. 암호 설정하기

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

2-1. 설정파일 만들기


3. code-server 실행하기

./code-server

output

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

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

이제 크롬에서 다음 주소로 접속합니다.

191104-remote-vscode-login

로그인 창이 떴나요? 성공입니다!

191104-remote-vscode-login

노트북상에서 접속했는데, TITAN GPU가 정확히 잡히는 것 을 볼 수 있습니다.


5.자동 실행 설정하기

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명으로 바꾸어주세요.

[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. 접속해보세요!

191104-remote-vscode-login

접속이 되었나요? 축하드립니다!


마치며.

축하드립니다.

이제, 주소를 즐겨찾기에 저장하고 어디서든지 편리하게 코딩을 즐겨보세요!

via GIPHY

Comments

Eungbean Lee's Picture

About Eungbean Lee

Lee is a Student, Programmer, Engineer, Designer and a DJ

Seoul, South Korea https://eungbean.github.io