Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akrantz01/davoxide
A simple WebDAV server with a basic web UI, authentication, and permissions
https://github.com/akrantz01/davoxide
graphql react rust webdav
Last synced: 15 days ago
JSON representation
A simple WebDAV server with a basic web UI, authentication, and permissions
- Host: GitHub
- URL: https://github.com/akrantz01/davoxide
- Owner: akrantz01
- License: mit
- Created: 2022-08-01T07:52:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T20:22:06.000Z (11 months ago)
- Last Synced: 2024-10-11T19:45:51.363Z (about 1 month ago)
- Topics: graphql, react, rust, webdav
- Language: Rust
- Homepage:
- Size: 305 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# DAVOxide
> A simple WebDAV server with a basic web UI, authentication, and permissions.![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/akrantz01/davoxide/Build/main?style=for-the-badge)
![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/akrantz01/davoxide?style=for-the-badge)DAVOxide provides a simple and lightweight interface to a folder on your server through WebDAV and a simple web UI.
Most operations are intended to be performed over WebDAV such as modifying files or directories.
The web UI exists strictly for permission management and read-only filesystem access.
Permissions can be defined for individual files or entire directories.
Simply specify the path and the desired action, and it will instantly be applied.Primary authentication is delegated to a SSO proxy such as [Authelia](https://www.authelia.com/).
WebDAV clients can authenticate using HTTP basic authentication with a username and access token.![](davoxide.png)
## Installation
Docker:
```
docker run -d --name davoxide \
-e BASE_PATH=/files \
-e DATABASE_URL=postgres://postgres:[email protected]:5432/postgres \
-v $PWD:/files \
ghcr.io/akrantz01/davoxide:latest
```## Usage
A few motivating and useful examples of how your product can be used. Spice this up with code blocks and potentially more screenshots.
To run DAVOxide, you will need a [Postgres](https://www.postgresql.org/) database instance.
To get started quickly, you can launch one using Docker.All configuration is done through environment variables. There are only 4 options to configure:
- `RUST_LOG` - The logging configuration (see [env_logger](https://docs.rs/env_logger/latest/env_logger/#enabling-logging) for options)
- `ADDRESS` - The listen address
- `BASE_PATH` - The path files should be served from
- `DATABASE_URL` The database URL to connect toAll options are optional except for `DATABASE_URL`.
## Meta
[Alexander Krantz](https://krantz.dev) – [email protected]
Distributed under the MIT license. See ``LICENSE`` for more information.
[https://github.com/akrantz01](https://github.com/akrantz01)
### Roadmap
Some future improvements that will be added eventually:
- [ ] Allow sharing single files
- [ ] Multiple access tokens per user
- [ ] User groups## Contributing
1. Fork it ()
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Commit your changes (`git commit -am 'Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
5. Create a new Pull Request### Development Setup
1. Install Rust, NodeJS, and Docker
2. Start the development containers: `docker compose up -d`
3. Start the development servers:
- API: `cargo run`
- UI: `cd frontend && yarn dev`