diff --git a/docs/assets/Sketch.png b/docs/assets/Sketch.png deleted file mode 100644 index 4f2f32f..0000000 Binary files a/docs/assets/Sketch.png and /dev/null differ diff --git a/docs/cheat-sheet.html b/docs/cheat-sheet.html deleted file mode 100644 index 532a57b..0000000 --- a/docs/cheat-sheet.html +++ /dev/null @@ -1,72 +0,0 @@ -Autorestic | Markdown Cheat Sheet
Star

Created With

linkMarkdown Cheat Sheet

Checkout docs/md/docs/cheat-sheet.md to see the markdown behind this page. Note that this is only -a cheat-sheet, for a more complete list of specific markdown features of codedoc, check out the official docs.

Official Docs

- -

Do not forget to REMOVE THIS PAGE from your actual documentation!


- -

linkButtons

You can add buttons to your documents like this:

some-doc.md
1> :Buttons

2>

3> > :Button label=Click Me!, url=https://www.google.com

4>

5> > :Button label=Click Me Too!, url=https://www.github.com

Which looks like this:

Click Me!Click Me Too!

- -

You can create icon buttons as well. By default material icons are used:

some-doc.md
1> :Buttons

2>

3> > :Button icon=true, label=android, url=https://www.google.com

4>

5> > :Button icon=true, label=code, url=https://www.github.com

6>

7> > :Button label=GitHub, url=https://www.github.com

Which looks like this:

androidcodeGitHub

- -

You can add a copy button after a code element. This button would -copy the contents of the code element.

some-doc.md
1> :Buttons

2>

3> > :CopyButton


- -

linkTabs

You can add tabbed content like this:

some-doc.md
1> :Tabs

2>

3> > :Tab title=First Tab

4> >

5> > So this is the content of the first tab. Lets even have some code here:

6> >

7> > ```tsx | index.tsx

8> > import { Renderer } from '@connectv/html'

9> >

10> > const renderer = new Renderer()

11> > renderer.render(<div>Hellow World!</div>).on(document.body)

12> > ```

13>

14> > :Tab title=Second Tab

15> >

16> > Perhaps some other content here, maybe some more code?

17> >

18> > ```tsx | another.tsx

19> > import { Renderer } from '@connectv/html'

20> > import { timer } from 'rxjs'

21> >

22> > const renderer = new Renderer()

23> > renderer

24> > .render(<div>You have been here for {timer(0, 1000)} second(s).</div>)

25> > .on(document.body)

26> > ```


- -

So this is the content of the first tab. Lets even have some code here:

index.tsx
1import { Renderer } from '@connectv/html'

2

3const renderer = new Renderer()

4renderer.render(<div>Hellow World!</div>).on(document.body)

Perhaps some other content here, maybe some more code?

another.tsx
1import { Renderer } from '@connectv/html'

2import { timer } from 'rxjs'

3

4const renderer = new Renderer()

5renderer

6 .render(<div>You have been here for {timer(0, 1000)} second(s).</div>)

7 .on(document.body)


- -

linkCollapse

You can add collapsible sections like this:

some-doc.md
1> :Collapse label=Collapsible content (click to open)

2>

3> This content is collapsed by default. You can write _any_ markdown syntax you would

4> like here as this is simply just an enhanced `block quote` element. You can even have lists:

5>

6> - with multiple

7> - items and stuff

8>

9> > :Collapse label=Or nested collapsible content (click to open)

10> >

11> > > :Collapse label=Collapception

12> > >

13> > > To any depth that your heart might desire.

14>

15> This component is particularly useful in the table of contents (the left-side menu, activatable by

16> clicking on the hamburger menu in the footer), when you have got many documents and you would want to

17> neatly categorize them.


- -
Collapsible content (click to open)chevron_right

This content is collapsed by default. You can write any markdown syntax you would -like here as this is simply just an enhanced block quote element. You can even have lists:

  • with multiple
  • items and stuff
Or nested collapsible content (click to open)chevron_right
Collapception (click to open)chevron_right

To any depth that your heart might desire.

This component is particularly useful in the table of contents (the left-side menu, activatable by -clicking on the hamburger menu in the footer), when you have got many documents and you would want to -neatly categorize them.


- -

linkDark/Light Content

If you have some content that differs in light mode vs in dark mode, you -can use DarkLight component:

some-doc.md
1> :DarkLight

2>

3> > :InDark

4> >

5> > We are SO DARK! This content is only shown in dark-mode. Switch to light-mode

6> > by clicking on the dark/light toggle in the footer to see the light-mode specific content.

7>

8> > :InLight

9> >

10> > LIGHT bless you! This content is only shown in light-mode. Switch to dark-mode

11> > by clicking on the dark/light toggle in the footer to see the dark-mode specific content


- -

We are SO DARK! This content is only shown in dark-mode. Switch to light-mode -by clicking on the dark/light toggle in the footer to see the light-mode specific content.

LIGHT bless you! This content is only shown in light-mode. Switch to dark-mode -by clicking on the dark/light toggle in the footer to see the dark-mode specific content

If you are wondering why someone would EVER need such a thing, well I did. Because I wanted -to display different banner images based on dark-mode / light-mode:

1> :DarkLight

2>

3> > :InLight

4> >

