Murad Library
Murad LibraryREF-0406MD

Copyparty: tutorial completo de instalação, configuração e uso

Catalogued
Reading
20 min read

Guia prático para instalar o Copyparty com Docker, criar usuários, publicar pastas com permissões diferentes, usar uploads, downloads, WebDAV e disponibilizar o serviço com HTTPS.

Atualizado em: 10 de julho de 2026

Sumário

  1. O que é o Copyparty
  2. Como o Copyparty organiza os arquivos
  3. Antes de instalar
  4. Instalação recomendada com Docker Compose
  5. Criando a configuração inicial
  6. Iniciando e testando
  7. Entendendo usuários, volumes e permissões
  8. Configuração prática com áreas pública, privada e de uploads
  9. Como usar pelo navegador
  10. Como criar e administrar usuários
  11. Pastas individuais para usuários
  12. Como usar WebDAV
  13. Publicando com domínio e HTTPS
  14. Atualização e manutenção
  15. Backup
  16. Logs e solução de problemas
  17. Instalação sem Docker
  18. Recursos avançados
  19. Checklist de segurança
  20. Referências oficiais

1. O que é o Copyparty

O Copyparty é um servidor de arquivos autohospedável. Você o instala em um computador, servidor, VPS, NAS, Raspberry Pi ou host Docker e passa a acessar suas pastas pelo navegador.

Ele pode funcionar como uma combinação de:

  • gerenciador de arquivos web;
  • servidor de uploads e downloads;
  • galeria de imagens;
  • biblioteca de áudio e vídeo;
  • servidor WebDAV;
  • servidor FTP, SFTP e TFTP opcionais;
  • ferramenta de compartilhamento por links;
  • mecanismo de pesquisa e indexação de arquivos;
  • biblioteca pessoal ou comunitária.

O Copyparty não é um serviço de nuvem externo. Os arquivos continuam armazenados no equipamento escolhido por você.

O projeto oficial está em:


2. Como o Copyparty organiza os arquivos

Há três conceitos fundamentais.

2.1 Pasta real

É a pasta existente no sistema operacional ou no host Docker.

Exemplo:

/srv/copyparty/publico

2.2 Volume

É uma pasta real publicada pelo Copyparty em determinado endereço virtual.

Exemplo:

Pasta real: /w/publico
Endereço web: /publico

Nesse caso, o visitante acessaria:

https://files.exemplo.com/publico/

2.3 Conta

É um usuário interno do Copyparty, com nome e senha definidos pelo administrador.

Exemplo:

pablo
joao
colaborador

Essas contas não precisam existir no Linux e não precisam ser endereços de e-mail.


3. Antes de instalar

Este tutorial usa Docker Compose porque é o método mais limpo para manter o Copyparty isolado e atualizável.

Você precisa de:

  • Linux com Docker e Docker Compose;
  • uma pasta para os dados;
  • uma pasta para a configuração;
  • porta TCP 3923 disponível;
  • opcionalmente, um domínio e um proxy reverso.

3.1 Aviso de segurança

Não execute uma instância exposta à internet sem configurar contas e permissões.

Por padrão, uma execução simples pode compartilhar a pasta atual com leitura e escrita para qualquer visitante. Isso é conveniente para testes locais, mas inadequado para produção.

3.2 Escolha dos diretórios

Neste tutorial serão usados:

/opt/copyparty/config
/opt/copyparty/data

Dentro de data, criaremos:

publico
privado
uploads
usuarios

4. Instalação recomendada com Docker Compose

4.1 Criar a estrutura

Execute como root ou com sudo:

mkdir -p /opt/copyparty/config
mkdir -p /opt/copyparty/data/publico
mkdir -p /opt/copyparty/data/privado
mkdir -p /opt/copyparty/data/uploads
mkdir -p /opt/copyparty/data/usuarios
cd /opt/copyparty

4.2 Descobrir seu UID e GID

O contêiner precisa ter permissão para ler e gravar nas pastas montadas.

Para ver o UID e GID do usuário atual:

id

Exemplo:

