SSD Nodes Learn 🎉 VPS $5.50/மாதம் முதல்
கல்வி வழிகாட்டிகள் Matt Connorஆல் Matt Connor · புதுப்பிக்கப்பட்டது 2026-08-16

சிறந்த Self-hosted File Manager எது? ஒப்பீடு

FileBrowser, Filestash, SFTPGo மற்றும் Cloud Commander ஆகியவற்றை ஒப்பிடுகிறோம். கோப்பு மேலாண்மை, பாதுகாப்பு, Auth மற்றும் தரவு பாதுகாப்பாக இயக்கும் முறைகளை இதில் அறியலாம்.

Self-hosted file manager என்றால் என்ன, எது அல்ல

Self-hosted file manager என்பது உங்கள் VPS-ல் (virtual private server) ஏற்கனவே உள்ள directory tree-க்கு மேலாகச் செயல்படும் ஒரு இணையப் பக்கமாகும். நீங்கள் login செய்தவுடன், வட்டில் (disk) உள்ளபடியே /srv/files-ஐக் காணலாம்; கோப்புகளை upload செய்யவும், பெயர் மாற்றவும், download செய்யவும் அல்லது பிறருக்கு link பகிரவும் முடியும். இதில் எந்தக் கோப்பும் இரண்டாவது முறை நகலெடுக்கப்படுவதில்லை; எனவே, browser மூலம் நீங்கள் பதிவேற்றும் கோப்பு, ஒரு நொடி கழித்து ls-ல் அப்படியே தெரியும்.

தேடல் முடிவுகள், பிற பணிகளைச் செய்யும் மென்பொருட்களுடன் இதைக் குழப்புகின்றன. Sync கருவிகள் ஒவ்வொரு கோப்பின் நகலையும் அனைத்து சாதனங்களிலும் வைத்திருக்கும்; இதற்காகத்தான் self-hosted Dropbox மாற்று உள்ளது. Object storage-ல் directory tree கிடையாது; அதற்குப் பதிலாக buckets மற்றும் API மட்டுமே இருக்கும். எனவே, S3 compatible object storage-க்காக MinIO-வை இயக்குவது வேறு ஒரு தேவைக்கான தீர்வாகும். Server admin panels கோப்புகளை நிர்வகிப்பதற்குப் பதிலாக கணினியை நிர்வகிக்கின்றன; இது Cockpit மற்றும் Webmin ஒப்பீடு சார்ந்ததாகும்.

உங்கள் சக ஊழியருக்கு server-லிருந்து ஒரு 300 MB archive தேவைப்படும்போதோ, அல்லது உங்கள் கைபேசியிலிருந்து ஒரு config file-ல் உள்ள பிழையைத் திருத்த விரும்பும்போதோ உங்களுக்கு file manager தேவைப்படுகிறது. இது ஒரு சிறிய பணி, அதற்கான கருவிகளும் சிறியவை.

இதைப் படிக்கும்போது ஒரு உண்மையை நினைவில் கொள்ளுங்கள். இது உங்கள் filesystem-க்கு read மற்றும் write அணுகல் கொண்ட, ஒரு port-ல் இயங்கும் web application ஆகும். கீழே கொடுக்கப்பட்டுள்ள ஒவ்வொரு தேர்வும், அந்த process உங்கள் வட்டில் எவ்வளவு தூரம் அணுக முடியும் என்பதைத் தீர்மானிப்பதே ஆகும்.

FileBrowser ஆவணப்படுத்தப்பட்டுவிட்டது (archived), எனவே நிறுவும் முன் இதைப் படிக்கவும்

FileBrowser, அதாவது filebrowser/filebrowser திட்டம், பெரும்பாலான வழிகாட்டிகள் இன்றும் பரிந்துரைக்கும் தீர்வாகும். அதன் README கோப்பின் தொடக்கத்தில் இப்போது ஒரு அறிவிப்பு உள்ளது:

File Browser 2026-09-01 அன்று ஆவணப்படுத்தப்பட்டது (archived). திட்டமிடப்பட்ட கடைசி release ஏற்கனவே வெளியாகிவிட்டது. இனிமேல் புதிய releases, bug fixes அல்லது security fixes இருக்காது.

Apache 2.0 குறியீடு தொடர்ந்து இயங்கும். ஆனால் பாதுகாப்பு மேம்பாடுகள் நின்றுவிடும். இந்த மென்பொருளின் முக்கிய நோக்கமே HTTP வழியாக filesystem-க்கு எழுதும் வசதியை (write access) வழங்குவது என்பதால், இந்த வகை மென்பொருள்களுக்கு இது மிகவும் முக்கியமான விஷயமாகும்.

இதை எவ்வாறு தொடர்ந்து இயக்குவது என்பது குறித்து பராமரிப்பாளர்கள் சில ஆலோசனைகளை வழங்கியுள்ளனர். நீங்கள் எந்தக் கருவியைத் தேர்ந்தெடுத்தாலும் இந்த ஆலோசனைகளைப் பின்பற்றுவது அவசியம்: இதை நேரடியாக இணையத்தில் வெளிப்படுத்த வேண்டாம்; TLS (transport layer security) termination செய்யும் மற்றும் சொந்தமாக authentication செய்யும் ஒரு reverse proxy-க்கு பின்னால் இதை வைக்கவும்; command runner-ஐ முடக்கவும்; மேலும், நீங்கள் பகிர விரும்பும் கோப்பகத்தை (directory) மட்டும் mount செய்து, unprivileged container-க்குள் இதை இயக்கவும்.