5> > ![header](https://raw.githubusercontent.com/CONNECT-platform/codedoc/master/repo-banner.svg?sanitize=true)

6>

7> > :InDark

8> >

9> > ![header](https://raw.githubusercontent.com/CONNECT-platform/codedoc/master/repo-banner-dark.svg?sanitize=true)

header

header

Yeah I know the life of an idealist is never easy.


- -

You can add previous and next buttons to your pages like this:

1> :ToCPrevNext

Which would then look like this:

Markdown Cheat SheetButtonsTabsCollapseDark/Light ContentNavigation

Home -Getting Started -Markdown Cheat Sheet -Code Features

\ No newline at end of file diff --git a/docs/cli/backup.html b/docs/cli/backup.html index 4badf2f..660f414 100644 --- a/docs/cli/backup.html +++ b/docs/cli/backup.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkBackup

1autorestic backup [-l, --location] [-a, --all]

Performes a backup of all locations if the -a flag is passed. To only backup some locations pass one or more -l or --location flags.

1autorestic backup -l my-location

Backup

Home +

linkBackup

1autorestic backup [-l, --location] [-a, --all]

Performes a backup of all locations if the -a flag is passed. To only backup some locations pass one or more -l or --location flags.

1autorestic backup -l my-location

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/check.html b/docs/cli/check.html index 20db373..2322368 100644 --- a/docs/cli/check.html +++ b/docs/cli/check.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkcheck

1autorestic check [-b, --backend] [-a, --all]

Cheks if one or more backend are configured properly and initializes them if they are not already.

This is mostly an internal command, but useful to verify if a backend is configured correctly.

1autorestic check -b my-backend

check

Home +

linkcheck

1autorestic check [-b, --backend] [-a, --all]

Cheks if one or more backend are configured properly and initializes them if they are not already.

This is mostly an internal command, but useful to verify if a backend is configured correctly.

1autorestic check -b my-backend

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/cron.html b/docs/cli/cron.html index 68b156e..f560736 100644 --- a/docs/cli/cron.html +++ b/docs/cli/cron.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkCron

1autorestic cron

This command is modtly intended to be triggered by an automated system like systemd or crontab.

It will run cron jobs es specified in the cron section of a specific location.

Cron

Home +

linkCron

1autorestic cron

This command is modtly intended to be triggered by an automated system like systemd or crontab.

It will run cron jobs es specified in the cron section of a specific location.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/exec.html b/docs/cli/exec.html index e37eaf3..7e93d53 100644 --- a/docs/cli/exec.html +++ b/docs/cli/exec.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkExec

1autorestic exec [-b, --backend] [-a, --all] <command> -- [native options]

This is avery handy command which enables you to run any native restic command on desired backends. An example would be listing all the snapshots of all your backends:

1autorestic exec -a -- snapshots

With exec you can basically run every cli command that you would be able to run with the restic cli. It only prefillst path, key, etc.

Exec

Home +

linkExec

1autorestic exec [-b, --backend] [-a, --all] <command> -- [native options]

This is avery handy command which enables you to run any native restic command on desired backends. An example would be listing all the snapshots of all your backends:

1autorestic exec -a -- snapshots

With exec you can basically run every cli command that you would be able to run with the restic cli. It only prefillst path, key, etc.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/forget.html b/docs/cli/forget.html index 843c937..3a2a473 100644 --- a/docs/cli/forget.html +++ b/docs/cli/forget.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkForget

1autorestic forget [-l, --location] [-a, --all] [--dry-run]

This will prune and remove old data form the backends according to the keep policy you have specified for the location

The --dry-run flag will do a dry run showing what would have been deleted, but won't touch the actual data.

Forget

Home +

linkForget

1autorestic forget [-l, --location] [-a, --all] [--dry-run]

This will prune and remove old data form the backends according to the keep policy you have specified for the location

The --dry-run flag will do a dry run showing what would have been deleted, but won't touch the actual data.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/info.html b/docs/cli/info.html index c010cc7..bb6575e 100644 --- a/docs/cli/info.html +++ b/docs/cli/info.html @@ -35,17 +35,17 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkinfo

Displays the config file that autorestic is refering to. -Usefull when you want to quickly see what locations are being backuped where.

Pro tip: if it gets a bit long you can read it more easily with autorestic info | less 😉

1autorestic info

linkWith a custom file

1autorestic -c path/to/some/config.yml info

infoWith a custom file

Home +

linkinfo

Displays the config file that autorestic is refering to. +Usefull when you want to quickly see what locations are being backuped where.

Pro tip: if it gets a bit long you can read it more easily with autorestic info | less 😉

1autorestic info

linkWith a custom file

1autorestic -c path/to/some/config.yml info

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Info Check Backup Restore @@ -54,4 +54,4 @@ Usefull when you want to quickly see what locations are being backuped where.

Exec Install Uninstall -Update

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/install.html b/docs/cli/install.html index b2dafc6..8542aab 100644 --- a/docs/cli/install.html +++ b/docs/cli/install.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkInstall

Installs both restic and autorestic to /usr/local/bin.

1autorestic install

Install

Home +

linkInstall

Installs both restic and autorestic to /usr/local/bin.

1autorestic install

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/restore.html b/docs/cli/restore.html index 840a48c..158eb48 100644 --- a/docs/cli/restore.html +++ b/docs/cli/restore.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkRestore

1autorestic restore [-l, --location] [--from backend] [--to <out dir>]

This will restore all the locations to the selected target. If for one location there are more than one backends specified autorestic will take the first one.

linkExample

1autorestic restore -l home --from hdd --to /path/where/to/restore

This will restore the location home to the /path/where/to/restore folder and taking the data from the backend hdd

RestoreExample

Home +

linkRestore

1autorestic restore [-l, --location] [--from backend] [--to <out dir>]

This will restore all the locations to the selected target. If for one location there are more than one backends specified autorestic will take the first one.

linkExample

1autorestic restore -l home --from hdd --to /path/where/to/restore

This will restore the location home to the /path/where/to/restore folder and taking the data from the backend hdd

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/uninstall.html b/docs/cli/uninstall.html index edd6813..380c2c8 100644 --- a/docs/cli/uninstall.html +++ b/docs/cli/uninstall.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkUninstall

Installs both restic and autorestic from /usr/local/bin.

1autorestic uninstall

Uninstall

Home +

linkUninstall

Installs both restic and autorestic from /usr/local/bin.

1autorestic uninstall

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/cli/update.html b/docs/cli/update.html index b84d8ea..b596633 100644 --- a/docs/cli/update.html +++ b/docs/cli/update.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkUpdate

Autorestic can update itself! Super handy right? Simply run autorestic update and we will check for you if there are updates for restic and autorestic and install them if necessary.

1autorestic update

Updates both restic and autorestic automagically.

Update

Home +

linkUpdate

Autorestic can update itself! Super handy right? Simply run autorestic update and we will check for you if there are updates for restic and autorestic and install them if necessary.

1autorestic update

Updates both restic and autorestic automagically.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/code-features.html b/docs/code-features.html deleted file mode 100644 index 89cd968..0000000 --- a/docs/code-features.html +++ /dev/null @@ -1,55 +0,0 @@ -Autorestic | Code Features
Star

Created With

linkCode Features

This is a quick overview of codedoc specific features at your disposal in markdown -code elements. For a complete list, please checkout the official documentation. -You can also take a look at docs/md/docs/code-features.md to see the markdown behind this page.

Official Docs

- -

⚠️⚠️ -Do not forget to REMOVE THIS PAGE from your actual documentation! -⚠️⚠️


- -

linkHints

A comment with the following format will cause a hint to be displayed on-hover:

// --> some hint here

index.tsx
1import { Renderer } from '@connectv/html'; // --> there is a hint on this line

2

3const MyComp = ({ name }, renderer) => <div>Hellow {name}!</div> // --> there is also a hint on this line

4

5const renderer = new Renderer();

6renderer.render(

7 <fragment>

8 <MyComp name='World'/>

9 <MyComp name='Fellas'/> {/* --> also this is a hint */}

10 </fragment>

11)

12.on(document.body);


- -

The following syntax styles are supported:

1"// --> standard one-liner" // --> standard one-liner

1"/* --> standard multi-liner */" /* --> standard multi-liner */

1"# --> python/bash comments" # --> python/bash comments

1<‌!--> html comments --> <!--> html comments -->


- -

linkReferences

Add a comment with following format in the code will show a link on-hover over the line:

// @see https://www.google.com

1import { Renderer } from '@connectv/html'; // @see https://github.com/CONNECT-platform/connective-html

You can also use the markdown link format to give your links a title:

1```

2import { Renderer } from '@connectv/html'; // @see [CONNECTIVE HTML Docs](https://github.com/CONNECT-platform/connective-html)

3```

1import { Renderer } from '@connectv/html'; // @see [CONNECTIVE HTML Docs](https://github.com/CONNECT-platform/connective-html)

You can also use these references to refer to another tab in a tab-component:

some-doc.md
1> :Tabs

2> > :Tab title=First Tab

3> >

4> > ```tsx

5> > import { func } from './other'; // @see tab:Second Tab

6> >

7> > func(); // --> good stuff will happen now

8> > ```

9>

10> > :Tab title=Second Tab

11> >

12> > ```tsx

13> > export function func() {

14> > console.log('Good Stuff!');

15> > }

16> > ```


- -
1import { func } from './other'; // @see tab:Second Tab

2

3func(); // --> good stuff will happen now

1export function func() {

2 console.log('Good Stuff!');

3}

Similar syntax styles to hints are supported for references as well:

1"// @‌see [random stuff](https://www.randomlists.com/things)" // @see [random stuff](https://www.randomlists.com/things)

1"/* @‌see https://google.com */" /* @see https://google.com */

1"#@see https://github.com" #@see https://github.com

1<!-- @‌see [the first page](/) --> <!-- @see [the first page](/) -->

Code FeaturesHintsReferences

Home -Getting Started -Markdown Cheat Sheet -Code Features

\ No newline at end of file diff --git a/docs/config.html b/docs/config.html index 88fb13c..f23b8ff 100644 --- a/docs/config.html +++ b/docs/config.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🎛 Config File

linkPath

By default autorestic searches for a .autorestic.yml file in the current directory and your home folder.

You can also specify a custom file with the -c path/to/some/config.yml

⚠️ WARNING ⚠️

Note that the data is automatically encrypted on the server. The key will be generated and added to your config file. Every backend will have a separate key. You should keep a copy of the keys or config file somewhere in case your server dies. Otherwise DATA IS LOST!

linkExample configuration

.autorestic.yml
1locations:

2 home:

3 from: /home/me

4 to: remote

5

6 important:

7 from: /path/to/important/stuff

8 to:

9 - remote

10 - hdd

11

12backends:

13 remote:

14 type: b2

15 path: 'myBucket:backup/home'

16 B2_ACCOUNT_ID: account_id

17 B2_ACCOUNT_KEY: account_key

18

19 hdd:

20 type: local

21 path: /mnt/my_external_storage

🎛 Config FilePathExample configuration

Home +

link🎛 Config File

linkPath

By default autorestic searches for a .autorestic.yml file in the current directory and your home folder.

  • ./.autorestic.yml
  • ~/.autorestic.yml

You can also specify a custom file with the -c path/to/some/config.yml

⚠️ WARNING ⚠️

Note that the data is automatically encrypted on the server. The key will be generated and added to your config file. Every backend will have a separate key. You should keep a copy of the keys or config file somewhere in case your server dies. Otherwise DATA IS LOST!

linkExample configuration

.autorestic.yml
1locations:

2 home:

3 from: /home/me

4 to: remote

5

6 important:

7 from: /path/to/important/stuff

8 to:

9 - remote

10 - hdd

11

12backends:

13 remote:

14 type: b2

15 path: 'myBucket:backup/home'

16 B2_ACCOUNT_ID: account_id

17 B2_ACCOUNT_KEY: account_key

18

19 hdd:

20 type: local

21 path: /mnt/my_external_storage

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/contrib.html b/docs/contrib.html index 50b60d8..372e860 100644 --- a/docs/contrib.html +++ b/docs/contrib.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🙋‍♀️🙋‍♂️ Contributors

This amazing people helped the project!

🙋‍♀️🙋‍♂️ Contributors

Home +

link🙋‍♀️🙋‍♂️ Contributors

This amazing people helped the project!

  • @ChanceM [Docs]
  • @EliotBerriot [Docs, Pruning, S3]

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/assets/codedoc-bundle.entry.js b/docs/dist/codedoc-bundle.entry.js similarity index 100% rename from docs/assets/codedoc-bundle.entry.js rename to docs/dist/codedoc-bundle.entry.js diff --git a/docs/assets/codedoc-bundle.js b/docs/dist/codedoc-bundle.js similarity index 100% rename from docs/assets/codedoc-bundle.js rename to docs/dist/codedoc-bundle.js diff --git a/docs/assets/codedoc-bundle.meta.json b/docs/dist/codedoc-bundle.meta.json similarity index 100% rename from docs/assets/codedoc-bundle.meta.json rename to docs/dist/codedoc-bundle.meta.json diff --git a/docs/assets/codedoc-styles.css b/docs/dist/codedoc-styles.css similarity index 55% rename from docs/assets/codedoc-styles.css rename to docs/dist/codedoc-styles.css index 16431b6..3b4ff83 100644 --- a/docs/assets/codedoc-styles.css +++ b/docs/dist/codedoc-styles.css @@ -21,62 +21,420 @@ .heading-0-0-1:hover .anchor-0-0-2:hover { opacity: 1; } -.collapse-0-0-3>.label { - cursor: pointer; - margin: 8px 0; - display: flex; - align-items: center; +.code-0-0-3 { + color: #e0e0e0; + display: block; + outline: none; + padding: 24px 0; + position: relative; + font-size: 13px; + background: #212121; + box-shadow: 0 6px 12px rgba(0, 0, 0, .25); + overflow-x: auto; user-select: none; + border-radius: 3px; + -webkit-user-select: none; } -.collapse-0-0-3>.content { - opacity: 0; - max-height: 0; - transition: opacity .3s; - visibility: hidden; - border-left: 2px solid rgba(224, 224, 224, 0.5); - padding-left: 16px; +pre.with-bar .code-0-0-3 { + padding-top: 0; } -.collapse-0-0-3.open>.content { - opacity: 1; - max-height: none; - visibility: visible; +.code-0-0-3 .token.keyword { + color: #7187ff; } -.collapse-0-0-3.open>.label .icon-font { - transform: rotate(90deg); +.code-0-0-3 .token.string { + color: #69f0ae; } -body.dark-mode-animate .collapse-0-0-3>.content { - transition: transform .15s, opacity .15s, border-color .3s; +.code-0-0-3 .token.number { + color: #ffc400; } -body.dark .collapse-0-0-3>.content { - border-color: rgba(49, 49, 49, 0.5); +.code-0-0-3 .token.boolean { + color: #ffc400; +} +.code-0-0-3 .token.operator { + color: #18ffff; +} +.code-0-0-3 .token.function { + color: #e0e0e0; +} +.code-0-0-3 .token.parameter { + color: #e0e0e0; +} +.code-0-0-3 .token.comment { + color: #757575; +} +.code-0-0-3 .token.tag { + color: #ffa372; +} +.code-0-0-3 .token.builtin { + color: #e0e0e0; +} +.code-0-0-3 .token.punctuation { + color: #fcf7bb; +} +.code-0-0-3 .token.class-name { + color: #e0e0e0; +} +.code-0-0-3 .token.attr-name { + color: #f6d186; +} +.code-0-0-3 .token.attr-value { + color: #69f0ae; +} +.code-0-0-3 .token.plain-text { + color: #bdbdbd; +} +.code-0-0-3 .token.script { + color: #e0e0e0; +} +.code-0-0-3 .token.placeholder { + color: #18ffff; +} +.code-0-0-3 .token.selector { + color: #ffa372; +} +.code-0-0-3 .token.property { + color: #f6d186; +} +.code-0-0-3 .token.important { + color: #be79df; +} +.code-0-0-3.scss .token.function, .code-0-0-3.css .token.function, .code-0-0-3.sass .token.function { + color: #9aceff; +} +.code-0-0-3 .token.key { + color: #f6d186; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .collapse-0-0-3>.content { + body:not(.dark-mode-animate) .code-0-0-3 { + color: #e0e0e0; + background: #000000; + box-shadow: 0 6px 12px #121212; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.keyword { + color: #7187ff; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.string { + color: #69f0ae; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.number { + color: #ffc400; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.boolean { + color: #ffc400; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.operator { + color: #18ffff; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.function { + color: #e0e0e0; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.parameter { + color: #e0e0e0; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.comment { + color: #757575; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.tag { + color: #ffa372; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.builtin { + color: #e0e0e0; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.punctuation { + color: #fcf7bb; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.class-name { + color: #e0e0e0; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.attr-name { + color: #f6d186; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.attr-value { + color: #69f0ae; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.plain-text { + color: #bdbdbd; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.script { + color: #e0e0e0; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.placeholder { + color: #18ffff; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.selector { + color: #ffa372; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.property { + color: #f6d186; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.important { + color: #be79df; + } + body:not(.dark-mode-animate) .code-0-0-3.scss .token.function, body:not(.dark-mode-animate) .code-0-0-3.css .token.function, body:not(.dark-mode-animate) .code-0-0-3.sass .token.function { + color: #9aceff; + } + body:not(.dark-mode-animate) .code-0-0-3 .token.key { + color: #f6d186; + } +} + body.dark .code-0-0-3 { + color: #e0e0e0; + background: #000000; + box-shadow: 0 6px 12px #121212; + } + body.dark .code-0-0-3 .token.keyword { + color: #7187ff; + } + body.dark .code-0-0-3 .token.string { + color: #69f0ae; + } + body.dark .code-0-0-3 .token.number { + color: #ffc400; + } + body.dark .code-0-0-3 .token.boolean { + color: #ffc400; + } + body.dark .code-0-0-3 .token.operator { + color: #18ffff; + } + body.dark .code-0-0-3 .token.function { + color: #e0e0e0; + } + body.dark .code-0-0-3 .token.parameter { + color: #e0e0e0; + } + body.dark .code-0-0-3 .token.comment { + color: #757575; + } + body.dark .code-0-0-3 .token.tag { + color: #ffa372; + } + body.dark .code-0-0-3 .token.builtin { + color: #e0e0e0; + } + body.dark .code-0-0-3 .token.punctuation { + color: #fcf7bb; + } + body.dark .code-0-0-3 .token.class-name { + color: #e0e0e0; + } + body.dark .code-0-0-3 .token.attr-name { + color: #f6d186; + } + body.dark .code-0-0-3 .token.attr-value { + color: #69f0ae; + } + body.dark .code-0-0-3 .token.plain-text { + color: #bdbdbd; + } + body.dark .code-0-0-3 .token.script { + color: #e0e0e0; + } + body.dark .code-0-0-3 .token.placeholder { + color: #18ffff; + } + body.dark .code-0-0-3 .token.selector { + color: #ffa372; + } + body.dark .code-0-0-3 .token.property { + color: #f6d186; + } + body.dark .code-0-0-3 .token.important { + color: #be79df; + } + body.dark .code-0-0-3.scss .token.function, body.dark .code-0-0-3.css .token.function, body.dark .code-0-0-3.sass .token.function { + color: #9aceff; + } + body.dark .code-0-0-3 .token.key { + color: #f6d186; + } + .lineCounter-0-0-4 { + left: 0; + color: transparent; + width: 24px; + height: 1.25rem; + display: inline-flex; + position: sticky; + font-size: 10px; + background: #212121; + align-items: center; + border-right: 2px solid rgba(255, 255, 255, .015); + margin-right: 12px; + padding-right: 12px; + flex-direction: row-reverse; + vertical-align: top; + } + .lineCounter-0-0-4.prim { + color: #616161; + } +@media (prefers-color-scheme: dark) { + body:not(.dark-mode-animate) .lineCounter-0-0-4 { + background: #000000; + border-color: rgba(255, 255, 255, .015); + } + body:not(.dark-mode-animate) .lineCounter-0-0-4.prim { + color: #616161; + } +} + body.dark .lineCounter-0-0-4 { + background: #000000; + border-color: rgba(255, 255, 255, .015); + } + body.dark .lineCounter-0-0-4.prim { + color: #616161; + } + .line-0-0-5 { + cursor: pointer; + height: 1.25rem; + display: inline-block; + min-width: 100%; + background: transparent; + transition: opacity .15s; + } + .has-selection .line-0-0-5:not(.selected) { + opacity: 0.35; + transition: opacity 3s; + } + .line-0-0-5.highlight { + color: #ffffff; + background: rgb(40, 46, 73); + } + .line-0-0-5.selected .lineCounter-0-0-4 { + border-color: #7187ff !important; + } + .line-0-0-5:hover, .line-0-0-5.selected { + background: #3b3b3b; + } + .line-0-0-5:hover .lineCounter-0-0-4 { + border-color: rgba(255, 255, 255, .1); + } + body.dark .line-0-0-5:hover .lineCounter-0-0-4 { + border-color: rgba(255, 255, 255, .1); + } + .line-0-0-5:hover .lineCounter-0-0-4, .line-0-0-5.selected .lineCounter-0-0-4 { + color: #7187ff; + background: #3b3b3b !important; + } + body.dark .line-0-0-5:hover, body.dark .line-0-0-5.selected { + background: #1a1a1a !important; + } + body.dark .line-0-0-5:hover .lineCounter-0-0-4, body.dark .line-0-0-5.selected .lineCounter-0-0-4 { + color: #7187ff; + background: #1a1a1a !important; + } + body.dark .line-0-0-5.selected .lineCounter-0-0-4 { + border-color: #7187ff !important; + } + .line-0-0-5.highlight .lineCounter-0-0-4 { + background: rgb(40, 46, 73); + } +@media (prefers-color-scheme: dark) { + body:not(.dark-mode-animate) .line-0-0-5.highlight { + color: #ffffff; + background: rgb(28, 29, 48); + } + body:not(.dark-mode-animate) .line-0-0-5.highlight .lineCounter-0-0-4 { + background: rgb(28, 29, 48); + } +} + body.dark .line-0-0-5.highlight { + color: #ffffff; + background: rgb(28, 29, 48); + } + body.dark .line-0-0-5.highlight .lineCounter-0-0-4 { + background: rgb(28, 29, 48); + } + .wmbar-0-0-6 { + left: 0; + display: none; + padding: 16px; + position: sticky; + } + .wmbar-0-0-6>span { + display: block; + opacity: 0.5; + flex-grow: 1; + font-size: 12px; + text-align: center; + font-family: sans-serif; + margin-right: 64px; + } + .wmbar-0-0-6>span:first-child, .wmbar-0-0-6>span:nth-child(2), .wmbar-0-0-6>span:nth-child(3) { + width: 8px; + height: 8px; + opacity: 1; + flex-grow: 0; + margin-right: 8px; + border-radius: 8px; + } + pre.with-bar .wmbar-0-0-6 { + display: flex; + } + .wmbar-0-0-6>span:first-child:first-child, .wmbar-0-0-6>span:nth-child(2):first-child, .wmbar-0-0-6>span:nth-child(3):first-child { + background: rgb(255, 95, 86); + } + .wmbar-0-0-6>span:first-child:nth-child(2), .wmbar-0-0-6>span:nth-child(2):nth-child(2), .wmbar-0-0-6>span:nth-child(3):nth-child(2) { + background: rgb(255, 189, 46); + } + .wmbar-0-0-6>span:first-child:nth-child(3), .wmbar-0-0-6>span:nth-child(2):nth-child(3), .wmbar-0-0-6>span:nth-child(3):nth-child(3) { + background: rgb(39, 201, 63); + } + .collapse-0-0-7>.label { + cursor: pointer; + margin: 8px 0; + display: flex; + align-items: center; + user-select: none; + } + .collapse-0-0-7>.content { + opacity: 0; + max-height: 0; + transition: opacity .3s; + visibility: hidden; + border-left: 2px solid rgba(224, 224, 224, 0.5); + padding-left: 16px; + } + .collapse-0-0-7.open>.content { + opacity: 1; + max-height: none; + visibility: visible; + } + .collapse-0-0-7.open>.label .icon-font { + transform: rotate(90deg); + } + body.dark-mode-animate .collapse-0-0-7>.content { + transition: transform .15s, opacity .15s, border-color .3s; + } + body.dark .collapse-0-0-7>.content { + border-color: rgba(49, 49, 49, 0.5); + } +@media (prefers-color-scheme: dark) { + body:not(.dark-mode-animate) .collapse-0-0-7>.content { border-color: rgba(49, 49, 49, 0.5); } } - .collapse-0-0-3>.label .text { + .collapse-0-0-7>.label .text { flex-grow: 1; } - .collapse-0-0-3>.label .icon-font { + .collapse-0-0-7>.label .icon-font { margin-right: 32px; } - .collapse-0-0-3>.label:hover { + .collapse-0-0-7>.label:hover { color: #1eb2a6; transition: color .15s; } - body.dark .collapse-0-0-3>.label:hover { + body.dark .collapse-0-0-7>.label:hover { color: #1eb2a6; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .collapse-0-0-3>.label:hover { + body:not(.dark-mode-animate) .collapse-0-0-7>.label:hover { color: #1eb2a6; } } - body.dark-mode-animate .collapse-0-0-3>.label .icon-font { + body.dark-mode-animate .collapse-0-0-7>.label .icon-font { transition: transform .15s; } - .watermark-0-0-4 { + .watermark-0-0-8 { color: #424242; cursor: pointer; display: inline-block; @@ -85,41 +443,41 @@ body.dark .collapse-0-0-3>.content { transition: opacity .15s; text-decoration: none !important; } - body.dark-mode-animate .watermark-0-0-4 { + body.dark-mode-animate .watermark-0-0-8 { transition: opacity .15s, color .3s; } - .watermark-0-0-4:hover { + .watermark-0-0-8:hover { opacity: 1; text-decoration: none; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .watermark-0-0-4 { + body:not(.dark-mode-animate) .watermark-0-0-8 { color: #eeeeee; } } - body.dark .watermark-0-0-4 { + body.dark .watermark-0-0-8 { color: #eeeeee; } - .watermark-0-0-4 svg { + .watermark-0-0-8 svg { width: 2.8rem; display: block; margin-top: .25rem; } - .watermark-0-0-4 svg g { + .watermark-0-0-8 svg g { fill: #424242; } - body.dark-mode-animate .watermark-0-0-4 svg g { + body.dark-mode-animate .watermark-0-0-8 svg g { transition: fill .3s; } - body.dark .watermark-0-0-4 svg g { + body.dark .watermark-0-0-8 svg g { fill: #eeeeee; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .watermark-0-0-4 svg g { + body:not(.dark-mode-animate) .watermark-0-0-8 svg g { fill: #eeeeee; } } - .header-0-0-5 { + .header-0-0-9 { top: 0; right: 0; padding: 32px; @@ -127,7 +485,7 @@ body.dark .collapse-0-0-3>.content { position: fixed; text-align: right; } - .footer-0-0-6 { + .footer-0-0-10 { left: 0; right: 0; bottom: 0; @@ -142,67 +500,67 @@ body.dark .collapse-0-0-3>.content { justify-content: center; -webkit-backdrop-filter: blur(12px); } - body.dark-mode-animate .footer-0-0-6 { + body.dark-mode-animate .footer-0-0-10 { transition: background .3s; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .footer-0-0-6 { + body:not(.dark-mode-animate) .footer-0-0-10 { background: rgba(33, 33, 33, 0.85); } } - body.dark .footer-0-0-6 { + body.dark .footer-0-0-10 { background: rgba(33, 33, 33, 0.85); } - .footer-0-0-6 .main { + .footer-0-0-10 .main { overflow: hidden; flex-grow: 1; text-align: center; } - .footer-0-0-6 .left { + .footer-0-0-10 .left { padding-left: 32px; } - .footer-0-0-6 .right { + .footer-0-0-10 .right { padding-right: 32px; } @media screen and (max-width: 800px) { - .footer-0-0-6 .left { + .footer-0-0-10 .left { padding-left: 16px; } - .footer-0-0-6 .right { + .footer-0-0-10 .right { padding-right: 16px; } } - .footer-0-0-6 .main>.inside { + .footer-0-0-10 .main>.inside { display: inline-flex; overflow: auto; max-width: 100%; align-items: center; } - .footer-0-0-6 .main>.inside hr { + .footer-0-0-10 .main>.inside hr { width: 2px; border: none; height: 16px; margin: 16px; background: #e0e0e0; } - .footer-0-0-6 .main>.inside a { + .footer-0-0-10 .main>.inside a { text-decoration: none; } - .footer-0-0-6 .main>.inside a:hover { + .footer-0-0-10 .main>.inside a:hover { text-decoration: underline ; } - body.dark-mode-animate .footer-0-0-6 .main>.inside hr { + body.dark-mode-animate .footer-0-0-10 .main>.inside hr { transition: background .3s; } - body.dark .footer-0-0-6 .main>.inside hr { + body.dark .footer-0-0-10 .main>.inside hr { background: #313131; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .footer-0-0-6 .main>.inside hr { + body:not(.dark-mode-animate) .footer-0-0-10 .main>.inside hr { background: #313131; } } - .toc-0-0-7 { + .toc-0-0-11 { top: 0; left: 0; width: calc(50vw - 464px); @@ -216,35 +574,35 @@ body.dark .collapse-0-0-3>.content { flex-direction: column; padding-bottom: 64px; } - body.dark-mode-animate .toc-0-0-7 { + body.dark-mode-animate .toc-0-0-11 { transition: background .3s, border-color .3s; } - body.dark .toc-0-0-7 { + body.dark .toc-0-0-11 { background: #1f1f1f; border-color: #282828; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .toc-0-0-7 { + body:not(.dark-mode-animate) .toc-0-0-11 { background: #1f1f1f; border-color: #282828; } } @media screen and (max-width: 1200px) { - .toc-0-0-7 { + .toc-0-0-11 { width: 100vw; transform: translateX(-110vw); } } - .toc-0-0-7.animated { + .toc-0-0-11.animated { transition: transform .3s; } - .toc-0-0-7.active { + .toc-0-0-11.active { transform: translateX(0); } - .toc-0-0-7 p { + .toc-0-0-11 p { margin: 0; } - .toc-0-0-7 a { + .toc-0-0-11 a { border: 1px solid transparent; display: block; padding: 8px; @@ -254,49 +612,49 @@ body.dark .collapse-0-0-3>.content { border-radius: 3px; text-decoration: none; } - body.dark-mode-animate .toc-0-0-7 a { + body.dark-mode-animate .toc-0-0-11 a { transition: border-color .3s, background .3s; } - .toc-0-0-7 a:hover { + .toc-0-0-11 a:hover { background: #f5f5f5; text-decoration: none; } - .toc-0-0-7 a.current { + .toc-0-0-11 a.current { background: #f5f5f5; border-color: #e7e7e7; margin-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; } - body.dark .toc-0-0-7 a.current { + body.dark .toc-0-0-11 a.current { background: hsl(0, 0%, 13.2%); border-color: #282828; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .toc-0-0-7 a.current { + body:not(.dark-mode-animate) .toc-0-0-11 a.current { background: #212121; border-color: #282828; } } @media screen and (max-width: 1200px) { - .toc-0-0-7 a.current { + .toc-0-0-11 a.current { border-right: 1px solid; margin-right: -8px; border-radius: 3px; } } - body.dark .toc-0-0-7 a:hover { + body.dark .toc-0-0-11 a:hover { background: hsl(0, 0%, 13.2%); } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .toc-0-0-7 a:hover { + body:not(.dark-mode-animate) .toc-0-0-11 a:hover { background: hsl(0, 0%, 13.2%); } } - body.dark-mode-animate .toc-0-0-7.animated { + body.dark-mode-animate .toc-0-0-11.animated { transition: transform .3s, background .3s, border-color .3s; } - .content-0-0-8 { + .content-0-0-12 { padding: 32px; overflow: auto; flex-grow: 1; @@ -304,12 +662,12 @@ body.dark .collapse-0-0-3>.content { padding-right: 0; } @media screen and (max-width: 1200px) { - .content-0-0-8 { + .content-0-0-12 { margin-right: 0; padding-right: 32px; } } - .contentnav-0-0-10 { + .contentnav-0-0-14 { right: 0; width: calc(50vw - 496px); bottom: 96px; @@ -320,56 +678,56 @@ body.dark .collapse-0-0-3>.content { padding-left: 48px; } @media screen and (max-width: 1200px) { - .contentnav-0-0-10 { + .contentnav-0-0-14 { display: none; } } - .contentnav-0-0-10 a { + .contentnav-0-0-14 a { color: #424242; display: block; opacity: 0.2; text-decoration: none; } @media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .contentnav-0-0-10 { + body:not(.dark-mode-animate) .contentnav-0-0-14 { border-color: #313131; } - body:not(.dark-mode-animate) .contentnav-0-0-10 a { + body:not(.dark-mode-animate) .contentnav-0-0-14 a { color: #eeeeee; } - body:not(.dark-mode-animate) .contentnav-0-0-10 a:hover, body:not(.dark-mode-animate) .contentnav-0-0-10 a.active { + body:not(.dark-mode-animate) .contentnav-0-0-14 a:hover, body:not(.dark-mode-animate) .contentnav-0-0-14 a.active { color: #1eb2a6; } } - body.dark .contentnav-0-0-10 { + body.dark .contentnav-0-0-14 { border-color: #313131; } - body.dark .contentnav-0-0-10 a { + body.dark .contentnav-0-0-14 a { color: #eeeeee; } - body.dark .contentnav-0-0-10 a:hover, body.dark .contentnav-0-0-10 a.active { + body.dark .contentnav-0-0-14 a:hover, body.dark .contentnav-0-0-14 a.active { color: #1eb2a6; } - body.dark-mode-animate .contentnav-0-0-10 a { + body.dark-mode-animate .contentnav-0-0-14 a { transition: color .3s, opacity .3s; } - .contentnav-0-0-10 a:hover, .contentnav-0-0-10 a.active { + .contentnav-0-0-14 a:hover, .contentnav-0-0-14 a.active { color: #1eb2a6; opacity: 1; } - .contentnav-0-0-10 a.h2 { + .contentnav-0-0-14 a.h2 { margin-left: 12px; } - .contentnav-0-0-10 a.h3 { + .contentnav-0-0-14 a.h3 { margin-left: 24px; } - .contentnav-0-0-10 a.h4 { + .contentnav-0-0-14 a.h4 { margin-left: 36px; } - .contentnav-0-0-10 a.h5 { + .contentnav-0-0-14 a.h5 { margin-left: 48px; } - .contentnav-0-0-10 a.h6 { + .contentnav-0-0-14 a.h6 { margin-left: 60px; } * { @@ -510,362 +868,4 @@ body.dark code { color: #e0e0e0; background: #282828; } -} - .code-0-0-11 { - color: #e0e0e0; - display: block; - outline: none; - padding: 24px 0; - position: relative; - font-size: 13px; - background: #212121; - box-shadow: 0 6px 12px rgba(0, 0, 0, .25); - overflow-x: auto; - user-select: none; - border-radius: 3px; - -webkit-user-select: none; - } - pre.with-bar .code-0-0-11 { - padding-top: 0; - } - .code-0-0-11 .token.keyword { - color: #7187ff; - } - .code-0-0-11 .token.string { - color: #69f0ae; - } - .code-0-0-11 .token.number { - color: #ffc400; - } - .code-0-0-11 .token.boolean { - color: #ffc400; - } - .code-0-0-11 .token.operator { - color: #18ffff; - } - .code-0-0-11 .token.function { - color: #e0e0e0; - } - .code-0-0-11 .token.parameter { - color: #e0e0e0; - } - .code-0-0-11 .token.comment { - color: #757575; - } - .code-0-0-11 .token.tag { - color: #ffa372; - } - .code-0-0-11 .token.builtin { - color: #e0e0e0; - } - .code-0-0-11 .token.punctuation { - color: #fcf7bb; - } - .code-0-0-11 .token.class-name { - color: #e0e0e0; - } - .code-0-0-11 .token.attr-name { - color: #f6d186; - } - .code-0-0-11 .token.attr-value { - color: #69f0ae; - } - .code-0-0-11 .token.plain-text { - color: #bdbdbd; - } - .code-0-0-11 .token.script { - color: #e0e0e0; - } - .code-0-0-11 .token.placeholder { - color: #18ffff; - } - .code-0-0-11 .token.selector { - color: #ffa372; - } - .code-0-0-11 .token.property { - color: #f6d186; - } - .code-0-0-11 .token.important { - color: #be79df; - } - .code-0-0-11.scss .token.function, .code-0-0-11.css .token.function, .code-0-0-11.sass .token.function { - color: #9aceff; - } - .code-0-0-11 .token.key { - color: #f6d186; - } -@media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .code-0-0-11 { - color: #e0e0e0; - background: #000000; - box-shadow: 0 6px 12px #121212; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.keyword { - color: #7187ff; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.string { - color: #69f0ae; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.number { - color: #ffc400; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.boolean { - color: #ffc400; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.operator { - color: #18ffff; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.function { - color: #e0e0e0; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.parameter { - color: #e0e0e0; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.comment { - color: #757575; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.tag { - color: #ffa372; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.builtin { - color: #e0e0e0; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.punctuation { - color: #fcf7bb; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.class-name { - color: #e0e0e0; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.attr-name { - color: #f6d186; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.attr-value { - color: #69f0ae; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.plain-text { - color: #bdbdbd; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.script { - color: #e0e0e0; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.placeholder { - color: #18ffff; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.selector { - color: #ffa372; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.property { - color: #f6d186; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.important { - color: #be79df; - } - body:not(.dark-mode-animate) .code-0-0-11.scss .token.function, body:not(.dark-mode-animate) .code-0-0-11.css .token.function, body:not(.dark-mode-animate) .code-0-0-11.sass .token.function { - color: #9aceff; - } - body:not(.dark-mode-animate) .code-0-0-11 .token.key { - color: #f6d186; - } -} - body.dark .code-0-0-11 { - color: #e0e0e0; - background: #000000; - box-shadow: 0 6px 12px #121212; - } - body.dark .code-0-0-11 .token.keyword { - color: #7187ff; - } - body.dark .code-0-0-11 .token.string { - color: #69f0ae; - } - body.dark .code-0-0-11 .token.number { - color: #ffc400; - } - body.dark .code-0-0-11 .token.boolean { - color: #ffc400; - } - body.dark .code-0-0-11 .token.operator { - color: #18ffff; - } - body.dark .code-0-0-11 .token.function { - color: #e0e0e0; - } - body.dark .code-0-0-11 .token.parameter { - color: #e0e0e0; - } - body.dark .code-0-0-11 .token.comment { - color: #757575; - } - body.dark .code-0-0-11 .token.tag { - color: #ffa372; - } - body.dark .code-0-0-11 .token.builtin { - color: #e0e0e0; - } - body.dark .code-0-0-11 .token.punctuation { - color: #fcf7bb; - } - body.dark .code-0-0-11 .token.class-name { - color: #e0e0e0; - } - body.dark .code-0-0-11 .token.attr-name { - color: #f6d186; - } - body.dark .code-0-0-11 .token.attr-value { - color: #69f0ae; - } - body.dark .code-0-0-11 .token.plain-text { - color: #bdbdbd; - } - body.dark .code-0-0-11 .token.script { - color: #e0e0e0; - } - body.dark .code-0-0-11 .token.placeholder { - color: #18ffff; - } - body.dark .code-0-0-11 .token.selector { - color: #ffa372; - } - body.dark .code-0-0-11 .token.property { - color: #f6d186; - } - body.dark .code-0-0-11 .token.important { - color: #be79df; - } - body.dark .code-0-0-11.scss .token.function, body.dark .code-0-0-11.css .token.function, body.dark .code-0-0-11.sass .token.function { - color: #9aceff; - } - body.dark .code-0-0-11 .token.key { - color: #f6d186; - } - .lineCounter-0-0-12 { - left: 0; - color: transparent; - width: 24px; - height: 1.25rem; - display: inline-flex; - position: sticky; - font-size: 10px; - background: #212121; - align-items: center; - border-right: 2px solid rgba(255, 255, 255, .015); - margin-right: 12px; - padding-right: 12px; - flex-direction: row-reverse; - vertical-align: top; - } - .lineCounter-0-0-12.prim { - color: #616161; - } -@media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .lineCounter-0-0-12 { - background: #000000; - border-color: rgba(255, 255, 255, .015); - } - body:not(.dark-mode-animate) .lineCounter-0-0-12.prim { - color: #616161; - } -} - body.dark .lineCounter-0-0-12 { - background: #000000; - border-color: rgba(255, 255, 255, .015); - } - body.dark .lineCounter-0-0-12.prim { - color: #616161; - } - .line-0-0-13 { - cursor: pointer; - height: 1.25rem; - display: inline-block; - min-width: 100%; - background: transparent; - transition: opacity .15s; - } - .has-selection .line-0-0-13:not(.selected) { - opacity: 0.35; - transition: opacity 3s; - } - .line-0-0-13.highlight { - color: #ffffff; - background: rgb(40, 46, 73); - } - .line-0-0-13.selected .lineCounter-0-0-12 { - border-color: #7187ff !important; - } - .line-0-0-13:hover, .line-0-0-13.selected { - background: #3b3b3b; - } - .line-0-0-13:hover .lineCounter-0-0-12 { - border-color: rgba(255, 255, 255, .1); - } - body.dark .line-0-0-13:hover .lineCounter-0-0-12 { - border-color: rgba(255, 255, 255, .1); - } - .line-0-0-13:hover .lineCounter-0-0-12, .line-0-0-13.selected .lineCounter-0-0-12 { - color: #7187ff; - background: #3b3b3b !important; - } - body.dark .line-0-0-13:hover, body.dark .line-0-0-13.selected { - background: #1a1a1a !important; - } - body.dark .line-0-0-13:hover .lineCounter-0-0-12, body.dark .line-0-0-13.selected .lineCounter-0-0-12 { - color: #7187ff; - background: #1a1a1a !important; - } - body.dark .line-0-0-13.selected .lineCounter-0-0-12 { - border-color: #7187ff !important; - } - .line-0-0-13.highlight .lineCounter-0-0-12 { - background: rgb(40, 46, 73); - } -@media (prefers-color-scheme: dark) { - body:not(.dark-mode-animate) .line-0-0-13.highlight { - color: #ffffff; - background: rgb(28, 29, 48); - } - body:not(.dark-mode-animate) .line-0-0-13.highlight .lineCounter-0-0-12 { - background: rgb(28, 29, 48); - } -} - body.dark .line-0-0-13.highlight { - color: #ffffff; - background: rgb(28, 29, 48); - } - body.dark .line-0-0-13.highlight .lineCounter-0-0-12 { - background: rgb(28, 29, 48); - } - .wmbar-0-0-14 { - left: 0; - display: none; - padding: 16px; - position: sticky; - } - .wmbar-0-0-14>span { - display: block; - opacity: 0.5; - flex-grow: 1; - font-size: 12px; - text-align: center; - font-family: sans-serif; - margin-right: 64px; - } - .wmbar-0-0-14>span:first-child, .wmbar-0-0-14>span:nth-child(2), .wmbar-0-0-14>span:nth-child(3) { - width: 8px; - height: 8px; - opacity: 1; - flex-grow: 0; - margin-right: 8px; - border-radius: 8px; - } - pre.with-bar .wmbar-0-0-14 { - display: flex; - } - .wmbar-0-0-14>span:first-child:first-child, .wmbar-0-0-14>span:nth-child(2):first-child, .wmbar-0-0-14>span:nth-child(3):first-child { - background: rgb(255, 95, 86); - } - .wmbar-0-0-14>span:first-child:nth-child(2), .wmbar-0-0-14>span:nth-child(2):nth-child(2), .wmbar-0-0-14>span:nth-child(3):nth-child(2) { - background: rgb(255, 189, 46); - } - .wmbar-0-0-14>span:first-child:nth-child(3), .wmbar-0-0-14>span:nth-child(2):nth-child(3), .wmbar-0-0-14>span:nth-child(3):nth-child(3) { - background: rgb(39, 201, 63); - } \ No newline at end of file +} \ No newline at end of file diff --git a/docs/examples.html b/docs/examples.html index 782b268..26fd2c8 100644 --- a/docs/examples.html +++ b/docs/examples.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🐣 Examples

linkList all the snapshots for all the backends

1autorestic -a exec snapshots

linkUnlock a locked repository

If you accidentally cancelled a running operation this could be useful.

Only do this if you know what you are doing.

1autorestic -b my-backend exec unlock

🐣 ExamplesList all the snapshots for all the backendsUnlock a locked repository

Home +

link🐣 Examples

linkList all the snapshots for all the backends

1autorestic -a exec snapshots

linkUnlock a locked repository

If you accidentally cancelled a running operation this could be useful.

Only do this if you know what you are doing.

1autorestic -b my-backend exec unlock

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 73d4f15..ae3907a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -35,18 +35,18 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkautorestic

High backup level CLI utility for restic.

Autorestic is a wrapper around the amazing restic. While being amazing the restic cli can be a bit overwhelming and difficoult to manage if you have many different location that you want to backup to multiple locations. This utility is aimed at making this easier 🙂

+

linkautorestic

High backup level CLI utility for restic.

Autorestic is a wrapper around the amazing restic. While being amazing the restic cli can be a bit overwhelming and difficoult to manage if you have many different location that you want to backup to multiple locations. This utility is aimed at making this easier 🙂

-

link✈️ Roadmap

I would like to make the official 1.0 release in the coming months. Until then please feel free to file issues or feature requests so that the tool is as flexible as possible :)

link🌈 Features

  • YAML config files, no CLI
  • Predictable
  • Incremental -> Minimal space is used
  • Backup locations to multiple backends
  • Snapshot policies and pruning
  • Simple interface
  • Fully encrypted
  • Pre/After hooks
  • Exclude pattern/files
  • Backup & Restore docker volumes
  • Seamless cron jobs for automatic backup in development.

Home +

link✈️ Roadmap

I would like to make the official 1.0 release in the coming months. Until then please feel free to file issues or feature requests so that the tool is as flexible as possible :)

link🌈 Features

  • YAML config files, no CLI
  • Predictable
  • Incremental -> Minimal space is used
  • Backup locations to multiple backends
  • Snapshot policies and pruning
  • Simple interface
  • Fully encrypted
  • Pre/After hooks
  • Exclude pattern/files
  • Backup & Restore docker volumes
  • Seamless cron jobs for automatic backup in development.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/installation.html b/docs/installation.html index c6be169..02192a3 100644 --- a/docs/installation.html +++ b/docs/installation.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🛳 Installation

Linux & macOS. Windows is not supported. If you have problems installing please open an issue :)

Autorestic requires curl, wget and bzip2 to be installed. For most systems these should be already installed.

1curl -s https://raw.githubusercontent.com/CupCakeArmy/autorestic/master/install.sh | bash

🛳 Installation

Home +

link🛳 Installation

Linux & macOS. Windows is not supported. If you have problems installing please open an issue :)

