usenet virtual fs
Find a file
Javier 16d3f5cef6
fix: resolve memory leak in UsenetReader by replacing bufpipe with io.Pipe (#165)
The unbounded bufpipe.New(nil) was causing memory to grow indefinitely
as segment data was downloaded ahead of what was being read. When readers
were slow or disconnected, the buffers accumulated in memory with no
backpressure mechanism.

Replace bufpipe with Go's standard io.Pipe() which provides natural
backpressure - writers block when readers aren't consuming data,
preventing unbounded memory growth.

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

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 21:40:56 +01:00
.github feat: add GitHub Actions workflow for building and pushing multi-architecture Docker images 2025-11-15 22:52:04 +01:00
cmd/altmount feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
config feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
docker fix(docker): switch to Debian base image for backend build to ensure reliable ARM64 QEMU support and update package installation method 2025-12-06 13:05:33 +01:00
docs docs: Update docs to include webdav path and fix multi-line escapes for Powershell (#120) 2025-12-11 18:53:38 +01:00
frontend feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
internal fix: resolve memory leak in UsenetReader by replacing bufpipe with io.Pipe (#165) 2025-12-23 21:40:56 +01:00
pkg/rclonecli feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
.dockerignore feat(migration): add a tool to migrate nzbdav to altmount 2025-12-11 18:53:18 +01:00
.DS_Store Add PAR2 file support with database integration and processing logic 2025-08-11 13:36:43 +02:00
.gitignore feat(migration): add a tool to migrate nzbdav to altmount 2025-12-11 18:53:18 +01:00
.golangci.yml refactor: clean up code by handling errors and improving logging in various handlers 2025-09-04 16:07:45 +02:00
CLAUDE.md feat: alpha5 (#44) 2025-11-13 11:17:26 +01:00
config.sample.yaml feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
docker-compose-dev.yml feat: Alpha 4 (#30) 2025-10-01 18:44:30 +02:00
docker-compose.volume-plugin.example doc: docker volume plugin (#57) 2025-10-11 10:23:57 +02:00
docker-compose.yml feat: major improvements to importer, streaming, health checks, and filesystem integration (#159) 2025-12-22 21:17:48 +01:00
go.mod fix: resolve memory leak in UsenetReader by replacing bufpipe with io.Pipe (#165) 2025-12-23 21:40:56 +01:00
go.sum fix: resolve memory leak in UsenetReader by replacing bufpipe with io.Pipe (#165) 2025-12-23 21:40:56 +01:00
LICENSE Initial commit 2025-08-10 13:39:58 +02:00
Makefile Alpha5 (#111) 2025-12-06 12:59:39 +01:00
README.md doc: add rshared flag to docker volume documentaion (#72) 2025-10-26 00:01:36 +02:00

AltMount

AltMount Logo

A WebDAV server backed by NZB/Usenet that provides seamless access to Usenet content through standard WebDAV protocols.

"Buy Me A Coffee"

📖 Documentation

View Full Documentation →

Complete setup guides, configuration options, API reference, and troubleshooting information.

Quick Start

services:
  altmount:
    extra_hosts:
      - "host.docker.internal:host-gateway" # Optional if you rclone is outside the container
    image: ghcr.io/javi11/altmount:latest
    container_name: altmount
    environment:
      - PUID=1000
      - PGID=1000
      - PORT=8080
      - COOKIE_DOMAIN=localhost # Must match the domain/IP where web interface is accessed
    volumes:
      - ./config:/config
      - /mnt:/mnt:rshared
      - /metadata:/metadata # This is optional you can still use /mnt
    ports:
      - "8080:8080"
    restart: unless-stopped
    devices:
      - /dev/fuse:/dev/fuse:rwm
    cap_add:
      - SYS_ADMIN
    security_opt:
      - apparmor:unconfined

CLI Installation

go install github.com/javi11/altmount@latest
altmount serve --config config.yaml

Contributing

See the Development Guide. Development/setup for information on setting up a development environment and contributing to the project.

License

This project is licensed under the terms specified in the LICENSE file.