Skip to content

Repository files navigation

NFiles

Version 2.1.2

NFiles is a small Windows and PHP toolset for distributing files from one main PC to Windows virtual machines through selected Proxmox hosts. Files are sent to Tiny File Manager on a host, then a manually launched NFiles agent on a VM copies them into C:\ and/or the current user's Desktop.

The Desktop application and VM agent do not run in the background.

Download

Download the ready-to-use package from the latest GitHub release. Do not use Code → Download ZIP: that archive contains source files, not the prepared application package.


English

Components

  • NFiles_server — place this folder in the web root of each Proxmox host, beside Tiny File Manager.
  • NFiles_desktop — place this portable folder on the main PC. It contains the Disk C and Desktop source folders.
  • Desktop creates one configured NFiles_agent_<host>.exe for every saved host.

First-time setup

  1. On every host, place NFiles_server in the web root, beside Tiny File Manager.
  2. On the main PC, start NFiles_desktop.exe, enter the host addresses, and close the window once to save them.
  3. Check each host in a browser: http://HOST:8080/NFiles_server/api.php?action=health. The response must contain "ok":true.

Send files

  1. Start NFiles_desktop.exe.
  2. Click the folder icon to open the NFiles Desktop directory, then add files and folders to Disk C (for C:\) and/or Desktop (for the user Desktop).
  3. Use the upload arrow for one host, or Upload all for every saved host.

Folder structure is preserved. For example, Disk C/123/notes is copied to C:\123\notes on a VM.

Desktop automatically creates one agent file per host in NFiles_desktop/NFiles_agents, for example NFiles_agent_192.168.1.10.exe. Copy that EXE onto every VM served by the relevant host and run it to receive files.

Each agent run downloads every file still stored on its host. Existing files with the same names are replaced only after the incoming archive is downloaded and verified. Missing folders are created. Files not managed by NFiles are never removed from a VM.

Clear host files

Use Delete for one host or Delete from all hosts in Desktop when every VM has received the files. These actions delete only NFiles archives on the relevant host; they never delete files already copied to VMs.

Tiny File Manager in Docker: large uploads

The Tiny File Manager Docker image can use PHP defaults that limit uploads to 2M. If NFiles shows an upload-body or Unknown action error, check the active limits on the Proxmox host:

docker exec tinyfilemanager php -i | grep -E 'upload_max_filesize|post_max_size|max_execution_time|max_input_time'

If the size limits are too small, create a NFiles-specific PHP configuration inside the container and restart only Tiny File Manager:

docker exec tinyfilemanager sh -c 'printf "%s\n" \
"upload_max_filesize = 512M" \
"post_max_size = 520M" \
"max_execution_time = 300" \
"max_input_time = 300" \
> /usr/local/etc/php/conf.d/99-nfiles-upload.ini'

docker restart tinyfilemanager

Run the first command again. upload_max_filesize must be 512M and post_max_size must be 520M. This affects only PHP inside the tinyfilemanager container, not the Proxmox host or VMs. Repeat the configuration if the container is removed and recreated.

Notes

  • NFiles_desktop.exe and generated NFiles_agent_<host>.exe files run without a visible console window.
  • NFiles has no token or server configuration file. Any device that can reach the NFiles server address can upload, download, or clear NFiles files; use it only on a trusted private network.
  • Never expose the NFiles server or Tiny File Manager port to the public internet.

Русский

Компоненты

  • NFiles_server — разместите эту папку в веб-корне каждого Proxmox-хоста рядом с Tiny File Manager.
  • NFiles_desktop — разместите эту портативную папку на основном ПК. В ней находятся исходные папки Disk C и Desktop.
  • Desktop автоматически создаёт один настроенный файл NFiles_agent_<host>.exe для каждого сохранённого хоста.

Первоначальная настройка

  1. На каждом хосте разместите NFiles_server в web-root рядом с Tiny File Manager.
  2. На основном ПК запустите NFiles_desktop.exe, укажите адреса хостов и один раз закройте окно для сохранения.
  3. Проверьте каждый хост в браузере: http://HOST:8080/NFiles_server/api.php?action=health. В ответе должно быть "ok":true.

Отправка файлов

  1. Запустите NFiles_desktop.exe.
  2. Нажмите кнопку с иконкой папки, чтобы открыть папку NFiles Desktop, затем поместите файлы и папки в Disk C (для C:\) и/или Desktop (для рабочего стола пользователя).
  3. Используйте стрелку Upload для одного хоста или Upload all для всех сохранённых хостов.

Структура папок сохраняется. Например, Disk C/123/notes будет скопирован на ВМ как C:\123\notes.

Desktop автоматически создаёт по одному файлу агента на хост в NFiles_desktop/NFiles_agents, например NFiles_agent_192.168.1.10.exe. Скопируйте этот EXE на все ВМ, обслуживаемые нужным хостом, и запускайте его для получения файлов.

При каждом запуске агент получает все файлы, которые всё ещё хранятся на его хосте. Одноимённые файлы заменяются только после полной загрузки и проверки входящего архива. Отсутствующие папки создаются. Файлы, которыми NFiles не управляет, с ВМ никогда не удаляются.

Очистка файлов с хоста

Используйте Delete для одного хоста или Delete from all hosts в Desktop, когда все ВМ получили файлы. Эти действия удаляют только архивы NFiles с соответствующего хоста и никогда не удаляют файлы, уже скопированные на ВМ.

Большие загрузки через Tiny File Manager в Docker

Образ Tiny File Manager в Docker может использовать стандартные лимиты PHP, ограничивающие загрузку до 2M. Если NFiles показывает ошибку тела загрузки или Unknown action, проверьте активные лимиты на Proxmox-хосте:

docker exec tinyfilemanager php -i | grep -E 'upload_max_filesize|post_max_size|max_execution_time|max_input_time'

Если лимиты слишком малы, создайте отдельный PHP-конфиг для NFiles внутри контейнера и перезапустите только Tiny File Manager:

docker exec tinyfilemanager sh -c 'printf "%s\n" \
"upload_max_filesize = 512M" \
"post_max_size = 520M" \
"max_execution_time = 300" \
"max_input_time = 300" \
> /usr/local/etc/php/conf.d/99-nfiles-upload.ini'

docker restart tinyfilemanager

Повторно выполните первую команду. upload_max_filesize должен быть равен 512M, а post_max_size520M. Изменение касается только PHP внутри контейнера tinyfilemanager, а не Proxmox-хоста или ВМ. Если контейнер удалят и создадут заново, настройку нужно повторить.

Примечания

  • NFiles_desktop.exe и созданные файлы NFiles_agent_<host>.exe запускаются без видимого консольного окна.
  • В NFiles нет токена и серверного конфигурационного файла. Любое устройство, которое может обратиться к адресу NFiles-сервера, может загружать, скачивать или очищать файлы NFiles; используйте систему только в доверенной приватной сети.
  • Никогда не открывайте доступ к NFiles-серверу или порту Tiny File Manager из публичного интернета.

About

Portable Windows tool for distributing files to VMs through Proxmox hosts.

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages