feat: Add Portracker service with Synology setup guides and scripts
This commit is contained in:
37
portracker/SETUP.md
Normal file
37
portracker/SETUP.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Service Setup Guide: Portracker
|
||||
|
||||
Portracker is a real-time port monitoring and service discovery tool.
|
||||
|
||||
## 1. Pre-Setup (Manual)
|
||||
### Create Service User
|
||||
- [ ] **Manual**: Create a local user named `svc-portracker` in Synology DSM (Control Panel > User & Group).
|
||||
- [ ] **Manual**: Give this user read/write access to the `docker` shared folder.
|
||||
|
||||
### Get User IDs
|
||||
- [ ] **Manual**: SSH into your NAS and run `id svc-portracker`.
|
||||
- [ ] **Action**: Record the `uid` (PUID) and `gid` (PGID) for use in Portainer.
|
||||
|
||||
## 2. Infrastructure Setup
|
||||
### Run Setup Script
|
||||
- [ ] **Action**: Run the setup script to initialize the data directory:
|
||||
```bash
|
||||
sudo bash create_portracker_folders.sh
|
||||
```
|
||||
- **What it does**:
|
||||
- Creates `/volume1/docker/portracker/data`.
|
||||
- Sets ownership to the `svc-portracker` user (Note: You may need to edit the script with your specific PUID/PGID before running).
|
||||
|
||||
## 3. Portainer Deployment
|
||||
### Environment Variables
|
||||
- [ ] **Action**: In the Portainer Stack configuration, add the following environment variables:
|
||||
- `PUID=[Your UID]`
|
||||
- `PGID=[Your GID]`
|
||||
- `TZ=[Your Timezone, e.g., America/Toronto]`
|
||||
|
||||
### Deploy Stack
|
||||
- [ ] **Action**: Create a new stack named `portracker`.
|
||||
- [ ] **Action**: Paste the content of `docker-compose.portainer.yml` and deploy.
|
||||
- [ ] **Verification**: Access the dashboard at `http://[NAS_IP]:4999`.
|
||||
|
||||
> [!NOTE]
|
||||
> This service requires access to the Docker socket and host PID to monitor network services. It runs with elevated capabilities (`SYS_PTRACE`, `SYS_ADMIN`).
|
||||
14
portracker/create_portracker_folders.sh
Normal file
14
portracker/create_portracker_folders.sh
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Define base path
|
||||
BASE="/volume1/docker/portracker"
|
||||
|
||||
# Create folders
|
||||
mkdir -p "${BASE}/data"
|
||||
|
||||
# Set ownership and permissions
|
||||
# IMPORTANT: Replace 1024:100 with your actual PUID:PGID if necessary
|
||||
# By default, we initialize it and you can adjust via Synology File Station if needed.
|
||||
chown -R 1024:100 "${BASE}"
|
||||
chmod -R 750 "${BASE}"
|
||||
|
||||
echo "Folders created and permissions set for ${BASE}"
|
||||
26
portracker/docker-compose.portainer.yml
Normal file
26
portracker/docker-compose.portainer.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
services:
|
||||
portracker:
|
||||
image: mostafawahied/portracker:latest
|
||||
container_name: Portracker
|
||||
security_opt:
|
||||
- apparmor:unconfined
|
||||
pid: host
|
||||
cap_add:
|
||||
- SYS_PTRACE
|
||||
- SYS_ADMIN
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "nc -z 127.0.0.1 4999 || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 90s
|
||||
ports:
|
||||
- 4999:4999
|
||||
volumes:
|
||||
- /volume1/docker/portracker/data:/data:rw
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
environment:
|
||||
- PUID=${PUID:-1024}
|
||||
- PGID=${PGID:-100}
|
||||
- TZ=${TZ:-America/Toronto}
|
||||
restart: on-failure:5
|
||||
Reference in New Issue
Block a user