அந்த README-ல் உள்ள ஒரு வரி மற்ற அனைத்தையும் விட முக்கியமானது. இதில் உள்ள Sessions என்பவை server-side identifiers-க்கு பதிலாக, self-contained JWT (JSON web tokens) ஆக உள்ளன, எனவே அவற்றை ரத்து செய்ய முடியாது. கசிந்த session token ஒன்று காலாவதியாகும் வரை செல்லுபடியாகும், மேலும் கடவுச்சொல்லை மாற்றினாலும் அது செயலிழக்காது. நீங்கள் FileBrowser-ஐத் தொடர்ந்து பயன்படுத்தினால், அதற்கு முன்னால் உள்ள authentication அடுக்குதான் உண்மையான பாதுகாப்புப் பணியைச் செய்கிறது என்பதை நினைவில் கொள்க.

FileBrowser Quantum: தொடர்ந்து மேம்படுத்தப்படும் fork

செயலில் உள்ள மேம்பாடுகள் FileBrowser Quantum (gtsteffaniak/filebrowser) என்ற fork-க்கு மாற்றப்பட்டுள்ளன, இது gtstef/filebrowser image-ஆக வெளியிடப்படுகிறது. இது பழைய command line flags மற்றும் database அமைப்புகளுக்குப் பதிலாக, ஒற்றை config.yaml கோப்பை அடிப்படையாகக் கொண்டு கட்டமைப்பை மாற்றியமைக்கிறது. ஆவணப்படுத்தப்பட்ட விரைவான சோதனை முறை:

docker run -d \
  -v $(pwd):/srv \
  -p 80:80 \
  gtstef/filebrowser:beta

இது தற்போதைய directory-ஐ http://localhost-ல் வழங்குகிறது, மேலும் முதல் login admin / admin ஆகும். உங்கள் கணினியைத் தவிர மற்ற இடங்களிலிருந்து container-ஐ அணுகும் முன் இதை மாற்றவும்.

நீங்கள் தொடர்ந்து பயன்படுத்தும் instance-க்கு, Compose-ஐப் பயன்படுத்தவும், ஒற்றை database கோப்பிற்குப் பதிலாக data directory-ஐ mount செய்யவும், மேலும் port-ஐ localhost-க்கு bind செய்யவும்:

services:
  filebrowser:
    image: gtstef/filebrowser:beta
    user: "1000:1000"
    volumes:
      - /srv/files:/folder
      - ./data:/home/filebrowser/data
    ports:
      - 127.0.0.1:8080:80
    restart: unless-stopped

Config /home/filebrowser/data/config.yaml-லும், database /home/filebrowser/data/filebrowser.sqlite-லும் அமைகின்றன. Version 2.0.0 database வடிவமைப்பை மாற்றியமைத்து ஒருமுறை இடம்பெயர்வு (migration) செய்கிறது, இதனால்தான் ஆவணங்கள் directory mount-ஐக் கேட்கின்றன: ஒற்றை கோப்பை mount செய்தால் புதிய கோப்பை வைக்க இடமிருக்காது. config.yaml-க்குள் உள்ள பாதைகள் container பாதைகள் ஆகும், எனவே config-ல் உள்ள source /folder என்று படிக்கப்படும், /srv/files என்று அல்ல. இதைத் தவறாகக் குறிப்பிட்டால், directory உண்மையில் அங்கு இல்லாததால், எந்தப் பிழையும் காட்டாமல் கோப்புப் பட்டியல் காலியாகத் தோன்றும்.

இந்தத் திட்டம் latest மற்றும் stable ஆகியவற்றை சுமார் 60 MB அளவில் வீடியோ thumbnail-களுக்கான FFmpeg-உடன் வெளியிடுகிறது, மேலும் stable-slim-ஐ வெறும் core மட்டும் கொண்டு சுமார் 15 MB அளவில் வெளியிடுகிறது. இவை ஆகஸ்ட் 2026-ல் install பக்கத்தில் உள்ள புள்ளிவிவரங்கள். நீங்கள் தேர்ந்தெடுத்த tag-ஐ pin செய்யவும். latest உங்களுக்குத் தெரியாமல் மாறக்கூடும், இயங்கும் container-ல் config வடிவம் மாறும் file manager ஒரு மோசமான தொடக்கத்தைத் தரும்.

இந்த வேலைக்கு இது சிறிய கருவிகளில் மிகவும் வலிமையானது. இது include மற்றும் exclude விதிகளைக் கொண்டு பல source-களை வழங்குகிறது, எனவே ஒரு instance /srv/media மற்றும் /srv/docs ஆகியவற்றை வெவ்வேறு வரம்புகளுடன் வெளிப்படுத்த முடியும். பகிர்வுகளுக்கு (shares) காலாவதி நேரம் உண்டு, மேலும் அவை அநாமதேயமாகவோ அல்லது ஒரு பயனருக்கு மட்டுப்படுத்தப்பட்டோ இருக்கலாம். அங்கீகாரம் (Authentication) OIDC (OpenID Connect), LDAP (lightweight directory access protocol), two-factor கொண்ட கடவுச்சொல் மற்றும் proxy header mode ஆகியவற்றை உள்ளடக்கியது. இந்த proxy mode தான், பயனர்களின் இரண்டாவது பட்டியலைப் பராமரிப்பதற்குப் பதிலாக, self-hosted Authentik server மூலம் single sign on (SSO)-க்கு பின்னால் இதை இருக்க அனுமதிக்கிறது.