uid=1000(pablo) gid=1000(pablo)

Neste guia usaremos 1000:1000. Ajuste caso seu ambiente use outros valores.

4.3 Criar o docker-compose.yml

Crie o arquivo:

nano /opt/copyparty/docker-compose.yml

Conteúdo:

services:
  copyparty:
    image: copyparty/ac:latest
    container_name: copyparty
    restart: unless-stopped
    user: "1000:1000"
    ports:
      - "3923:3923"
    volumes:
      - ./config:/cfg
      - ./data:/w
    environment:
      TZ: America/Sao_Paulo

A imagem copyparty/ac é a edição recomendada oficialmente. Ela inclui recursos multimídia, FFmpeg, miniaturas de vídeo e áudio e melhor leitura de metadados.

As montagens significam:

Host                         Contêiner
/opt/copyparty/config   ->   /cfg
/opt/copyparty/data     ->   /w

Tudo que estiver em /opt/copyparty/data será acessível internamente pelo Copyparty como /w.

4.4 Corrigir as permissões locais

chown -R 1000:1000 /opt/copyparty/config
chown -R 1000:1000 /opt/copyparty/data

Substitua 1000:1000 pelos valores corretos do seu ambiente.


5. Criando a configuração inicial

O contêiner carrega automaticamente arquivos terminados em .conf localizados em /cfg.

Crie:

nano /opt/copyparty/config/copyparty.conf

Use esta configuração inicial segura:

[global]
  p: 3923
  usernames
  e2dsa
  e2ts
  hist: /cfg/hists/
  vc-url: https://api.copyparty.eu/advisories
  vc-age: 3

[accounts]
  admin: TROQUE-ESTA-SENHA

[/]
  /w
  accs:
    rwmda: admin

5.1 O que essa configuração faz

p: 3923 : Define a porta HTTP do Copyparty.

usernames : Exige nome de usuário e senha no login. Sem essa opção, o Copyparty também pode operar usando apenas a senha como identificador.

e2dsa : Habilita indexação geral, varredura do sistema de arquivos e recursos associados à pesquisa.

e2ts : Habilita indexação de metadados multimídia.

hist: /cfg/hists/ : Guarda índices e miniaturas dentro da pasta de configuração, em vez de criar diretórios .hist espalhados pelos volumes.

vc-url : Habilita a consulta periódica de avisos de segurança conhecidos do projeto.

[accounts] : Cria as contas internas.

[/] : Publica /w como raiz do site.

rwmda: admin : Concede ao usuário admin leitura, escrita, movimentação, exclusão e administração.

5.2 Use uma senha forte

Troque:

TROQUE-ESTA-SENHA

por uma senha longa e exclusiva.

Não publique seu arquivo de configuração em repositórios públicos. Ele contém as senhas das contas.


6. Iniciando e testando

6.1 Iniciar o contêiner

cd /opt/copyparty
docker compose up -d

6.2 Conferir o estado

docker compose ps

6.3 Ver os logs

docker compose logs -f copyparty

Para sair da visualização de logs, pressione Ctrl+C.

6.4 Acessar no navegador

Na mesma máquina:

http://127.0.0.1:3923

Em outro dispositivo da rede:

http://IP-DO-SERVIDOR:3923

Exemplo:

http://192.168.1.50:3923

Entre com:

Usuário: admin
Senha: a senha definida no arquivo

7. Entendendo usuários, volumes e permissões

7.1 Criando contas

As contas ficam em [accounts]:

[accounts]
  admin: senha-do-admin
  pablo: senha-do-pablo
  joao: senha-do-joao

7.2 Permissões

As permissões mais importantes são:

PermissãoSignificado
rlistar pastas, visualizar e baixar arquivos
wenviar arquivos e copiar arquivos para a pasta
mmover ou renomear arquivos e pastas
dapagar arquivos e pastas
afunções administrativas do volume
.mostrar arquivos ocultos quando solicitado
gbaixar somente quando possuir o link direto, sem listar a pasta
Gsemelhante a g, mas permite ao remetente acessar o próprio upload
hservir index.html sem expor listagem normal da pasta
Aconjunto completo equivalente, em essência, a rwmda.

