Tailscale内に立てたWEBサービスにSSL証明書を適用する
投稿日: 2026/02/24
Tailscaleのネットワーク内でのみ使うWEBサービスをhttpsで快適に使う方法です

Obsidian用のDBをセルフホストしたので備忘録的に書いておきます。
前提は以下の通りです。
まずはProxmox上にベースとなるlxcを立てます。
ベースイメージは ubuntu-24.04-standard_24.04-2_amd64.tar.zst にしました。Proxmoxのテンプレートにあります。
Proxmox上で作業している場合、lxc上でTailscaleを使うためProxmoxホストの /etc/pve/lxc/{ID}.conf に以下を追記しておきます。
(起動後に書き込んだ場合はlxcを再起動する必要があります)
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file以下コマンドで必要なものをインストールします。
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupgsudo apt-get update
sudo apt-get install ca-certificates curl gnupg
# 公式GPGキーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリをAPTソースに追加
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# インストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugincurl -fsSL https://tailscale.com/install.sh | shログインも済ませておきます。
tailscale upTailscale上でのIPアドレスをDNS解決できるようにしておきます。
この後はrootでないユーザーで作業します。
下記コマンドでユーザーを作成した後、exitしてログインしなおせばよいです。(user という名前のユーザーが作成されます)
sudo useradd -m -s /bin/bash -G docker user
sudo passwd userさっそくDBを導入します。
CouchDBを立てるための docker-compose.yml を用意します。
services:
obsidian-db:
image: couchdb:latest
container_name: obsidian-db
restart: always
expose:
- "5984"
environment:
- COUCHDB_USER=admin
- COUCHDB_PASSWORD={適当なパスワード}
volumes:
- ./couchdb-data:/opt/couchdb/data
nginx-proxy:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: always
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencryptこの後は 過去のページ の要領で接続できるようにセットアップします。
ドメインでアクセスできるようになったら、https://{ドメイン}/_utils/#setup にアクセスします。
ここで docker-compose.yml に書いたアカウント名とパスワードでログインできればOKです。
CORSの設定もしておきます。画面左側の歯車マークをクリックして『CORS』で『Enable』を選択、『All domains』を許可しておきます。
ObsidianのアプリからDBに接続してみます。
コミュニティプラグインから Self-hosted LiveSync を導入します。
モーダルが出てくるので以下の順で設定します。
これで成功すれば初期設定は完了です。
同期設定を『LiveSync』にしておきます。
『イベント時』になっていると同期頻度が低くなってしまいます。
無事にObsidianのセットアップができました。スマホとPCで同期できていることを確認しました。
プラグインを入れると色々と便利になるようなので試してみたいです。