2024年2月14日水曜日

VSCodeServer(code-server)

VSCodeをエディタとして使うことが多くなった。
MarkdownやMindmapや解像度を上げる作業に便利。

PCならVSCodeをインストールすればよいのだけれど、持っているChomebookではlinuxの仮想環境の上に動かすため、どうしてももっさりしてしまう。

以下のようなサービスもあるけど、経験として自宅サーバーで構築したかった。
https://vscode.dev/

code-server

これを自宅サーバーで動かして、SSHトンネリングでアクセスする

公式
https://github.com/coder/code-server
インストール方法
https://coder.com/docs/code-server/latest/install#debian-ubuntu

参考
https://qiita.com/plumchang/items/2229bda056d0f1ef3434
https://zenn.dev/kato_k/articles/6301d35b3d8d3c

インストール

curl -fsSL https://code-server.dev/install.sh | sh

設定ファイル

$ cat ~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8282
auth: none
cert: false

nextcloudで自動同期

code-serverではリモート先のファイルを編集するため、ローカルや他のPCとの同期が難しい。
そこで、nextcloudで同期させようと思った。

クライアントソフト

GUIは以下で、自動同期される
https://nextcloud.stylez.co.jp/nextcloud-desktop-client

CLIは以下で、自動同期されない
https://docs.nextcloud.com/desktop/3.11/advancedusage.html#nextcloud-command-line-client

参考
https://ritaiz.com/articles/steps-to-install-nextcloud-cli-client-on-ubuntu

CLI

nextcloudcmd -u username -p password --path /Documents/path $HOME/ドキュメント/ https://****.mydns.jp:port/

systemdを使った自動同期

linuxでcronの変わりにsysemd timerでスクリプトを実行したい。

Serviceファイルの作成

systemdが実行するサービスファイルを作成する。
このファイルは、どのスクリプトを、どのユーザーとして実行するかを指定する。

$ cat /etc/systemd/system/adeno-sync-nextcloud.service 
[Unit]
Description=Sync nextcloud script

[Service]
Type=simple
User=adeno
ExecStart=/home/adeno/ドキュメント/nextcloud_sync.sh

[Install]
WantedBy=multi-user.target

Timerファイルの作成

次に、いつサービスを実行するかを指定するtimerファイルを作成する
1分毎に同期を実施する

$ cat /etc/systemd/system/adeno-sync-nextcloud.timer 
[Unit]
Description=Runs my custom script

[Timer]
OnCalendar=*:*:00

Persistent=true
Unit=adeno-sync-nextcloud.service

systemdのリロード

systemdが新しいファイルを認識するように、systemdの設定をリロードする。

sudo systemctl daemon-reload

Timerの有効化と起動

有効化し、起動する

sudo systemctl enable adeno-sync-nextcloud.timer 
sudo systemctl start adeno-sync-nextcloud.timer 

nextcloudのmarkdownビューアー

Markdown Editor
Notes