É comum agrupar permissões:

r: visitante
rw: colaborador
rwmda: admin

7.3 Visitante anônimo

O asterisco representa visitantes sem login:

r: *

Isso concede leitura pública.

Para permitir upload público:

w: *

Tenha cuidado: upload público pode ser usado para armazenar conteúdo ilegal, malware ou grandes quantidades de lixo.

7.4 Todos os usuários autenticados

O grupo especial @acct representa todas as contas conhecidas:

r: @acct

7.5 Grupos próprios

Você também pode criar grupos:

[groups]
  equipe: pablo, joao, maria
  admins: admin, pablo

E usá-los nas permissões:

rw: @equipe
rwmda: @admins

8. Configuração prática com áreas pública, privada e de uploads

Substitua o conteúdo do arquivo /opt/copyparty/config/copyparty.conf por algo semelhante a isto:

[global]
  p: 3923
  usernames
  e2dsa
  e2ts
  hist: /cfg/hists/
  vc-url: https://api.copyparty.eu/advisories
  vc-age: 3

[accounts]
  admin: TROQUE-A-SENHA-DO-ADMIN
  pablo: TROQUE-A-SENHA-DO-PABLO
  colaborador: TROQUE-A-SENHA-DO-COLABORADOR

[groups]
  equipe: pablo, colaborador
  admins: admin, pablo

[/]
  /w/publico
  accs:
    r: *
    rwmda: @admins

[/privado]
  /w/privado
  accs:
    r: @equipe
    rwmd: @admins

[/uploads]
  /w/uploads
  accs:
    w: *
    rwmda: @admins
  flags:
    e2d
    nodupe

8.1 Resultado

Raiz pública

/
  • qualquer visitante pode navegar e baixar;
  • somente os administradores podem alterar os arquivos.

Área privada

/privado
  • a equipe pode ler;
  • os administradores podem enviar, mover e apagar.

Caixa de uploads

/uploads
  • qualquer visitante pode enviar;
  • visitantes não recebem permissão de leitura;
  • administradores podem visualizar e gerenciar tudo;
  • nodupe rejeita uploads duplicados segundo a indexação do volume.

8.2 Aplicar a alteração

A maneira mais simples é reiniciar:

cd /opt/copyparty
docker compose restart copyparty

Depois confira os logs:

docker compose logs --tail=100 copyparty

O Copyparty também permite recarregar contas e volumes sem reiniciar. Alterações na seção [global], porém, exigem reinicialização.


9. Como usar pelo navegador

A interface pode variar um pouco entre versões, mas o fluxo geral é o seguinte.

9.1 Entrar

Abra o painel ou opção de login, informe nome e senha e confirme.

Quando usernames está habilitado, o login é convencional:

Usuário + senha

9.2 Navegar

Clique nas pastas para navegar. A interface apresenta somente os volumes e conteúdos aos quais a conta possui acesso.

Uma pasta pode aparecer na raiz, mas negar acesso ao conteúdo se o usuário não tiver permissão suficiente.

9.3 Enviar arquivos

Em uma pasta com permissão w:

  1. abra a pasta;
  2. arraste arquivos para a janela ou use o botão de upload;
  3. confirme o envio;
  4. acompanhe o progresso.

O Copyparty suporta uploads retomáveis. Em arquivos grandes, isso reduz o risco de perder todo o envio após uma interrupção.

9.4 Baixar arquivos

Clique em um arquivo ou use as opções de download. Pastas podem ser compactadas para download em formatos suportados pela interface.

9.5 Renomear, mover e excluir

Essas operações só aparecem ou funcionam quando a conta possui as permissões correspondentes:

  • renomear ou mover: m;
  • excluir: d;
  • enviar: w.

9.6 Pesquisa

A pesquisa completa depende da indexação. Neste tutorial, e2dsa e e2ts foram ativados para permitir pesquisa de arquivos e metadados multimídia.