Autorestic requires curl, wget and bzip2 to be installed. For most systems these should be already installed.

1curl -s https://raw.githubusercontent.com/CupCakeArmy/autorestic/master/install.sh | bash

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/cron.html b/docs/locations/cron.html index 335846e..3f37edf 100644 --- a/docs/locations/cron.html +++ b/docs/locations/cron.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkCron

Often it is usefull to trigger backups autmatically. For this we can specify a cron attribute to each location.

.autorestic.yml
1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 cron: '0 3 * * 0' # Every Sunday at 3:00

Here is a awesome website with some examples and an explorer

Cron

Home +

linkCron

Often it is usefull to trigger backups autmatically. For this we can specify a cron attribute to each location.

.autorestic.yml
1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 cron: '0 3 * * 0' # Every Sunday at 3:00

Here is a awesome website with some examples and an explorer

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/docker.html b/docs/locations/docker.html index 37b6dfb..7498212 100644 --- a/docs/locations/docker.html +++ b/docs/locations/docker.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkDocker

Since version 0.13 autorestic supports docker volumes directly, without needing them to be mounted to the host filesystem.

Let see an example.

docker-compose.yml
1version: '3.7'

2

3volumes:

4 data:

5 name: my-data

6

7services:

8 api:

9 image: alpine

