thevickypedia / fileware

Setup a private cloud to access files in local machine from anywhere on the internet

Home Page:https://thevickypedia.github.io/fileware/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Versions Supported

Python

Language Stats

Language count Code coverage

Repo Stats

GitHub GitHub repo size GitHub code size

Code Stats

Modules Python

Activity

GitHub Repo created GitHub commit activity GitHub last commit

Build Status

pypi-publish pages-build-deployment

FileWare

Set up a file server to access files in local machine from anywhere on the internet.

Setup

Environment Variables:

  • username: Username to confirm identity. Defaults to user profile name.
  • password: Password for authentication.
  • port: Port number to serve. Defaults to 4443.
  • host_path: Path which is to be hosted. Defaults to home page.

To host on a public facing URL:

  • ngrok_auth: Ngrok token.

Usage

python3 -m pip install fileware

With Threading

from threading import Thread

import fileware


fileware.models.env.port = 4568
fileware.models.env.host_dir = "movies"


if __name__ == '__main__':
    # Initiates the connection and creates a new process if ngrok auth token is valid.
    response = fileware.initiate_connection()
    print(response.url)

    # Runs the server in a thread alongside starting the ngrok process created previously.
    thread = Thread(target=fileware.serve,
                    kwargs={'http_server': response.server, 'process': response.process})
    thread.start()

    # Do your own task here

    # Shutdown the server and join the thread which spun the server up.
    fileware.shutdown(http_server=response.server, process=response.process)
    thread.join(2e+1)

Without Threading - File Server will terminate only when the main process is killed.

import fileware


if __name__ == '__main__':
    response = fileware.initiate_connection()
    print(response.url)
    fileware.serve(http_server=response.server,process=response.process)

Env vars can be loaded by placing a .env file in current working directory.

The serve function can also take arguments which can be used to override env vars.

Pypi Package

pypi-module

https://pypi.org/project/fileware/

Coding Standards

Docstring format: Google
Styling conventions: PEP 8
Clean code with pre-commit hooks: flake8 and isort

Linting

PreCommit will ensure linting, and the doc creation are run on every commit.

Requirement

pip install --no-cache pre-commit recommonmark sphinx==5.1.1

Usage

pre-commit run --all-files

Pypi Package

pypi-module

https://pypi.org/project/fileware/

Runbook

made-with-sphinx-doc

https://thevickypedia.github.io/fileware/

License & copyright

© Vignesh Rao

Licensed under the MIT License

About

Setup a private cloud to access files in local machine from anywhere on the internet

https://thevickypedia.github.io/fileware/

License:MIT License


Languages

Language:Python 64.8%Language:HTML 31.5%Language:Batchfile 1.5%Language:Makefile 1.2%Language:Shell 1.0%