Coder Social home page Coder Social logo

gmh5225 / remote-file-browser-mikochi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zer0tonin/mikochi

0.0 1.0 0.0 583 KB

License: MIT License

Shell 2.87% JavaScript 51.06% Go 30.76% CSS 10.84% Makefile 0.33% HTML 0.99% Smarty 2.45% Dockerfile 0.71%

remote-file-browser-mikochi's Introduction

๐ŸŒฑ Mikochi: a minimalist remote file browser

Mikochi is a remote file browser, for use in self-hosted servers / NAS. It allows you to browse remote folders, upload files, delete, rename, download and stream files to VLC/mpv.

It comes with a web interface powered by JavaScript/Preact, and an API built in Go/Gin.

Screenshot of the web interface

Getting started

Binary

Launch the app using a pre-compiled binary from the latest release:

wget -c https://github.com/zer0tonin/Mikochi/releases/download/1.2.3/mikochi-linux-amd64.tar.gz -O - | tar -xz
HOST=127.0.0.1:8080 USERNAME=zer0tonin PASSWORD=horsebatterysomething ./mikochi

Docker

Launch the app using docker:

docker run \
-p 8080:8080 -v $(PWD)/data:/data \
-e DATA_DIR="/data" -e USERNAME=zer0tonin \
-e PASSWORD=horsebatterysomething zer0tonin/mikochi:latest

(For arm/v7 users, use the latest-armv7 or 1.2.3-armv7 tag)

Kubernetes

For Kubernetes users, Mikochi is installable using a helm chart:

helm repo add zer0tonin https://zer0tonin.github.io/helm-charts/
helm --kubeconfig kubeconfig install mikochi zer0tonin/mikochi \
--version 1.2.3 --set mikochi.username=zer0tonin \
--set mikochi.password=my_super_password --set persistence.enabled=true

Configuration

Mikochi is configured using environment variables

Key Description Default
HOST The ip:port mikochi will listen on 0.0.0.0:80
DATA_DIR The directory accessed by mikochi /data
JWT_SECRET A secret string for jwt validation [Random]
USERNAME The username to login with root
PASSWORD The password to login with pass

Security considerations

It is encouraged to use Mikochi behind a reverse proxy (ie. nginx), and use it to configure TLS. This will stop any attackers from being able to replay requests and access your files. Additionally, using rate limits can help slow down bruteforce and DDoS attacks.

Contributing

I welcome any PRs aimed at improving or fixing existing features, especially on the following subjects:

  • making a non-hacky linux/arm/v7 docker build (npm seems to have trouble with this architecture)
  • making a smarter cache refresh
  • improving accessibility
  • s3/minio support

Launching the development environment

The development environment and build pipeline rely on Docker/docker-compose.

Run the dockerized development environment with:

make dev

It will start a frontend container (listening on 5000), a backend container (listening on 4000) and an nginx to wire both (listening on 8080).

Use make build to run a production build in a single container.

remote-file-browser-mikochi's People

Contributors

zer0tonin avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.