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