一键导入
fileserver-guide
NixOS file server setup and configuration using Tailscale VPN, Samba/CIFS, NFS, and SFTP with security design and client access methods
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
NixOS file server setup and configuration using Tailscale VPN, Samba/CIFS, NFS, and SFTP with security design and client access methods
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | fileserver-guide |
| description | NixOS file server setup and configuration using Tailscale VPN, Samba/CIFS, NFS, and SFTP with security design and client access methods |
NixOSをファイルサーバとしても活用するための設計案です。既存のNixOS環境を活かしながら、Tailscale VPNによるセキュアなリモートアクセスと高性能なファイルサーバ機能を追加します。
/mnt/sda1: ext4 (UUID: 71323b1e-e85e-4658-b2f1-ce64474bb85b)/mnt/sdb1: ext4 (UUID: d002ced3-af30-411f-8d52-eb71b53ea6cf)インターネット → Tailscale VPN → ファイルサーバ
(認証済みのみ)
public: 一般的なファイル共有media: 動画・音楽ファイル(読み取り専用)backup: バックアップデータ(Time Machine対応)docker: Docker volume用dev: 開発用ファイル/mnt/sda1 (プライマリストレージ)
├── /shares/public # パブリック共有
├── /shares/media # メディアファイル
├── /shares/backup # バックアップ
└── /shares/docker # Docker volumes
/mnt/sdb1 (セカンダリストレージ/冗長化)
├── /backup/sda1-mirror # sda1のミラー
└── /shares/archive # アーカイブ
ACL運用の詳細は docs/72_tailscale_acl.md を参照。
fileserver: ファイルサーバ管理media: メディアファイルアクセスbackup: バックアップデータアクセスnetworking.firewall = {
enable = true;
# Tailscaleインターフェースを信頼済みとして設定
trustedInterfaces = [ "tailscale0" ];
# VPN経由のみ許可、外部アクセス無効
allowedTCPPorts = [
# SSH, SMB, NFSはTailscale経由のみアクセス可能
];
allowedUDPPorts = [
41641 # Tailscale
];
};
# Tailscale設定
services.tailscale = {
enable = true;
useRoutingFeatures = "server"; # Exit Node機能
};
nixos/
├── services/
│ ├── fileserver/
│ │ ├── default.nix # メインモジュール
│ │ ├── samba.nix # Samba設定
│ │ ├── nfs.nix # NFS設定
│ │ ├── monitoring.nix # 監視設定
│ │ └── backup.nix # バックアップ設定
│ ├── tailscale/
│ │ ├── default.nix # Tailscale基本設定
│ │ └── (ACLはAdmin Consoleで管理)
│ └── default.nix # 既存(fileserver, tailscale追加)
└── storage/
├── default.nix # ストレージ管理
└── directories.nix # ディレクトリ作成
Tailscale VPN設定
基本ファイルサーバモジュール作成
Samba設定
NFS設定
セキュリティ強化
監視・バックアップ
# nixos/services/tailscale/default.nix
{ config, pkgs, ... }:
{
# Tailscaleサービス有効化
services.tailscale = {
enable = true;
useRoutingFeatures = "server"; # Exit Node機能
};
# ファイアウォール設定
networking.firewall = {
enable = true;
trustedInterfaces = [ "tailscale0" ];
allowedUDPPorts = [ 41641 ]; # Tailscale
};
# systemd-resolvedとの統合
services.resolved.enable = true;
# 自動接続サービス
systemd.services.tailscale-autoconnect = {
description = "Automatic connection to Tailscale";
after = [ "network-pre.target" "tailscale.service" ];
wants = [ "network-pre.target" "tailscale.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "oneshot";
script = with pkgs; ''
sleep 2
status="$(${tailscale}/bin/tailscale status -json | ${jq}/bin/jq -r .BackendState)"
if [ $status = "Running" ]; then
exit 0
fi
${tailscale}/bin/tailscale up --accept-routes --advertise-exit-node
'';
};
}
services.samba = {
enable = true;
securityType = "user";
shares = {
public = {
path = "/mnt/sda1/shares/public";
browseable = "yes";
"read only" = "no";
};
media = {
path = "/mnt/sda1/shares/media";
browseable = "yes";
"read only" = "yes";
};
backup = {
path = "/mnt/sda1/shares/backup";
browseable = "yes";
"read only" = "no";
};
};
};
services.nfs.server = {
enable = true;
exports = '''
/mnt/sda1/shares/docker 192.168.1.0/24(rw,sync,no_subtree_check)
/mnt/sda1/shares/dev 192.168.1.0/24(rw,sync,no_subtree_check)
''';
};
# 1. 設定適用
sudo nixos-rebuild switch
# 2. Tailscale認証(初回のみ)
sudo tailscale up --accept-routes --advertise-exit-node
# → ブラウザでOAuth認証を実行
# 3. Tailscale ACL設定(Admin Console)
# - SSHアクセスが必要ならSSHルールを追加
# - このリポジトリではACLは管理しない
# 4. ディレクトリ作成(自動化予定)
sudo mkdir -p /mnt/sda1/shares/{public,media,backup,docker}
sudo mkdir -p /mnt/sdb1/{backup,shares/archive}
# 5. 権限設定
sudo chown -R miyoshi_s:users /mnt/sda1/shares
sudo chmod -R 755 /mnt/sda1/shares
# 6. Sambaユーザー追加
sudo smbpasswd -a miyoshi_s
# 7. Tailscale設定確認
tailscale status
tailscale netcheck
# Tailscale状態確認
tailscale status
tailscale netcheck
systemctl status tailscaled
# サービス状態確認
systemctl status smbd nmbd
systemctl status nfs-server
# 接続確認
smbclient -L nixos.tail-scale.ts.net -U miyoshi_s
showmount -e nixos.tail-scale.ts.net
# ログ確認
journalctl -u tailscaled -f
journalctl -u smbd -f
journalctl -u nfs-server -f
各クライアントデバイスでTailscaleに接続済みである必要があります。
# クライアントでTailscale接続
tailscale up
# Finder → サーバへ接続
smb://nixos.tail-scale.ts.net/public
# または Magic DNS使用
smb://nixos/public
# エクスプローラーのアドレスバー
\\nixos.tail-scale.ts.net\public
# または Magic DNS使用
\\nixos\public
# SMB
sudo mount -t cifs //nixos.tail-scale.ts.net/public /mnt/fileserver -o username=miyoshi_s
# NFS
sudo mount -t nfs nixos.tail-scale.ts.net:/mnt/sda1/shares/docker /mnt/docker-data
# Magic DNS使用の場合
sudo mount -t cifs //nixos/public /mnt/fileserver -o username=miyoshi_s
sudo mount -t nfs nixos:/mnt/sda1/shares/docker /mnt/docker-data
Tailscale接続できない
tailscale netcheckでネットワーク診断SMB接続できない
NFS接続できない
権限エラー
# Tailscale
journalctl -u tailscaled -n 50
tailscale status --verbose
tailscale netcheck
# Samba
journalctl -u smbd -n 50
journalctl -u nmbd -n 50
# NFS
journalctl -u nfs-server -n 50
# システム全体
dmesg | tail -50
Step-by-step installation guide for Nix and dotfiles setup including nix.conf configuration, channel updates, home-manager, and nix-darwin
スキルのプロンプト品質を評価・チューニングする。スキルを書いたあと別のサブエージェントに実行させ、不明瞭点・自動補完箇所・達成率をレポートさせて反復改善する。Use when you want to evaluate or tune a SKILL.md prompt quality. Ref: https://zenn.dev/mizchi/articles/empirical-prompt-tuning
Generate professional English commit messages with gitmoji based on git diff. Use when creating commit messages, analyzing staged changes, or formatting commits according to conventional commits + gitmoji style.
Generate professional English commit messages with gitmoji based on git diff. Use when creating commit messages, analyzing staged changes, or formatting commits according to conventional commits + gitmoji style.
NPM tools and package management using mise including commitizen, cz-git, and global package configuration
System services configuration guide including AeroSpace, JankyBorders, and AltTab on macOS