Update project documentation with WebDAV and media services
- Add copyparty and Jellyfin to current services list - Include WebDAV URL for Android/desktop client access - Add copyparty service management commands - Document WebDAV client setup (X-plore, rclone, curl) - Update external URLs to HTTPS with SSL certificates - Add configuration management for new services 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
53
CLAUDE.md
53
CLAUDE.md
@@ -23,14 +23,18 @@ Internet → Router → Nginx (80/443) → Services
|
|||||||
|
|
||||||
**Current Services:**
|
**Current Services:**
|
||||||
- Gitea Git server: Docker container on port 3000, accessible via `/gitea/` path
|
- Gitea Git server: Docker container on port 3000, accessible via `/gitea/` path
|
||||||
|
- Copyparty file server: Systemd service on port 8082, accessible via `/files/` path with WebDAV support
|
||||||
|
- Jellyfin media server: Docker container on port 8096, accessible via `/media/` path
|
||||||
- Nginx: Reverse proxy routing to `ak-homelab.duckdns.org/servicename/`
|
- Nginx: Reverse proxy routing to `ak-homelab.duckdns.org/servicename/`
|
||||||
|
|
||||||
### Configuration Management
|
### Configuration Management
|
||||||
|
|
||||||
All configurations are version controlled in the `config/` directory:
|
All configurations are version controlled in the `config/` directory:
|
||||||
- `config/docker/gitea/`: Gitea container setup and deployment scripts
|
- `config/docker/gitea/`: Gitea container setup and deployment scripts
|
||||||
- `config/nginx/`: Reverse proxy configurations
|
- `config/docker/jellyfin/`: Jellyfin media server configuration
|
||||||
|
- `config/nginx/`: Reverse proxy configurations with SSL and WebDAV support
|
||||||
- `config/scripts/`: Utility scripts for system maintenance
|
- `config/scripts/`: Utility scripts for system maintenance
|
||||||
|
- `~/.config/copyparty/`: Copyparty file server configuration
|
||||||
|
|
||||||
Configuration files include deployment instructions in comments showing target locations (e.g., `/opt/docker/gitea/`, `/etc/nginx/sites-available/`).
|
Configuration files include deployment instructions in comments showing target locations (e.g., `/opt/docker/gitea/`, `/etc/nginx/sites-available/`).
|
||||||
|
|
||||||
@@ -44,8 +48,28 @@ docker-compose down # Stop
|
|||||||
docker-compose up -d # Start
|
docker-compose up -d # Start
|
||||||
docker-compose pull && docker-compose up -d # Update
|
docker-compose pull && docker-compose up -d # Update
|
||||||
|
|
||||||
|
# Jellyfin operations (from /opt/docker/jellyfin/)
|
||||||
|
docker-compose logs jellyfin # View logs
|
||||||
|
docker-compose down # Stop
|
||||||
|
docker-compose up -d # Start
|
||||||
|
docker-compose pull && docker-compose up -d # Update
|
||||||
|
|
||||||
# Deploy from repo
|
# Deploy from repo
|
||||||
sudo cp config/docker/gitea/docker-compose.yml /opt/docker/gitea/
|
sudo cp config/docker/gitea/docker-compose.yml /opt/docker/gitea/
|
||||||
|
sudo cp config/docker/jellyfin/docker-compose.yml /opt/docker/jellyfin/
|
||||||
|
```
|
||||||
|
|
||||||
|
### Copyparty File Server Management
|
||||||
|
```bash
|
||||||
|
# Service operations
|
||||||
|
sudo systemctl status copyparty # Check status
|
||||||
|
sudo systemctl start copyparty # Start service
|
||||||
|
sudo systemctl stop copyparty # Stop service
|
||||||
|
sudo systemctl restart copyparty # Restart (reload config)
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
sudo cp ~/.config/copyparty/copyparty.conf ~/.config/copyparty/copyparty.conf.backup
|
||||||
|
# Edit config and restart service to reload
|
||||||
```
|
```
|
||||||
|
|
||||||
### Nginx Operations
|
### Nginx Operations
|
||||||
@@ -91,9 +115,10 @@ Use `TODO.md` for centralized task management organized by category (Network & S
|
|||||||
|
|
||||||
### Service URLs
|
### Service URLs
|
||||||
- **Local access**: http://192.168.0.100/servicename/
|
- **Local access**: http://192.168.0.100/servicename/
|
||||||
- **External access**: http://ak-homelab.duckdns.org/servicename/
|
- **External access**: https://ak-homelab.duckdns.org/servicename/
|
||||||
- **Gitea SSH**: ssh://git@ak-homelab.duckdns.org:2223
|
- **Gitea SSH**: ssh://git@ak-homelab.duckdns.org:2223
|
||||||
- **Voice Assistant**: http://127.0.0.1:8880 (local TTS server)
|
- **Voice Assistant**: http://127.0.0.1:8880 (local TTS server)
|
||||||
|
- **Copyparty WebDAV**: https://ak-homelab.duckdns.org/files/ (for X-plore, rclone, etc.)
|
||||||
|
|
||||||
### Voice Assistant Commands
|
### Voice Assistant Commands
|
||||||
```bash
|
```bash
|
||||||
@@ -114,4 +139,28 @@ curl -X POST "http://127.0.0.1:8880/v1/audio/speech" \
|
|||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d '{"input": "Hello world!", "voice": "ryan"}' \
|
-d '{"input": "Hello world!", "voice": "ryan"}' \
|
||||||
--output test.wav
|
--output test.wav
|
||||||
|
```
|
||||||
|
|
||||||
|
### WebDAV Client Setup
|
||||||
|
```bash
|
||||||
|
# X-plore File Manager (Android)
|
||||||
|
# Server: ak-homelab.duckdns.org
|
||||||
|
# Path: /files/
|
||||||
|
# Port: 443 (HTTPS)
|
||||||
|
# Username: hoborg
|
||||||
|
# Password: AdminPass2024!
|
||||||
|
|
||||||
|
# rclone configuration
|
||||||
|
rclone config create homelab-webdav webdav \
|
||||||
|
url=https://ak-homelab.duckdns.org/files/ \
|
||||||
|
vendor=other \
|
||||||
|
user=hoborg \
|
||||||
|
pass=$(rclone obscure "AdminPass2024!")
|
||||||
|
|
||||||
|
# Mount with rclone
|
||||||
|
rclone mount homelab-webdav: ~/homelab-files --daemon
|
||||||
|
|
||||||
|
# Test WebDAV
|
||||||
|
curl -X PROPFIND https://hoborg:AdminPass2024!@ak-homelab.duckdns.org/files/ \
|
||||||
|
-H "Depth: 1" -H "Content-Type: text/xml"
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user