10 volumes:

11 - data:/foo/bar

.autorestic.yml
1locations:

2 hello:

3 from: 'volume:my-data'

4 to:

5 - remote

6 options:

7 forget:

8 keep-last: 14 # Useful for limitations explained belowd

9

10backends:

11 remote: ...

Now you can backup and restore as always.

1autorestic -l hello backup

1autorestic -l hello restore

If the volume does not exist on restore, autorestic will create it for you and then fill it with the data.

linkLimitations

Unfortunately there are some limitations when backing up directly from a docker volume without mounting the volume to the host:

  1. Incremental updates are not possible right now due to how the current docker mounting works. This means that it will take significantely more space.
  2. Exclude patterns and files also do not work as restic only sees a compressed tarball as source and not the actual data.

If you are curious or have ideas how to improve this, please read more here. Any help is welcomed 🙂

DockerLimitations

Home +

linkDocker

Since version 0.13 autorestic supports docker volumes directly, without needing them to be mounted to the host filesystem.

Let see an example.

docker-compose.yml
1version: '3.7'

2

3volumes:

4 data:

5 name: my-data

6

7services:

8 api:

9 image: alpine

10 volumes:

11 - data:/foo/bar

.autorestic.yml
1locations:

2 hello:

3 from: 'volume:my-data'

4 to:

5 - remote

6 options:

7 forget:

8 keep-last: 14 # Useful for limitations explained belowd

9

10backends:

11 remote: ...

Now you can backup and restore as always.

1autorestic -l hello backup

1autorestic -l hello restore

If the volume does not exist on restore, autorestic will create it for you and then fill it with the data.

linkLimitations

Unfortunately there are some limitations when backing up directly from a docker volume without mounting the volume to the host:

  1. Incremental updates are not possible right now due to how the current docker mounting works. This means that it will take significantely more space.
  2. Exclude patterns and files also do not work as restic only sees a compressed tarball as source and not the actual data.

If you are curious or have ideas how to improve this, please read more here. Any help is welcomed 🙂

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/exclude.html b/docs/locations/exclude.html index 33587c0..1906df4 100644 --- a/docs/locations/exclude.html +++ b/docs/locations/exclude.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkExcluding files

If you want to exclude certain files or folders it done easily by specifiyng the right flags in the location you desire to filter.

The flags are taken straight from the restic cli exclude rules so you can use any flag used there.

1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 options:

6 backup:

7 exclude:

8 - '*.nope'

9 - '*.abc'

10 exclude-file: .gitignore

Excluding files

Home +

linkExcluding files

If you want to exclude certain files or folders it done easily by specifiyng the right flags in the location you desire to filter.

