Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thnee/filemanager
File manager web app
https://github.com/thnee/filemanager
Last synced: 27 days ago
JSON representation
File manager web app
- Host: GitHub
- URL: https://github.com/thnee/filemanager
- Owner: thnee
- Created: 2024-02-01T15:52:57.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-02T15:02:59.000Z (11 months ago)
- Last Synced: 2024-02-03T00:34:01.773Z (11 months ago)
- Language: Svelte
- Homepage:
- Size: 71.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# filemanager
File management web application.
The name filemanager is a placeholder name, it should probably be changed to something cooler.
Currently developed and tested on Linux, specifically Ubuntu 22.04.
### Features
- Web GUI with file management functionality.
- Browse directories in gallery or table view.
- View file details with support for various file formats.
- Looks and feels like a desktop application.
- Multiple users and multiple main directories.
- Simple configuration via yaml config file.
- Security is built with established and proven libraries.
- Really fast and lean.### Tech details
- Deployed as a single stand-alone self-contained compiled binary executable file.
- Listens on a single port using HTTP.
- Serves web app and API on the same port, under `/` and `/api` respectively.
- Backend is built with Golang, and Chi.
- Frontend is built with JavaScript, Svelte, and SvelteKit.## Installation
For now, download and compile source code (see Development, it's very straight forward).
## Development
Languages and tools are installed via [mise][mise].
Install mise.
```bash
curl https://mise.run | sh
```Install requirements with mise.
```bash
mise install
```Install go packages.
```bash
cd api
go get
```Install npm packages.
```bash
cd web
npm install
```Run dev servers.
```bash
cd api
just
``````bash
cd web
just
```Build production executable.
```bash
just build
```Run production executable.
It listens on 127.0.0.1:4000.
The example config file has one user with username demo and password demo, and one file area for the path `/tmp`.```bash
./main -config config.yml
```[mise]: https://github.com/jdx/mise