# SVR52 Samba Client Setup (Omarchy / Arch Linux)

## Purpose

This document describes the complete client-side configuration for automatically connecting to the Samba share hosted on **svr52** (a Raspberry Pi server) from another Linux machine running Omarchy/Arch.

The server is accessed primarily over **Tailscale**, meaning the machine may not be on the same LAN.

The goal is:

* Automatically access the Samba share after boot.
* Do **not** fail boot if the server is unavailable.
* Wait until the share is actually accessed before attempting to connect.
* Work reliably with Tailscale's startup delay.

---

# Server Information

Hostname:

```text
svr52
```

Samba user:

```text
ta52
```

Primary share:

```text
smb
```

Mount point on client:

```text
/home/milan/svr52
```

---

# Required packages

Arch:

```bash
sudo pacman -S cifs-utils smbclient
```

---

# Verify connectivity

List available shares:

```bash
smbclient -L //svr52 -U ta52
```

Expected shares:

```
smb
ta52
print$
IPC$
```

---

# Credentials file

Create:

```bash
mkdir -p ~/.smb
nano ~/.smb/svr52
```

Contents:

```text
username=ta52
password=costarica
```

Protect it:

```bash
chmod 600 ~/.smb/svr52
```

---

# Create mountpoint

```bash
mkdir -p ~/svr52
```

---

# /etc/fstab

Append:

```fstab
//svr52/smb /home/milan/svr52 cifs credentials=/home/milan/.smb/svr52,uid=1000,gid=1000,_netdev,nofail,x-systemd.automount,x-systemd.idle-timeout=10min 0 0
```

### Explanation

* `credentials=...`
  Uses the credentials file.

* `uid=1000,gid=1000`
  Files appear owned by the normal user.

* `_netdev`
  Marks this as a network filesystem.

* `nofail`
  Boot continues even if the server is unreachable.

* `x-systemd.automount`
  Do **not** mount during boot.
  Mount only when the directory is first accessed.

* `x-systemd.idle-timeout=10min`
  Automatically unmount after 10 minutes of inactivity.

---

# Reload systemd

```bash
sudo systemctl daemon-reload
```

---

# Test

Unmount if currently mounted:

```bash
sudo umount ~/svr52
```

Start automount:

```bash
sudo systemctl start home-milan-svr52.automount
```

Status should show:

```
Active: active (waiting)
```

---

# Verify automount

Before accessing:

```bash
findmnt ~/svr52
```

Expected:

```
autofs
```

Access the folder:

```bash
ls ~/svr52
```

Then verify:

```bash
findmnt ~/svr52
```

Expected:

```
autofs
└── cifs //svr52/smb
```

This confirms the automount triggered successfully.

---

# Why automount is required

A normal fstab mount fails because:

1. systemd processes `/etc/fstab`
2. Tailscale has **not yet connected**
3. `svr52` cannot be reached
4. Samba mount fails

Automount fixes this because:

1. Boot finishes normally.
2. Tailscale connects.
3. User later opens:

```
~/svr52
```

4. systemd performs the mount only then.

This completely avoids boot-time race conditions.

---

# Useful commands

List shares:

```bash
smbclient -L //svr52 -U ta52
```

Manual mount:

```bash
sudo mount -a
```

Unmount:

```bash
sudo umount ~/svr52
```

Status:

```bash
systemctl status home-milan-svr52.automount
```

Verify mount:

```bash
findmnt ~/svr52
```

Reload systemd after editing fstab:

```bash
sudo systemctl daemon-reload
```

---

# Current Working Configuration

* Client OS: Omarchy (Arch Linux)
* Transport: Tailscale
* Hostname: `svr52`
* Share: `smb`
* Credentials file: `~/.smb/svr52`
* Mount point: `/home/milan/svr52`
* Mount type: CIFS
* Mount strategy: `systemd` automount
* Idle timeout: 10 minutes

This configuration has been tested and confirmed working. The Samba share mounts automatically on first access after Tailscale is connected, eliminating boot-time failures caused by network startup timing.