The flags are taken straight from the restic cli exclude rules so you can use any flag used there.

1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 options:

6 backup:

7 exclude:

8 - '*.nope'

9 - '*.abc'

10 exclude-file: .gitignore

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/forget.html b/docs/locations/forget.html index 6c356e9..cc58f40 100644 --- a/docs/locations/forget.html +++ b/docs/locations/forget.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkForget/Prune Policies

Autorestic supports declaring snapshot policies for location to avoid keeping old snapshot around if you don't need them.

This is based on Restic's snapshots policies, and can be enabled for each location as shown below:

Note This is a full example, of course you also can specify only one of them

.autorestic.yml
1locations:

2 etc:

3 from: /etc

4 to: local

5 options:

6 forget:

7 keep-last: 5 # always keep at least 5 snapshots

8 keep-hourly: 3 # keep 3 last hourly shapshots

9 keep-daily: 4 # keep 4 last daily shapshots

10 keep-weekly: 1 # keep 1 last weekly shapshots

11 keep-monthly: 12 # keep 12 last monthly shapshots

12 keep-yearly: 7 # keep 7 last yearly shapshots

13 keep-within: '2w' # keep snapshots from the last 2 weeks

Forget/Prune Policies

Home +

linkForget/Prune Policies

Autorestic supports declaring snapshot policies for location to avoid keeping old snapshot around if you don't need them.

