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