Filestash: உங்களிடம் ஏற்கனவே உள்ள storage-க்கான ஒரு பொதுவான இடைமுகம்

Filestash ஒரு மாறுபட்ட அமைப்பைக் கொண்டது. இது ஒரு backend-உடன் இணையும் front end ஆகும். இதனுடன் இணைக்கக்கூடிய backend-களின் பட்டியல் நீளமானது: FTP, SFTP (SSH file transfer protocol), S3, SMB, WebDAV, IPFS மற்றும் இருபதுக்கும் மேற்பட்ட பிற சேவைகள். கோப்புகள் இந்த இடைமுகம் இயங்கும் server-ல் இல்லாமல் வேறு இடத்தில் இருக்கும்போது இது பொருத்தமாக இருக்கும்.

mkdir -p /srv/filestash && cd /srv/filestash
curl -O https://downloads.filestash.app/latest/docker-compose.yml
docker compose up -d

இதன் image machines/filestash:latest ஆகும். http://your_domain:8334-ஐத் திறந்து, முதல் திரையில் admin password-ஐ அமைக்கவும். இதை உடனடியாகச் செய்துவிடவும்; ஏனெனில், நீங்கள் அமைக்கும் வரை, அந்த port-ஐ அணுகும் எவருக்கும் admin console திறந்திருக்கும்.

இதன் identity model-ஐப் பயன்படுத்துவதற்கு முன்பு அதைப் புரிந்துகொள்ளவும். Filestash வழக்கமான முறையில் பயனர் தரவுத்தளத்தை (user database) பராமரிப்பதில்லை. நற்சான்றிதழ்கள் (credentials) உங்கள் browser-ல் cookies மூலம் சேமிக்கப்படுகின்றன; இவை குறியாக்கம் (encrypted), அங்கீகரிக்கப்பட்ட (authenticated) மற்றும் HTTP only முறையில் இருக்கும். நீங்கள் share வசதியைப் பயன்படுத்தினால் ஒழிய, server பக்கத்தில் எதுவும் சேமிக்கப்படாது. நீங்கள் share வசதியைப் பயன்படுத்தும்போது, Filestash உங்கள் நற்சான்றிதழ்களின் குறியாக்கம் செய்யப்பட்ட ஒரு நிரந்தரப் பதிப்பைச் சேமித்து வைக்கும். இதில் "பயனர்கள்" என்பது storage accounts ஆகும்: identity என்பது Filestash-ல் இல்லை, அது backend-ல் உள்ள SFTP account அல்லது S3 key-ல் மட்டுமே இருக்கும்.

இந்த வடிவமைப்பு நேர்த்தியானது, ஆனால் இதற்கு ஒரு விலை உண்டு. இதன் pricing பக்கத்தில், இலவச self-hosted tier என்பது AGPL v3 (GNU Affero General Public License) உரிமத்தின் கீழ் 3 பயனர்கள் வரை அனுமதிக்கிறது. SSO (SAML, OIDC மற்றும் LDAP) மற்றும் role based access control வசதிகள் கொண்ட கட்டண self-hosted tier, ஆகஸ்ட் 2026 நிலவரப்படி மாதம் $50 முதல் தொடங்குகிறது. "Filestash-ஐ நிறுவனத்தின் SSO-க்கு முன்னால் இலவசமாகப் பயன்படுத்தலாம்" என்று நீங்கள் திட்டமிட்டிருந்தால், அதை வடிவமைக்கும் முன் அந்தப் பக்கத்தைச் சரிபார்க்கவும்.

SFTPGo: ஒரு protocol server மற்றும் web interface

SFTPGo இந்த பட்டியலில் உள்ள மிகச்சிறந்த மென்பொருள் ஆகும். இது பெரும்பாலும் தவறான காரணங்களுக்காகவே பரிந்துரைக்கப்படுகிறது. இது SFTP, HTTP/S, FTP/S மற்றும் WebDAV ஆகியவற்றை local filesystem, encrypted local filesystem, S3 compatible object storage, Google Cloud Storage, Azure Blob Storage அல்லது பிற SFTP server-கள் மூலம் வழங்குகிறது.

இதன் binaries, Debian மற்றும் Ubuntu packages மற்றும் container image ஆகியவை வெளியிடப்பட்டுள்ளன. தற்போதைய APT repository வரி மற்றும் அதன் signing key ஆகியவை SFTPGo ஆவணங்களின் installation பக்கத்தில் உள்ளன. நீங்கள் விரும்பும் version-ஐ tag என்பதற்குப் பதிலாகப் பயன்படுத்தி, container முறையில் மிக விரைவாக இதை இயக்கலாம்:

docker run --name some-sftpgo -p 8080:8080 -p 2022:2022 -d "drakkan/sftpgo:tag"

