/Anta-API

Web based remote file explorer

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Anta API

Anta is a multi-functional self hosted media streaming service. Check this demo video / #2

Feature

  • Can provide files and folders from a local machine in the web interface

Media

  • Supports video, music streaming
  • Video streaming with automatic subtitle provider within the same folder
  • Use any types of subtitles (smi, srt, vtt...) to watch videos in the browser
  • Can stream many types of videos and codecs in the browser(avi, mkv, flv... using ffmpeg) not only mp4
  • Groupwatch feature (sync a video between a host and users, WIP)

Web features

  • Responsive UI design (Mobile, PC)
  • Swipable image viewer
  • File upload and other file operations (rename, remove..) (WIP)

Specification

  • Works on http2 protocol
  • User Authentication
  • GUI control of the running server

Installation

npm install

will download necessary packages.

npm run start ./configs/shared.cfg ./configs/general.cfg

Finally, this command will start the server and create new configuration files.
You will see the server managemenet window.
GUI Example
You can start to share folders by drag n drop folders to the window.
Finally, navigate to http://localhost

Configurations

at shared.cfg you can specify folders to share.

#shared.cfg
example=/usr/path/to/somewhere
exmaple2=C:\users\kim\Downloads

at general.cfg you can adjust various settings.

port=80 #port number for main server when use http server.
portSSL=443 #for main server when use https server.
portRedir=80 #port for http->https redirection server.
ssl=false #if true, use https(http2).  
sslKey=./ssl.key #specify key and cert for https server.
sslCert=./ssl.crt 
jwtRSAPublicKeyPath=./cert/jwtRS256.key.pub #specify key and cert for JWT token authentication. (Generate ones if not exist)
jwtRSAPrivateKeyPath=./cert/jwtRS256.key
skin=./skin #skin folder that contains frontend data.
startWizard=true #currently do nothing.
fileUploadUseTempFiles=true #Write files to the drive instead of the memory when user tries to upload files
fileUploadTempDir=./temp 
fileUploadLimit=52428800 #Upload limits in bytes
userDBPath=./data/user.db #Db path for authentication
useAuth=false #Decide to use authentication or not 

TODO

Visit Here For Future Roadmaps