• Stars
    star
    118
  • Rank 299,923 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created about 9 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Python script to backup everything from Trello: boards, lists, cards and attachments

Trello Full Backup

https://img.shields.io/pypi/v/trello-full-backup.svg?style=flat-square https://img.shields.io/pypi/pyversions/trello-full-backup.svg?style=flat-square https://img.shields.io/docker/automated/jtpio/trello-full-backup.svg?style=flat-square

Backup everything from Trello:

  • boards, open and closed, as json files
  • lists, open and archived, as json files
  • cards, open and archived, as json files
  • attachments, downloaded as raw files

The script also creates a folder tree structure corresponding to the way data is organized. This is to make it more convenient to navigate locally between folders, as it mimics the flow you have when using the web and mobile apps.

Here is an example of what the tree structure looks like:

2015-11-12_23-28-36_backup/
โ””โ”€โ”€ me
    โ””โ”€โ”€ A Test Board
        โ”œโ”€โ”€ 0_To Do
        โ”‚ย ย  โ”œโ”€โ”€ 0_Task3
        โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ attachments
        โ”‚ย ย  โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ 0_chessboard.png
        โ”‚ย ย  โ”‚ย ย  โ”œโ”€โ”€ card.json
        โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€ description.md
        โ”‚ย ย  โ””โ”€โ”€ 1_Task4
        โ”‚ย ย      โ”œโ”€โ”€ card.json
        โ”‚ย ย      โ””โ”€โ”€ description.md
        โ”œโ”€โ”€ 1_In Progress
        โ”‚ย ย  โ””โ”€โ”€ 0_Task2
        โ”‚ย ย      โ”œโ”€โ”€ card.json
        โ”‚ย ย      โ””โ”€โ”€ description.md
        โ”œโ”€โ”€ 2_Done
        โ”‚ย ย  โ””โ”€โ”€ 0_Task1
        โ”‚ย ย      โ”œโ”€โ”€ attachments
        โ”‚ย ย      โ”œโ”€โ”€ card.json
        โ”‚ย ย      โ””โ”€โ”€ description.md
        โ””โ”€โ”€ A Test Board_full.json
  • Lists and cards have their names prefixed by their position to keep the order
  • For each card:
  • The description is saved to a separate Markdown file
  • The attachments are downloaded to a separate folder
  • The rest stays in the json file

Run with Docker

The easiest way to execute the script with the default parameters (if you have Docker):

docker run -t -e TRELLO_API_KEY=YOUR_KEY -e TRELLO_TOKEN=YOUR_TOKEN -v /backups:/app jtpio/trello-full-backup

This will create a new folder on your host system in the backups directory. Feel free to adjust it based on your host system (GNU/Linux, Mac OS, Windows...).

To pass different parameters, for example to avoid downloading attachments:

docker run -t -e TRELLO_API_KEY=YOUR_KEY -e TRELLO_TOKEN=YOUR_TOKEN -v /backups:/app jtpio/trello-full-backup trello-full-backup -a 0

Install

pip install trello-full-backup

Usage

Make sure the environment variables TRELLO_API_KEY and TRELLO_TOKEN are correctly set.

Then you can run the following commands:

export TRELLO_API_KEY=yourapikey
export TRELLO_TOKEN=yourtoken

And execute the script:

trello-full-backup

By default the script creates a folder with the current date as a name. Example: 2015-11-12_18-57-56_backup

You can specify your own destination directory, but the script does not create the intermediate directories in case they don't exist:

trello-full-backup -d path/to/dir

Options

trello-full-backup -h
usage: trello-full-backup [-h] [-d [DEST]] [-i] [-t] [-B] [-L] [-C] [-o]
                          [-a [ATTACHMENT_SIZE]]

Trello Full Backup

optional arguments:
  -h, --help            show this help message and exit
  -d [DEST]             Destination folder
  -i, --incremental     Backup in an already existing folder incrementally
  -t, --tokenize        Tokenize the names for folders and files. Useful for
                        scripts
  -B, --closed-boards   Backup closed board
  -L, --archived-lists  Backup archived lists
  -C, --archived-cards  Backup archived cards
  -m, --my-boards       Backup my personal boards
  -o, --organizations   Backup organizations
  -a [ATTACHMENT_SIZE], --attachment-size [ATTACHMENT_SIZE]
                        Attachment size limit in bytes. Set to -1 to disable
                        the limit

If neither the -m or -o switches are specified, the script will default to backing up personal boards only.

Incremental mode

The incremental mode is useful for scripts. It will replace the names of the folders in each board by unique tokens. Furthermore, it allows the user to specify the same directory for backup. This will update all the json and description.md files. However it will download the attachment only if they have changed from the last backup.

More Repositories

1

jupyterlab-system-monitor

JupyterLab extension to display system metrics
TypeScript
284
star
2

ipylab

Control JupyterLab from Python Notebooks with Jupyter Widgets ๐Ÿงช โ˜ข๏ธ ๐Ÿ
TypeScript
144
star
3

p5-notebook

A Jupyter Notebook environment for p5.js kernels running in the browser, powered by JupyterLite ๐Ÿ’ก
CSS
104
star
4

jupyterlab-python-bytecode

JupyterLab extension to explore CPython Bytecode
TypeScript
59
star
5

jupyterlab-python-file

JupyterLab extension to create Python files
Python
53
star
6

replite

An embeddable REPL powered by JupyterLite
Shell
48
star
7

voila-gpx-viewer

GPX Viewer web app built with Jupyter, ipywidgets, ipyleaflet, bqplot and voila
Jupyter Notebook
43
star
8

p5-jupyter-notebook