A primeira varredura pode demorar se o volume tiver muitos arquivos.

9.7 Miniaturas e mídia

A imagem Docker ac inclui FFmpeg e componentes úteis para:

  • miniaturas de imagens;
  • miniaturas de vídeos;
  • leitura de metadados de áudio;
  • transcodificação e reprodução compatível, quando aplicável.

10. Como criar e administrar usuários

O Copyparty não é, por padrão, uma plataforma de cadastro público. Normalmente, o administrador cria as contas no arquivo de configuração.

10.1 Adicionar uma conta

Edite:

nano /opt/copyparty/config/copyparty.conf

Adicione:

[accounts]
  admin: senha-do-admin
  pablo: senha-do-pablo
  novo_usuario: senha-forte

Depois reinicie ou recarregue a configuração.

cd /opt/copyparty
docker compose restart copyparty

10.2 Remover uma conta

Remova a linha correspondente e retire o nome do usuário de grupos e permissões.

Atenção: remover uma conta não apaga automaticamente os arquivos pertencentes a ela.

10.3 Trocar uma senha

Altere somente o valor depois de ::

pablo: NOVA-SENHA

Depois recarregue ou reinicie o serviço.

10.4 Evitar nomes problemáticos

Use nomes simples:

pablo
joao.silva
colaborador-01
admin

Evite espaços, caracteres de controle, barras e nomes ambíguos.


11. Pastas individuais para usuários

O Copyparty pode usar variáveis em volumes dinâmicos, mas, para uma instalação pequena, o método mais previsível é criar volumes explicitamente.

11.1 Criar diretórios

mkdir -p /opt/copyparty/data/usuarios/pablo
mkdir -p /opt/copyparty/data/usuarios/joao
chown -R 1000:1000 /opt/copyparty/data/usuarios

11.2 Configurar volumes privados

[/usuarios/pablo]
  /w/usuarios/pablo
  accs:
    rwmda: pablo, admin

[/usuarios/joao]
  /w/usuarios/joao
  accs:
    rwmda: joao, admin

Assim:

  • Pablo administra somente sua área;
  • João administra somente sua área;
  • o administrador acessa ambas.

Para dezenas ou centenas de usuários, considere volumes dinâmicos e integração com um provedor de identidade. Isso é mais poderoso, mas também muito mais fácil de configurar incorretamente.


12. Como usar WebDAV

O WebDAV permite acessar o Copyparty em gerenciadores de arquivos e aplicativos como se fosse uma unidade remota.

URL básica:

https://files.exemplo.com/

Ou em rede local:

http://192.168.1.50:3923/

12.1 Windows

No Explorador de Arquivos:

  1. abra Este Computador;
  2. escolha Mapear unidade de rede ou Adicionar um local de rede;
  3. informe a URL do Copyparty;
  4. use seu nome de usuário e senha.

O cliente WebDAV nativo do Windows possui limitações e comportamentos inconsistentes. Para uso frequente ou grandes volumes, o rclone costuma ser mais confiável.

12.2 macOS

No Finder:

  1. abra Ir;
  2. escolha Conectar ao Servidor;
  3. informe a URL;
  4. autentique-se.

12.3 Linux com GNOME/Nautilus

Use uma URL semelhante a:

dav://files.exemplo.com/

Para HTTPS:

davs://files.exemplo.com/

12.4 Rclone

Crie um remoto:

rclone config

Escolha WebDAV e informe:

URL: https://files.exemplo.com/
Vendor: other
User: seu_usuario
Password: sua_senha

Liste os arquivos:

rclone lsd copyparty:

Monte como unidade:

mkdir -p "$HOME/copyparty"
rclone mount copyparty: "$HOME/copyparty" --vfs-cache-mode writes

12.5 Edição de arquivos via WebDAV

Alguns clientes exigem permissão de exclusão para substituir arquivos existentes. Alguns também podem precisar da opção daw.

Não habilite daw às cegas: ela pode permitir que uploads por PUT sobrescrevam arquivos existentes quando o usuário também possui permissão de exclusão.


