136 lines
2.2 KiB
Markdown
136 lines
2.2 KiB
Markdown
https://github.com/hacdias/webdav
|
||
|
||
```sh
|
||
ssh igor@192.168.200.81 -p 22
|
||
```
|
||
|
||
```sh
|
||
sudo apt update &&
|
||
sudo apt install golang-go
|
||
```
|
||
|
||
```sh
|
||
git clone https://github.com/hacdias/webdav.git &&
|
||
cd webdav
|
||
```
|
||
|
||
```sh
|
||
go build -o webdav .
|
||
```
|
||
|
||
```sh
|
||
cd /opt/webdav &&
|
||
sudo tee config.yml > /dev/null <<'EOF'
|
||
address: "0.0.0.0"
|
||
port: 8085
|
||
directory: "."
|
||
permissions: "R"
|
||
debug: true
|
||
users:
|
||
- username: admin
|
||
password: "U8Z0a6YY7taZ965"
|
||
directory: "/mnt/backups"
|
||
permissions: "CRUD"
|
||
EOF
|
||
```
|
||
|
||
Пытаемся запустить
|
||
```sh
|
||
cd /opt/webdav &&
|
||
./webdav --config config.yml
|
||
```
|
||
Проверяем что работает:
|
||
```sh
|
||
open http://192.168.200.81:8085
|
||
```
|
||
|
||
Находим и убиваем процесс
|
||
```sh
|
||
ps aux | grep webdav
|
||
```
|
||
|
||
```sh
|
||
pkill -f 'webdav --config config.yml'
|
||
```
|
||
|
||
Создаю пользователя webdav
|
||
```sh
|
||
sudo useradd -r -s /sbin/nologin -d /opt/webdav -m webdav &&
|
||
sudo chown -R webdav:webdav /opt/webdav &&
|
||
sudo chmod -R 750 /opt/webdav
|
||
```
|
||
|
||
```sh
|
||
sudo nano /etc/systemd/system/webdav.service
|
||
```
|
||
|
||
```sh
|
||
cd /etc/systemd/system/ &&
|
||
sudo tee webdav.service > /dev/null <<'EOF'
|
||
[Unit]
|
||
Description=WebDAV Server
|
||
After=network.target
|
||
|
||
[Service]
|
||
WorkingDirectory=/opt/webdav
|
||
ExecStart=/opt/webdav/webdav --config config.yml
|
||
User=webdav
|
||
Group=webdav
|
||
Restart=on-failure
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
EOF
|
||
```
|
||
|
||
```sh
|
||
sudo systemctl daemon-reexec &&
|
||
sudo systemctl enable webdav &&
|
||
sudo systemctl start webdav
|
||
```
|
||
|
||
```sh
|
||
sudo systemctl status webdav
|
||
```
|
||
```sh
|
||
sudo journalctl -u webdav -b
|
||
```
|
||
|
||
Теперь WebDAV доступен по адресу:
|
||
```sh
|
||
start https://yourdomain.com/webdav/
|
||
```
|
||
|
||
|
||
## Настройка HAProxy
|
||
|
||
Edit haproxy configuration file:
|
||
```sh
|
||
sudo mcedit /etc/haproxy/haproxy.cfg
|
||
```
|
||
|
||
frontend HTTPS:
|
||
```config
|
||
frontend https-in
|
||
bind *:443 ssl crt /etc/ssl/private/yourdomain.pem
|
||
acl is_webdav path_beg /webdav
|
||
use_backend webdav_backend if is_webdav
|
||
```
|
||
|
||
В backend:
|
||
```config
|
||
backend webdav_backend
|
||
server webdav1 127.0.0.1:8085
|
||
```
|
||
|
||
```sh
|
||
haproxy -f /etc/haproxy/haproxy.cfg -c
|
||
````
|
||
```sh
|
||
sudo systemctl restart haproxy
|
||
```
|
||
|
||
Для винды можно подключить диск при помощи:
|
||
```
|
||
open https://www.raidrive.com/
|
||
``` |