SFTP ஆனது 2022 port-லும், web interface-கள் 8080 port-லும் இயங்குகின்றன. /srv/sftpgo-ஐ ஒரு volume-ஆக mount செய்யவும். இல்லையெனில், container மீண்டும் உருவாக்கப்படும்போது கணக்குகளும் (accounts) அவற்றின் கோப்புகளும் அழிந்துவிடும், ஏனெனில் பயனர் home directories இயல்பாக /srv/sftpgo/data/<username>-ல் அமையும்.

இதில் இரண்டு web interface-கள் உள்ளன. இவற்றிற்கு இடையிலான வேறுபாட்டைத்தான் பெரும்பாலான கட்டுரைகள் குறிப்பிடுவதில்லை. /web/admin-ல் உள்ள WebAdmin நிர்வாகத்திற்கான பகுதி: இங்கேதான் நீங்கள் பயனர்கள், குழுக்கள், virtual folders மற்றும் event rules ஆகியவற்றை உருவாக்கலாம்; மேலும் quotas, bandwidth limits மற்றும் access time கட்டுப்பாடுகளை அமைக்கலாம். /web/client-ல் உள்ள WebClient என்பது இறுதிப் பயனருக்கானது; இங்கேதான் பயனர் கோப்புகளைப் பார்க்கலாம், தங்கள் credentials-ஐ மாற்றலாம், two factor authentication-ஐ அமைக்கலாம் மற்றும் கோப்புகளைப் பகிரலாம் (shares).

இந்த பகிர்வு வசதிகள் (shares) இந்த ஒப்பீட்டிலேயே மிகச்சிறந்தவை. ஒரு பயனர் கோப்புகள் மற்றும் கோப்புறைகளைப் பகிர HTTP/S இணைப்புகளை உருவாக்கலாம், பதிவிறக்கம் மற்றும் பதிவேற்றங்களின் எண்ணிக்கையைக் கட்டுப்படுத்தலாம், கடவுச்சொல் மூலம் பாதுகாக்கலாம், source IP address மூலம் அணுகலைக் கட்டுப்படுத்தலாம் மற்றும் தானியங்கி காலாவதி தேதியை அமைக்கலாம்.

பின் ஏன் எச்சரிக்கையாக இருக்க வேண்டும்? இதன் மையப்பகுதி கணக்கு மாதிரி (account model) மற்றும் protocol server ஆகும், கோப்புகளை உலாவரும் அனுபவம் (browsing experience) அல்ல. பிற பயனர்களுக்கு quotas கொண்ட உண்மையான கணக்குகள் தேவைப்படும்போது, அல்லது நீங்கள் கட்டுப்படுத்தாத ஒரு system-லிருந்து SFTP அல்லது FTPS வழியாக பதிவேற்றங்கள் வரும்போது, அல்லது ஒரு bucket பல பயனர்களின் home directories-ல் தெரிய வேண்டியிருக்கும்போது SFTPGo-வைத் தேர்ந்தெடுக்கவும். Virtual folders அந்த கடைசித் தேவையைப் பூர்த்தி செய்கின்றன: local disk, S3, GCS, Azure Blob, SFTP அல்லது HTTP ஆகியவற்றால் ஆதரிக்கப்படும் ஒரு கோப்புறை, பல கணக்குகளில் mount செய்யப்படுகிறது. இதில் பகிரப்பட்ட கோப்புறைக்கு ஒவ்வொரு பயனருக்கும் தனித்தனி quota ஒதுக்கலாம். /srv/files வழியாக கோப்புகளை உலாவ மட்டுமே நீங்கள் விரும்பினால், இதற்கு இவ்வளவு பெரிய கட்டமைப்பு தேவையில்லை.

தெரிந்துகொள்ள வேண்டிய மேலும் இரண்டு உண்மைகள்: Community edition என்பது AGPL-3.0 உரிமத்துடன் கூடுதல் நிபந்தனைகளைக் கொண்டது, இதனுடன் வணிக ரீதியான Enterprise edition-ம் உள்ளது. OIDC login வசதி open source build-ல் உள்ளது; இது identity provider பயனர்களை SFTPGo நிர்வாகிகளாகவும் பயனர்களாகவும் web interface-களில் இணைக்கிறது. நீங்கள் httpd configuration-ல் enable_web_client-ஐப் பயன்படுத்தி client interface-ஐ முழுமையாக முடக்கலாம், அல்லது ஒரு பயனரின் denied protocols பட்டியலில் HTTP-ஐச் சேர்ப்பதன் மூலம் குறிப்பிட்ட பயனருக்கு மட்டும் அதை முடக்கலாம். இதன் மூலம் கோப்பு மேலாளர் (file manager) ஒருவருக்கு மட்டும் இருந்து மற்றவர்களுக்கு இல்லாமல் செய்ய முடியும்.

Cloud Commander: இரண்டு பலகைகள் மற்றும் ஒரு terminal, தனிநபர் பயன்பாட்டிற்கு

Cloud Commander என்பது MIT உரிமம் பெற்ற, இரண்டு பலகை (two pane) பாணியிலான Node.js மேலாளர் ஆகும். இதில் உள்ளமைக்கப்பட்ட editor, console மற்றும் terminal வசதிகள் உள்ளன. இதை npm i cloudcmd -g மூலம் globally நிறுவலாம் அல்லது வெளியிடப்பட்ட container-ஐ இயக்கலாம்:

