Add copyparty file server with full integration

- Configure copyparty file server with user authentication
- Set up multi-volume structure (shared, documents, music, videos, private)
- Create systemd service for automatic startup
- Add Nginx reverse proxy integration on /cloud/ path
- Update documentation with complete setup and management guide
- Mark Gitea and file server tasks as completed in TODO

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-17 18:15:18 +02:00
parent 114a752da7
commit 4c715e6028
4 changed files with 175 additions and 36 deletions

View File

@@ -36,14 +36,26 @@ server {
proxy_read_timeout 60s;
}
# Future services (commented out for now)
# location /cloud/ {
# proxy_pass http://127.0.0.1:8080/;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto $scheme;
# }
# Copyparty file server
location /cloud/ {
proxy_pass http://127.0.0.1:8082/cloud/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Handle websockets for live updates
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# Increase timeouts for large file uploads
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
# Increase client max body size for file uploads
client_max_body_size 10G;
}
# location /media/ {
# proxy_pass http://127.0.0.1:8096/;

View File

@@ -0,0 +1,42 @@
# DEPLOYMENT LOCATION: /etc/systemd/system/copyparty.service
# Deploy with: sudo cp config/systemd/copyparty.service /etc/systemd/system/
# Enable with: sudo systemctl daemon-reload && sudo systemctl enable --now copyparty
[Unit]
Description=copyparty file server
After=network.target
[Service]
Type=simple
SyslogIdentifier=copyparty
Environment=PYTHONUNBUFFERED=x
ExecReload=/bin/kill -s USR1 $MAINPID
Restart=always
RestartSec=5
# Run as hoborg user with existing configuration
User=hoborg
Group=hoborg
WorkingDirectory=/home/hoborg
Environment=XDG_CONFIG_HOME=/home/hoborg/.config
# Use copyparty with config file
ExecStart=/usr/bin/copyparty -c /home/hoborg/.config/copyparty/copyparty.conf
# Some basic hardening
MemoryMax=25%
ProtectClock=true
ProtectControlGroups=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
# Allow access to home directories
ProtectHome=false
[Install]
WantedBy=multi-user.target