mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2025-12-11 20:15:30 +01:00
159 lines
2.8 KiB
Markdown
159 lines
2.8 KiB
Markdown
# Spacedrive Docker Deployment
|
|
|
|
Quick guide for running Spacedrive daemon in Docker.
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Build the image
|
|
docker compose build
|
|
|
|
# Start daemon
|
|
docker compose up -d
|
|
|
|
# View logs
|
|
docker compose logs -f
|
|
|
|
# Check status
|
|
docker exec spacedrive-daemon sd-cli status
|
|
```
|
|
|
|
## Supported Platforms
|
|
|
|
- **x86_64** (amd64) - Servers, TrueNAS, Intel/AMD systems
|
|
- **ARM64** (aarch64) - Raspberry Pi 3/4/5, Apple Silicon (via emulation)
|
|
|
|
## Configuration
|
|
|
|
Edit `docker-compose.yml` to customize:
|
|
|
|
```yaml
|
|
volumes:
|
|
# Mount directories to index
|
|
- /path/to/your/photos:/mnt/photos:ro
|
|
- /path/to/your/documents:/mnt/docs:ro
|
|
|
|
environment:
|
|
# Optional: Set instance name
|
|
- SPACEDRIVE_INSTANCE=myserver
|
|
```
|
|
|
|
## CLI Access
|
|
|
|
```bash
|
|
# Run any CLI command
|
|
docker exec spacedrive-daemon sd-cli <command>
|
|
|
|
# Examples:
|
|
docker exec spacedrive-daemon sd-cli library list
|
|
docker exec spacedrive-daemon sd-cli location add /mnt/photos
|
|
docker exec spacedrive-daemon sd-cli search "vacation"
|
|
```
|
|
|
|
## Data Persistence
|
|
|
|
Data is stored in the `spacedrive-data` Docker volume. To backup:
|
|
|
|
```bash
|
|
# Backup volume
|
|
docker run --rm -v spacedrive-data:/data -v $(pwd):/backup \
|
|
alpine tar czf /backup/spacedrive-backup.tar.gz /data
|
|
|
|
# Restore volume
|
|
docker run --rm -v spacedrive-data:/data -v $(pwd):/backup \
|
|
alpine tar xzf /backup/spacedrive-backup.tar.gz -C /
|
|
```
|
|
|
|
## Building for Specific Platform
|
|
|
|
```bash
|
|
# Build for ARM64 (Raspberry Pi)
|
|
docker build --platform linux/arm64 -t spacedrive:arm64 .
|
|
|
|
# Build for x86_64
|
|
docker build --platform linux/amd64 -t spacedrive:amd64 .
|
|
```
|
|
|
|
## TrueNAS Deployment
|
|
|
|
1. Enable Apps in TrueNAS SCALE
|
|
2. Create custom app using the provided `docker-compose.yml`
|
|
3. Mount your pools as volumes:
|
|
```yaml
|
|
volumes:
|
|
- /mnt/pool1:/mnt/pool1:ro
|
|
- /mnt/pool2:/mnt/pool2:ro
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Container exits immediately
|
|
|
|
Check logs:
|
|
```bash
|
|
docker compose logs
|
|
```
|
|
|
|
### Can't access daemon
|
|
|
|
Verify it's running:
|
|
```bash
|
|
docker ps
|
|
docker exec spacedrive-daemon sd-cli status
|
|
```
|
|
|
|
### Out of disk space
|
|
|
|
Check Docker disk usage:
|
|
```bash
|
|
docker system df
|
|
```
|
|
|
|
Clean up old data:
|
|
```bash
|
|
docker system prune
|
|
```
|
|
|
|
## Advanced
|
|
|
|
### Resource Limits
|
|
|
|
Add to `docker-compose.yml`:
|
|
|
|
```yaml
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
cpus: '2.0'
|
|
memory: 2G
|
|
```
|
|
|
|
### Custom Data Directory
|
|
|
|
```yaml
|
|
volumes:
|
|
# Use host directory instead of volume
|
|
- /path/to/spacedrive/data:/data
|
|
```
|
|
|
|
### Network Access (Future API)
|
|
|
|
```yaml
|
|
ports:
|
|
- "8080:8080" # Expose API port
|
|
```
|
|
|
|
## Full Documentation
|
|
|
|
See [Linux Deployment Guide](./docs/cli/linux-deployment.mdx) for complete documentation including:
|
|
- Native binary installation
|
|
- Systemd service setup
|
|
- Raspberry Pi specific configuration
|
|
- TrueNAS integration
|
|
- Performance tuning
|
|
|
|
## Getting Help
|
|
|
|
- Documentation: https://docs.spacedrive.com
|
|
- GitHub Issues: https://github.com/spacedriveapp/spacedrive/issues
|