{"id":13434589,"url":"https://github.com/skilion/onedrive","last_synced_at":"2025-03-17T19:30:58.665Z","repository":{"id":37742810,"uuid":"42954460","full_name":"skilion/onedrive","owner":"skilion","description":"Free Client for OneDrive on Linux","archived":false,"fork":false,"pushed_at":"2021-11-04T15:15:27.000Z","size":306,"stargazers_count":4010,"open_issues_count":7,"forks_count":349,"subscribers_count":142,"default_branch":"master","last_synced_at":"2024-08-01T03:13:42.494Z","etag":null,"topics":["dlang","linux","onedrive"],"latest_commit_sha":null,"homepage":"","language":"D","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skilion.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-22T18:58:17.000Z","updated_at":"2024-07-29T13:24:36.000Z","dependencies_parsed_at":"2022-07-16T23:30:32.709Z","dependency_job_id":null,"html_url":"https://github.com/skilion/onedrive","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilion%2Fonedrive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilion%2Fonedrive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilion%2Fonedrive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skilion%2Fonedrive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skilion","download_url":"https://codeload.github.com/skilion/onedrive/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221699019,"owners_count":16865967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dlang","linux","onedrive"],"created_at":"2024-07-31T03:00:18.290Z","updated_at":"2024-10-27T15:31:23.022Z","avatar_url":"https://github.com/skilion.png","language":"D","funding_links":[],"categories":["Utility","D","linux"],"sub_categories":["Windows Manager"],"readme":"# OneDrive Free Client\n###### A complete tool to interact with OneDrive on Linux. Built following the UNIX philosophy.\n\n### Features:\n* State caching\n* Real-Time file monitoring with Inotify\n* Resumable uploads\n* Support OneDrive for Business (part of Office 365)\n* Shared folders (only OneDrive Personal)\n\n### What's missing:\n* While local changes are uploaded right away, remote changes are delayed\n* No GUI\n\n## Getting Started\n\n### Prerequisites\n* [libcurl](http://curl.haxx.se/libcurl/)\n* [SQLite 3](https://www.sqlite.org/)\n* [Digital Mars D Compiler (DMD)](http://dlang.org/download.html)\n\n### Prerequisites: Ubuntu/Debian\n```sh\nsudo apt install git libcurl4-openssl-dev libsqlite3-dev\n\n# Ubuntu 18+\nsudo snap install --classic dmd\n\n# Ubuntu 17 \u0026 Debian\nsudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list\nsudo apt-get update --allow-insecure-repositories\nsudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring\nsudo apt-get update \u0026\u0026 sudo apt-get install dmd-compiler\n```\n\n### Prerequisites: Fedora/CentOS\n```sh\nsudo yum install git libcurl-devel sqlite-devel\ncurl -fsS https://dlang.org/install.sh | bash -s dmd\n```\n\n### Prerequisites: Arch Linux\n```sh\nsudo pacman -S git dlang-dmd\n```\n\n### Installation\n```sh\ngit clone https://github.com/skilion/onedrive.git\ncd onedrive\nmake\nsudo make install\n```\n\nUsing [LDC](https://wiki.dlang.org/LDC):\n```sh\nmake DC=ldmd2\n```\n\n### First run :zap:\nAfter installing the application you *must* run it once from an interactive terminal to authorize it.\n\n```sh\nonedrive\n```\n\nYou 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.\n\n### Uninstall\n```sh\nsudo make uninstall\n# delete the application state from your home directory\nrm -rf ~/.config/onedrive\n```\n\n## Configuration\nConfiguration is optional. By default all files are downloaded in `~/OneDrive` and only hidden files are skipped.\nIf you want to change the defaults, you can copy and edit the included config file into your `~/.config/onedrive` directory and edit it:\n```sh\nmkdir -p ~/.config/onedrive\ncp ./config ~/.config/onedrive/config\nnano ~/.config/onedrive/config\n```\n\nAvailable options:\n* `sync_dir`: directory where the files will be synced\n* `skip_file`: any files or directories that match this pattern will be skipped during sync.\n\nPatterns are case insensitive. `*` and `?` [wildcards characters](https://technet.microsoft.com/en-us/library/bb490639.aspx) are supported. Use `|` to separate multiple patterns.\n\nNote: after changing `skip_file`, you must perform a full synchronization by executing `onedrive --resync`\n\n### Selective sync\nSelective sync allows you to sync only specific files and directories.\nTo enable selective sync create a file named `sync_list` in `~/.config/onedrive`.\nEach line of the file represents a relative path from your `sync_dir`. All files and directories not matching any line of the file will be skipped during all operations.\nHere is an example of `sync_list`:\n```text\nBackup\nDocuments/latest_report.docx\nWork/ProjectX\nnotes.txt\n```\nNote: after changing the sync list, you *must* perform a full synchronization by executing `onedrive --resync`\n\n### Shared folders\nFolders shared with you can be synced by adding them to your OneDrive through the web interface. Go to the Shared files list, right click on the folder you want to sync and then click on \"Add to my OneDrive\".\n\n### OneDrive service\nIf you want to sync your files automatically, enable and start the systemd service:\n```sh\nsystemctl --user enable onedrive\nsystemctl --user start onedrive\n```\n\nTo see the logs run:\n```sh\njournalctl --user-unit onedrive -f\n```\n\nNote: systemd is supported on Ubuntu 15.04 onward\n\n### Using multiple accounts\nYou can run multiple instances of the application specifying a different config directory in order to handle multiple OneDrive accounts.\nTo do this you can use the `--confdir` parameter.\nExample:\n```sh\nonedrive --monitor --confdir=\"~/.config/onedrivePersonal\" \u0026\nonedrive --monitor --confdir=\"~/.config/onedriveWork\" \u0026\n```\n\n`--monitor` keeps the application running and monitoring for changes\n\n`\u0026` puts the application in background and leaves the terminal interactive\n\n## Extra\n\n### Reporting issues\nIf you encounter any bugs you can report them here on Github. Before filing an issue be sure to:\n\n1. Check the version of the application you are using `onedrive --version`\n2. Run the application in verbose mode `onedrive --verbose`\n3. Have the log of the error (preferably uploaded on an external website such as [pastebin](https://pastebin.com/))\n4. Collect any information that you may think it is relevant to the error\n\t- The steps to trigger the error\n\t- What have you tried to do to solve it\n\n### All available commands:\n```text\nUsage: onedrive [OPTION]...\n\nno option        Sync and exit\n       --confdir Set the directory used to store the configuration files\n-d    --download Only download remote changes\n        --logout Logout the current user\n-m     --monitor Keep monitoring for local and remote changes\n   --print-token Print the access token, useful for debugging\n        --resync Forget the last saved state, perform a full sync\n       --syncdir Set the directory used to sync the files\n-v     --verbose Print more details, useful for debugging\n       --version Print the version and exit\n-h        --help This help information.\n```\n\n### File name limitations\nThe files and directories in the synchronization directory must follow the [Windows naming conventions](https://docs.microsoft.com/en-gb/windows/win32/fileio/naming-a-file).\nThe application will crash for example if you have two files with the same name but different case. This is expected behavior and won't be fixed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskilion%2Fonedrive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskilion%2Fonedrive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskilion%2Fonedrive/lists"}