abraunegg-onedrive/docker/README.md

93 lines
3.1 KiB
Markdown
Raw Normal View History

# onedrive docker image
Thats right folks onedrive is now dockerized ;)
This container offers simple monitoring-mode service for 'Free Client for OneDrive on Linux'.
## Usage instructions
### 0. Install the docker under your own platform's instructions
### 1. Pull the image
```bash
docker pull driveone/onedrive
```
2019-01-06 00:14:49 +01:00
**NOTE:** SELinux context needs to be configured or disabled for Docker, to be able to write to OneDrive host directory.
### 2. Prepare required stuff
2019-01-22 04:40:19 +01:00
Onedrive needs two volumes. One is config volume, which is recommanded to be a docker volume. You can create it with:
2019-01-06 00:14:49 +01:00
```bash
docker volume create onedrive_conf;
```
2019-01-22 04:40:19 +01:00
This will create a docker volume labeled 'onedrive_conf', which we will use it later.
The second one is your data folder that needs to sync with. The owner of the folder must not be root, and you must have permission to its parent directory (because onedrive will try to setup a monitor for the sync folder).
### 3. First run
2019-01-22 04:40:19 +01:00
Onedrive also needs to be authorized with your account. This is done by running docker in interactive mode.
**make sure to change onedriveDir to your own.**
```bash
onedriveDir="${HOME}/OneDrive"
docker run -it --restart unless-stopped --name onedrive -v onedrive_conf:/onedrive/conf -v "${onedriveDir}:/onedrive/data" driveone/onedrive
```
You will be asked to open a specific link using your web browser where you will have to login into your Microsoft Account and give the application the permission to access your files. After giving the permission, you will be redirected to a blank page. Copy the URI of the blank page into the application.
If your onedrive is working as expected, you can detach from the container with Ctrl+p, Ctrl+q.
2019-01-22 04:40:19 +01:00
### 4. Status, stop, and restart
Check if monitor service is running
```bash
docker ps -f name=onedrive
```
Show monitor run logs
```bash
docker logs onedrive
```
Stop running monitor
```bash
docker stop onedrive
```
Resume monitor
```bash
docker start onedrive
```
Unregister onedrive monitor
```bash
docker rm -f onedrive
```
2019-01-22 04:40:19 +01:00
### 5. Edit the config
2019-01-22 04:40:19 +01:00
Onedrive should run in default configuration, but however you can change your configuration. First download the default config from [here](https://raw.githubusercontent.com/abraunegg/onedrive/master/config) and put it into your onedrive_conf volumn. The detailed document can be found here: [additional-configuration](https://github.com/abraunegg/onedrive#additional-configuration)
## Run or update with one script
If you are experienced with docker and onedrive, you can use the following script:
```bash
# Update onedriveDir with correct existing OneDrive directory path
onedriveDir="${HOME}/OneDrive"
firstRun='-d'
docker pull driveone/onedrive
docker inspect onedrive_conf > /dev/null || { docker volume create onedrive_conf; firstRun='-it'; }
docker inspect onedrive > /dev/null && docker rm -f onedrive
docker run $firstRun --restart unless-stopped --name onedrive -v onedrive_conf:/onedrive/conf -v "${onedriveDir}:/onedrive/data" driveone/onedrive
```
## Build instructions
2019-01-06 00:14:49 +01:00
```bash
git clone https://github.com/abraunegg/onedrive
cd onedrive/docker
docker build . -t driveone/onedrive
```