github.com/rpdict/ponzu@v0.10.1-0.20190226054626-477f29d6bf5e/docs/build/Running-Backups/Backups/index.html (about) 1 2 <!DOCTYPE html> 3 <html lang="en" class="no-js"> 4 <head> 5 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width,initial-scale=1"> 8 9 10 11 12 <link rel="shortcut icon" href="../../assets/images/favicon.png"> 13 14 <meta name="generator" content="mkdocs-0.16.3, mkdocs-material-1.6.1"> 15 16 17 18 <title>Running Backups on Ponzu systems</title> 19 20 21 22 <script src="../../assets/javascripts/modernizr-56ade86843.js"></script> 23 24 25 <link rel="stylesheet" href="../../assets/stylesheets/application-4d0d3f2fbf.css"> 26 27 <link rel="stylesheet" href="../../assets/stylesheets/application-f78e5cb881.palette.css"> 28 29 30 31 32 33 34 35 <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono"> 36 <style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style> 37 38 <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> 39 40 41 42 </head> 43 44 45 46 47 <body data-md-color-primary="grey" data-md-color-accent="light-blue"> 48 49 <svg class="md-svg"> 50 <defs> 51 52 53 <svg xmlns="http://www.w3.org/2000/svg" width="416" height="448" viewBox="0 0 416 448" id="github"><path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z"/></svg> 54 55 </defs> 56 </svg> 57 <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="drawer"> 58 <input class="md-toggle" data-md-toggle="search" type="checkbox" id="search"> 59 <label class="md-overlay" data-md-component="overlay" for="drawer"></label> 60 61 <header class="md-header" data-md-component="header"> 62 <nav class="md-header-nav md-grid"> 63 <div class="md-flex"> 64 <div class="md-flex__cell md-flex__cell--shrink"> 65 66 <a href="../.." title="Ponzu" class="md-logo md-header-nav__button"> 67 <img src="../../images/logo.png" width="24" height="24"> 68 </a> 69 70 </div> 71 <div class="md-flex__cell md-flex__cell--shrink"> 72 <label class="md-icon md-icon--menu md-header-nav__button" for="drawer"></label> 73 </div> 74 <div class="md-flex__cell md-flex__cell--stretch"> 75 <span class="md-flex__ellipsis md-header-nav__title"> 76 77 78 79 <span class="md-header-nav__parent"> 80 Running Backups 81 </span> 82 83 84 Backups 85 86 </span> 87 </div> 88 <div class="md-flex__cell md-flex__cell--shrink"> 89 90 <label class="md-icon md-icon--search md-header-nav__button" for="search"></label> 91 92 <div class="md-search" data-md-component="search"> 93 <label class="md-search__overlay" for="search"></label> 94 <div class="md-search__inner"> 95 <form class="md-search__form" name="search"> 96 <input type="text" class="md-search__input" name="query" required placeholder="Search" accesskey="s" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query"> 97 <label class="md-icon md-search__icon" for="search"></label> 98 <button type="reset" class="md-icon md-search__icon" data-md-component="reset">close</button> 99 </form> 100 <div class="md-search__output"> 101 <div class="md-search__scrollwrap" data-md-scrollfix> 102 <div class="md-search-result" data-md-component="result"> 103 <div class="md-search-result__meta" data-md-lang-result-none="No matching documents" data-md-lang-result-one="1 matching document" data-md-lang-result-other="# matching documents"> 104 Type to start searching 105 </div> 106 <ol class="md-search-result__list"></ol> 107 </div> 108 </div> 109 </div> 110 </div> 111 </div> 112 113 </div> 114 <div class="md-flex__cell md-flex__cell--shrink"> 115 <div class="md-header-nav__source"> 116 117 118 119 120 121 122 123 <a href="https://github.com/rpdict/ponzu" title="Go to repository" class="md-source" data-md-source="github"> 124 125 <div class="md-source__icon"> 126 <svg viewBox="0 0 24 24" width="24" height="24"> 127 <use xlink:href="#github" width="24" height="24"></use> 128 </svg> 129 </div> 130 131 <div class="md-source__repository"> 132 ponzu-cms/ponzu 133 </div> 134 </a> 135 136 137 </div> 138 </div> 139 </div> 140 </nav> 141 </header> 142 143 <div class="md-container"> 144 145 146 <main class="md-main"> 147 <div class="md-main__inner md-grid" data-md-component="container"> 148 149 150 <div class="md-sidebar md-sidebar--primary" data-md-component="navigation"> 151 <div class="md-sidebar__scrollwrap"> 152 <div class="md-sidebar__inner"> 153 <nav class="md-nav md-nav--primary" data-md-level="0"> 154 <label class="md-nav__title md-nav__title--site" for="drawer"> 155 156 <i class="md-logo md-nav__button"> 157 <img src="../../images/logo.png"> 158 </i> 159 160 Ponzu 161 </label> 162 163 <div class="md-nav__source"> 164 165 166 167 168 169 170 <a href="https://github.com/rpdict/ponzu" title="Go to repository" class="md-source" data-md-source="github"> 171 172 <div class="md-source__icon"> 173 <svg viewBox="0 0 24 24" width="24" height="24"> 174 <use xlink:href="#github" width="24" height="24"></use> 175 </svg> 176 </div> 177 178 <div class="md-source__repository"> 179 ponzu-cms/ponzu 180 </div> 181 </a> 182 183 </div> 184 185 <ul class="md-nav__list" data-md-scrollfix> 186 187 188 189 190 191 192 <li class="md-nav__item"> 193 <a href="../.." title="Home" class="md-nav__link"> 194 Home 195 </a> 196 </li> 197 198 199 200 201 202 203 204 <li class="md-nav__item md-nav__item--nested"> 205 206 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2"> 207 208 <label class="md-nav__link" for="nav-2"> 209 CLI 210 </label> 211 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 212 <label class="md-nav__title" for="nav-2"> 213 CLI 214 </label> 215 <ul class="md-nav__list" data-md-scrollfix> 216 217 218 219 220 221 222 223 <li class="md-nav__item"> 224 <a href="../../CLI/General-Usage/" title="General Usage" class="md-nav__link"> 225 General Usage 226 </a> 227 </li> 228 229 230 231 232 233 234 235 <li class="md-nav__item"> 236 <a href="../../CLI/Generating-References/" title="Generating References" class="md-nav__link"> 237 Generating References 238 </a> 239 </li> 240 241 242 </ul> 243 </nav> 244 </li> 245 246 247 248 249 250 251 252 <li class="md-nav__item md-nav__item--nested"> 253 254 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3"> 255 256 <label class="md-nav__link" for="nav-3"> 257 Content 258 </label> 259 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 260 <label class="md-nav__title" for="nav-3"> 261 Content 262 </label> 263 <ul class="md-nav__list" data-md-scrollfix> 264 265 266 267 268 269 270 271 <li class="md-nav__item"> 272 <a href="../../Content/An-Overview/" title="An Overview" class="md-nav__link"> 273 An Overview 274 </a> 275 </li> 276 277 278 279 280 281 282 283 <li class="md-nav__item"> 284 <a href="../../Content/Extending-Content/" title="Extending Content" class="md-nav__link"> 285 Extending Content 286 </a> 287 </li> 288 289 290 </ul> 291 </nav> 292 </li> 293 294 295 296 297 298 299 300 <li class="md-nav__item md-nav__item--nested"> 301 302 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4"> 303 304 <label class="md-nav__link" for="nav-4"> 305 Form Fields 306 </label> 307 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 308 <label class="md-nav__title" for="nav-4"> 309 Form Fields 310 </label> 311 <ul class="md-nav__list" data-md-scrollfix> 312 313 314 315 316 317 318 319 <li class="md-nav__item"> 320 <a href="../../Form-Fields/HTML-Inputs/" title="HTML Inputs" class="md-nav__link"> 321 HTML Inputs 322 </a> 323 </li> 324 325 326 </ul> 327 </nav> 328 </li> 329 330 331 332 333 334 335 336 <li class="md-nav__item md-nav__item--nested"> 337 338 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5"> 339 340 <label class="md-nav__link" for="nav-5"> 341 HTTP APIs 342 </label> 343 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 344 <label class="md-nav__title" for="nav-5"> 345 HTTP APIs 346 </label> 347 <ul class="md-nav__list" data-md-scrollfix> 348 349 350 351 352 353 354 355 <li class="md-nav__item"> 356 <a href="../../HTTP-APIs/Content/" title="Content" class="md-nav__link"> 357 Content 358 </a> 359 </li> 360 361 362 363 364 365 366 367 <li class="md-nav__item"> 368 <a href="../../HTTP-APIs/File-Metadata/" title="File Metadata" class="md-nav__link"> 369 File Metadata 370 </a> 371 </li> 372 373 374 375 376 377 378 379 <li class="md-nav__item"> 380 <a href="../../HTTP-APIs/Search/" title="Search" class="md-nav__link"> 381 Search 382 </a> 383 </li> 384 385 386 </ul> 387 </nav> 388 </li> 389 390 391 392 393 394 395 396 <li class="md-nav__item md-nav__item--nested"> 397 398 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6"> 399 400 <label class="md-nav__link" for="nav-6"> 401 Interfaces 402 </label> 403 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 404 <label class="md-nav__title" for="nav-6"> 405 Interfaces 406 </label> 407 <ul class="md-nav__list" data-md-scrollfix> 408 409 410 411 412 413 414 415 <li class="md-nav__item"> 416 <a href="../../Interfaces/API/" title="API" class="md-nav__link"> 417 API 418 </a> 419 </li> 420 421 422 423 424 425 426 427 <li class="md-nav__item"> 428 <a href="../../Interfaces/Editor/" title="Editor" class="md-nav__link"> 429 Editor 430 </a> 431 </li> 432 433 434 435 436 437 438 439 <li class="md-nav__item"> 440 <a href="../../Interfaces/Format/" title="Format" class="md-nav__link"> 441 Format 442 </a> 443 </li> 444 445 446 447 448 449 450 451 <li class="md-nav__item"> 452 <a href="../../Interfaces/Item/" title="Item" class="md-nav__link"> 453 Item 454 </a> 455 </li> 456 457 458 459 460 461 462 463 <li class="md-nav__item"> 464 <a href="../../Interfaces/Search/" title="Search" class="md-nav__link"> 465 Search 466 </a> 467 </li> 468 469 470 </ul> 471 </nav> 472 </li> 473 474 475 476 477 478 479 480 <li class="md-nav__item md-nav__item--nested"> 481 482 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7"> 483 484 <label class="md-nav__link" for="nav-7"> 485 Ponzu Addons 486 </label> 487 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 488 <label class="md-nav__title" for="nav-7"> 489 Ponzu Addons 490 </label> 491 <ul class="md-nav__list" data-md-scrollfix> 492 493 494 495 496 497 498 499 <li class="md-nav__item"> 500 <a href="../../Ponzu-Addons/Creating-Addons/" title="Creating Addons" class="md-nav__link"> 501 Creating Addons 502 </a> 503 </li> 504 505 506 507 508 509 510 511 <li class="md-nav__item"> 512 <a href="../../Ponzu-Addons/Using-Addons/" title="Using Addons" class="md-nav__link"> 513 Using Addons 514 </a> 515 </li> 516 517 518 </ul> 519 </nav> 520 </li> 521 522 523 524 525 526 527 528 <li class="md-nav__item md-nav__item--nested"> 529 530 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8"> 531 532 <label class="md-nav__link" for="nav-8"> 533 Quickstart 534 </label> 535 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 536 <label class="md-nav__title" for="nav-8"> 537 Quickstart 538 </label> 539 <ul class="md-nav__list" data-md-scrollfix> 540 541 542 543 544 545 546 547 <li class="md-nav__item"> 548 <a href="../../Quickstart/Overview/" title="Overview" class="md-nav__link"> 549 Overview 550 </a> 551 </li> 552 553 554 </ul> 555 </nav> 556 </li> 557 558 559 560 561 562 563 564 <li class="md-nav__item md-nav__item--nested"> 565 566 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9"> 567 568 <label class="md-nav__link" for="nav-9"> 569 References 570 </label> 571 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 572 <label class="md-nav__title" for="nav-9"> 573 References 574 </label> 575 <ul class="md-nav__list" data-md-scrollfix> 576 577 578 579 580 581 582 583 <li class="md-nav__item"> 584 <a href="../../References/Overview/" title="Overview" class="md-nav__link"> 585 Overview 586 </a> 587 </li> 588 589 590 </ul> 591 </nav> 592 </li> 593 594 595 596 597 598 599 600 601 602 <li class="md-nav__item md-nav__item--active md-nav__item--nested"> 603 604 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10" checked> 605 606 <label class="md-nav__link" for="nav-10"> 607 Running Backups 608 </label> 609 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 610 <label class="md-nav__title" for="nav-10"> 611 Running Backups 612 </label> 613 <ul class="md-nav__list" data-md-scrollfix> 614 615 616 617 618 619 620 621 622 623 <li class="md-nav__item md-nav__item--active"> 624 625 <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="toc"> 626 627 628 <label class="md-nav__link md-nav__link--active" for="toc"> 629 Backups 630 </label> 631 632 <a href="./" title="Backups" class="md-nav__link md-nav__link--active"> 633 Backups 634 </a> 635 636 637 <nav class="md-nav md-nav--secondary"> 638 639 640 641 <label class="md-nav__title" for="toc">Table of contents</label> 642 <ul class="md-nav__list" data-md-scrollfix> 643 644 <li class="md-nav__item"> 645 <a href="#system-analytics" title="System & Analytics" class="md-nav__link"> 646 System & Analytics 647 </a> 648 649 </li> 650 651 <li class="md-nav__item"> 652 <a href="#uploads" title="Uploads" class="md-nav__link"> 653 Uploads 654 </a> 655 656 </li> 657 658 <li class="md-nav__item"> 659 <a href="#search-indexes" title="Search Indexes" class="md-nav__link"> 660 Search Indexes 661 </a> 662 663 </li> 664 665 666 667 </ul> 668 669 </nav> 670 671 </li> 672 673 674 </ul> 675 </nav> 676 </li> 677 678 679 680 681 682 683 684 <li class="md-nav__item md-nav__item--nested"> 685 686 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-11" type="checkbox" id="nav-11"> 687 688 <label class="md-nav__link" for="nav-11"> 689 System Configuration 690 </label> 691 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 692 <label class="md-nav__title" for="nav-11"> 693 System Configuration 694 </label> 695 <ul class="md-nav__list" data-md-scrollfix> 696 697 698 699 700 701 702 703 <li class="md-nav__item"> 704 <a href="../../System-Configuration/Settings/" title="Settings" class="md-nav__link"> 705 Settings 706 </a> 707 </li> 708 709 710 </ul> 711 </nav> 712 </li> 713 714 715 716 717 718 719 720 <li class="md-nav__item md-nav__item--nested"> 721 722 <input class="md-toggle md-nav__toggle" data-md-toggle="nav-12" type="checkbox" id="nav-12"> 723 724 <label class="md-nav__link" for="nav-12"> 725 System Deployment 726 </label> 727 <nav class="md-nav" data-md-component="collapsible" data-md-level="1"> 728 <label class="md-nav__title" for="nav-12"> 729 System Deployment 730 </label> 731 <ul class="md-nav__list" data-md-scrollfix> 732 733 734 735 736 737 738 739 <li class="md-nav__item"> 740 <a href="../../System-Deployment/Docker/" title="Docker" class="md-nav__link"> 741 Docker 742 </a> 743 </li> 744 745 746 747 748 749 750 751 <li class="md-nav__item"> 752 <a href="../../System-Deployment/SysV-Style/" title="SysV Style" class="md-nav__link"> 753 SysV Style 754 </a> 755 </li> 756 757 758 </ul> 759 </nav> 760 </li> 761 762 763 </ul> 764 </nav> 765 </div> 766 </div> 767 </div> 768 769 770 <div class="md-sidebar md-sidebar--secondary" data-md-component="toc"> 771 <div class="md-sidebar__scrollwrap"> 772 <div class="md-sidebar__inner"> 773 774 <nav class="md-nav md-nav--secondary"> 775 776 777 778 <label class="md-nav__title" for="toc">Table of contents</label> 779 <ul class="md-nav__list" data-md-scrollfix> 780 781 <li class="md-nav__item"> 782 <a href="#system-analytics" title="System & Analytics" class="md-nav__link"> 783 System & Analytics 784 </a> 785 786 </li> 787 788 <li class="md-nav__item"> 789 <a href="#uploads" title="Uploads" class="md-nav__link"> 790 Uploads 791 </a> 792 793 </li> 794 795 <li class="md-nav__item"> 796 <a href="#search-indexes" title="Search Indexes" class="md-nav__link"> 797 Search Indexes 798 </a> 799 800 </li> 801 802 803 804 </ul> 805 806 </nav> 807 </div> 808 </div> 809 </div> 810 811 812 <div class="md-content"> 813 <article class="md-content__inner md-typeset"> 814 815 816 817 <h1>Backups</h1> 818 819 <p>Both the databases <code>system.db</code> & <code>analytics.db</code>, and the <code>/uploads</code> directory can be backed up over HTTP using <code>wget</code>, <code>curl</code>, etc. All of which are located at the <code>/admin/backup</code> route and require HTTP Basic Auth. In order to enable backups, you must add a user/password pair inside the CMS Configuration at <code>/admin/configure</code> near the bottom of the page.</p> 820 <p>All backups are made using a <code>GET</code> request to the <code>/admin/backup</code> path with a query parameter of <code>?source={system,analytics,uploads}</code> (only one source can be included in the URL).</p> 821 <p>Here are some full backup scripts to use or modify to fit your needs: 822 <a href="https://github.com/rpdict/backup-scripts">https://github.com/rpdict/backup-scripts</a></p> 823 <h2 id="system-analytics">System & Analytics<a class="headerlink" href="#system-analytics" title="Permanent link">¶</a></h2> 824 <p>The <code>system.db</code> & <code>analytics.db</code> data files are sent uncompressed in their original form as they exist on your server. No temporary copy is stored on the origin server, and it is possible that the backup could fail so checking for successful backups is recommended. See https://github.com/boltdb/bolt#database-backups for more information about how BoltDB handles HTTP backups.</p> 825 <p>An example backup request for the <code>system.db</code> data file would look like:</p> 826 <div class="codehilite"><pre><span></span>$ curl --user user:pass <span class="s2">"https://example.com/admin/backup?source=system"</span> > system.db.bak 827 </pre></div> 828 829 830 <h2 id="uploads">Uploads<a class="headerlink" href="#uploads" title="Permanent link">¶</a></h2> 831 <p>The <code>uploads</code> directory is gzip compressed and archived as a tar file, stored in the temporary directory (typically <code>/tmp</code> on Linux) on your origin server with a timestamp in the file name. It is removed after the HTTP response for the backup has been written.</p> 832 <p>An example backup request for the <code>/uploads</code> directory would look like:</p> 833 <div class="codehilite"><pre><span></span>$ curl --user user:pass <span class="s2">"https://example.com/admin/backup?source=uploads"</span> > uploads.tar.gz 834 <span class="c1"># unarchive the tarball with gzip </span> 835 $ tar xzf uploads.tar.gz 836 </pre></div> 837 838 839 <h2 id="search-indexes">Search Indexes<a class="headerlink" href="#search-indexes" title="Permanent link">¶</a></h2> 840 <p>The <code>search</code> directory, which is created to store the various search indexes for your content types (only if they implement <code>search.Searchable</code>), is backed up in the same fashion as <a href="../../Running-Backups/Backups/#uploads">Uploads</a>. </p> 841 <p>An example backup request for the <code>/search</code> directory would look like:</p> 842 <div class="codehilite"><pre><span></span>$ curl --user user:pass <span class="s2">"https://example.com/admin/backup?source=search"</span> > search.tar.gz 843 <span class="c1"># unarchive the tarball with gzip </span> 844 $ tar xzf search.tar.gz 845 </pre></div> 846 847 848 849 850 851 852 853 </article> 854 </div> 855 </div> 856 </main> 857 858 859 <footer class="md-footer"> 860 861 <div class="md-footer-nav"> 862 <nav class="md-footer-nav__inner md-grid"> 863 864 <a href="../../References/Overview/" title="Overview" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev"> 865 <div class="md-flex__cell md-flex__cell--shrink"> 866 <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> 867 </div> 868 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 869 <span class="md-flex__ellipsis"> 870 <span class="md-footer-nav__direction"> 871 Previous 872 </span> 873 Overview 874 </span> 875 </div> 876 </a> 877 878 879 <a href="../../System-Configuration/Settings/" title="Settings" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next"> 880 <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> 881 <span class="md-flex__ellipsis"> 882 <span class="md-footer-nav__direction"> 883 Next 884 </span> 885 Settings 886 </span> 887 </div> 888 <div class="md-flex__cell md-flex__cell--shrink"> 889 <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> 890 </div> 891 </a> 892 893 </nav> 894 </div> 895 896 <div class="md-footer-meta md-typeset"> 897 <div class="md-footer-meta__inner md-grid"> 898 <div class="md-footer-copyright"> 899 900 powered by 901 <a href="http://www.mkdocs.org" title="MkDocs">MkDocs</a> 902 and 903 <a href="http://squidfunk.github.io/mkdocs-material/" title="Material for MkDocs"> 904 Material for MkDocs</a> 905 </div> 906 907 908 <div class="md-footer-social"> 909 910 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 911 912 <a href="https://github.com/rpdict" class="md-footer-social__link fa fa-github"></a> 913 914 <a href="https://twitter.com/ponzu_cms" class="md-footer-social__link fa fa-twitter"></a> 915 916 </div> 917 918 919 </div> 920 </div> 921 </footer> 922 923 </div> 924 925 <script src="../../assets/javascripts/application-6b599127bc.js"></script> 926 <script>app.initialize({url:{base:"../.."}})</script> 927 928 929 930 931 <script>!function(e,t,a,n,o,c,i){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,c=t.createElement(a),i=t.getElementsByTagName(a)[0],c.async=1,c.src=n,i.parentNode.insertBefore(c,i)}(window,document,"script","https://www.google-analytics.com/analytics.js","ga"),ga("create","UA-98609560-1","auto"),ga("set","anonymizeIp",!0),ga("send","pageview");var links=document.getElementsByTagName("a");Array.prototype.map.call(links,function(e){e.host!=document.location.host&&e.addEventListener("click",function(){var t=e.getAttribute("data-md-action")||"follow";ga("send","event","outbound",t,e.href)})});var query=document.forms.search.query;query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})</script> 932 933 934 </body> 935 </html>