{"id":30900855,"url":"https://github.com/gabrielmoura/davserver","last_synced_at":"2025-09-09T05:57:28.732Z","repository":{"id":240816288,"uuid":"803452985","full_name":"gabrielmoura/davServer","owner":"gabrielmoura","description":null,"archived":false,"fork":false,"pushed_at":"2024-06-02T19:20:17.000Z","size":77,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-19T15:12:39.791Z","etag":null,"topics":["i2p","webdav-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielmoura.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-20T18:48:17.000Z","updated_at":"2024-06-02T19:20:21.000Z","dependencies_parsed_at":"2024-06-02T04:33:44.895Z","dependency_job_id":"7f154e88-b1ec-4053-9ee1-2faa3b389b4d","html_url":"https://github.com/gabrielmoura/davServer","commit_stats":null,"previous_names":["gabrielmoura/davserver"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gabrielmoura/davServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoura%2FdavServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoura%2FdavServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoura%2FdavServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoura%2FdavServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielmoura","download_url":"https://codeload.github.com/gabrielmoura/davServer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielmoura%2FdavServer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274250539,"owners_count":25249401,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["i2p","webdav-server"],"created_at":"2025-09-09T05:57:16.377Z","updated_at":"2025-09-09T05:57:28.725Z","avatar_url":"https://github.com/gabrielmoura.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebDav Server\n\n## Em Desenvolvimento\n\nUm servidor WebDAV simples com autenticação básica e API para gerenciamento de usuários e diretórios.\n\n### Funcionalidades\n\n- **Criação de Usuários e Diretórios:** Permite criar usuários e seus respectivos diretórios de forma automatizada.\n- **Autenticação Básica:** Protege o acesso ao servidor através de nome de usuário e senha.\n- **Protocolo WebDAV:** Habilita o acesso e manipulação remota de arquivos através do protocolo WebDAV.\n- **API de Gerenciamento:** Oferece endpoints para criar, listar, atualizar e deletar usuários e diretórios.\n\n### Uso\n\n```bash\n./dav -root=/var/www/webdav -token=meu_token_secreto\n```\n\n**Opções:**\n\n- `-port`: Porta em que o servidor irá escutar (padrão: 8080).\n- `-root`: Diretório raiz onde os arquivos serão armazenados (padrão: ./root).\n- `-token`: Token de autenticação para a API (padrão: 123456).\n- `-i2p`: Habilita o uso do I2P.\n- `-config`: Habilita o uso de um arquivo de configuração.\n- `-h`: Exibe a ajuda com as opções disponíveis.\n- `-export`: Exporta os usuários (./users.json).\n- `-import`: Importa os usuários (./users.json).\n\n### API\n\nA API Rest permite gerenciar usuários e diretórios. Para utilizar a API, inclua o token de autenticação no\ncabeçalho `Authorization` das requisições:\n\n```\nAuthorization: Bearer meu_token_secreto\n```\n\n**Endpoints:**\n\n- `POST /admin/user`: Cria um novo usuário.\n- `GET /admin/user`: Lista todos os usuários.\n- `DELETE /admin/user`: Deleta um usuário\n\nMais informações podem ser obtidas em [Arquivo Http](test.http) ou [Coleção Postman](DavServer.postman_collection.json).\n\n#### Observações\n\n- /user/file e /user/pub O token esperado é um base64 da string `username:password` e o token deve ser passado no header\n  da requisição com o nome \"Authorization\".\n- /admin/users O token esperado é um token simples e o token deve ser passado no header da requisição com o nome \"\n  Authorization\" definido no momento da execução do servidor.\n- O caminho do DB é por padrão `/tmp/DavServer`, altere o caminho para não perder os dados ao reiniciar o servidor.\n- Para Usar com I2P é necessário que o SAM esteja ativo e configurado para o servidor.\n- Nenhum usuário é criado por padrão, é necessário criar um usuário para poder acessar o servidor.\n- É possível traduzir as mensagens do Srv em `internal/msg`\n\n### Exemplo de Requisição (cURL)\n\n```bash\ncurl -X POST -H \"Authorization: meu_token_secreto\" -H \"Content-Type: application/json\" -d '{\"username\": \"novo_usuario\", \"password\": \"senha_forte\"}' http://localhost:8080/users\n```\n\n### Variáveis de Ambiente\n```yaml\n# conf.yml\n\n# Configurações principais\nAPP_NAME: \"DavServer\"\nDB_DIR: \"/tmp/DavServer\"\nPORT: 8080\nSHARE_ROOT_DIR: \"./root\"\nTIME_FORMAT: \"02-Jan-2006\"\nTIME_ZONE: \"America/Sao_Paulo\"\nGLOBAL_TOKEN: \"123456\"\n# Configuração Padrão do Servidor\nSRV:\n  # Caso true removerá a pasta do usuário ao remover o usuário.\n  DELETE_FOLDER: false\n  CHUNK_SIZE: 500\n# Configurações I2P\nI2P_CFG:\n  ENABLED: false\n  HTTP_HOST_AND_PORT: \"127.0.0.1:7672\"\n  URL: \"127.0.0.1:7672\"\n  SAM_ADDR: \"127.0.0.1:7656\"\n  KEY_PATH: \"./\"\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmoura%2Fdavserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielmoura%2Fdavserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielmoura%2Fdavserver/lists"}