Files
runtipi/apps/nas-samba/docker-compose.json
alexz b1697d6e1e nas-samba v2.0.0: per-user home directories, Samba accounts, remove quotas
- Each user gets a Linux + Samba account and home dir at /nas/home/<username>/
- Web UI file browsing scoped to per-user directories
- Creating/deleting users from web UI also manages system + Samba accounts
- Replaced hardcoded [data] SMB share with [homes] (per-user automatic shares)
- Removed hardcoded alexz user from entrypoint — server.js handles all user management
- Removed storage quotas from backend and frontend
- Existing users get home directories auto-created on startup (migration)
2026-04-26 05:51:23 +00:00

34 lines
1.0 KiB
JSON

{
"schemaVersion": 2,
"$schema": "https://schemas.runtipi.io/dynamic-compose.json",
"services": [
{
"name": "nas-samba",
"image": "git.alexzaw.dev/alexz/nas-samba:2.0.0",
"isMain": true,
"internalPort": 8080,
"hostname": "nas.alexzaw.dev",
"addPorts": [
{ "hostPort": 445, "containerPort": 445, "interface": "${BIND_IP}" },
{ "hostPort": 139, "containerPort": 139, "interface": "${BIND_IP}" }
],
"volumes": [
{ "hostPath": "${NAS_PATH:-/nas}", "containerPath": "/nas" },
{ "hostPath": "${APP_DATA_DIR}/data/config", "containerPath": "/config" }
],
"environment": [
{ "key": "SMB_PASSWORD", "value": "${SMB_PASSWORD}" },
{ "key": "JWT_SECRET", "value": "${JWT_SECRET}" },
{ "key": "TZ", "value": "${TZ}" }
],
"healthCheck": {
"test": "curl --fail http://127.0.0.1:8080/api/health || exit 1",
"interval": "30s",
"timeout": "10s",
"retries": 3,
"startPeriod": "15s"
}
}
]
}