https://github.com/qbit/gavin
Self-contained organice instance / WebDAV server.
https://github.com/qbit/gavin
Last synced: about 1 year ago
JSON representation
Self-contained organice instance / WebDAV server.
- Host: GitHub
- URL: https://github.com/qbit/gavin
- Owner: qbit
- License: isc
- Created: 2019-11-07T15:06:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-10-15T13:56:44.000Z (over 4 years ago)
- Last Synced: 2025-03-27T20:41:10.558Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 64.5 KB
- Stars: 5
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gavin
*gavin* is a self contained instance of [Organice](https://github.com/200ok-ch/organice).
It combines a WebDAV server and the Organice assets into a single binary that
can be run from virtually everywhere.
`gavin` can be used as a standalone webserver or placed behind a reverse proxy.
## Features
- Built in WebDAV server with basic http authentication.
- Ability to serve over TLS using automatically managed ACME certificates.
- Reverse proxy friendly.
## Docs
### Generating a .htpasswd file
Please note: `gavin` expects the `.htpasswd` file to use bcrypt as the hashing
algorithm!
#### Using `gavin`
```
gavin -htpass /secrets/.htpasswd -gen
```
#### OpenBSD using `htpasswd`
```
htpasswd .htpasswd $USER
```
#### Linux/macOS using `htpasswd`
```
htpasswd -B -c .htpasswd $USER
```
### Example usage on local machine
#### Download gavin
Releases can be downloaded for common OSs here:
https://github.com/qbit/gavin/releases
#### Running
- Generate a `.htpasswd` file.
- Run `gavin` pointing it at your `org` files:
```
gavin -davdir ~/org
```
Now you log into `gavin` with the following settings:
URL: https://localhost:8080/dav
Username: $USER
Password: $YOURPASSWORD
### Running in auto ACME mode
```
gavin -domain gavin.example.com -http $externalIP:443
```
If you would like to specify where `gavin` stores the certificates the `-cache`
flag can be used.
By default `gavin` will listen on port *80* for ACME requests. This can be
changed using the `-alisten` flag, however, note that ACME always sends
requests over port 80, so you will need something that forwards requests onto
`gavin`.