[UNMAINTAINED] p5.js in the Classic Jupyter Notebook with Jupyter Widgets
Jupyter Notebook
40
star
9

ipyp5

p5.js Jupyter Widget
Python
33
star
10

jammer

Minimalist game server for your game jam
JavaScript
24
star
11

a-tour-of-jupyterlab-extensions

A Tour of JupyterLab Extensions - PyConDE & PyData Berlin 2019
Jupyter Notebook
21
star
12

jupyterlab-heroku

JupyterLab extension to deploy applications to Heroku
TypeScript
20
star
13

jupyterlab-wasm-example

JupyterLab Extension written in Rust and compiled to WebAssembly
Rust
16
star
14

music-globe

Visualize artists events locations on a globe
JavaScript
15
star
15

ipyresuse

Jupyter Widget to display resources used by the kernels
Python
13
star
16

jupyterlab-theme-toggle

JupyterLab extension to toggle the theme in the Top Bar area
TypeScript
11
star
17

pixijs-jupyter

[UNMAINTAINED] Examples of Jupyter Widgets built with Pixi.js
Python
8
star
18

lit

A custom JupyterLite deployment ๐Ÿ”ฅ
Jupyter Notebook
7
star
19

TooManyItems

Entry for the Ludum Dare 26 game jam - April 2013 - "Minimalism"
JavaScript
5
star
20

jupyterlite-labextension-example

Example JupyterLab Extension workflow with JupyterLite
Python
4
star
21

twin-fusion

[Game Jam] Web based social party multiplayer game
JavaScript
3
star
22

pandas-repl

A JupyterLite deployment to easily try pandas in a web browser
3
star
23

pydata-global-2021

Jupyter Notebook
3
star
24

chinese-checkers

Chinese Checkers game in Prolog using min-max algorithm
3
star
25

euroscipy-2022-jupyterlite-emscripten-forge

EuroScipy 2022 - Interactive Data Science in the browser with JupyterLite and Emscripten Forge ๐Ÿ’ก ๐Ÿ
Jupyter Notebook
3
star
26

jupyterlab-codeium

JupyterLab extension to get AI code completions with Codeium
TypeScript
3
star
27

pyconde-jupyterlite-tutorial

Jupyter Notebook
2
star
28

xtl-wasm

A subset of the xtl library compiled to WebAssembly
TypeScript
2
star
29

remote-python-pizza-2020

Control JupyterLab from Python Notebooks - ๐Ÿ• Remote Python Pizza 2020 ๐Ÿ•
Jupyter Notebook
2
star
30

10-minutes-10-jlab-extensions

Lightning Talk at PyData Berlin December Meetup - 2018-12-19
Jupyter Notebook
2
star
31

pyconde-pydata-berlin-2022

Jupyter โค๏ธ WebAssembly โค๏ธ Python Talk at PyCon DE & PyData Berlin 2022 ๐Ÿ
Jupyter Notebook
2
star
32

pyconde-pydata-berlin-2023-jupyterlite-tutorial

Create interactive Jupyter websites with JupyterLite tutorial at Python at PyCon DE & PyData Berlin 2023
HTML
2
star
33

ipyclipboard

A simple Jupyter Widget to read and write text from the clipboard.
Jupyter Notebook
2
star
34

jupyterlab-iframe-bridge-example

An example bridge extension to demo passing messages between a host page and JupyterLab running in an IFrame.
JavaScript
2
star
35

jupyterlab-yjs-example

Example of using Yjs in JupyterLab for collaborative editing
Python
1
star
36

pydata-heidelberg-workshop

Starter Pack for the Voilร  workshop at PyData Heidelberg - 2020-01-09
Jupyter Notebook
1
star
37

jupyter-open-studio-day-nyc-2024

Jupyter Open Studio Day, NYC, April 29th 2024
Jupyter Notebook
1
star
38

jackD

Arabic Game Jam 2013 - Together We Grow
GLSL
1
star
39

data-playground

Experiments using public APIs and data
Jupyter Notebook
1
star
40

scratchpad

Jupyter Notebook
1
star
41

jupytercon-2023-jupyterlite

Create interactive Jupyter websites with JupyterLite - JupyterCon 2023 ๐Ÿ’ก
Jupyter Notebook
1
star
42

ngj16

Nordic Game Jam 2016 - L3-AK
Python
1
star
43

voila-gallery-binderhub

[DEMO] Voila Gallery powered by BinderHub, Jekyll and GitHub pages
HTML
1
star
44

python-meetup-grenoble-2023

Crรฉer des sites web Jupyter interactifs avec JupyterLite
Jupyter Notebook
1
star
45

pyconde-pydata-berlin-2023-notebook-7

The Future of the Jupyter Notebook interface at PyCon DE & PyData Berlin 2023 ๐Ÿ
HTML
1
star
46

jtpio.github.io

Personal website and blog
Jupyter Notebook
1
star
47

langton-ant-haskell

Langton's Ant in Haskell
Haskell
1
star
48

python-pizza-berlin

๐Ÿ• ๐Ÿ 10 Minutes Talk at Python Pizza Berlin 2019 ๐Ÿ ๐Ÿ• - 2019-02-23 at @wooga
Jupyter Notebook
1
star
49

tdg

A Tower Defense game concept, made with node and pixi.js at Copenhagen Node.js Hackathon
JavaScript
1
star
50

anywidget-lite

Prototype your Jupyter Widget in the browser with anywidget and JupyterLite ๐Ÿ’ก
Jupyter Notebook
1
star
51

jupyterlab-rspack

[WIP] Build JupyterLab extensions with Rspack (Rust powered Webpack)
TypeScript
1
star