13. Publicando com domínio e HTTPS

O projeto recomenda usar um proxy reverso para HTTPS, em vez de depender do TLS interno do Copyparty.

A arquitetura fica assim:

Internet
   |
HTTPS :443
   |
Nginx, Caddy ou Traefik
   |
HTTP :3923
   |
Copyparty

13.1 Não exponha a porta 3923 desnecessariamente

Se o proxy reverso estiver no mesmo servidor, altere o Compose para:

ports:
  - "127.0.0.1:3923:3923"

Isso impede acesso direto externo à porta do Copyparty.

13.2 Exemplo com Nginx

Crie um bloco semelhante a:

server {
    listen 80;
    server_name files.exemplo.com;

    location / {
        proxy_pass http://127.0.0.1:3923;
        proxy_http_version 1.1;

        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;

        proxy_request_buffering off;
        proxy_buffering off;
        client_max_body_size 0;
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    }
}

Depois valide e recarregue:

nginx -t
systemctl reload nginx

Use Certbot, Caddy ou o mecanismo TLS já adotado no seu servidor para gerar o certificado.

13.3 Informar o IP real ao Copyparty

Atrás de proxy reverso, o Copyparty precisa saber qual cabeçalho contém o IP real do cliente e quais proxies são confiáveis.

Para uma cadeia simples em que o Nginx envia X-Real-IP, uma configuração possível é:

[global]
  xff-hdr: x-real-ip
  xff-src: 127.0.0.1
  rproxy: 1

Se o proxy está em outro contêiner ou equipamento, xff-src deve corresponder ao endereço ou à rede real do proxy.

Não confie cegamente em cabeçalhos encaminhados vindos de qualquer origem. Um cliente pode falsificá-los quando o Copyparty fica diretamente acessível.

13.4 Cloudflare

Quando o tráfego passa pelo Cloudflare, o cabeçalho relevante pode ser CF-Connecting-IP.

A configuração exata depende de onde o TLS termina e de quantos proxies existem na cadeia. Observe os avisos dos logs do Copyparty e consulte a documentação oficial de real-ip antes de publicar.

13.5 Subdomínio é melhor que subpasta

Prefira:

https://files.exemplo.com/

em vez de:

https://exemplo.com/files/

Executar em uma subpasta exige rp-loc e torna a configuração mais propensa a erros.


14. Atualização e manutenção

14.1 Atualizar a imagem

cd /opt/copyparty
docker compose pull
docker compose up -d

14.2 Verificar a versão em execução

docker compose logs --tail=50 copyparty

Ou consulte a interface e o painel de controle.

14.3 Reiniciar

cd /opt/copyparty
docker compose restart copyparty

14.4 Parar

cd /opt/copyparty
docker compose down

Isso remove o contêiner e a rede criada pelo Compose, mas não apaga os dados montados em /opt/copyparty.

14.5 Iniciar novamente

cd /opt/copyparty
docker compose up -d

15. Backup

Você deve proteger pelo menos:

/opt/copyparty/config
/opt/copyparty/data

15.1 Backup simples com tar

Pare brevemente o serviço para obter um backup consistente:

cd /opt/copyparty
docker compose stop

tar -czf /root/copyparty-backup-$(date +%F).tar.gz \
  /opt/copyparty/config \
  /opt/copyparty/data

docker compose start

15.2 Backup com rsync

rsync -aHAX --delete /opt/copyparty/ /mnt/backup/copyparty/

Tenha cuidado com --delete: arquivos removidos na origem também serão removidos no destino.

15.3 O que realmente importa

  • arquivos dos usuários;
  • arquivo copyparty.conf;
  • índices e miniaturas em config/hists;
  • scripts e personalizações;
  • configuração do proxy reverso.

Os índices podem ser recriados, mas isso pode levar tempo em bibliotecas grandes.


16. Logs e solução de problemas

16.1 O contêiner não inicia

docker compose logs --tail=200 copyparty

Causas comuns:

  • erro de sintaxe no .conf;
  • diretório sem permissão;
  • UID/GID incorreto;
  • porta 3923 já ocupada;
  • caminho montado inexistente.

