This is a slightly edited version of the original OneDrive Linux client
Podman Container documentation,
adapted to suit the needs of Fedora Atomic desktops.
-
podman volume create onedrive_conf
mkdir -p $HOME/.config/onedrive cd $HOME/.config/onedrive
# sync_dir sync_dir = "/onedrive/data" # skip_dir configuration # # skip_dir for rust cargo build skip_dir = "target" # # skip_dir for mdbook skip_dir = "book" # # skip_dir for python cache skip_dir = "__pycache__" # skip_file configuaration # # Default skip items skip_file = "~*|.~*|*.tmp|*.swp|*.partial" # # skip genererated python objects skip_file = "*.pyc|*.pyo|*.pyd|*.pyz" # # skip python class objects skip_file = "*$py.class"
podman volume create onedrive_data
This is where your data from Microsoft OneDrive will be stored.
-
The owner of this specified folder must not be root.
-
Podman will attempt to change the permissions of the volume to the user the container is configured to run as.
-
#!/bin/bash # The root of OneDrive sync directory can be changed by setting # the ONEDRIVE_DATA_DIR variable. Make sure the path exists. export ONEDRIVE_DATA_DIR="${HOME}/OneDrive" export ONEDRIVE_CONFIG_DIR="${HOME}/.config/onedrive" export ONEDRIVE_CONFIG_FILE="${ONEDRIVE_CONFIG_DIR}/config" # Useful Podman Environment Variables # --env ONEDRIVE_DRYRUN=1 # --env ONEDRIVE_DEBUG=1 # --env ONEDRIVE_RESYNC=1 # --env ONEDRIVE_DOWNLOADONLY=1 podman run --rm -it \ --name onedrive \ --userns=keep-id \ --volume onedrive_conf:/onedrive/conf:U,Z \ --volume "${ONEDRIVE_CONFIG_FILE}":/onedrive/conf/config:U,Z \ --volume "${ONEDRIVE_DATA_DIR}:/onedrive/data:U,Z" \ --env PODMAN=1 \ --env ONEDRIVE_VERBOSE=1 \ --env ONEDRIVE_DISPLAY_CONFIG=1 \ --env ONEDRIVE_DOWNLOADONLY=1 \ --env ONEDRIVE_SYNC_ONCE=1 \ --label "io.containers.autoupdate=registry" \ docker.io/driveone/onedrive:edge-fedora
source onedrive.sh
-
mkdir -p $HOME/.config/containers/systemd/onedrive cd $HOME/.config/containers/systemd/onedrive
[Unit] Description=OneDrive Conf Volume [Volume] VolumeName=onedrive_conf [Install] RequiredBy=onedrive.service
[Unit] Description=OneDrive Data Volume [Volume] VolumeName=onedrive_data [Install] RequiredBy=onedrive.service
[Unit] Description=OneDrive Container [Container] Image=docker.io/driveone/onedrive:edge-fedora Volume=onedrive_conf.volume:/onedrive/conf:U,Z Volume=${HOME}/.config/onedrive/config:/onedrive/conf/config:U,Z Volume=${HOME}/OneDrive:/onedrive/data:U,Z Environment=PODMAN=1 Environment=ONEDRIVE_SYNC_ONCE=1 AutoUpdate=registry UserNS=keep-id
/usr/libexec/podman/quadlet -user -dryrun
-
mkdir -p $HOME/.config/systemd/user cd $HOME/.config/systemd/user
[Unit] Description=Run OneDrive Backup Daily [Timer] OnCalendar=daily Persistent=true RandomizedDelaySec=1h [Install] WantedBy=timers.target
systemctl --user daemon-reload
systemctl --user start onedrive.timer
systemctl --user status onedrive.timer onedrive.service