Goals
Synchronize a OneDrive folder, re-share it locally via a web server.
TODO: Run rclone as a service
Prerequisistes
- Single-Use OneDrive Account with a shared folder
- Alpine Linux VM
Installation
Enable the community repository in /etc/apk/repositories. Update and install rclone and nginx.
# apk update
# apk upgrade
# apk add rclone nginx
Configuration
The local files will be stored under /var/www/wifishare, thus rclone will synchronize to this location and nginx will use this as root (with autoindex on).
Create folder
# mkdir /var/www/wifishare
Configure rclone
Start the configuration step (ideally via SSH where you can copy paste the token later on):
# rclone config
Make a new remote (n)
Name it (wifishare)
Choose provider (onedrive)
Leave client_id and client_secret empty
region: global (depends on your setup)
No advanced config
No auto config (since we are running headless)
On a machine with a web browser:
$ rclone authorize "onedrive"
and follow the login process in the browser. Then, copy and paste the token as indicated.
config_type onedrive
Initial sync (interactive):
rclone sync -i wifishare:/public /var/www/wifishare
Configure nginx
Set root directory and enable directory listing. In this case, by modifying the default config.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/wifishare;
location / {
autoindex on;
}
}
Restart and enable service
# rc-service nginx restart
# rc-update add nginx