16.2 Erro de permissão ao enviar arquivos

Confira:

ls -ld /opt/copyparty/data
ls -ld /opt/copyparty/data/*

Corrija o proprietário:

chown -R 1000:1000 /opt/copyparty/data

Verifique também se a conta possui w no volume.

16.3 Porta ocupada

ss -lntp | grep 3923

Troque a porta externa no Compose:

ports:
  - "127.0.0.1:4923:3923"

O Copyparty continuará ouvindo internamente em 3923, mas será acessado no host pela porta 4923.

16.4 Login não funciona

Confirme:

  • se usernames está habilitado;
  • se o nome está escrito exatamente como no arquivo;
  • se a senha não contém um erro de digitação;
  • se a configuração foi reiniciada ou recarregada;
  • se o navegador não está reutilizando credenciais antigas.

16.5 Usuário entra, mas não vê uma pasta

Verifique a seção accs do volume.

Exemplo correto:

[/privado]
  /w/privado
  accs:
    r: pablo

16.6 Miniaturas não aparecem

A imagem copyparty/ac já inclui os componentes mais comuns. Ainda assim, verifique:

  • permissões em /cfg/hists;
  • se a indexação está habilitada;
  • se o arquivo é suportado;
  • logs de FFmpeg;
  • regras de cache do proxy reverso;
  • se o proxy preserva parâmetros de consulta da URL.

16.7 Todos parecem ter o mesmo IP

O proxy reverso não está fornecendo ou o Copyparty não está confiando corretamente no cabeçalho de IP real.

Revise:

xff-hdr
xff-src
rproxy

Configurar isso incorretamente prejudica logs, bloqueios, limites e mecanismos de segurança.

16.8 Mensagem de bloqueio ou “thank you for playing”

O Copyparty pode ter bloqueado o IP percebido após tráfego suspeito ou falhas de autenticação. Atrás de proxy, uma configuração incorreta pode fazer todos os visitantes parecerem vir do IP do proxy e sofrerem o mesmo bloqueio.


17. Instalação sem Docker

Docker é recomendado neste guia, mas o Copyparty também pode ser executado como arquivo único.

17.1 Baixar o executável Python autossuficiente

mkdir -p "$HOME/copyparty"
cd "$HOME/copyparty"
curl -L -o copyparty-sfx.py \
  https://github.com/9001/copyparty/releases/latest/download/copyparty-sfx.py

17.2 Testar localmente de forma restrita

Crie uma pasta:

mkdir -p "$HOME/copyparty/files"

Execute com uma conta e um volume privado:

python3 copyparty-sfx.py \
  --usernames \
  -a admin:TROQUE-ESTA-SENHA \
  -v "$HOME/copyparty/files"::rwmda,admin

Acesse:

http://127.0.0.1:3923

17.3 Usar arquivo de configuração

python3 copyparty-sfx.py -c /caminho/copyparty.conf

17.4 Instalar via PyPI

Também é possível instalar como pacote Python:

python3 -m pip install --user copyparty

Depois:

python3 -m copyparty --help

Para um servidor permanente, use um serviço systemd, um contêiner ou outro supervisor. Não dependa de uma sessão SSH aberta.


18. Recursos avançados

18.1 FTP

O FTP pode ser habilitado, mas exige portas adicionais, especialmente em modo passivo. Em Docker, isso complica NAT e firewall.

Exemplo global:

[global]
  ftp: 3921
  ftp-pr: 12000-12099

Seria necessário publicar também essas portas no Compose. Não use FTP simples pela internet para credenciais ou dados sensíveis.

18.2 SFTP

O Copyparty pode fornecer SFTP próprio, mas isso é diferente do servidor SSH/SFTP do sistema operacional. Avalie conflitos de porta e modelo de autenticação antes de habilitar.

18.3 TFTP

TFTP é útil em cenários de boot de rede e equipamentos, mas não fornece a segurança esperada de um serviço moderno. Restrinja-o à rede local.

18.4 OPDS e bibliotecas

O Copyparty pode ser aproveitado como biblioteca de arquivos e ebooks, dependendo da estrutura e dos clientes usados. Para leitores eletrônicos, WebDAV e feeds compatíveis podem ser úteis.

18.5 Links e filekeys

Permissões g e G, junto com filekeys, permitem compartilhar arquivos sem expor a listagem completa da pasta. Esse modelo é útil para links difíceis de adivinhar, mas não substitui autenticação quando o conteúdo é realmente confidencial.

18.6 Upload público sem listagem

Uma caixa de entrada pública pode ser configurada assim:

[/receber]
  /w/receber
  accs:
    w: *
    rwmda: admin
  flags:
    e2d
    nodupe

Isso permite receber arquivos sem permitir que visitantes naveguem pelos envios anteriores.

18.7 Uploaders vendo somente os próprios arquivos

O Copyparty oferece a permissão G, chamada de upget, para cenários nos quais o remetente precisa acessar o próprio upload sem listar o restante. Esse recurso requer configuração cuidadosa de filekeys.

Consulte o exemplo oficial antes de usar em produção.

18.8 Provedor de identidade

É possível integrar o Copyparty com sistemas como Authelia ou Authentik por meio de cabeçalhos fornecidos pelo proxy reverso.

Essa integração deve:

  • confiar apenas no proxy correto;
  • bloquear acesso direto ao backend;
  • validar cabeçalhos de identidade;
  • proteger rotas WebDAV separadamente, se necessário;
  • evitar que clientes falsifiquem nomes de usuário e grupos.

Não implemente autenticação por cabeçalho sem entender completamente a cadeia de proxies.


19. Checklist de segurança

Antes de publicar na internet, confirme:

  • nenhuma pasta sensível do host foi montada por engano;
  • a raiz não possui escrita anônima;
  • todas as contas usam senhas fortes e exclusivas;
  • usernames está habilitado se você deseja login convencional;
  • uploads públicos são realmente necessários;
  • a pasta de uploads não permite leitura pública;
  • o proxy reverso usa HTTPS válido;
  • a porta 3923 está limitada a 127.0.0.1 quando apropriado;
  • xff-hdr, xff-src e rproxy estão corretos;
  • há limites de disco ou monitoramento de armazenamento;
  • backups são feitos e testados;
  • a imagem é atualizada periodicamente;
  • os avisos de segurança estão habilitados;
  • logs são revisados;
  • o serviço não roda como root sem necessidade;
  • somente diretórios necessários foram montados no contêiner;
  • firewall e proxy não expõem portas opcionais desnecessárias.

20. Referências oficiais


Configuração final resumida

Para referência rápida, esta é uma base segura e funcional.

docker-compose.yml

services:
  copyparty:
    image: copyparty/ac:latest
    container_name: copyparty
    restart: unless-stopped
    user: "1000:1000"
    ports:
      - "127.0.0.1:3923:3923"
    volumes:
      - ./config:/cfg
      - ./data:/w
    environment:
      TZ: America/Sao_Paulo

config/copyparty.conf

[global]
  p: 3923
  usernames
  e2dsa
  e2ts
  hist: /cfg/hists/
  vc-url: https://api.copyparty.eu/advisories
  vc-age: 3
  xff-hdr: x-real-ip
  xff-src: 127.0.0.1
  rproxy: 1

[accounts]
  admin: TROQUE-A-SENHA
  pablo: TROQUE-A-SENHA

[groups]
  admins: admin, pablo

[/]
  /w/publico
  accs:
    r: *
    rwmda: @admins

[/privado]
  /w/privado
  accs:
    rwmda: @admins

[/uploads]
  /w/uploads
  accs:
    w: *
    rwmda: @admins
  flags:
    e2d
    nodupe

Iniciar

cd /opt/copyparty
docker compose up -d

Atualizar

cd /opt/copyparty
docker compose pull
docker compose up -d

Logs

cd /opt/copyparty
docker compose logs -f copyparty

Did this resonate?

Related documents