Avançado

Auto-hospedagem

Execute o wing-server em um NAS, servidor doméstico ou VPS, com Docker ou systemd.

wing-server incorpora o daemon completo do WingDrive, com processamento de mídia, e disponibiliza a interface web e a API RPC por HTTP. Seus dados permanecem no seu hardware enquanto você os acessa de qualquer navegador.

Docker

Há imagens para x86_64 e ARM64, executadas por um usuário sem privilégios de root.

docker run -d \
  --name wingdrive \
  -p 8080:8080 \
  -p 7373:7373 \
  -v wingdrive-data:/data \
  -e WING_AUTH=admin:your-secure-password \
  ghcr.io/bernardopg/wingdrive/server:latest

A porta 8080 atende HTTP; a porta 7373 é usada para conexões ponto a ponto com seus dispositivos. Monte outros volumes para indexar armazenamento existente.

Docker Compose

services:
  wingdrive:
    image: ghcr.io/bernardopg/wingdrive/server:latest
    ports:
      - "8080:8080"
      - "7373:7373"
    volumes:
      - wingdrive-data:/data
      - /mnt/media:/media:ro
    environment:
      WING_AUTH: "admin:your-password"
      TZ: "America/Sao_Paulo"
    restart: unless-stopped

volumes:
  wingdrive-data:

systemd

Crie /etc/systemd/system/wingdrive.service:

[Unit]
Description=WingDrive Server
After=network.target

[Service]
Type=simple
User=wingdrive
Group=wingdrive
Environment="DATA_DIR=/var/lib/wingdrive"
Environment="WING_AUTH=admin:your-secure-password"
ExecStart=/usr/local/bin/wingdrive-server --data-dir /var/lib/wingdrive
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
sudo useradd -r -s /bin/false wingdrive
sudo mkdir -p /var/lib/wingdrive
sudo chown wingdrive:wingdrive /var/lib/wingdrive
sudo systemctl enable --now wingdrive

Configuração

Configuração Significado
WING_AUTH Usuários da autenticação básica, user1:pass1,user2:pass2. disabled desativa a autenticação (não recomendado em uma rede).
DATA_DIR Onde ficam bibliotecas, miniaturas e logs. Sempre defina em produção.
PORT / --port Porta HTTP, 8080 por padrão.

O servidor se recusa a iniciar sem WING_AUTH, a menos que você desative a autenticação explicitamente. Isso evita expor suas bibliotecas acidentalmente.

Proxy reverso

O servidor escuta em todas as interfaces. Para acesso pela internet, coloque-o atrás de um proxy reverso com TLS. Um site Nginx mínimo:

server {
    listen 443 ssl http2;
    server_name files.example.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        client_max_body_size 0;
    }
}