docker run -it --rm -v ~:/root -v /:/mnt/fs -w=/root -p 8000:8000 coderaiser/cloudcmd

அந்தக் கட்டளையை இயக்கும் முன் வாசிக்கவும். -v /:/mnt/fs முழு host filesystem-ஐயும் container-க்குள் mount செய்கிறது, மேலும் மாதிரி ~/.cloudcmd.json ஆனது "root": "/", "auth": false மற்றும் "console": true ஆகியவற்றை உள்ளடக்கியுள்ளது. இந்த இணைப்பின் பொருள், port 8000-ஐ அணுகும் எவருக்கும் உங்கள் முழு வட்டும் மற்றும் server-ல் உள்ள command console-ம் கிடைத்துவிடும் என்பதாகும். இது ஒரு மடிக்கணினிக்கு ஏற்ற இயல்புநிலை (default), ஆனால் ஒரு VPS-க்கு இது பாதுகாப்பற்றது.

இதன் வரம்பைக் குறைக்கவும். இந்த container /root/.cloudcmd.json-ஐ வாசிக்கிறது, வெளியிடப்பட்ட கட்டளை உங்கள் home directory-ஐ mount செய்வதன் மூலம் இதை வழங்குகிறது. எனவே, config mount-ஐ மட்டும் வைத்துக்கொண்டு மற்றவற்றை நீக்கவும்:

docker run -d --name cloudcmd \
  -v ~/.cloudcmd.json:/root/.cloudcmd.json \
  -v /srv/files:/srv/files \
  -w=/srv/files \
  -p 127.0.0.1:8000:8000 \
  coderaiser/cloudcmd

அந்த config கோப்பில் "root"-ஐ /srv/files என அமைக்கவும், "auth"-ஐ true என ஒரு "username" மற்றும் "password" உடன் அமைக்கவும். உங்களுக்கு browser வழியாக shell access தேவைப்படாவிட்டால், "console" மற்றும் "terminal" ஆகியவற்றை false என அமைக்கவும். --root, --auth, --username, --password மற்றும் --prefix உள்ளிட்ட command line மாற்றுகளும் உள்ளன.

இது என்ன என்பதைத் தெளிவாகப் புரிந்துகொள்ளுங்கள். இதில் ஒரே ஒரு credential ஜோடி மட்டுமே உண்டு, பயனர் வாரியான வரம்புகள் (per-user scoping), ஒதுக்கீடுகள் (quotas) அல்லது பகிரும் இணைப்புகள் (share links) கிடையாது. இது ஒரு தனிநபர் கருவி என்பதால், மேலே குறிப்பிட்டபடி இதை localhost-ல் bind செய்து, ஒரு tunnel வழியாக அணுகவும்:

ssh -L 8000:127.0.0.1:8000 you@your-vps

பிறகு உங்கள் கணினியில் http://127.0.0.1:8000-ஐத் திறக்கவும். இந்த file manager பொதுவெளியில் ஒருபோதும் வெளிப்படாது. இணையத்தில் வெளிப்படும் ஒரே விஷயம், நீங்கள் ஏற்கனவே உங்கள் VPS-ல் பலப்படுத்திய SSH daemon மட்டுமே.

இந்த ஒரு பணிக்கு Nextcloud ஏன் தவறான கருவி

Nextcloud ஒரு சிறந்த மென்பொருள், ஆனால் இது அந்தப் பணிக்கானது அல்ல. இது ஒரு கூட்டுப்பணி தளம் (collaboration platform): இதில் PHP application, database, background jobs, desktop sync clients மற்றும் app store ஆகியவை உள்ளன. /srv/files-ன் web view-ஐப் பெறுவதற்காக இதை இயக்குவது, ஒரு சிறிய பணிக்கு அதிகப்படியான பாகங்களைக் கொண்டிருப்பதாகும்; இதில் ஒரு குறிப்பிட்ட முரண்பாடு உள்ளது. Nextcloud ஒவ்வொரு கோரிக்கையின் போதும் directory-ஐ வாசிப்பதற்குப் பதிலாக, file metadata-வை database table-ல் வைத்திருக்கிறது. எனவே, rsync அல்லது cron job மூலம் எழுதப்படும் கோப்புகள், sudo -u www-data php occ files:scan --all மூலம் scan முடியும் வரை interface-ல் தெரியாமல் போகலாம். ஒரு file manager பக்கத்தை ஏற்றும்போது directory-ஐ பட்டியலிடுவதால், அந்த இடைவெளி அங்கு இருப்பதில்லை.

Nextcloud எதைச் சிறப்பாகச் செய்கிறதோ, அதற்காக அதை மட்டும் பயன்படுத்துங்கள்: calendars, contacts, sync மற்றும் desktop client-ஐ எதிர்பார்க்கும் நபர்களுடன் பகிர்தல். Docker, TLS மற்றும் backups-உடன் VPS-ல் Nextcloud அந்த அமைப்பை விளக்குகிறது. நீங்கள் ஏற்கனவே அதை இயக்கி, ஒரு existing directory-ஐ மட்டும் பார்க்க விரும்பினால், External Storage app-ஐ enable செய்துவிட்டு அங்கேயே நிறுத்திவிடுங்கள். அதே disk-ல் write access கொண்ட இரண்டாவது web application என்பது, patch செய்ய வேண்டிய மற்றொரு கூடுதல் சுமையாகும்.

