# Zenodo Container Registry The fm-weck's Zenodo feature lets you upload or publish your docker or podman images to your Zenodo account, and also pull any image using its DOI. When uploading or publishing, if a Zenodo deposition with the same name already exists on your Zenodo account, you will be prompted to choose between creating a new deposition or adding the chosen image as a new version of an existing deposition. There is also an option to use the Zenodo Sandbox for testing purposes, by adding **--sandbox** flag to the original command. ## Acquiring a new (Sandbox)Zenodo token In order to create a personal access token you need to: 1) [Register](https://zenodo.org/signup) for a Zenodo account if you don’t already have one. 2) Go to your [Applications](https://zenodo.org/account/settings/applications/), to [create a new token](https://zenodo.org/account/settings/applications/tokens/new/). Keep in mind that **Zenodo** and **Sandbox-Zenodo** use **two different** access tokens. ## Setting up the token In order to use upload and publish features you need to set up your Zenodo API token. There are two ways to set up your token: 1) By running: ```bash fm-weck --token your_api_token ``` which saves the token inside a file called ".zenodo_token", inside project's main directory. 2) By specifying the path to your custom token file inside fm-weck's config file: ```bash token_location = "relative/path/to/file" ``` The chosen file should contain the following entry: **ZENODO_TOKEN='your_api_token'** ## Uploading images You can upload an image to Zenodo with the following command: ```bash fm-weck push image_name ``` When an image is uploaded this way, it is left as a draft on your Zenodo account with the predefined metadata. You can then log in to your account and finish/edit the draft and publish manually. Using the --sandbox flag ```bash fm-weck push image_name --sandbox ``` uses the Zenodo Sandbox URL instead. ## Publishing images You can publish an image on Zenodo with the following command: ```bash fm-weck publish image_name ``` When an image is published on Zenodo, there is no changing or editing its contents. This command should only be run if you are absolutely sure that the image is in its final state. Using the --sandbox flag ```bash fm-weck publish image_name --sandbox ``` uses the Zenodo Sandbox URL instead. ## Pulling images You can pull an image from Zenodo with the following command: ```bash fm-weck pull image_doi ``` Pulling an image from Zenodo will download the image, load it into the container's storage, and remove the downloaded file. Using the --sandbox flag ```bash fm-weck pull image_doi --sandbox ``` pulls an image that is published on Zenodo Sandbox.