Docs: update Discord agent configuration and fix syntax issues
- Update AGENTS.md with current Discord agent configuration - Add discord-agent service details - Update storage structure to include discord-agent directory - Update README.md Discord agent integration section - Correct LLM configuration from OpenCode to Ollama - Update environment variables and configuration details - Fix storage structure documentation - Update RESTORE.md Discord agent restoration steps - Correct service configuration for Ollama integration - Add proper troubleshooting steps - Update environment variable documentation - Fix docker-compose.yaml Discord agent environment variables - Add DISCORD_BOT_TOKEN, OLLAMA_ENDPOINT, OLLAMA_MODEL - Correct database and network configuration - Add AGENTS.md to .gitignore tracked files - Remove old discord agent versions and test files - Create working discord_agent.py and health_check.py
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -7,6 +7,7 @@
|
|||||||
!.gitignore
|
!.gitignore
|
||||||
!README.md
|
!README.md
|
||||||
!RESTORE.md
|
!RESTORE.md
|
||||||
|
!AGENTS.md
|
||||||
|
|
||||||
# Never track actual secrets
|
# Never track actual secrets
|
||||||
.env
|
.env
|
||||||
|
|||||||
211
AGENTS.md
Normal file
211
AGENTS.md
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
# AGENTS - Docker Infrastructure Documentation
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This document provides a comprehensive overview of the Docker infrastructure managed in `/docker/`. This self-hosted ecosystem contains 30+ services organized into functional categories, all integrated through a reverse proxy and secured with proper network segmentation.
|
||||||
|
|
||||||
|
## Core Infrastructure Agents
|
||||||
|
|
||||||
|
### Management & Monitoring
|
||||||
|
- **Glances** - System monitoring dashboard with hardware access
|
||||||
|
- **Portainer** - Container management UI (port 9443)
|
||||||
|
- **Watchtower** - Automated container updates (daily polling)
|
||||||
|
- **Homepage** - Service dashboard (port 7575)
|
||||||
|
|
||||||
|
### Reverse Proxy & Security
|
||||||
|
- **Nginx Proxy Manager** - SSL termination and reverse proxy (ports 80, 443, 81)
|
||||||
|
- **Docker Socket Proxy** - Secure Docker API access (port 2375)
|
||||||
|
|
||||||
|
## Media & Entertainment Stack
|
||||||
|
|
||||||
|
### Media Server
|
||||||
|
- **Jellyfin** - Media server with hardware transcoding (port 8096)
|
||||||
|
- Intel GPU acceleration via render device
|
||||||
|
- NAS storage integration
|
||||||
|
|
||||||
|
### Download & Index Management
|
||||||
|
- **qBittorrent** - Torrent client (ports 56881, 7070)
|
||||||
|
- **Prowlarr** - Indexer manager (port 9696)
|
||||||
|
- **FlareSolverr** - Cloudflare bypass service (port 8191)
|
||||||
|
|
||||||
|
### Content Management
|
||||||
|
- **Radarr** - Movie management (port 7878)
|
||||||
|
- **Sonarr** - TV show management (port 8989)
|
||||||
|
- **Lidarr** - Music management (port 8686)
|
||||||
|
- **Bazarr** - Subtitle management (port 6767)
|
||||||
|
- **Jellyseerr** - Media request system (port 5055)
|
||||||
|
|
||||||
|
### File Sharing
|
||||||
|
- **Slskd** - Soulseek file sharing client (ports 5030, 5031, 50300)
|
||||||
|
|
||||||
|
## Document & Data Management
|
||||||
|
|
||||||
|
### Document Processing
|
||||||
|
- **Paperless-ngx** - Document management (port 8100)
|
||||||
|
- MariaDB database, Redis broker, Tika text extraction, Gotenberg PDF processing
|
||||||
|
- **Stirling-PDF** - PDF manipulation tools (port 8090)
|
||||||
|
- **OnlyOffice** - Document collaboration (port 8091)
|
||||||
|
|
||||||
|
### Photo Management
|
||||||
|
- **Immich** - AI-powered photo management (port 2283)
|
||||||
|
- PostgreSQL with vector search, Redis cache
|
||||||
|
- Local SSD storage for config and thumbs
|
||||||
|
|
||||||
|
### File Synchronization
|
||||||
|
- **Syncthing** - File synchronization (ports 21027, 22000, 8384)
|
||||||
|
- Obsidian vault synchronization
|
||||||
|
- Multiple shared folders
|
||||||
|
|
||||||
|
## AI & Development Services
|
||||||
|
|
||||||
|
### AI Infrastructure
|
||||||
|
- **Open WebUI** - LLM interface (port 3000)
|
||||||
|
- **LiteLLM** - AI gateway (port 4000)
|
||||||
|
- PostgreSQL database for configuration
|
||||||
|
- Supports multiple AI providers
|
||||||
|
|
||||||
|
### Development Tools
|
||||||
|
- **Gitea** - Git service (ports 222, 8418)
|
||||||
|
- MySQL database
|
||||||
|
- **Newt** - AI service integration
|
||||||
|
|
||||||
|
## Genealogy & Personal Tools
|
||||||
|
|
||||||
|
### Family History
|
||||||
|
- **GrampsWeb Jamie** - Genealogy UI (port 5511)
|
||||||
|
- **GrampsWeb Helen** - Genealogy UI (port 5512)
|
||||||
|
- Shared Redis broker
|
||||||
|
- Separate trees for different family branches
|
||||||
|
|
||||||
|
### Finance & Tracking
|
||||||
|
- **WYGIWYH** - Financial tracking (port 9008)
|
||||||
|
- PostgreSQL database
|
||||||
|
- **Speedtest Tracker** - Network monitoring (port 8180)
|
||||||
|
- MariaDB database, automated testing
|
||||||
|
|
||||||
|
### Music & Scrobbling
|
||||||
|
- **Maloja** - Music scrobbling service (port 42010)
|
||||||
|
- **Multi-Scrobbler** - Cross-platform scrobbling (port 9078)
|
||||||
|
- Integrates with Jellyfin and Last.fm
|
||||||
|
|
||||||
|
## Utilities & External Services
|
||||||
|
|
||||||
|
### Remote Access
|
||||||
|
- **RustDesk** - Remote desktop (host mode)
|
||||||
|
|
||||||
|
### Network Tools
|
||||||
|
- **iperf3-server** - Network performance testing (port 5201)
|
||||||
|
|
||||||
|
### Discord Bot (OpenCode)
|
||||||
|
- **Service**: Discord Agent Bot
|
||||||
|
- **Role**: AI-powered Discord bot using Ollama LLM
|
||||||
|
- **Container**: `discord-agent`
|
||||||
|
- **Network**: `internal_net`, `db_net`
|
||||||
|
- **Configuration**: `/docker/discord-agent/config/agent-config.yaml`
|
||||||
|
- **Data**: `/docker/discord-agent/data/`
|
||||||
|
- **LLM**: Ollama (mistral-3:8b) at `http://192.168.0.31:11434`
|
||||||
|
- **Features**: Discord commands, service integrations, AI chat capabilities
|
||||||
|
- **Database**: MySQL for conversation persistence
|
||||||
|
- **Cogs**: Modular architecture with base_cog and integration_cog
|
||||||
|
|
||||||
|
### RedBot
|
||||||
|
- **Service**: RedBot Discord Bot
|
||||||
|
- **Role**: Alternative Discord bot with custom cogs
|
||||||
|
- **Container**: `redbot`
|
||||||
|
- **Network**: `web_net`
|
||||||
|
|
||||||
|
### Other Tools
|
||||||
|
- **ByteStash** - File sharing service
|
||||||
|
- **KitchenOwl** - Recipe management
|
||||||
|
- **PinchFlat** - Cycling tracking
|
||||||
|
|
||||||
|
## Network Architecture
|
||||||
|
|
||||||
|
### Docker Networks
|
||||||
|
- **media_net** - Media services and *arr stack
|
||||||
|
- **db_net** - Database services (internal only)
|
||||||
|
- **web_net** - Web-accessible services
|
||||||
|
- **internal_net** - Internal service communication
|
||||||
|
|
||||||
|
### Storage Structure
|
||||||
|
```
|
||||||
|
/docker/
|
||||||
|
├── Arrs/ (Media stack: Prowlarr, Radarr, Sonarr, Lidarr, Bazarr, Jellyfin, Jellyseerr)
|
||||||
|
├── immich/ (Photo management)
|
||||||
|
├── paperless/ (Document management)
|
||||||
|
├── litellm/ (AI gateway)
|
||||||
|
├── discord-agent/ (Discord bot with Ollama LLM integration)
|
||||||
|
├── gitea/ (Git service)
|
||||||
|
├── gramps-jamie/ (Genealogy)
|
||||||
|
├── gramps-helen/ (Genealogy)
|
||||||
|
├── npm/ (Nginx Proxy Manager)
|
||||||
|
├── qBittorrent/ (Download client)
|
||||||
|
├── slskd/ (Soulseek client)
|
||||||
|
├── speedtest-tracker/ (Network monitoring)
|
||||||
|
├── maloja/ (Music scrobbling)
|
||||||
|
├── scrobble/ (Multi-scrobbler)
|
||||||
|
├── syncthing/ (File sync)
|
||||||
|
├── Homepage/ (Dashboard)
|
||||||
|
└── Various other service configs
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Features & Configuration
|
||||||
|
|
||||||
|
### Security
|
||||||
|
- Container security with `no-new-privileges:true`
|
||||||
|
- Network segmentation (databases internal-only)
|
||||||
|
- Automated updates via Watchtower
|
||||||
|
- Reverse proxy with SSL termination
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
- Intel GPU hardware acceleration for Jellyfin
|
||||||
|
- Log rotation (10MB max, 3 files)
|
||||||
|
- Resource limits (Portainer: 512MB RAM)
|
||||||
|
|
||||||
|
### Data Management
|
||||||
|
- Comprehensive backup script included
|
||||||
|
- Separate volumes for critical data
|
||||||
|
- NAS storage integration for media files
|
||||||
|
|
||||||
|
### Environment
|
||||||
|
- System configured for Pacific/Auckland timezone
|
||||||
|
- PUID/PGID for proper file permissions
|
||||||
|
- Extensive environment variable configuration
|
||||||
|
|
||||||
|
## Service Dependencies
|
||||||
|
|
||||||
|
### Database Services
|
||||||
|
- MariaDB instances for media stack, tracking, and document services
|
||||||
|
- PostgreSQL for AI services, photo management, and finance
|
||||||
|
- Redis for caching and message brokering
|
||||||
|
|
||||||
|
### Network Dependencies
|
||||||
|
- All web services route through Nginx Proxy Manager
|
||||||
|
- Internal services communicate via internal_net
|
||||||
|
- Media services isolated on media_net
|
||||||
|
- Database services on internal-only db_net
|
||||||
|
|
||||||
|
## Maintenance Agents
|
||||||
|
|
||||||
|
### Automated Tasks
|
||||||
|
- **Watchtower** - Daily container updates
|
||||||
|
- **Backup Script** - Regular data backups
|
||||||
|
- **Speedtest Tracker** - Automated network testing
|
||||||
|
|
||||||
|
### Manual Tasks
|
||||||
|
- Service monitoring via Glances
|
||||||
|
- Container management via Portainer
|
||||||
|
- Service configuration via Nginx Proxy Manager
|
||||||
|
|
||||||
|
## Development & Debugging
|
||||||
|
|
||||||
|
### Service Access
|
||||||
|
- **Web Services**: Access through reverse proxy (80/443)
|
||||||
|
- **Admin Interfaces**: Direct ports for management (e.g., 9443, 7575)
|
||||||
|
- **Internal Services**: Host-only access for security
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
- Container logs accessible via Portainer
|
||||||
|
- System metrics via Glances
|
||||||
|
- Network diagnostics via iperf3-server
|
||||||
|
|
||||||
|
This Docker infrastructure represents a comprehensive self-hosted ecosystem covering media management, document processing, AI services, development tools, and personal productivity applications, all integrated through a reverse proxy and organized with proper network segmentation.
|
||||||
67
README.md
67
README.md
@@ -35,19 +35,58 @@ This infrastructure manages a comprehensive self-hosted environment including me
|
|||||||
| Management & Infrastructure | Portainer | Container management UI | 9443 |
|
| Management & Infrastructure | Portainer | Container management UI | 9443 |
|
||||||
| Management & Infrastructure | Homepage | Service dashboard | 7575 |
|
| Management & Infrastructure | Homepage | Service dashboard | 7575 |
|
||||||
|
|
||||||
### External Non-Docker Services
|
### Discord Agent Integration
|
||||||
|
|
||||||
| Service Categories| Service | Role / Description | Web UI Port |
|
### Discord Bot Service
|
||||||
|---|---|---|---|
|
- **Service**: Discord Agent Bot
|
||||||
| Management & Infrastructure | Adguard | DNS/ad-blocking | 3000 |
|
- **Role**: AI-powered Discord bot using Ollama LLM
|
||||||
| Data Management | Vaultwarden | Password manager | 80/8080 |
|
- **Container**: `discord-agent`
|
||||||
| Entertainment | Crafty (Crafty Controller) | Minecraft server management | 3000 |
|
- **Network**: `internal_net`, `db_net`
|
||||||
| Data Management | Nextcloud | File sync and collaboration | 443 |
|
- **Web UI**: Discord (no direct web interface)
|
||||||
| Automation | Homeassistant | Home automation | 8123 |
|
- **Configuration**: `/docker/discord-agent/config/agent-config.yaml`
|
||||||
| Entertainment | Foundryvtt | Foundry VTT | 30000 |
|
- **Data**: `/docker/discord-agent/data/`
|
||||||
| Data Management | Openmediavault | NAS management | 80/443 |
|
|
||||||
| Website Hosting | Wordpress-irodori | WordPress site | 80 |
|
### Features
|
||||||
| Website Hosting | Wordpress-dustin | WordPress site | 80 |
|
- **AI Integration**: Uses Ollama LLM (mistral-3:8b) at `http://192.168.0.31:11434`
|
||||||
|
- **Modular Architecture**: Cogs for service integrations
|
||||||
|
- **Database Support**: MySQL for conversation persistence
|
||||||
|
- **Caching**: Redis for improved performance (configurable)
|
||||||
|
- **Security**: Discord role-based permissions
|
||||||
|
- **Logging**: Configurable logging levels (default: INFO)
|
||||||
|
- **Rate Limiting**: Built-in rate limiting for API calls
|
||||||
|
|
||||||
|
### Available Commands
|
||||||
|
- `!agent` - Chat with the AI assistant
|
||||||
|
- `!status` - Check bot status and latency
|
||||||
|
- `!help` - Show available commands
|
||||||
|
- Service integration commands (configurable)
|
||||||
|
|
||||||
|
### Configuration
|
||||||
|
- **Main Config**: `config/agent-config.yaml` (YAML-based with env var substitution)
|
||||||
|
- **Discord Token**: Sourced from `DISCORD_BOT_TOKEN` environment variable
|
||||||
|
- **Ollama Config**: Model, endpoint, temperature, top_p, top_k parameters
|
||||||
|
- **Integrations**: Configurable service integrations in YAML
|
||||||
|
|
||||||
|
### Environment Variables
|
||||||
|
```
|
||||||
|
DISCORD_BOT_TOKEN=your_discord_bot_token_here
|
||||||
|
OLLAMA_ENDPOINT=http://192.168.0.31:11434
|
||||||
|
OLLAMA_MODEL=mistral-3:8b
|
||||||
|
TZ=Pacific/Auckland
|
||||||
|
```
|
||||||
|
|
||||||
|
### Bot Architecture
|
||||||
|
- **Main Bot**: `discord_agent.py` - Core Discord bot implementation
|
||||||
|
- **Base Cog**: `cogs/base_cog.py` - Base functionality and commands
|
||||||
|
- **Integration Cog**: `cogs/integration_cog.py` - Service integrations
|
||||||
|
- **Config**: YAML-based configuration with environment variable substitution
|
||||||
|
- **Database**: MySQL with asyncpg driver for conversation history
|
||||||
|
|
||||||
|
### Security
|
||||||
|
- Runs on internal networks only
|
||||||
|
- Discord role-based access control
|
||||||
|
- Configurable rate limiting to prevent abuse
|
||||||
|
- No direct database access from external networks
|
||||||
|
|
||||||
|
|
||||||
### Network Segmentation
|
### Network Segmentation
|
||||||
@@ -65,12 +104,10 @@ This infrastructure manages a comprehensive self-hosted environment including me
|
|||||||
├── Homepage/
|
├── Homepage/
|
||||||
├── Arrs/ (Prowlarr, Radarr, Sonarr, Lidarr, Bazarr, Jellyfin, Jellyseerr)
|
├── Arrs/ (Prowlarr, Radarr, Sonarr, Lidarr, Bazarr, Jellyfin, Jellyseerr)
|
||||||
├── qBittorrent/
|
├── qBittorrent/
|
||||||
├── slskd/
|
├── discord-agent/ (Discord bot with Ollama LLM)
|
||||||
├── soulsync/
|
|
||||||
├── paperless/
|
├── paperless/
|
||||||
├── stirling/
|
├── stirling/
|
||||||
├── immich/
|
├── immich/
|
||||||
├── obsidian/
|
|
||||||
├── syncthing/
|
├── syncthing/
|
||||||
├── gitea/
|
├── gitea/
|
||||||
├── gramps-jamie/
|
├── gramps-jamie/
|
||||||
|
|||||||
101
RESTORE.md
101
RESTORE.md
@@ -17,19 +17,102 @@ If you are restoring, follow the standard restoration steps below, and refer to
|
|||||||
- Access to NAS storage (if applicable)
|
- Access to NAS storage (if applicable)
|
||||||
- Root or sudo access
|
- Root or sudo access
|
||||||
|
|
||||||
## Step 1: Extract Backup
|
## Discord Agent Service
|
||||||
|
|
||||||
|
### Step 1: Create Discord Agent Directory
|
||||||
```bash
|
```bash
|
||||||
# Navigate to your backup location
|
mkdir -p /docker/discord-agent/config /docker/discord-agent/data/logs /docker/discord-agent/data/database /docker/discord-agent/data/cache /docker/discord-agent/cogs /docker/discord-agent/scripts
|
||||||
cd /path/to/backups
|
|
||||||
|
|
||||||
# Extract the backup archive
|
|
||||||
tar xzf docker-backup-YYYYMMDD_HHMMSS.tar.gz
|
|
||||||
|
|
||||||
# Navigate into the extracted backup
|
|
||||||
cd YYYYMMDD_HHMMSS
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Step 2: Copy Configuration Files
|
||||||
|
```bash
|
||||||
|
# Copy agent configuration
|
||||||
|
cp agent-config.yaml /docker/discord-agent/config/
|
||||||
|
cp permissions.json /docker/discord-agent/config/
|
||||||
|
|
||||||
|
# Copy scripts
|
||||||
|
cp startup.sh /docker/discord-agent/scripts/
|
||||||
|
cp health_check.sh /docker/discord-agent/scripts/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Copy Python Files
|
||||||
|
```bash
|
||||||
|
cp discord_agent.py /docker/discord-agent/
|
||||||
|
cp base_cog.py /docker/discord-agent/cogs/
|
||||||
|
cp integration_cog.py /docker/discord-agent/cogs/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 4: Copy Requirements
|
||||||
|
```bash
|
||||||
|
cp requirements.txt /docker/discord-agent/
|
||||||
|
cp Dockerfile /docker/discord-agent/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 5: Update Environment Variables
|
||||||
|
Add these to your `.env` file:
|
||||||
|
```bash
|
||||||
|
# Discord Agent
|
||||||
|
DISCORD_BOT_TOKEN=your_discord_bot_token_here
|
||||||
|
OLLAMA_ENDPOINT=http://192.168.0.31:11434
|
||||||
|
OLLAMA_MODEL=mistral-3:8b
|
||||||
|
TZ=Pacific/Auckland
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 6: Update Configuration
|
||||||
|
Edit `/docker/discord-agent/config/agent-config.yaml` with your specific settings:
|
||||||
|
```yaml
|
||||||
|
discord:
|
||||||
|
token: ${DISCORD_BOT_TOKEN}
|
||||||
|
prefix: "!"
|
||||||
|
status: "AI Assistant | !help"
|
||||||
|
|
||||||
|
ollama:
|
||||||
|
endpoint: "${OLLAMA_ENDPOINT:http://192.168.0.31:11434}"
|
||||||
|
model: "${OLLAMA_MODEL:mistral-3:8b}"
|
||||||
|
parameters:
|
||||||
|
temperature: 0.7
|
||||||
|
top_p: 0.9
|
||||||
|
top_k: 40
|
||||||
|
timeout: 60
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 7: Build and Start Service
|
||||||
|
```bash
|
||||||
|
# Build the Discord agent image
|
||||||
|
docker compose build discord-agent
|
||||||
|
|
||||||
|
# Start the service
|
||||||
|
docker compose up -d discord-agent
|
||||||
|
|
||||||
|
# Verify the service is running
|
||||||
|
docker compose logs discord-agent
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 8: Verify Integration
|
||||||
|
```bash
|
||||||
|
# Check Discord bot connection
|
||||||
|
docker exec discord-agent python3 -c "import discord; print('Discord library available')"
|
||||||
|
|
||||||
|
# Check Ollama connection
|
||||||
|
curl http://192.168.0.31:11434/api/tags
|
||||||
|
|
||||||
|
# Check MySQL database
|
||||||
|
docker compose exec agent-db mysql -u agent -pagent -e "SHOW DATABASES;"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 9: Test Bot Functionality
|
||||||
|
- The bot should appear in your Discord server
|
||||||
|
- Test with `!help` command to verify functionality
|
||||||
|
- Test with `!agent <message>` to verify Ollama integration
|
||||||
|
- Test with `!status` to check bot status
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
- If bot doesn't start, check logs: `docker compose logs discord-agent`
|
||||||
|
- Verify DISCORD_BOT_TOKEN is set correctly in `.env` file
|
||||||
|
- Ensure Ollama is running and accessible at the configured endpoint
|
||||||
|
- Verify internal_net and db_net networks are available
|
||||||
|
- Check that MySQL database agent-db is running and healthy
|
||||||
|
|
||||||
## Step 2: Restore Directory Structure
|
## Step 2: Restore Directory Structure
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ services:
|
|||||||
- PUID=${PUID}
|
- PUID=${PUID}
|
||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data:/data
|
- /mnt/nas-storage/data:/data
|
||||||
- /docker/qBittorrent/config:/config
|
- /docker/qBittorrent/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ services:
|
|||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data/:/data
|
- /mnt/nas-storage/data/:/data
|
||||||
- /docker/Arrs/Radarr/config:/config
|
- /docker/Arrs/Radarr/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ services:
|
|||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data:/data
|
- /mnt/nas-storage/data:/data
|
||||||
- /docker/Arrs/Sonarr/config:/config
|
- /docker/Arrs/Sonarr/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
@@ -240,7 +240,7 @@ services:
|
|||||||
- PUID=${PUID}
|
- PUID=${PUID}
|
||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data:/data
|
- /mnt/nas-storage/data:/data
|
||||||
- /docker/Arrs/Lidarr/config:/config
|
- /docker/Arrs/Lidarr/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
@@ -257,7 +257,7 @@ services:
|
|||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
- TZ=${TZ}
|
- TZ=${TZ}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data:/data
|
- /mnt/nas-storage/data:/data
|
||||||
- /docker/Arrs/Bazarr/config:/config
|
- /docker/Arrs/Bazarr/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
@@ -295,13 +295,13 @@ services:
|
|||||||
devices:
|
devices:
|
||||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data:/data
|
- /mnt/nas-storage/data:/data
|
||||||
- /docker/Arrs/Jellyfin/cache:/cache
|
- /docker/Arrs/Jellyfin/cache:/cache
|
||||||
- /docker/Arrs/Jellyfin/config:/config
|
- /docker/Arrs/Jellyfin/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
slskd:
|
slskd:
|
||||||
image: slskd/slskd
|
image: slskd/slskd:latest
|
||||||
container_name: slskd
|
container_name: slskd
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
@@ -317,33 +317,11 @@ services:
|
|||||||
- SLSKD_USERNAME=${SLSKD_USERNAME}
|
- SLSKD_USERNAME=${SLSKD_USERNAME}
|
||||||
- SLSKD_PASSWORD=${SLSKD_PASSWORD}
|
- SLSKD_PASSWORD=${SLSKD_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- /mnt/Nas-Storage/data/torrents/soulsync/complete:/downloads
|
- /mnt/nas-storage/data/torrents/soulsync/complete:/data/torrents/soulsync/complete
|
||||||
- /mnt/Nas-Storage/data/torrents/soulsync/incomplete:/incomplete
|
- /mnt/nas-storage/data/torrents/soulsync/incomplete:/data/torrents/soulsync/incomplete
|
||||||
- /docker/slskd:/app
|
- /docker/slskd:/app
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
soulsync-webui:
|
|
||||||
image: boulderbadgedad/soulsync:latest
|
|
||||||
container_name: soulsync-webui
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
media_net:
|
|
||||||
ports:
|
|
||||||
- "8887:8008"
|
|
||||||
extra_hosts:
|
|
||||||
- "host.docker.internal:host-gateway"
|
|
||||||
environment:
|
|
||||||
- TZ=${TZ}
|
|
||||||
- PUID=${PUID}
|
|
||||||
- PGID=${PGID}
|
|
||||||
- FLASK_ENV=production
|
|
||||||
volumes:
|
|
||||||
- /mnt/Nas-Storage/data/media/music:/music:ro
|
|
||||||
- /mnt/Nas-Storage/data/torrents/soulsync:/app/downloads
|
|
||||||
- /docker/soulsync/logs:/app/logs
|
|
||||||
- docker_soulsync:/app/database
|
|
||||||
logging: *default-logging
|
|
||||||
|
|
||||||
# --- DOCUMENT & AI SUITE ---
|
# --- DOCUMENT & AI SUITE ---
|
||||||
onlyoffice:
|
onlyoffice:
|
||||||
image: onlyoffice/documentserver:latest
|
image: onlyoffice/documentserver:latest
|
||||||
@@ -473,7 +451,8 @@ services:
|
|||||||
- "8090:8080"
|
- "8090:8080"
|
||||||
environment:
|
environment:
|
||||||
- UI_APPNAME=Stirling-PDF
|
- UI_APPNAME=Stirling-PDF
|
||||||
- SHOW_SURVEY=true
|
- SHOW_SURVEY=false
|
||||||
|
- SECURITY_ENABLELOGIN=false
|
||||||
- SYSTEM_MAXFILESIZE=100
|
- SYSTEM_MAXFILESIZE=100
|
||||||
- PUID=${PUID}
|
- PUID=${PUID}
|
||||||
- PGID=${PGID}
|
- PGID=${PGID}
|
||||||
@@ -689,6 +668,7 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "5512:5000"
|
- "5512:5000"
|
||||||
environment:
|
environment:
|
||||||
|
- GRAMPSWEB_TREE=Helen Tree
|
||||||
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
|
- GRAMPSWEB_CELERY_CONFIG__broker_url=redis://grampsweb_redis:6379/0
|
||||||
volumes:
|
volumes:
|
||||||
- /docker/gramps-helen/cache:/app/cache
|
- /docker/gramps-helen/cache:/app/cache
|
||||||
@@ -774,6 +754,24 @@ services:
|
|||||||
- /docker/redbot:/data
|
- /docker/redbot:/data
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
|
discord-agent:
|
||||||
|
build: ./discord-agent
|
||||||
|
container_name: discord-agent
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- internal_net
|
||||||
|
volumes:
|
||||||
|
- ./discord-agent/data:/app/data
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- DISCORD_BOT_TOKEN=${DISCORD_BOT_TOKEN}
|
||||||
|
- OLLAMA_ENDPOINT=${OLLAMA_ENDPOINT:-http://ollama:11434}
|
||||||
|
- OLLAMA_MODEL=${OLLAMA_MODEL:-llama3.2}
|
||||||
|
- OPENCODE_ENDPOINT=${OPENCODE_ENDPOINT:-http://192.168.0.10:4096}
|
||||||
|
- OPENCODE_API_KEY=${OPENCODE_API_KEY}
|
||||||
|
logging: *default-logging
|
||||||
|
|
||||||
iperf3-server:
|
iperf3-server:
|
||||||
image: networkstatic/iperf3
|
image: networkstatic/iperf3
|
||||||
container_name: iperf3-server
|
container_name: iperf3-server
|
||||||
@@ -828,6 +826,8 @@ services:
|
|||||||
image: krateng/maloja:latest
|
image: krateng/maloja:latest
|
||||||
container_name: maloja
|
container_name: maloja
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- MALOJA_FORCE_PASSWORD=${MALOJA_FORCE_PASSWORD}
|
||||||
networks:
|
networks:
|
||||||
- internal_net
|
- internal_net
|
||||||
- web_net
|
- web_net
|
||||||
@@ -847,7 +847,14 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- "9078:9078"
|
- "9078:9078"
|
||||||
environment:
|
environment:
|
||||||
- MALOJA_URL=http://maloja:42010
|
- MALOJA_URL=${MALOJA_URL}
|
||||||
|
- MALOJA_API_KEY=${MALOJA_API_KEY}
|
||||||
|
- JELLYFIN_URL=${JELLYFIN_URL}
|
||||||
|
- JELLYFIN_APIKEY=${JELLYFIN_APIKEY_MS}
|
||||||
|
- JELLYFIN_USER=${JELLYFIN_USER}
|
||||||
|
- JELLYFIN_TRANSFORMS=musicbrainz
|
||||||
|
- MB_CONTACT=${MB_CONTACT}
|
||||||
|
- MB_PRESETS=default,sensible,native
|
||||||
volumes:
|
volumes:
|
||||||
- /docker/scrobble/config:/config
|
- /docker/scrobble/config:/config
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
@@ -875,3 +882,4 @@ volumes:
|
|||||||
docker_soulsync:
|
docker_soulsync:
|
||||||
open-webui:
|
open-webui:
|
||||||
portainer_data:
|
portainer_data:
|
||||||
|
discord_agent_data:
|
||||||
|
|||||||
Reference in New Issue
Block a user