முழு server-ன் கட்டுப்பாட்டையும் வழங்காமல் ஒரு application-ஐ இயக்குவது எப்படி

எப்போதும் /-ஐ சுட்டிக்காட்ட வேண்டாம். அந்த process, அதன் user account-க்கு எட்டக்கூடிய அனைத்தையும் படிக்கவும் எழுதவும் முடியும். எனவே, ஒரு session token திருடப்பட்டால், அது அந்த அளவுக்கு filesystem அணுகலை வழங்கியதற்குச் சமம். ஒரு directory-ஐ மட்டும், அதாவது /srv/files-ஐ, இதற்கெனவே உருவாக்கிப் பயன்படுத்தவும்.

இதை root அல்லாத user-ஆக இயக்கவும், அது வழங்கும் கோப்புகளை மட்டும் mount செய்யவும். Compose-ல், user: "1000:1000" மற்றும் ஒவ்வொரு directory-க்கும் ஒரு bind mount-ஐப் பயன்படுத்தவும். அது எழுதத் தேவையில்லாத எதற்கும் :ro-ஐப் பயன்படுத்தவும்:

    volumes:
      - /srv/files:/folder
      - /srv/media:/media:ro

இந்த மாற்றத்தைச் செய்த பிறகு, பொதுவாக browsing வேலை செய்யும், ஆனால் permission denied பிழையுடன் uploads தோல்வியடையும். ஏனெனில், container-க்குள் இருக்கும் user id-க்கு, host-ல் உள்ள அந்த directory-ன் உரிமை இல்லை. இரண்டையும் ஒப்பிட்டுப் பார்க்கவும்: docker exec filebrowser id container user-ஐக் காட்டும், ls -ln /srv/files host-ல் உள்ள numeric owner-ஐக் காட்டும். இதை sudo chown -R 1000:1000 /srv/files மூலம் சரிசெய்யவும். இது Docker images-ல் PUID மற்றும் PGID மூலம் தீர்க்கப்படும் அதே உரிமைச் சிக்கல்தான்.

Published port-ஐ 8080:80-க்கு பதிலாக 127.0.0.1:8080:80 (localhost) உடன் இணைக்கவும். Docker தனது சொந்த netfilter விதிகளை ufw-க்கு முன்பாகவே எழுதிவிடும். எனவே, ufw deny 8080 செயல்பாட்டில் இருந்தாலும், வெளிப்படையாக publish செய்யப்பட்ட port இணையத்திலிருந்து அணுகக்கூடியதாகவே இருக்கும். TLS-க்காக ஒரு reverse proxy-ஐ முன்னால் வைக்கவும். plain HTTP வழியாக session cookie பிணையத்தில் தெளிவாகச் செல்லும், அந்த cookie என்பது filesystem அணுகலுக்குச் சமம். உங்களுக்கு Compose புதியது என்றால், VPS-ல் Docker Compose இந்த snippets பயன்படுத்தும் file layout-ஐ விளக்குகிறது.

Application-ன் சொந்த authentication பலவீனமாக இருந்தால், ஒரு கூடுதல் authentication அடுக்கைச் சேர்க்கவும். ஒரே ஒரு user மட்டும் பயன்படுத்தும் instance-க்கு, proxy-ல் HTTP basic auth போதுமானது. ஒன்றுக்கும் மேற்பட்ட நபர்கள் பயன்படுத்தும் போது, OIDC அல்லது identity provider-க்கு எதிரான forward auth-ஐப் பயன்படுத்தவும். இதன் மூலம் ஒரு account-ஐ நீக்கினால், எல்லா இடங்களிலும் அணுகல் ரத்து செய்யப்படும்.

தேவையற்ற கூடுதல் வசதிகளை அணைக்கவும். Shell, command runner அல்லது browser-க்குள் terminal வழங்கும் எந்தவொரு file manager-ம், சரியான session வைத்திருப்பவருக்கு remote code execution வசதியை வழங்குகிறது. command runner-ஐ முடக்கி வைக்குமாறு FileBrowser-ன் வழிகாட்டுதல் கூறுகிறது, Cloud Commander-ன் மாதிரி config console-ஐ இயக்குகிறது. இயல்பாக (default) இருப்பதை விட, தேவைக்கேற்ப முடிவெடுக்கவும்.

முதலில் செயலிழப்பவை மற்றும் நீங்கள் காணும் பிழைகள்

listen tcp :80: bind: permission denied. Linux 1024-க்குக் கீழே உள்ள ports-ஐ privileged processes-க்காக ஒதுக்குகிறது. FileBrowser Quantum-ன் ஆவணப்படுத்தப்பட்ட config port 80-ஐப் பயன்படுத்துகிறது; இது container-க்குள் சரியாகச் செயல்படும், ஆனால் host-ல் unprivileged user-ஆக binary-ஐ இயக்கும்போது செயலிழக்கும். config.yaml-ல் 1024-க்கு மேல் உள்ள port-ஐ அமைத்து, 443-ஐ proxy-யிடம் விட்டுவிடுங்கள்.

