1
0
Fork 0
mirror of https://github.com/javi11/altmount.git synced 2026-07-10 21:17:49 +00:00
usenet virtual fs
  • Go 79.1%
  • TypeScript 20.1%
  • CSS 0.2%
  • Shell 0.2%
  • PLpgSQL 0.1%
  • Other 0.2%
Find a file
2026-07-10 15:17:54 +02:00
.github fix(ci): make DockerHub publish conditional so the dev image builds on forks (#690) 2026-06-15 09:54:50 +02:00
.vscode perf(fuse): add metadata LRU cache and refactor FUSE read path to use ReadAt (#484) 2026-04-11 17:56:06 +02:00
cmd/altmount perf(segcache): load catalog in background to avoid blocking startup (#757) 2026-07-07 23:02:38 +02:00
config feat(health): delete corrupted files instead of triggering repair (#764) 2026-07-05 16:52:30 +02:00
docker feat(system): add auto-update, fix peak speed reporting, and granular reset stats (#375) 2026-03-03 17:18:34 +01:00
docs feat(pool): balance import connections automatically, prioritizing streams (#763) 2026-07-04 17:07:59 +02:00
frontend feat(health): persist download_id in file_health table and backfill from history (#766) 2026-07-10 15:17:54 +02:00
internal feat(health): persist download_id in file_health table and backfill from history (#766) 2026-07-10 15:17:54 +02:00
pkg/rclonecli fix(rclonecli): stop health check from killing healthy rcd on startup (#713) 2026-06-23 12:38:39 +02:00
.dockerignore feat(ui): Enhance Queue/Import experience, strict metrics & cleanup (#312) 2026-02-21 20:33:33 +01:00
.DS_Store Add PAR2 file support with database integration and processing logic 2025-08-11 13:36:43 +02:00
.gitignore feat(health): persist download_id in file_health table and backfill from history (#766) 2026-07-10 15:17:54 +02:00
.golangci.yml refactor: clean up code by handling errors and improving logging in various handlers 2025-09-04 16:07:45 +02:00
bench_fuse.sh perf(fuse): eagerly start download pipeline to reduce playback TTFB (#505) 2026-04-16 00:25:27 +02:00
CLAUDE.md fix(fuse): handle context cancellation as debug logs, not errors (#291) 2026-02-13 19:38:30 +01:00
config.sample.yaml feat(pool): balance import connections automatically, prioritizing streams (#763) 2026-07-04 17:07:59 +02:00
docker-compose-dev.yml feat(system): add auto-update, fix peak speed reporting, and granular reset stats (#375) 2026-03-03 17:18:34 +01:00
docker-compose.volume-plugin.example feat(system): add auto-update, fix peak speed reporting, and granular reset stats (#375) 2026-03-03 17:18:34 +01:00
docker-compose.yml feat(system): add auto-update, fix peak speed reporting, and granular reset stats (#375) 2026-03-03 17:18:34 +01:00
go.mod feat(pool): adopt nntppool StatMany for health and import stat sweeps (#754) 2026-07-03 22:54:38 +02:00
go.sum feat(pool): adopt nntppool StatMany for health and import stat sweeps (#754) 2026-07-03 22:54:38 +02:00
LICENSE Initial commit 2025-08-10 13:39:58 +02:00
Makefile feat(windows): embed long-path-aware manifest in CLI binary (#587) (#610) 2026-05-24 17:11:49 +02:00
README.md docs: make Discord badge more prominent at top of README 2026-07-07 23:01:38 +02:00

AltMount

AltMount Logo

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

Discord

"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
      - JWT_SECRET=change-me-to-a-strong-random-secret # Required when login is enabled (auth.login_required: true)
      - 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
      - /var/run/docker.sock:/var/run/docker.sock # Required for the auto-update feature
    group_add:
      - "999" # GID of the docker group on the host (run `getent group docker | cut -d: -f3` to find yours)
    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

Windows: Enable Long Path Support

The Windows AltMount binaries are built with a long-path-aware manifest, which opts the process in to paths longer than the legacy MAX_PATH (260 character) limit. However, Windows also requires the matching system-wide setting to be enabled before long paths actually work — without it, you may see errors like The filename or extension is too long when accessing deeply nested releases.

Enable it once per machine in an elevated PowerShell prompt (Run as administrator), then restart AltMount:

New-ItemProperty `
  -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
  -Name "LongPathsEnabled" `
  -Value 1 `
  -PropertyType DWORD `
  -Force

Equivalent via Group Policy: Computer Configuration → Administrative Templates → System → Filesystem → Enable Win32 long paths.

This setting requires Windows 10 version 1607 (build 14393) or newer. A reboot is not strictly required, but any already-running process — including AltMount and your file manager — needs to be restarted to pick up the change.

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.