This is based on Restic's snapshots policies, and can be enabled for each location as shown below:

Note This is a full example, of course you also can specify only one of them

.autorestic.yml
1locations:

2 etc:

3 from: /etc

4 to: local

5 options:

6 forget:

7 keep-last: 5 # always keep at least 5 snapshots

8 keep-hourly: 3 # keep 3 last hourly shapshots

9 keep-daily: 4 # keep 4 last daily shapshots

10 keep-weekly: 1 # keep 1 last weekly shapshots

11 keep-monthly: 12 # keep 12 last monthly shapshots

12 keep-yearly: 7 # keep 7 last yearly shapshots

13 keep-within: '2w' # keep snapshots from the last 2 weeks

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/hooks.html b/docs/locations/hooks.html index 3ace416..31daa83 100644 --- a/docs/locations/hooks.html +++ b/docs/locations/hooks.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

linkHooks

Sometimes you might want to stop an app/db before backing up data and start the service again after the backup has completed. This is what the hooks are made for. Simply add them to your location config. You can have as many commands as you wish.

.autorestic.yml
1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 hooks:

6 before:

7 - echo "Hello"

8 - echo "Human"

9 after:

10 - echo "kthxbye"

Hooks

Home +

linkHooks

Sometimes you might want to stop an app/db before backing up data and start the service again after the backup has completed. This is what the hooks are made for. Simply add them to your location config. You can have as many commands as you wish.

