https://github.com/thnee/filemanager
File manager web app
https://github.com/thnee/filemanager
Last synced: about 1 month ago
JSON representation
File manager web app
- Host: GitHub
- URL: https://github.com/thnee/filemanager
- Owner: thnee
- Created: 2024-02-01T15:52:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-05-09T11:21:02.000Z (about 1 year ago)
- Last Synced: 2025-06-03T03:56:11.641Z (about 1 year ago)
- Language: Svelte
- Homepage:
- Size: 88.9 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.
The example config file has one user with username demo and password demo, and one file area for the path `/tmp`.
```bash
./main server --config config.yml
```
[mise]: https://github.com/jdx/mise