Browsing வேலை செய்கிறது, ஆனால் uploads தோல்வியடைகின்றன. ஒரு directory-ஐப் பட்டியலிட r-x தேவை, அதில் எழுதுவதற்கு w தேவை. Web interface ஒரு பொதுவான பிழையை மட்டுமே காட்டும், எனவே application logs-ஐப் பார்ப்பதற்கு முன் filesystem-ஐச் சரிபார்க்கவும்.

413 Request Entity Too Large. இந்த பிழை file manager-லிருந்து வருவதில்லை, nginx-லிருந்து வருகிறது. இயல்பான client_max_body_size 1 MB ஆகும், எனவே பெரிய அளவிலான upload-ஐ application பார்ப்பதற்கு முன்பே proxy நிராகரித்துவிடும். server block-ல் client_max_body_size 4096m;-ஐ அமைக்கவும், அல்லது இந்தச் சோதனையைத் தவிர்க்க 0-ஐப் பயன்படுத்தவும்.

Upload செய்யப்படும் கோப்புகள் தவறான group-ஐக் கொண்டுள்ளன. புதிய கோப்புகள் process user-ன் உரிமையிலேயே இருக்கும், சுற்றியுள்ள directory என்ன சொன்னாலும் இதுவே நடக்கும். இதனால் அதே directory-ஐப் பயன்படுத்தும் மற்றொரு service பாதிக்கப்படும். இரண்டு service-களுக்கும் ஒரு பொதுவான group-ஐ வழங்கி, directory-ல் sudo chmod g+s /srv/files மூலம் setgid bit-ஐ அமைக்கவும்; அப்போதுதான் புதிய கோப்புகள் அந்த directory-ன் group-ஐப் பெற்றுக்கொள்ளும்.

Port-ல் எல்லாம் சரியாக வேலை செய்கிறது, ஆனால் proxy-க்குப் பின்னால் செயலிழக்கிறது. ஒரு subpath-ன் கீழ் இயங்கும் application, தனக்குத் தெரிவிக்கப்பட வேண்டிய ஒரு prefix-ஐக் கொண்டு இணைப்புகளை (links) உருவாக்கும். Cloud Commander-ல் இதற்காக --prefix உள்ளது. அத்தகைய விருப்பம் இல்லாத இடங்களில், application-க்குத் தனி subdomain வழங்கி, root path-ஐ proxy செய்யவும்.

எந்த self-hosted file manager-ஐ நீங்கள் பயன்படுத்த வேண்டும்?

  • ஒரு VPS, ஒன்று அல்லது இரண்டு directories, காலாவதி தேதியுடன் கூடிய share links, மற்றும் எதிர்காலத்தில் SSO தேவைப்படலாம்: FileBrowser Quantum.
  • கோப்புகள் வேறொரு இடத்தில் (S3 bucket, SFTP host, அல்லது SMB வழியாக NAS) உள்ளன, அவற்றை ஒரே web view-வில் பார்க்க விரும்புகிறீர்கள்: Filestash (free tier வரம்புகளுக்குள்).
  • பிற பயனர்களுக்கு accounts, quotas மற்றும் SFTP அல்லது FTPS வழியாக uploads தேவை: SFTPGo (இதன் web client ஒரு கூடுதல் வசதி மட்டுமே, இதுவே முதன்மைத் தேர்வு அல்ல).
  • SSH tunnel வழியாக அணுகக்கூடிய, பொதுவெளியில் வெளியிடப்படாத, editor மற்றும் terminal கொண்ட தனிப்பட்ட கருவி: Cloud Commander.
  • ஏற்கனவே Nextcloud இயங்குகிறது மற்றும் ஒரு directory-ஐ மட்டும் பகிர வேண்டும்: External Storage app (புதிய மென்பொருள் தேவையில்லை).

நீங்கள் எதைத் தேர்வு செய்தாலும், அதை எவ்வாறு நிறுவுகிறீர்கள் என்பதே முக்கியம். ஒரு directory, non-root user, localhost-ல் பிணைக்கப்பட்ட port, மற்றும் முன்னால் ஒரு authentication முறை. இந்த முறையில் அமைக்கப்பட்ட file manager ஒரு பயனுள்ள கருவி. அதே மென்பொருளை /-க்கு சுட்டிக்காட்டி, பகிரப்பட்ட கடவுச்சொல்லைப் பயன்படுத்தினால், அது ஒரு சிறந்த இடைமுகம் கொண்ட remote shell-ஆக மாறிவிடும்.

FAQ

2026-ல் FileBrowser-ஐ இயக்குவது பாதுகாப்பானதா?