.autorestic.yml
1locations:

2 my-location:

3 from: /data

4 to: my-backend

5 hooks:

6 before:

7 - echo "Hello"

8 - echo "Human"

9 after:

10 - echo "kthxbye"

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/locations/overview.html b/docs/locations/overview.html index c77ed79..8481b7f 100644 --- a/docs/locations/overview.html +++ b/docs/locations/overview.html @@ -35,17 +35,17 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🗂 Locations

Locations can be seen as the input to the backup process. Generally this is simply a folder. -The paths can be relative from the config file. A location can have multiple backends, so that the data is secured across multiple servers.

.autorestic.yml
1locations:

2 my-location-name:

3 from: path/to/backup

4 to:

5 - name-of-backend

6 - also-backup-to-this-backend

linkfrom

This is the source of the location.

linkHow are paths resolved?

Paths can be absolute or relative. If relative they are resolved relative to the location of the config file. Tilde ~ paths are also supported for home folder resolution.

linkto

This is einther a single backend or an array of backends. The backends have to be configured in the same config file.

🗂 LocationsfromHow are paths resolved?to

Home +

link🗂 Locations

Locations can be seen as the input to the backup process. Generally this is simply a folder. +The paths can be relative from the config file. A location can have multiple backends, so that the data is secured across multiple servers.

.autorestic.yml
1locations:

2 my-location-name:

3 from: path/to/backup

4 to:

5 - name-of-backend

6 - also-backup-to-this-backend

linkfrom

This is the source of the location.

linkHow are paths resolved?

Paths can be absolute or relative. If relative they are resolved relative to the location of the config file. Tilde ~ paths are also supported for home folder resolution.

linkto

This is einther a single backend or an array of backends. The backends have to be configured in the same config file.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Info Check Backup Restore @@ -54,4 +54,4 @@ The paths can be relative from the config file. A location can have multiple bac Exec Install Uninstall -Update

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/qa.html b/docs/qa.html index 2e32167..efd4e39 100644 --- a/docs/qa.html +++ b/docs/qa.html @@ -35,17 +35,17 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link❓ QA

linkMy config file was moved?

This happens when autorestic needs to write to the config file. This happend e.g. when we are generating a key for you. -Unforunately during this process formatting and comments are lost. That is why autorestic will place a copy of your old config next to the one we are writing to.

❓ QAMy config file was moved?

Home +

link❓ QA

linkMy config file was moved?

This happens when autorestic needs to write to the config file. This happend e.g. when we are generating a key for you. +Unforunately during this process formatting and comments are lost. That is why autorestic will place a copy of your old config next to the one we are writing to.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Info Check Backup Restore @@ -54,4 +54,4 @@ Unforunately during this process formatting and comments are lost. That is why a Exec Install Uninstall -Update

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file diff --git a/docs/quick.html b/docs/quick.html index 747c75d..ea19e10 100644 --- a/docs/quick.html +++ b/docs/quick.html @@ -35,16 +35,16 @@ .icon-font.outline { font-family: 'Material Icons Outlined'; } -
Star

Created With

link🚀 Quickstart

linkInstallation

1curl -s https://raw.githubusercontent.com/CupCakeArmy/autorestic/master/install.sh | bash

linkWrite a simple config file

1vim .autorestic.yml

For a quick overview:

.autorestic.yml
1locations:

2 home:

3 from: /home/me

4 to: remote

5

6 important:

7 from: /path/to/important/stuff

8 to:

9 - remote

10 - hdd

11

12backends:

13 remote:

14 type: s3

15 path: 's3.amazonaws.com/bucket_name'

16 AWS_ACCESS_KEY_ID: account_id

17 AWS_SECRET_ACCESS_KEY: account_key

18

19 hdd:

20 type: local

21 path: /mnt/my_external_storage

linkCheck [Optional]

1autorestic check -a

This checks if the config file has any issues. If this is the first time this can take longer as autorestic will setup the backends.

linkBackup

1autorestic backup -a

This will do a backup of all locations.

linkRestore

1autorestic restore -l home --from hdd --to /path/where/to/restore

This will restore the location home from the backend hdd to the given path.

🚀 QuickstartInstallationWrite a simple config fileCheck [Optional]BackupRestore

Home +

link🚀 Quickstart

linkInstallation

1curl -s https://raw.githubusercontent.com/CupCakeArmy/autorestic/master/install.sh | bash

linkWrite a simple config file

1vim .autorestic.yml

For a quick overview:

  • locations can be seen as the inputs and backends the output where the data is stored and backed up.
  • One location can have one or multiple backends for redudancy.
  • One backend can also be the target for multiple locations
.autorestic.yml
1locations:

2 home:

3 from: /home/me

4 to: remote

5

6 important:

7 from: /path/to/important/stuff

8 to:

9 - remote

10 - hdd

11

12backends:

13 remote:

14 type: s3

15 path: 's3.amazonaws.com/bucket_name'

16 AWS_ACCESS_KEY_ID: account_id

17 AWS_SECRET_ACCESS_KEY: account_key

18

19 hdd:

20 type: local

21 path: /mnt/my_external_storage

linkCheck [Optional]

1autorestic check -a

This checks if the config file has any issues. If this is the first time this can take longer as autorestic will setup the backends.

linkBackup

1autorestic backup -a

This will do a backup of all locations.

linkRestore

1autorestic restore -l home --from hdd --to /path/where/to/restore

This will restore the location home from the backend hdd to the given path.

Home Quick Start Installation -Configuration

Locationschevron_right

Overview +Configuration

Locationschevron_right
Backendchevron_right
CLIchevron_right
Backendchevron_right
CLIchevron_right

Examples

QA

Contributors

\ No newline at end of file +Update

Examples

QA

Contributors

\ No newline at end of file