This repository contains guides, snippets, hints, references, etc. to help the users and contributors of File Browser.
If you want to contribute to these docs, please open an issue or a Pull Request (PR)!
File Browser is a free and open source software brought to you with ❤️ by @hacdias and contributors. So, first off, thanks for taking the time to contribute. We need all the help we can get 👍
- Found a bug? Open either a bug report or a Caddy-related bug report.
- Got a feature idea? Open a feature request.
- Want to contribute modifications to the codebase? Please, read Project structure, Builds and Development. Then open a Pull Request (PR).
- Spread the word. Talk to your friends and colleagues about how awesome File Browser is!
This project is composed of two main repositories:
- The backend hosted at filebrowser/filebrowser is entirely written in go(lang).
- The frontend hosted at filebrowser/frontend is written with the Vue.js framework to produce JavaScript, CSS and HTML.
This modular approach is meant to make contributing easier for users willing to focus on/reuse only some piece, instead of being forced to analyze the whole project. However, due to the tight coupling required by some features, basic knowledge of both golang
and Vue.js
is recommended. See golang/go/wiki/Learn and vuejs.org/v2/guide.
This structure is also valuable for third parties to develop alternative implementations of any of the pieces. E.g. a different frontend can be written using Angular/AngularJS, but keeping the same backend. Equally, a different backend can be written using Python or Ruby, but keeping the same frontend.
Furthermore, File Browser can be used as a middleware for an app. Indeed, it is available as a plugin for Caddy. See caddyserver.com/docs/http.filemanager and filebrowser/filebrowser/tree/master/caddy. The codebase that plugs/embeds Filebrowser into Caddy is developed in filebrowser/caddy. Moreover, the procedure to update assets/rice-box.go
there is explained in CI and release.