filebrowser/filebrowser README-ன் படி, File Browser 2026-09-01 அன்று ஆவணப்படுத்தப்பட்டு (archived) நிறுத்தப்பட்டது. இனி புதிய releases, bug fixes அல்லது security patches வராது. இதன் code தற்போதும் இயங்கும், ஆனால் உங்கள் filesystem-ல் write access கொண்ட, patch செய்யப்படாத software-ஐப் பயன்படுத்துவது காலப்போக்கில் ஆபத்தானது. நீங்கள் இதைப் பயன்படுத்த விரும்பினால், அந்த project-ன் அறிவுறுத்தல்களைப் பின்பற்றவும்: இணையத்தில் நேரடியாகத் திறக்க வேண்டாம், TLS மற்றும் authentication-ஐ ஒரு reverse proxy மூலம் கையாளவும், command runner-ஐ முடக்கவும், மற்றும் தேவையான directory-ஐ மட்டும் mount செய்த unprivileged container-ல் இயக்கவும். இதன் sessions server-side identifiers-க்கு பதிலாக, சுயமான JWT-களைப் பயன்படுத்துகின்றன என்பதை கவனத்தில் கொள்க. எனவே, இவற்றைத் திரும்பப் பெற முடியாது (revoke), மேலும் password-ஐ மாற்றினாலும் ஏற்கனவே வழங்கப்பட்ட token செல்லுபடியாகும். புதிய நிறுவலாக இருந்தால், தொடர்ந்து மேம்படுத்தப்பட்டு வரும் gtstef/filebrowser image-ஆக வெளியிடப்பட்டுள்ள FileBrowser Quantum fork-ஐப் பயன்படுத்தவும்.

சுய-வழங்கப்பட்ட (self-hosted) file manager-ல் எனது தற்போதைய SSO-ஐப் பயன்படுத்த முடியுமா?

FileBrowser Quantum, OIDC, LDAP மற்றும் proxy header mode-ஐ ஆதரிக்கிறது. எனவே, இரண்டாவது பயனர் பட்டியல் (user list) இன்றி, ஏற்கனவே உள்ள identity provider-ன் கீழ் இதை இயக்கலாம். SFTPGo-வின் OpenID Connect வசதி open source build-ல் உள்ளது; இது identity provider பயனர்களை WebAdmin மற்றும் WebClient interfaces-க்கான SFTPGo admins மற்றும் பயனர்களாக மாற்றுகிறது. Filestash இதில் விதிவிலக்கு: இதன் pricing பக்கத்தின்படி, ஆகஸ்ட் 2026 நிலவரப்படி SSO (SAML, OIDC மற்றும் LDAP) வசதி மாதம் $50 கட்டணத்தில் கிடைக்கும் self-hosted tier-ல் மட்டுமே உள்ளது. இலவச tier AGPL v3 உரிமத்துடன் 3 பயனர்களுக்கு மட்டுமே அனுமதிக்கிறது. ஒரு application-ல் SSO வசதி இல்லையெனில், reverse proxy-ல் forward authentication-ஐப் பயன்படுத்தலாம். இது login பக்கத்தைப் பாதுகாக்கும், ஆனால் application-ன் உள் அனுமதிகளை (internal permissions) மாற்றாது.

SFTPGo மிக முழுமையான வசதியைக் கொண்டுள்ளது. ஒரு பயனர் WebClient மூலம் HTTP/S link-ஐ உருவாக்கி, பதிவிறக்கம் மற்றும் பதிவேற்ற எண்ணிக்கையை மட்டுப்படுத்தலாம், password அமைக்கலாம், source IP address மூலம் அணுகலைக் கட்டுப்படுத்தலாம் மற்றும் தானியங்கி காலாவதி தேதியை (expiration date) நிர்ணயிக்கலாம். FileBrowser Quantum காலாவதி நேரத்துடன் கூடிய share-களை ஆதரிக்கிறது. இதில் அணுகலை anonymous-ஆகவோ அல்லது குறிப்பிட்ட பயனருக்கு மட்டுப்படுத்தியோ வைக்கலாம்; மேலும், ஒவ்வொரு share-க்கும் viewing, editing மற்றும் uploading அனுமதிகளை வழங்கலாம். Filestash-லும் share வசதி உள்ளது. உங்கள் browser session முடிந்த பிறகும் link செயல்பட வேண்டும் என்பதால், server-ல் storage credentials-ன் encrypted நகலை இது சேமித்து வைக்கும். Cloud Commander-ல் share links வசதி இல்லை.

நான் மட்டுமே பயனர் என்றால், file manager-ஐ / directory-க்கு point செய்வது பாதுகாப்பானதா?

இல்லை, இது உங்களை நம்புவது பற்றியது அல்ல. அந்த process, அதன் user account அணுகக்கூடிய அனைத்திற்கும் read மற்றும் write அனுமதியைக் கொண்டுள்ளது. எனவே, அந்த session-ல் நுழையும் எந்தவொரு வழி, திருடப்பட்ட cookie, upload handler-ல் உள்ள patch செய்யப்படாத bug, அல்லது மீண்டும் பயன்படுத்தப்பட்ட password போன்றவை /etc, உங்கள் SSH keys மற்றும் ஒவ்வொரு service-ன் data directory-க்கும் அணுகலை வழங்கிவிடும். அதற்குப் பதிலாக, /-க்கு பதிலாக /srv/files என ஒரு குறிப்பிட்ட directory-ஐ மட்டும் mount செய்யவும். Cloud Commander-ல் இது அதிக ஆபத்தை விளைவிக்கும், ஏனெனில் அதன் Docker command host root-ஐ /mnt/fs-ல் mount செய்கிறது மற்றும் அதன் sample config "auth": false உடன் "root": "/"-ஐ அமைக்கிறது. அந்த container localhost-ஐத் தவிர வேறு எதிலும் listen செய்வதற்கு முன்பே இவை இரண்டையும் மாற்றவும்.

#file-manager#filebrowser#sftpgo#self-hosting#storage