├── .gitignore ├── .gitmodules ├── LICENSE ├── NOTICE ├── README.md ├── README.old.md ├── _templates ├── base.html ├── case-study.html ├── cla.html ├── cloud-template-list.html ├── docs.html ├── event-listing.html ├── event.html ├── footer.html ├── google-search.html ├── install.html ├── job.html ├── landing-lang.html ├── mailchimp-joins.html ├── mailchimp-large.html ├── mailchimp-simple.html ├── mailchimp-small.html ├── navbar.html └── post.html ├── config.json ├── config └── production.json ├── locale └── README.md ├── pages ├── 404 │ └── index.html ├── docs │ ├── clients │ │ ├── erlang.html │ │ ├── index.html │ │ ├── java.html │ │ ├── jdbc.html │ │ ├── odbc.html │ │ ├── php.html │ │ ├── python.html │ │ └── rest.html │ ├── connect │ │ ├── admin_ui.html │ │ ├── crash.html │ │ └── index.html │ ├── import │ │ └── index.html │ ├── install │ │ ├── cloud │ │ │ ├── aws.html │ │ │ ├── azure.html │ │ │ ├── index.html │ │ │ ├── packet.html │ │ │ └── softlayer.html │ │ ├── containers │ │ │ ├── containership.html │ │ │ ├── coreos.html │ │ │ ├── docker-cloud.html │ │ │ ├── docker.html │ │ │ └── index.html │ │ ├── index.html │ │ └── local │ │ │ ├── download-thanks.html │ │ │ ├── index.html │ │ │ ├── linux.html │ │ │ ├── mac.html │ │ │ ├── tarball.html │ │ │ └── windows.html │ ├── reference │ │ └── overview.html │ ├── scale │ │ ├── docker_swarm.html │ │ ├── index.html │ │ ├── kubernetes.html │ │ ├── multi_node_setup.html │ │ ├── multi_zone_setup.html │ │ └── resilience.html │ ├── search │ │ └── index.html │ ├── support │ │ └── index.html │ └── tools │ │ ├── index.html │ │ ├── squirrel.html │ │ └── streamsets.html ├── feed │ └── menu.json ├── sitemap-cactus.xml └── sitemap-reference.xml ├── plugins ├── __init__.py ├── coffeescript.disabled.py ├── collection.py ├── haml.disabled.py ├── page_context.py ├── sass.disabled.py ├── scss.disabled..py ├── sprites.disabled.py ├── static_optimizers.py └── template_tags.py ├── post_templates ├── article.html └── blog.html ├── static ├── apple-touch-icon-precomposed.png ├── apple-touch-icon.png ├── css │ ├── crateio-rtd.css │ ├── crateio.css │ ├── custom.css │ ├── friendly-codehilite.css │ ├── normalize.css │ ├── terminal.css │ ├── webflow.css │ └── zenburn-hljs.css ├── favicon.ico ├── favicon.png ├── fonts │ ├── BlenderPro-BoldWeb.woff │ ├── blenderpro-bold-webfont.eot │ ├── blenderpro-bold-webfont.svg │ ├── blenderpro-bold-webfont.ttf │ ├── blenderpro-bold-webfont.woff │ ├── blenderpro-bold-webfont.woff2 │ ├── blenderpro-thin-webfont.eot │ ├── blenderpro-thin-webfont.svg │ ├── blenderpro-thin-webfont.ttf │ ├── blenderpro-thin-webfont.woff │ └── blenderpro-thin-webfont.woff2 ├── images │ ├── 1116 │ │ ├── crate-db-recovery.png │ │ └── cratedb-load.png │ ├── 1216 │ │ ├── grafana-cratedb-dashboard.png │ │ └── paul-adams.jpg │ ├── 0816 │ │ ├── awesome-to-the-max.png │ │ ├── crate-k8s.png │ │ ├── crate-k8s2.png │ │ ├── craties.png │ │ ├── intro.png │ │ ├── k8s.png │ │ ├── max-cooking.jpg │ │ ├── schwag.png │ │ └── setup.png │ ├── 0916 │ │ ├── logo-packet.png │ │ ├── packet-project.png │ │ └── packet-servers.png │ ├── 5645e3972a73124134e9e237_hero-job.jpg │ ├── 565e0d8d1f8534060fa79589_logo-avuxi-160.png │ ├── 565e0daa354b49b24c51b97f_logo-voipstudio-160.png │ ├── AWS_Logo.png │ ├── Azure_Logo.png │ ├── Crash.png │ ├── Docker_logo.png │ ├── GCE_logo.png │ ├── Linux_logo.png │ ├── Mac_Logo.png │ ├── Windows_Logo.png │ ├── admin_ui.png │ ├── amazon-logo-182.png │ ├── apple-touch-icon.png │ ├── aws-logo.png │ ├── blog.jpg │ ├── bt-share-facebook.png │ ├── bt-share-google.png │ ├── bt-share-linkedin.png │ ├── bt-share-mail.png │ ├── bt-share-twitter.png │ ├── cisco.png │ ├── cloud_admin.png │ ├── cloud_everywhere.png │ ├── cloud_open-source.png │ ├── cloud_scale.png │ ├── crate-logo.png │ ├── crate-logo_1.png │ ├── culture-drink.jpg │ ├── culture-food.jpg │ ├── culture-gear.jpg │ ├── culture-nutrition.jpg │ ├── culture-sleep.jpg │ ├── culture-sport.jpg │ ├── culture-testing.jpg │ ├── culture-together.jpg │ ├── culture-wild.jpg │ ├── cv-logo-badge.png │ ├── documentation.jpg │ ├── efre_logo_l.jpg │ ├── efre_logo_s.jpg │ ├── f-logo-facebook.png │ ├── f-logo-github.png │ ├── f-logo-google.png │ ├── f-logo-linkedin.png │ ├── f-logo-twitter.png │ ├── f-logo-youtube.png │ ├── fa-bw-cisco.png │ ├── fa-bw-gigaom-launchpad.png │ ├── fa-bw-gigaom.png │ ├── fa-bw-hacker-news.png │ ├── fa-bw-inventures.png │ ├── fa-bw-pioneers.png │ ├── fa-bw-sxsw.png │ ├── fa-bw-techcrunch.png │ ├── fa-cisco-top-15 .png │ ├── fa-gigaom-launchpad.png │ ├── fa-gigaom.png │ ├── fa-hacker-news.png │ ├── fa-inventures.png │ ├── fa-pioneers-final-8.png │ ├── fa-sxsw.png │ ├── fa-techcrunch.png │ ├── favicon.png │ ├── gigaom.png │ ├── gigaom_launchpad.png │ ├── google-logo-210.png │ ├── hackernews.png │ ├── hero-bg-about.jpg │ ├── hero-crates.jpg │ ├── hero-docs.png │ ├── hero-front-1440.jpg │ ├── hero-job.jpg │ ├── hero-use-cases.jpg │ ├── hero.png │ ├── hero_bg_abstract_2.jpg │ ├── hittisau.jpg │ ├── icon-connect-app.png │ ├── icon-connect-to-cluster.png │ ├── icon-docs@2x.png │ ├── icon-home-fast-x100.png │ ├── icon-home-playswell-x100.png │ ├── icon-home-simple-x100.png │ ├── icon-import-data.png │ ├── icon-install.png │ ├── icon-navigation-up.png │ ├── icon-performance@2x.png │ ├── icon-scale-cluster.png │ ├── icon-search@2x.png │ ├── icon-search@2x_1.png │ ├── icon-speed.png │ ├── icon-start@2x.png │ ├── icon-support@2x.png │ ├── icon_analytics.png │ ├── icon_blob.png │ ├── icon_document.png │ ├── icon_restructure.png │ ├── icon_search.png │ ├── inventures.png │ ├── lang-erlang.png │ ├── lang-java.png │ ├── lang-perl.jpg │ ├── lang-php.png │ ├── lang-python.png │ ├── logo-aws.png │ ├── logo-azure.png │ ├── logo-crate.png │ ├── logo-gce.png │ ├── logo-google.png │ ├── logo-linux.png │ ├── logo-osx.png │ ├── logo-packet.png │ ├── logo-softlayer.png │ ├── logo-tutum.png │ ├── logo-ubuntu.png │ ├── logo-windows.png │ ├── logo_containership.png │ ├── logo_coreos.png │ ├── logo_docker.png │ ├── logo_dockercloud.png │ ├── logo_linux.png │ ├── logo_windows.png │ ├── microsoft-logo-210.png │ ├── notadev.jpg │ ├── packet-project.png │ ├── packet-servers.png │ ├── pioneers.png │ ├── resilience-status.png │ ├── robert-downey-jr-i-love-you-kisses.gif │ ├── scale_1_node_cluster.png │ ├── scale_2_node_cluster.png │ ├── scale_3_node_cluster.png │ ├── sequoia-microservices-preview.png │ ├── slack.png │ ├── snowsprint_bg.jpg │ ├── softlayer-logo-200.png │ ├── status_bar.png │ ├── sxsw.png │ ├── techcrunch-disrupt-winners.jpg │ ├── techcrunch.png │ └── usecases.jpg └── js │ ├── ascii-table.js │ ├── highlight.pack.js │ ├── modernizr.js │ ├── terminal.js │ └── webflow.js └── templates ├── article.html ├── base.html ├── base_docs.html ├── docs.html ├── faq.html ├── head.html ├── includes └── interactive_console.html ├── install.html ├── post.html ├── releasenote.html ├── wf_base.html ├── wf_footer.html └── wf_header.html /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | .build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | *.eggs/ 25 | bin/ 26 | 27 | # PyInstaller 28 | # Usually these files are written by a python script from a template 29 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 30 | *.manifest 31 | *.spec 32 | 33 | # Installer logs 34 | pip-log.txt 35 | pip-delete-this-directory.txt 36 | 37 | # Unit test / coverage reports 38 | htmlcov/ 39 | .tox/ 40 | .coverage 41 | .cache 42 | nosetests.xml 43 | coverage.xml 44 | 45 | # Translations 46 | *.mo 47 | *.pot 48 | 49 | # Django stuff: 50 | *.log 51 | 52 | # Sphinx documentation 53 | docs/_build/ 54 | 55 | # PyBuilder 56 | target/ 57 | 58 | # Cactus 59 | crate/.delpoy/ 60 | crate/.build/ 61 | crate/config.json 62 | out/ 63 | wp2md/ 64 | 65 | # OS X 66 | .DS_Store 67 | .AppleDouble 68 | .LSOverride 69 | 70 | # Icon must end with two \r 71 | Icon 72 | 73 | 74 | # Thumbnails 75 | ._* 76 | 77 | # Files that might appear in the root of a volume 78 | .DocumentRevisions-V100 79 | .fseventsd 80 | .Spotlight-V100 81 | .TemporaryItems 82 | .Trashes 83 | .VolumeIcon.icns 84 | 85 | # Directories potentially created on remote AFP share 86 | .AppleDB 87 | .AppleDesktop 88 | Network Trash Folder 89 | Temporary Items 90 | .apdisk 91 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/.gitmodules -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | Crate Data Admin Interface 2 | 3 | Copyright 2013-2015 Crate.IO GmbH 4 | Prinzessinnenstr. 19-20, 10969 Berlin, Germany 5 | (referred to in this notice as "Crate") 6 | 7 | 8 | Third party dependencies: 9 | 10 | ========================================================================= 11 | 12 | Cactus 13 | https://github.com/koenbok/Cactus 14 | Copyright (c) 2012 Koen Bok. All rights reserved. 15 | License: AS-IS 16 | 17 | ========================================================================= 18 | 19 | Buildout 20 | http://www.buildout.org 21 | Copyright (c) 2006 Zope Foundation and Contributors. 22 | License: Zope Public License, Version 2.1 (ZPL) 23 | 24 | ========================================================================= 25 | 26 | jQuery 27 | http://jquery.com/ 28 | Copyright 2014 jQuery Foundation and other contributors 29 | License: MIT (http://opensource.org/licenses/MIT) 30 | 31 | ========================================================================= 32 | 33 | Modernizr v2.6.2 34 | www.modernizr.com 35 | Copyright (c) Faruk Ates, Paul Irish, Alex Sexton 36 | Available under the BSD and MIT licenses 37 | 38 | ========================================================================= 39 | 40 | Bootstrap 41 | http://getbootstrap.com 42 | Copyright (c) 2011-2014 Twitter, Inc 43 | License: MIT (http://opensource.org/licenses/MIT) 44 | Documentation License: Attribution 3.0 Unported (https://creativecommons.org/licenses/by/3.0/) 45 | 46 | ========================================================================= 47 | 48 | Font Awesome 49 | http://fontawesome.io 50 | Copyright Dave Gandy 51 | License: MIT (http://opensource.org/licenses/MIT) 52 | Font License: SIL OFL 1.1 (URL: http://scripts.sil.org/OFL) 53 | Documentation License: CC BY 3.0 (URL: http://creativecommons.org/licenses/by/3.0/) 54 | 55 | ========================================================================= 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # crate-web 2 | 3 | This was the content repository for the [crate.io](https://crate.io) website. 4 | 5 | **NOTE: this project has been retired and is no longer used.** 6 | 7 | The content that was maintained in this repository now lives in the [CrateDB 8 | Guide](https://github.com/crate/guide). 9 | 10 | The original readme is available at [README.old.rst](README.old.rst). 11 | -------------------------------------------------------------------------------- /README.old.md: -------------------------------------------------------------------------------- 1 | # crate-web 2 | 3 | This is the content repository for the [crate.io](https://crate.io) website. 4 | 5 | The content is built into a static website using the static website generator 6 | tool [Cactus](https://github.com/koenbok/Cactus). 7 | 8 | The build tool can be found in the repo [crate/crate-cactus](https://github.com/crate/crate-cactus). 9 | 10 | **Happy writing!** 11 | 12 | 13 | ## Plugins 14 | 15 | The `crate-web` Cactus site contains following plugins: 16 | 17 | * `collection.py` 18 | * `events.py` 19 | 20 | ### Collection 21 | 22 | Collections are groups of pages within a certain common path, 23 | e.g. the blog collection is located in `./pages/blog`. 24 | 25 | Collections are configured in the `config.json`. Collection objects must contain 26 | following key-value pairs: `title` (name of the collection), `path` (directory 27 | in which pages for this collection are located), `template` (default template for 28 | pages). 29 | The `order` object is optional and must contain `key` or `file` and `reverse` if present, 30 | where `key` is the header after which should be sorted. 31 | The `toc` attribute receives an absolute or relative file path to a file that 32 | contains the table of contents (toc). The order of the sites is defined as they 33 | are listed in the toc-file. 34 | 35 | `doc/toc` 36 | ``` 37 | index.html 38 | docs/faq.html 39 | docs/clients.html 40 | ``` 41 | 42 | `config.json` 43 | ```json 44 | { 45 | ... 46 | "collections": { 47 | "blog": { 48 | "title": "Blog", 49 | "path": "blog/", 50 | "template": "post.html", 51 | "order": { 52 | "key": "date", 53 | "reverse": true 54 | } 55 | }, 56 | "doc": { 57 | "title": "Doc", 58 | "path": "doc/", 59 | "template": "doc.html", 60 | "order": { 61 | "toc": "doc/toc", 62 | } 63 | } 64 | }, 65 | ... 66 | } 67 | ``` 68 | 69 | The key of the collection object defines the name under which the collection 70 | can be accessed inside the page templates: 71 | 72 | ```html 73 | {% for page in blog.pages %} 74 |

{{ page.title }}

75 | {% endfor %} 76 | ``` 77 | 78 | ### Events 79 | 80 | Provides information about upcoming and past events. 81 | Event pages can be edited as simple Markdown files. 82 | 83 | 84 | ### Interactive console 85 | 86 | To embed the interactive console into a page you have to declare several 87 | parameters in the metadata section of your `.html` site. 88 | 89 | ```html 90 | console: true 91 | consolequery: select * from sys.cluster 92 | ``` 93 | 94 | Embed this in your page context and assign the metadata-variable to the `query` 95 | template variable: 96 | 97 | ```html 98 | {% include "includes/interactive_console.html" with query=consolequery %} 99 | ``` -------------------------------------------------------------------------------- /_templates/case-study.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 13 |
14 | {% endblock %} 15 | 16 | {% block header %} 17 |
18 |
19 |

{{ title }}

20 |
21 |
22 | {% endblock %} 23 | 24 | {% block body %} 25 | 26 | {% block top_content %} 27 |
28 |
29 |
30 |
31 |

32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 |
Company{{casestudy_company}}
Industry{{casestudy_industry}}
Location{{casestudy_location}}
Use Case{{casestudy_usecase}}
50 | 51 | 52 |
53 |
54 |
55 |

Highlights

56 |
    57 |
  • {{highlight_1}}
  • 58 |
  • {{highlight_2}}
  • 59 |
  • {{highlight_3}}
  • 60 |
  • {{highlight_4}}
  • 61 |
62 |
63 |
64 |
65 |
66 |
67 |

Details

68 |
69 |
70 |
71 | {{ body }} 72 |
73 |
74 |
75 |
76 |
77 | 78 |
79 |
80 |
81 |
82 | 86 | 90 |
91 |
92 |
93 |
94 | 95 |
96 |
97 |
98 |
99 |

About {{about_name}}

100 |
101 |
102 |

103 | 104 | {{ about|safe }} 105 | 106 |
107 |
108 |
109 |
110 | 111 | 112 | {% endblock %} 113 | 114 |
115 |
116 |
117 |
118 |

Crate is easy to install and integrate

119 |

Start using Crate with your application now!

120 |

Any questions? Feel free to get in touch with us!

121 |
122 |
123 |
124 |
125 | {% endblock %} 126 | 127 | {% block extra_js %} 128 | 133 | {% endblock %} 134 | -------------------------------------------------------------------------------- /_templates/cla.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 12 |
13 | {% endblock %} 14 | 15 | {% block body %} 16 |
17 |
18 |
19 |
20 | 23 |
24 |
25 |
26 |
27 | {% block widget %} 28 |

29 |

(No Widget Displayed?)

30 | {% endblock %} 31 |
32 |
33 |

Looking for other CLAs?

34 |
35 |
36 | Individual Contributor 37 |
38 |
39 |
40 | Company having employees contributing 41 |
42 |
43 |
44 | Individual Corporate Contributor under an existing company contributor agreement (your employer) 45 |
46 |
47 |
48 |
49 |
50 | {% endblock %} 51 | -------------------------------------------------------------------------------- /_templates/cloud-template-list.html: -------------------------------------------------------------------------------- 1 |

More Cloud Templates

2 | 8 | -------------------------------------------------------------------------------- /_templates/docs.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 28 |
29 | {% endblock %} 30 | 31 | {% block header %} 32 |
33 |
34 |
35 |
36 | 39 |
40 |
41 |
42 |
43 | {% endblock %} 44 | 45 | {% block body %} 46 |
47 |
48 | {% block docs_content %} 49 | 50 | {% endblock %} 51 |
52 |
53 | {% endblock %} 54 | -------------------------------------------------------------------------------- /_templates/event-listing.html: -------------------------------------------------------------------------------- 1 | {% for event in events %} 2 |
3 |
4 | {% if event.image %} 5 | 6 | {% endif %} 7 |
8 |
9 |
10 |

{{ event.title }}

11 |

{{ event.date_from|date }} 12 | {% if event.date_to|date != event.date_from|date %} — {{ event.date_to|date }}{% endif %}

13 |
14 |

15 | {{ event.raw_body|markdown|striptags|truncatewords:50 }} 16 |

17 |

Read more »

18 |
19 |
20 | {% if not forloop.last %}
{% endif %} 21 | {% endfor %} 22 | 23 | -------------------------------------------------------------------------------- /_templates/event.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 12 |
13 | {% endblock %} 14 | 15 | {% block header %} 16 |
17 |
18 |
19 |
20 | 26 |
27 |
28 |
29 |
30 | {% endblock %} 31 | 32 | {% block body %} 33 |
34 |
35 |
36 |
37 | {{ body }} 38 |
39 |

Please contact office@crate.io if you want to find out more!

40 |
41 |
42 | {% if image %} 43 |

44 |
45 | {% endif %} 46 |
    47 |
  • {{ location }}
  • 48 |
  • Event Site
  • 49 | {% if talk %} 50 |
  • Talk
  • 51 | {% endif %} 52 |
53 |
54 |

More events »

55 |
56 |
57 |
58 |
59 | {% endblock %} 60 | -------------------------------------------------------------------------------- /_templates/footer.html: -------------------------------------------------------------------------------- 1 | 78 | -------------------------------------------------------------------------------- /_templates/google-search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |
8 | 9 |
10 |
11 | 12 |
13 |
14 | 15 | -------------------------------------------------------------------------------- /_templates/install.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 30 |
31 | {% endblock %} 32 | 33 | {% block header %} 34 |
35 |
36 |
37 |
38 | 41 |
42 |
43 |
44 |
45 | {% endblock %} 46 | 47 | {% block body %} 48 |
49 |
50 | {% block install_content %} 51 | 52 | {% endblock %} 53 |
54 |
55 | {% endblock %} 56 | -------------------------------------------------------------------------------- /_templates/job.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 12 |
13 | {% endblock %} 14 | 15 | {% block header %} 16 |
17 |
18 |
19 |
20 |

{{ title }}

21 |
22 |
23 |
24 |
25 | {% endblock %} 26 | 27 | {% block body %} 28 |
29 |
30 |
31 |
32 |
33 | {% filter markdown %} 34 | {% block description %} 35 | {% endblock %} 36 | {% endfilter %} 37 |
38 |
39 |
40 |

Job Profile

41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
Team or role:{{ role }}
Job type:{{ type }}
Last updated:{{ updated }}
Job location(s):{{ location }}
59 |

Apply now!

60 |
61 |
62 |
63 |
64 | {% endblock %} 65 | 66 | {% block scripts %} 67 | 70 | {% endblock %} 71 | -------------------------------------------------------------------------------- /_templates/mailchimp-joins.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | 7 | 8 |
9 |
10 |
11 |
12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /_templates/mailchimp-large.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 |

* indicates required

7 | 8 |
9 | 11 |
12 | 13 |
14 |
15 | 16 |
17 | 18 |
19 | 20 |
21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 |
29 | 30 |
31 | 32 | 33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | 44 | -------------------------------------------------------------------------------- /_templates/mailchimp-simple.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 |
5 |
6 | 7 | 8 |
9 |
10 |
11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /_templates/mailchimp-small.html: -------------------------------------------------------------------------------- 1 |
2 |

Newsletter

3 |

Subscribe to our monthly newsletter announcing new features, events, and Crate community news.

4 | 5 |
6 |
7 |
8 |
9 | 10 |
11 |
12 | 13 |
14 |
15 | 16 |
17 | 18 | 19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | 29 |
30 | 31 | -------------------------------------------------------------------------------- /_templates/navbar.html: -------------------------------------------------------------------------------- 1 | 35 | -------------------------------------------------------------------------------- /_templates/post.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block navbar2 %} 4 |
5 | 12 |
13 | {% endblock %} 14 | 15 | {% block header %} 16 |
17 |
18 |
19 |
20 | 23 |
24 |
25 |
26 |
27 | {% endblock %} 28 | 29 | {% block body %} 30 |
31 |
32 |
33 | 34 |
35 |
36 | {{ body }} 37 |
38 |
39 |

Did you like this post? Read more!

40 | 44 |
45 | 46 |
47 |
48 | 49 | {% if author %} 50 | 51 | 52 | 53 | 54 | {% endif %} 55 | {% if date %} 56 | 57 | 58 | 59 | 60 | {% endif %} 61 | {% if tags %} 62 | 63 | 64 | 65 | 66 | {% endif %} 67 | {% if category %} 68 | 69 | 70 | 71 | 72 | {% endif %} 73 |
{{ author }}
{{ date|date }}
{{ tags|join:", " }}
{{ category|join:", " }}
74 |
75 |

Read More

76 | 77 | {% if prev_post %} 78 | 79 | 80 | 81 | {% endif %} 82 | {% if next_post %} 83 | 84 | 85 | 86 | {% endif %} 87 |
{{ prev_post.title }}
{{ next_post.title }}
88 | 89 |
90 | 91 | 95 | 99 | 100 |
101 | 102 |
103 |
104 |
105 | {% endblock %} 106 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "prettify": true, 3 | "fingerprint": [], 4 | "collections": { 5 | "article": { 6 | "title": "Articles", 7 | "path": "a/", 8 | "template": "post.html", 9 | "order": { 10 | "key": "date", 11 | "reverse": true 12 | } 13 | }, 14 | "faq": { 15 | "title": "FAQs", 16 | "path": "faq/", 17 | "template": "faq.html", 18 | "order": { 19 | "key": "tags", 20 | "reverse": false 21 | } 22 | }, 23 | "releasenotes": { 24 | "title": "Release Notes", 25 | "path": "releasenotes/", 26 | "template": "releasenote.html", 27 | "order": { 28 | "key": "date", 29 | "reverse": true 30 | } 31 | }, 32 | "doc": { 33 | "title": "Doc", 34 | "path": "docs/", 35 | "template": "docs.html", 36 | "order": { 37 | "key": "date", 38 | "reverse": true 39 | } 40 | } 41 | }, 42 | "settings": { 43 | "site": "", 44 | "id_segment": "FToR4cE5lXyQziQirvt0kSnFQj0rAgu9", 45 | "id_facebook": "555437424606586", 46 | "description": "Download Crate. Easily install Crate in the cloud, docker, *nix and OSX. Works with Java, Python, Ruby, PHP, Node.js, erlang, Mono, Golang, and dbext", 47 | "stable_version": "2.0.4", 48 | "es_stable_version": "5.0.2", 49 | "stable_version_date": "July 6th, 2017", 50 | "testing_version": "2.0.4", 51 | "es_testing_version": "5.0.2" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /config/production.json: -------------------------------------------------------------------------------- 1 | { 2 | "prettify": true, 3 | "fingerprint": [], 4 | "optimize": [], 5 | "collections": { 6 | "article": { 7 | "title": "Articles", 8 | "path": "a/", 9 | "template": "post.html", 10 | "order": { 11 | "key": "date", 12 | "reverse": true 13 | } 14 | }, 15 | "faq": { 16 | "title": "FAQs", 17 | "path": "faq/", 18 | "template": "faq.html", 19 | "order": { 20 | "key": "tags", 21 | "reverse": false 22 | } 23 | }, 24 | "releasenotes": { 25 | "title": "Release Notes", 26 | "path": "releasenotes/", 27 | "template": "releasenote.html", 28 | "order": { 29 | "key": "date", 30 | "reverse": true 31 | } 32 | }, 33 | "doc": { 34 | "title": "Doc", 35 | "path": "docs/", 36 | "template": "docs.html", 37 | "order": { 38 | "key": "date", 39 | "reverse": true 40 | } 41 | } 42 | }, 43 | "settings": { 44 | "site": "https://crate.io", 45 | "title": "Crate.IO", 46 | "description": "Download Crate. Easily install Crate in the cloud, docker, *nix and OSX. Works with Java, Python, Ruby, PHP, Node.js, erlang, Mono, Golang, and dbext", 47 | "og_image": "https://cdn.crate.io/web/1/img/crate-avatar_400x400.png", 48 | "keywords": "crate database db distributed cloud docker download", 49 | "robots": true, 50 | "id_segment": "FToR4cE5lXyQziQirvt0kSnFQj0rAgu9", 51 | "id_facebook": "555421237941538", 52 | "stable_version": "2.0.4", 53 | "es_stable_version": "5.0.2", 54 | "stable_version_date": "July 6th, 2017", 55 | "testing_version": "2.0.4", 56 | "es_testing_version": "5.0.2" 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /locale/README.md: -------------------------------------------------------------------------------- 1 | Internalization 2 | =============== 3 | 4 | Using internalization with Cactus 5 | --------------------------------- 6 | 7 | To enable internalization for your project: 8 | 9 | 1. Add a `locale` key to (one of your) configuration file(s) 10 | 2. Mark strings for translation in your site (using `{% trans %}`) 11 | 3. Run `cactus makemessages` 12 | 4. Edit the .po file that was created with translations. 13 | 14 | 15 | Multiple languages with Cactus 16 | ------------------------------ 17 | 18 | To make the best of translations, you'll need multiple configuration files: one per language you'd like to support. 19 | 20 | This lets you transparently deploy multiple versions of your website to multiple buckets (one per language). -------------------------------------------------------------------------------- /pages/404/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %} 4 | UH! This page does not exist. 5 | {% endblock %} 6 | 7 | {% block body %} 8 |

Nothing to worry about!

9 |

10 | You can either search our site for what you are looking for or go back to our homepage. 11 |
... or look at this random animated kitten gif for a while ... 12 |

13 | 14 |
15 |
16 |
17 |

18 | 19 | 20 | 21 |

22 |

23 | Powered by The Cat API. 24 |

25 |
26 |
27 |
28 |
29 | 33 |
34 |

Oops! Something went wrong while submitting the form

35 |
36 |
37 |
38 | Read articles by Crate.
39 | > Blog 40 |
41 |
42 | Learn about Crate.
43 | > Documentation 44 |
45 |
46 |
47 |
48 | Gain some knowledge.
49 | > Reference 50 |
51 |
52 | Go through the Code.
53 | > Github 54 |
55 |
56 |
57 |
58 | {% endblock %} 59 | 60 | {% block scripts %} 61 | 64 | {% endblock %} 65 | -------------------------------------------------------------------------------- /pages/docs/clients/erlang.html: -------------------------------------------------------------------------------- 1 | title: Connecting to Crate with Erlang 2 | author: Chris Ward 3 | 4 | The Crate Erlang client is built using [rebar3](https://github.com/rebar/rebar3) and we recommend you use it in your project for compiling and testing. 5 | 6 | ## Add Crate to your Project 7 | To add Crate as a dependency, add the following to your *rebar.config* file. 8 | 9 | ```erlang 10 | {deps,[ 11 | {craterl,"0.2.3"} 12 | ]}. 13 | ``` 14 | 15 | And run: 16 | 17 | ```bash 18 | rebar update 19 | ``` 20 | 21 | ## Connect to Crate 22 | To connect to a cluster, create a client instance in your application: 23 | 24 | ```erlang 25 | ClientSpec = {local, process_name}. 26 | Servers = [{<<"SERVER_IP">>, 4200}, "SERVER_IP:4201"]. 27 | Options = [{poolsize, 1000}, {timeout, 5000}]. 28 | ClientRef = craterl:new(ClientSpec, Servers, Options). 29 | ``` 30 | 31 | In the `Servers` tuple you can specify just one IP address in the Crate cluster, but including more than one will provide fallbacks if nodes become unavailable. 32 | 33 | It's possible to create multiple clients on one erlang node, these are registered using a client spec tuple, such as `{local, process_name}`. The process name must be unique on each node. 34 | 35 | ## Want to Know More? 36 | - More detailed documentation on the Crate Erlang client is available [here](https://github.com/crate/craterl/tree/master/doc). 37 | - The **Crate Sample App** demonstrates features of Crate and [how to use them in an Erlang based application](https://github.com/crate/crate-sample-apps/tree/master/erlang) with an explanation of how the library is used [here](https://github.com/crate/crate-sample-apps/blob/master/erlang/README.md). 38 | 39 | ## Next Steps 40 | 41 | - [Scale a Cluster](/docs/scale) 42 | -------------------------------------------------------------------------------- /pages/docs/clients/index.html: -------------------------------------------------------------------------------- 1 | title: Client Libraries 2 | author: Chris Ward 3 | 4 | Crate is happy at the heart of any application stack, integrating with a multitude of languages and applications to connect and query your data. 5 | 6 | ## Official Client Libraries 7 | 8 | - [Java]({% url '/docs/clients/java.html' %}) 9 | - [JDBC]({% url '/docs/clients/jdbc.html' %}) 10 | - [Python]({% url '/docs/clients/python.html' %}) 11 | - [PHP PDO and DBAL]({% url '/docs/clients/php.html' %}) 12 | - [Erlang]({% url '/docs/clients/erlang.html' %}) 13 | - [ODBC]({% url '/docs/clients/odbc.html' %}) 14 | - [REST API]({% url '/docs/clients/rest.html' %}) 15 | 16 | ## Community Maintained Clients 17 | ### Ruby 18 | [Christoph Klocker](https://twitter.com/corck) created a [Ruby driver](http://rubygems.org/gems/crate_ruby) and [Activerecord Adapter](https://rubygems.org/gems/activerecord-crate-adapter). 19 | 20 | ### Scala 21 | [Alexander Jarvis](https://github.com/alexanderjarvis) created a [Scala driver](https://github.com/alexanderjarvis/crate-scala) and adapter for the [Play framework](https://github.com/alexanderjarvis/play-crate). 22 | 23 | ### Node.js 24 | We have several Node and JavaScript drivers. A simple [connector](https://www.npmjs.com/package/crate-connect) by herenow, [cratejs](https://www.npmjs.com/package/cratejs) by herenow which extends it and [node-crate](https://www.npmjs.com/package/node-crate) by [megastef](https://github.com/megastef) as an alternative. 25 | 26 | 27 | ### Loopback 28 | Lovely Systems created [a connector to Crate for Loopback](https://github.com/lovelysystems/loopback-connector-crateio), the Node.js framework for connecting backend datasources. 29 | 30 | ### Mono 31 | [crate-mono is a Mono/.NET client driver](https://github.com/mfussenegger/crate-mono) implementing the ADO.NET interface forwritten by [Mathias Fussenegger](https://twitter.com/mfussenegger). 32 | 33 | ### GoLang 34 | herenow wrote [a Golang driver for Crate](https://github.com/herenow/go-crate) that implements the Go sql interface package.

35 | 36 | ### Vim 37 | Thanks to the work of Mathias Fussenegger and [David Fishburn](https://github.com/dfishburn), Vim users can connect to Crate clusters from within the editor using the [dbext](https://github.com/vim-scripts/dbext.vim) plugin. 38 | 39 | ### Perl 40 | Mamod Mehyar created [DBD::Crate](https://github.com/mamod/DBD-Crate), a DBI/Perl driver for Crate. 41 | 42 | ### Utilities and Data Visualization Tools 43 | 44 | For a full list of tools, see [Tools Overview]({% url '/docs/tools/index.html' %}). 45 | 46 | ## Next Steps 47 | 48 | - [Scale a Cluster]({% url '/docs/scale/index.html' %}) 49 | -------------------------------------------------------------------------------- /pages/docs/clients/java.html: -------------------------------------------------------------------------------- 1 | title: Connecting to Crate with Java 2 | author: Chris Ward 3 | 4 | ## Java Client 5 | ### Deprecation Notice 6 | The Java client is deprecated in versions of Crate 0.57.0 and will be removed by 7 | 0.58.0 and later. Instead the recommended way to access Crate from Java is 8 | via our [JDBC driver](/docs/clients/jdbc/). 9 | 10 | ### Add Crate to you Project 11 | A simple way to configure your project to connect to a Crate cluster is to visit the Java client page on [Bintray](https://bintray.com/crate/crate/crate-client/view) and click the *Set Me Up* button. This will give you a Maven or Gradle configuration that can be pasted into your current project or downloaded for a new project. 12 | 13 | For manual configuration follow these steps depending on your build system of choice. 14 | 15 | #### Maven 16 | Add the following to your *pom.xml* file: 17 | 18 | ```xml 19 | ... 20 | 21 | ... 22 | 23 | 24 | false 25 | 26 | central 27 | bintray 28 | http://dl.bintray.com/crate/crate 29 | 30 | 31 | ... 32 | 33 | ... 34 | 35 | io.crate 36 | crate-client 37 | VERSION 38 | 39 | 40 | ... 41 | ``` 42 | 43 | #### Gradle 44 | Add Crate as a dependency to your Gradle file: 45 | 46 | ```groovy 47 | repositories { 48 | ... 49 | jcenter() 50 | } 51 | 52 | dependencies { 53 | compile 'io.crate:crate-client:VERSION 54 | ... 55 | } 56 | ``` 57 | 58 | ### Connect to Crate 59 | Import the Crate client and create a new client object: 60 | 61 | ```java 62 | import io.crate.client.CrateClient; 63 | ... 64 | CrateClient client = new CrateClient( 65 | "NODE1_IP:4300", 66 | "NODE2_IP:4300" 67 | ... 68 | ); 69 | ``` 70 | 71 | Whilst it's possible to just connect to one node in a cluster, we recommend specifying all nodes to allow for automatic routing to another node if one becomes available. 72 | 73 | ## Want to Know More? 74 | - More detailed documentation on the Crate Java client is available [here](/docs/reference/java). 75 | 76 | ## Next Steps 77 | 78 | - [Scale a Cluster](/docs/scale) 79 | -------------------------------------------------------------------------------- /pages/docs/clients/jdbc.html: -------------------------------------------------------------------------------- 1 | title: Connecting to Crate with JDBC 2 | author: Chris Ward 3 | 4 | 5 | ## Compatibility 6 | 7 | To find out which drivers are compatible to your Crate version, please consult 8 | the [reference documentation](https://crate.io/docs/reference/jdbc/). 9 | 10 | ## Add Crate to your Project 11 | A simple way to configure your project to connect to a Crate cluster is to 12 | visit the JDBC driver page on [Bintray](https://bintray.com/crate/crate/crate-jdbc/view) 13 | and click the *Set Me Up* button. This will give you a Maven or Gradle 14 | configuration that can be pasted into your current project or downloaded for a 15 | new project. 16 | 17 | For manual configuration follow these steps depending on your build system 18 | of choice. 19 | 20 | ### Maven 21 | Add the following to your *pom.xml* file: 22 | 23 | ```xml 24 | ... 25 | 26 | ... 27 | 28 | 29 | false 30 | 31 | central 32 | bintray 33 | http://dl.bintray.com/crate/crate 34 | 35 | 36 | ... 37 | 38 | ... 39 | 40 | io.crate 41 | crate-jdbc 42 | VERSION 43 | 44 | 45 | ... 46 | ``` 47 | 48 | ### Gradle 49 | Add Crate as a dependency to your Gradle file: 50 | 51 | ```groovy 52 | repositories { 53 | ... 54 | jcenter() 55 | } 56 | 57 | dependencies { 58 | compile 'io.crate:crate-jdbc:VERSION' 59 | ... 60 | } 61 | ``` 62 | 63 | ## Connect to Crate 64 | 65 | Connect to Crate Cluster with the Java DriverManager: 66 | 67 | ```java 68 | Connection conn = DriverManager.getConnection("crate://SERVER_IP:5432/"); 69 | ``` 70 | 71 | ## Want to Know More? 72 | - More detailed documentation on the Crate JDBC client is available [here](/docs/reference/jdbc). 73 | - The **Crate Sample App** demonstrates features of Crate and 74 | [how to use them in a JDBC based application](https://github.com/crate/crate-sample-apps/tree/master/java) 75 | with an explanation of how the library is used 76 | [here](https://github.com/crate/crate-sample-apps/blob/master/java/documentation.md). 77 | 78 | ## Next Steps 79 | 80 | - [Scale a Cluster](/docs/scale) 81 | -------------------------------------------------------------------------------- /pages/docs/clients/php.html: -------------------------------------------------------------------------------- 1 | title: Connecting to CrateDB with PHP 2 | author: Chris Ward 3 | 4 | CrateDB supports integration with the [PDO](http://php.net/manual/en/intro.pdo.php) and [DBAL](http://www.doctrine-project.org/projects/dbal.html) data abstraction layers. 5 | 6 | ## PDO 7 | ### Install Driver 8 | Install the driver by adding a dependency to your *composer.json* file: 9 | 10 | ```json 11 | { 12 | "require": { 13 | "crate/crate-pdo":"~0.6.0" 14 | } 15 | } 16 | ``` 17 | 18 | And install with `composer intall`. 19 | 20 | ### Connect to CrateDB 21 | To connect to your cluster, Crate follows standard PDO syntax to form a data source name string ([dsn](https://en.wikipedia.org/wiki/Data_source_name)) and then connect to it. 22 | 23 | ```php 24 | require_once __DIR__.'/vendor/autoload.php'; 25 | use Crate\PDO\PDO as PDO; 26 | 27 | $dsn = 'crate:SERVER_IP:4200'; 28 | $connection = new PDO($dsn, null, null, null); 29 | ``` 30 | 31 | As CrateDB doesn't support authentication, the other parameters can be left null. 32 | 33 | ## DBAL 34 | ### Install Driver 35 | Install the driver by adding a dependency to your *composer.json* file: 36 | 37 | ```json 38 | { 39 | "require": { 40 | "crate/crate-dbal":"~0.3.0" 41 | } 42 | } 43 | ``` 44 | 45 | And install with `composer install`. 46 | 47 | ### Connect to Crate 48 | To connect to your cluster, Crate follows standard [DBAL syntax](http://doctrine-orm.readthedocs.org/projects/doctrine-dbal/en/latest/reference/configuration.html) to create an array of parameters and then create a connection. 49 | 50 | ```php 51 | $params = array( 52 | 'driverClass' => 'Crate\DBAL\Driver\PDOCrate\Driver', 53 | 'host' => 'SERVER_IP', 54 | 'port' => 4200 55 | ); 56 | 57 | $connection = \Doctrine\DBAL\DriverManager::getConnection($params); 58 | $schemaManager = $connection->getSchemaManager(); 59 | ``` 60 | 61 | ### ORM 62 | If you are using Doctrine's ORM features, then an extra dependency is needed in your *composer.json* file. 63 | 64 | ```json 65 | { 66 | "require": { 67 | "crate/crate-dbal":"~0.3.0", 68 | "doctrine/orm": "*" 69 | } 70 | } 71 | ``` 72 | 73 | And install with `composer intall`. 74 | 75 | To create a connection: 76 | 77 | ```php 78 | require_once "vendor/autoload.php"; 79 | 80 | use Doctrine\ORM\Tools\Setup; 81 | use Doctrine\ORM\EntityManager; 82 | 83 | $paths = array("/path/to/entity-files"); 84 | $isDevMode = false; 85 | 86 | // the connection configuration 87 | $params = array( 88 | 'driverClass' => 'Crate\DBAL\Driver\PDOCrate\Driver', 89 | 'host' => 'SERVER_IP', 90 | 'port' => 4200 91 | ); 92 | 93 | $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode); 94 | $entityManager = EntityManager::create($params, $config); 95 | ``` 96 | 97 | Setting up the Doctrine ORM requires some extra steps, and we suggest reading [the official Doctrine documentation](http://doctrine-orm.readthedocs.org/en/latest/index.html) to get started. 98 | 99 | ## Want to Know More? 100 | - More detailed documentation on the Crate PDO client is available [here](/docs/reference/pdo). 101 | - More detailed documentation on the Crate DBAL client is available [here](/docs/reference/dbal). 102 | - The **Crate Sample App** demonstrates features of Crate and [how to use them in a PHP based application](https://github.com/crate/crate-sample-apps/tree/master/php) with an explanation of how the library is used [here](https://github.com/crate/crate-sample-apps/blob/master/php/documentation.md). 103 | 104 | ## Next Steps 105 | 106 | - [Scale a Cluster](/docs/scale) 107 | -------------------------------------------------------------------------------- /pages/docs/clients/python.html: -------------------------------------------------------------------------------- 1 | title: Connecting to Crate with Python 2 | author: Chris Ward 3 | 4 | ## Install 5 | Use [pip](https://pypi.python.org/pypi/pip) to install the Crate Python package: 6 | 7 | ```bash 8 | pip install crate 9 | ``` 10 | 11 | Import the client module from the `crate` package: 12 | 13 | ```python 14 | from crate import client 15 | ``` 16 | 17 | ## Connect to Crate 18 | Use the `client` module to create a connection: 19 | 20 | ```python 21 | connection = client.connect(SERVER_IP) 22 | ``` 23 | 24 | Open a cursor to the database to enable queries. 25 | 26 | ```python 27 | cursor = connection.cursor() 28 | ``` 29 | 30 | ## Want to Know More? 31 | - More detailed documentation on the Crate Python client is available [here](/docs/reference/python). 32 | - The **Crate Sample App** demonstrates features of Crate and [how to use them in a Python based application](https://github.com/crate/crate-sample-apps/tree/master/python) with an explanation of how the library is used [here](https://github.com/crate/crate-sample-apps/blob/master/python/documentation.md). 33 | 34 | ## Next Steps 35 | 36 | - [Scale a Cluster](/docs/scale) 37 | -------------------------------------------------------------------------------- /pages/docs/clients/rest.html: -------------------------------------------------------------------------------- 1 | title: Connecting to Crate with REST 2 | author: Chris Ward 3 | 4 | You can connect to the Crate HTTP endpoint with any standard tool, such as [curl](http://curl.haxx.se/) or [httpie](https://github.com/jkbrzt/httpie), we will be using curl. 5 | 6 | ## Connect to Crate 7 | The endpoint expects a SQL statement sent as a value associated with the key `stmt`, i.e. 8 | 9 | ```bash 10 | curl -sSXPOST 'CLUSTER_IP:4200/_sql?pretty' -d '{"stmt":"select name from sys.cluster"}' 11 | ``` 12 | 13 | Will connect to a cluster and return basic information about the cluster. 14 | 15 | ## Next Steps 16 | 17 | - [Scale a Cluster](/docs/scale) 18 | -------------------------------------------------------------------------------- /pages/docs/connect/admin_ui.html: -------------------------------------------------------------------------------- 1 | title: Manage your Cluster with the Crate Admin UI 2 | author: Chris Ward 3 | 4 | Crate ships with an Admin UI that provides an overview of your cluster, nodes, tables and much more. 5 | 6 | ## Connect to Cluster 7 | To Connect to Crate Cluster, open the following url: 8 | 9 | *http://SERVER_IP:4200/admin* 10 | 11 | `SERVER_IP` is the publicly accessible IP address of any node in the Crate cluster. 12 | 13 | 14 | 15 | ## Admin UI Features 16 | ### Overview Bar and Tab 17 | 18 | 19 | At the top of the browser window is overview information about the cluster that shows, from left to right: 20 | 21 | - The name of the cluster, find out [how to change its value our configuration documentation](https://crate.io/docs/reference/configuration.html#cluster-name) 22 | - The version of Crate that the cluster is running. 23 | - The health of the data in the cluster. Green indicates that all data is replicated and available, yellow that there are unreplicated records and red that data is unavailable. 24 | - Potential configuration problems and recommendations for the cluster. 25 | - Average cluster load over the past 1, 5 and 15 minutes. 26 | - Settings menu that allows you to update the language settings and provides a link to the CrateDB documentation and the latest CrateDB news. 27 | 28 | The overview tab displays similar information to the bar but with more details on data availability, cluster load and problems. 29 | On the left side of the window there are five further tabs. 30 | 31 | ### Console Tab 32 | An interactive terminal to try querying data sets and view the results. 33 | 34 | ### Tables Tab 35 | Gives an overview of document and blob tables present in the Crate cluster. This includes schema, shards, partitions, size and the data availability across the table. 36 | 37 | ### Cluster Tab 38 | Provides an overview of nodes in the cluster including details such as load, CPU usage, shards on the node and hostname. 39 | 40 | ### Monitoring Tab 41 | Gives an overview of the average number and speed of CrateDB queries (`SELECT`, `INSERT`, `UPDATE` and `DELETE`). Please note that this feature is only available in the [Enterprise Edition](https://crate.io/pricing/) of CrateDB. 42 | 43 | ### Get Started Tab 44 | Provides an easy way to import the latest tweets from the Twitter public timeline for a data set to experiment with. 45 | 46 | ## Next Steps 47 | 48 | - [Import Data](/docs/import) 49 | - [Client Libraries](/docs/clients) 50 | - [Scale a Cluster](/docs/scale) 51 | -------------------------------------------------------------------------------- /pages/docs/connect/crash.html: -------------------------------------------------------------------------------- 1 | title: Crash, Crate's CLI 2 | author: Chris Ward 3 | 4 | Crash is Crate's shell for interacting with clusters. 5 | 6 | The Crash shell can be used from within a node that is part of a cluster or on another machine to connect to a remote cluster. 7 | 8 | To launch Crash: 9 | 10 | ```bash 11 | ./bin/crash 12 | ``` 13 | 14 | Your command prompt will then switch to a `cr>` prompt. Connect to a cluster using the URL and the Crate port (*4200*): 15 | 16 | ```bash 17 | cr> \connect 127.0.0.1:4200; 18 | ``` 19 | 20 | You can then use Crash to issue SQL queries and other commands. 21 | 22 | ## Want to Know More? 23 | 24 | - More detailed documentation on Crash can be found [here](/docs/reference/crash/). 25 | 26 | ## Next Steps 27 | 28 | - [Import Data](/docs/import) 29 | - [Client Libraries](/docs/clients) 30 | - [Scale a Cluster](/docs/scale) 31 | -------------------------------------------------------------------------------- /pages/docs/connect/index.html: -------------------------------------------------------------------------------- 1 | title: Connect to a Cluster 2 | author: Chris Ward 3 | 4 | To Connect to your Crate Cluster, you will need to know the IP or DNS address of one node in the cluster and Crate uses port *4200* for HTTP transport. You then have several options available, our [Admin UI](admin_ui/), our [CLI tool](crash/) (Crash) and a [REST API](/docs/getting-started/clients/rest/). 5 | -------------------------------------------------------------------------------- /pages/docs/import/index.html: -------------------------------------------------------------------------------- 1 | title: Import Data 2 | author: Chris Ward 3 | console: true 4 | consolequery_1: SELECT * FROM tweets WHERE user['verified'] = true 5 | consolequery_2: SELECT count(*) AS quantity, user['verified'] FROM tweets GROUP BY user['verified'] ORDER BY quantity DESC 6 | 7 | It's hard to see what a database is capable of without a real world dataset. Fortunately Crate ships with an easy method of obtaining data to experiment with. 8 | 9 | Open *http://SERVER_IP:4200/admin* to access the Crate Admin UI. Click *Get Started* to import some sample Twitter data and use the *Console* tab to try out some queries. 10 | 11 | ## Familiar SQL 12 | Crate uses familiar SQL syntax for performing real-time distributed queries across a cluster. You gain the benefits of a NoSQL based, scalable data store without needing to rewrite your application queries. 13 | 14 | For example, we want to see tweets from verified users, returning all column values. 15 | 16 | {% include "includes/interactive_console.html" with query=consolequery_1 %} 17 | 18 | ```sql 19 | SELECT * 20 | FROM tweets 21 | WHERE user['verified'] = true; 22 | ``` 23 | 24 | `user['verified']` indicates a column that is part of an object data type, in this case, `user`. This object contains other fields of any type, including other objects. 25 | 26 | ### Analyze Data in Real Time 27 | Crate's SQL support includes distributed [aggregation](https://crate.io/docs/stable/sql/aggregation.html), [scalar](https://crate.io/docs/stable/sql/scalar.html) functions and [geospatial support](https://crate.io/docs/stable/sql/data_types.html#geo-point) for more complex queries and data analysis. 28 | 29 | For example: 30 | 31 | {% include "includes/interactive_console.html" with query=consolequery_2 %} 32 | 33 | ```sql 34 | SELECT count(*) AS quantity, 35 | user['verified'] 36 | FROM tweets 37 | GROUP BY user['verified'] 38 | ORDER BY quantity DESC; 39 | ``` 40 | 41 | This query counts the number of verified and non-verified twitter users and displays the quantity by each type. `count(*)` is an [aggregation](https://en.wikipedia.org/wiki/Aggregate_function) function that returns a count of all the rows that match the query. The `GROUP BY` clause groups each count result into the two possible values of `user['verified']` (true and false). 42 | 43 | ## Next Steps 44 | 45 | - [Client Libraries](/docs/clients) 46 | - [Scale a Cluster](/docs/scale) 47 | -------------------------------------------------------------------------------- /pages/docs/install/cloud/aws.html: -------------------------------------------------------------------------------- 1 | title: Getting started with Crate on Amazon Web Services 2 | author: Chris Ward 3 | 4 | Amazon Web Services (AWS) is the worlds most popular cloud hosting provider with 1000s of options for platforms, applications and infrastructure. 5 | 6 | An AMI (Amazon Machine Image) is a pre-configured virtual appliance optimized for a particular use. With the Crate AMI, this includes dependencies, optimization and configuration to get Crate running as quickly and efficiently as possible. Using the AMI is our recommended method for running Crate clusters on AWS. 7 | 8 | ## With the AWS Command Line Interface 9 | You can find the Crate AMI via the command line interface, in the format `crate---`. 10 | 11 | For example, to find all Crate AMIs available: 12 | 13 | ```bash 14 | aws ec2 describe-images --filters "Name=name,Values=crate-*" 15 | ``` 16 | 17 | ![Terminal Output]({% media '/media/1512/aws-terminal-output.png' %}) 18 | 19 | If you are looking for particular Crate version, you can be more precise: 20 | 21 | ```bash 22 | aws ec2 describe-images --filters "Name=name,Values=crate-0.51.1-1-amzn-*" 23 | ``` 24 | 25 | To run instances based on your AMI of choice, run the following command with the `image-id` of the Crate version you wish to run, the name of a security group that allows the ports Crate requires (4200, 4300) and if you want to use the EC2 API for inter-node discovery, a link to a `user-data` script. 26 | 27 | ```bash 28 | aws ec2 run-instances --image-id ami-96702de1 --count x --instance-type m3.medium --user-data $(base64 user-data.sh) --key-name keyname --security-groups groupname 29 | ``` 30 | 31 | ## With the AWS Web Interface 32 | To use the AWS website to launch an instance, click the blue 'Launch Instance' button and find the available Crate AMIs under the *Community AMIs* section. 33 | 34 | ![AWS GUI]({% media '/media/1512/aws-crate-gui.png' %}) 35 | 36 | Click the 'select' button on the AMI you wish to use and set the instance configuration. The most important options here are the number of instances you require and selecting a security group that opens ports 4200 and 4300. 37 | 38 | ## The User Data file 39 | Amongst other configuration options, the User Data file is primarily used for setting your AWS credentials to make use of the EC2 API for inter-node discovery. 40 | 41 | For example: 42 | 43 | ```bash 44 | #!/bin/bash 45 | echo " 46 | export AWS_ACCESS_KEY_ID='' 47 | export AWS_SECRET_ACCESS_KEY='' 48 | " >> /etc/sysconfig/crate 49 | ``` 50 | 51 | ## More Details 52 | For more options and details on setting up a Crate cluster on AWS with our AMI, read [our best practice guide](/docs/en/latest/best_practice/crate_ami.html). For more details on running Crate with Docker on AWS, [read our blog post](/blog/running-crate-with-docker-aws/). 53 | 54 | ## Next Steps 55 | 56 | - [Connect to Crate Cluster](/docs/connect) 57 | - [Import Data](/docs/import) 58 | - [Client Libraries](/docs/clients) 59 | - [Scale a Cluster](/docs/scale) 60 | -------------------------------------------------------------------------------- /pages/docs/install/cloud/index.html: -------------------------------------------------------------------------------- 1 | title: Running Crate on Cloud Hosting 2 | author: Chris Ward 3 | 4 | You can install and configure a Crate cluster on any hosting provider, but with the providers listed below we have simplified the process even more. 5 | 6 |
7 |
8 |
9 | Amazon Web Services 10 |

11 |

Get Started with AWS

12 |
13 |
14 | Azure 15 |

16 |

Get Started with Azure

17 |
18 |
19 | Soft Layer 20 |

21 |

Get Started with Soft Layer

22 |
23 |
24 | Packet 25 |

26 |

Get Started with Packet

27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /pages/docs/install/cloud/packet.html: -------------------------------------------------------------------------------- 1 | title: Getting started with Crate on Packet 2 | author: Claus Matzinger 3 | 4 | [Packet](https://www.packet.net) is a bare metal provider built for the next 5 | generation of production workloads. Their emphasis on API-centered cloud 6 | deployment, fast networking, and container-ready hardware make them a good 7 | choice for developers and production workloads - and perfect for Crate clusters! 8 | 9 | ## Create your Crate Project 10 | 11 | Packet organizes machines as projects which bundle together several types of deployments: 12 | 13 | - Servers 14 | - Storage 15 | - Network 16 | 17 | ![Packet: Projects]({% static '/static/images/0916/packet-project.png' %}) 18 | 19 | To get started, create a new project called 'Crate' (or any name of your 20 | choosing) and deploy some machines. For production use, we recommend 21 | [Type-1](https://www.packet.net/bare-metal/) servers, which are powerful enough 22 | to handle medium to large workloads. 23 | 24 | ![Packet: Servers]({% static '/static/images/0916/packet-servers.png' %}) 25 | 26 | Start by choosing an operating system for your deployment. After the server 27 | is ready, Packet's IaaS machines behave just like any other machine. Make 28 | sure to deploy an SSH key to access the server and after the machines are ready, 29 | SSH access can be obtained by logging in with `ssh root@`. From there 30 | it's just as any other Linux machine and there are several ways to install 31 | Crate on the machine(s). Check out our guide 32 | [for installing Crate on Linux.](/docs/install/local/linux/). 33 | 34 | ## Next Steps 35 | 36 | - [Connect to Crate Cluster](/docs/connect) 37 | - [Import Data](/docs/import) 38 | - [Client Libraries](/docs/clients) 39 | - [Scale a Cluster](/docs/scale) 40 | -------------------------------------------------------------------------------- /pages/docs/install/cloud/softlayer.html: -------------------------------------------------------------------------------- 1 | title: Getting Started with Crate on Softlayer 2 | author: Chris Ward 3 | 4 | [SoftLayer](http://softlayer.com/), IBM's cloud platform, has a slightly different take on "the cloud". They are focusing on high performance (physical) hardware embedded in the best possible infrastructure, because "computing doesn't come out of the sky". However, besides their strong physical hardware that you can choose from, SoftLayer also offers virtual machines with a wide range of configuration possibilities. 5 | 6 | This combination makes SoftLayer an ideal hosting provider for your own Crate cluster, no matter if you just need a small cluster to play around or run your production cluster even across data centres. 7 | 8 | We at Crate.IO have been using [bare metal servers](https://www.softlayer.com/bare-metal-servers) to perform benchmarks on Crate. When using bare metal you have the advantage that you can mix and match hardware. On the other hand the setup/provisioning is more conventional (like on-premise-hosting), since it is not possible to launch/terminate instances in real-time. 9 | 10 | A balanced instance configuration for a production Crate host could look similar like that: 11 | 12 | 8x 2.0GHz cores 13 | = 32 GB memory 14 | = 100 GB local SSD storage 15 | 1000 Mbps public/private network interface 16 | 17 | We used [SaltStack](http://www.saltstack.com/)'s [Salt Cloud](http://docs.saltstack.com/en/latest/topics/cloud/) to launch and provision instances for the test cluster. Salt Cloud provides an abstraction layer for multiple cloud hosting providers, also for [SoftLayer](http://docs.saltstack.com/en/latest/topics/cloud/softlayer.html). 18 | 19 | ## Server Provisioning With Salt Cloud 20 | Example of `/etc/salt/cloud.profiles`: 21 | 22 | ```yaml 23 | softlayer: 24 | provider: crate-softlayer-hw 25 | domain: crate.io 26 | image: CENTOS_LATEST # 27 | location: ams01 # Amsterdam 28 | cpu_number: 8 29 | ram: 65536 # 64GB 30 | disk_size: 100 # GB 31 | local_disk: True 32 | max_net_speed: 1000 # 1Gbps 33 | hourly_billing: False 34 | private_vlan: 35 | minion: 36 | grains: 37 | role: 38 | - crate_softlayer 39 | ``` 40 | 41 | Example of `/etc/salt/cloud.map`: 42 | 43 | ```yaml 44 | softlayer: 45 | - sl1 46 | - sl2 47 | - sl3 48 | ``` 49 | 50 | Launching the instances defined in the cloud.map file is as easy as this command: 51 | 52 | ```bash 53 | $ salt-cloud -m /etc/salt/cloud.map -P 54 | ``` 55 | 56 | And once the instances are running you will be able to provision them by running the `highstate` on the crate_softlayer role that the instances are associated with. 57 | 58 | ```bash 59 | $ salt -G 'role:crate_softlayer' state.highstate 60 | ``` 61 | 62 | The `highstate` is defined in the **sls** (Salt State File). Here's an example of our init.sls: 63 | 64 | ```yaml 65 | crate_repo: 66 | pkgrepo.managed: 67 | - name: crate 68 | - humanname: Crate 69 | - baseurl: https://cdn.crate.io/downloads/yum/testing/6/x86_64/ 70 | - enabled: 0 # 1 = testing release. 71 | - gpgcheck: 1 72 | - gpgkey: https://cdn.crate.io/downloads/yum/RPM-GPG-KEY-crate 73 | - required_in: 74 | - packages 75 | 76 | packages: 77 | pkg.installed: 78 | - pkgs: 79 | - java-1.8.0-openjdk 80 | - wget 81 | - crate 82 | 83 | /etc/sysconfig/crate: 84 | file.managed: 85 | - user: crate 86 | - mode: 755 87 | - contents: | 88 | CRATE_MIN_MEM=16g 89 | CRATE_MAX_MEM=16g 90 | 91 | /etc/crate/crate.yml: 92 | file.managed: 93 | - source: salt://softlayer/crate.yml 94 | - user: root 95 | - mode: 644 96 | ``` 97 | {% verbatim %} 98 | Example of `crate.yml`: 99 | 100 | ```yaml 101 | name: {{ grains['host'] }} 102 | cluster: 103 | name: crate-softlayer 104 | path: 105 | logs: /path/to/crate/logs 106 | data: /path/to/crate/data 107 | network: 108 | tcp: 109 | connect_timeout: 60s 110 | discovery.zen.minimum_master_nodes: 2 111 | discovery.zen.ping.unicast.hosts: 112 | {%- for server, addrs in salt['mine.get']('*', 'network.ip_addrs').items() %} 113 | {% if server.startswith("sl") %} - {{ addrs[0] }}:4300{% endif -%}{% endfor %} 114 | ``` 115 | {% endverbatim %} 116 | 117 | ## Next Steps 118 | 119 | - [Connect to Crate Cluster](/docs/connect) 120 | - [Import Data](/docs/import) 121 | - [Client Libraries](/docs/clients) 122 | - [Scale a Cluster](/docs/scale) 123 | -------------------------------------------------------------------------------- /pages/docs/install/containers/containership.html: -------------------------------------------------------------------------------- 1 | title: Getting started with Crate on ContainerShip 2 | author: Chris Ward 3 | 4 | [ContainerShip](http://containership.io/) allows you to configure a hosting stack by combining your own Docker images with their library of software and third party integrations. Effortlessly manage, deploy, and scale across any number of providers. Detach a cluster from our service at any time and use the open source core system on your own. 5 | 6 | ## Connect Hosting 7 | First, from the *Providers -> Hosting* menu, connect your hosting accounts. The current options are AWS, Digital Ocean, Joyent, Packet and Rackspace. 8 | 9 | ![Connect Accounts]({% media '/media/1512/cos-providers.png' %}) 10 | 11 | ## Create Cluster 12 | Next we need to create our cluster, the VMs that our Crate cluster will be added to. Click on the *Infrastructure -> Clusters* menu and then the 'Create Cluster' button in the top right of the dashboard screen. Select your hosting provider and the appropriate configuration options for region, authentication and memory/cpu. 13 | 14 | ![Create Cluster]({% media '/media/1512/cos-menu.png' %}) 15 | 16 | ![Create Cluster]({% media '/media/1512/cos-create-cluster.png' %}) 17 | 18 | ContainerShip uses the concept of 'Leaders' and 'Followers', that handle management of containers and applications and the actual containers and applications respectively. Read more about these concepts in [ContainerShip's documentation](https://docs.containership.io/docs/terminology). 19 | 20 | ## Create Application 21 | After a few minutes waiting for the cluster to come online, we can create our Application, the Crate cluster. Open your cluster admin page and scroll down to the green 'New Application' button. As ContainerShip have made Crate available in their marketplace, click the 'From Marketplace' button and click 'Add to Cluster' underneath Crate from the following screen. 22 | 23 | Choose the cluster you wish to install Crate in and set its memory and CPU options. You should now see Crate listed underneath the 'Applications' section, it will be set up on the follower Hosts, so two nodes. Copy one of the Follower Host IP addresses, and open it in a browser with *:4200/admin* appended and you will see the Crate admin UI. 24 | 25 | ![Add Crate]({% media '/media/1512/cos-add-crate.png' %}) 26 | 27 | ## Scaling 28 | There are two methods for scaling your cluster with ContainerShip, the number of containers per VM, or the number of VMs. 29 | 30 | To increase the number of VMs, simply click the 'Scale' button in the 'Follower Hosts' section on the *Cluster* page and increase the number of hosts. 31 | 32 | To increase the number of containers per VM, open *Infrastructure -> Applications*, click on *Crate* and change the 'constraints.per*host' tag by removing and re-adding it. This will cause an automatic redistribution of VMs and containers. 33 | 34 | ## Conclusion 35 | This is a simple 'getting started' guide to getting Crate running on ContainerShip and we suggest you read their [documentation](https://docs.containership.io/) to get a further idea on what options are available such as using environment variables, a command line interface, tags available and much more. 36 | 37 | ## Next Steps 38 | 39 | - [Connect to Crate Cluster](/docs/connect) 40 | - [Import Data](/docs/import) 41 | - [Client Libraries](/docs/clients) 42 | - [Scale a Cluster](/docs/scale) 43 | -------------------------------------------------------------------------------- /pages/docs/install/containers/coreos.html: -------------------------------------------------------------------------------- 1 | title: Getting started with Crate on CoreOS 2 | author: Mathias Fußenegger 3 | 4 | As a Linux distribution targetted at cloud and cluster based environments, CoreOS is a perfect fit for a Crate cluster. 5 | 6 | ## Pre-requisites 7 | We assume you have a CoreOS cluster running and can access the `fleetctl` tool installed on your local system or on a node in the CoreOS cluster. 8 | 9 | ## Create the Crate Service 10 | Create a service file called *crate@.service* with the following contents: 11 | 12 | ```bash 13 | [Unit] 14 | Description=crate 15 | After=docker.service 16 | Requires=docker.service 17 | 18 | [Service] 19 | TimeoutSec=180 20 | ExecStartPre=/usr/bin/mkdir -p /data/crate 21 | ExecStartPre=/usr/bin/docker pull crate/crate 22 | 23 | ExecStart=/usr/bin/docker run \ 24 | --name %p-%i \ 25 | --publish 4200:4200 \ 26 | --publish 4300:4300 \ 27 | --volume /data/crate:/data \ 28 | crate/crate \ 29 | /crate/bin/crate \ 30 | -Cnode.name=%p%i \ 31 | 32 | ExecStop=/usr/bin/docker stop %p-%i 33 | ExecStop=/usr/bin/docker rm %p-%i 34 | 35 | [X-Fleet] 36 | X-Conflicts=%p@*.service 37 | ``` 38 | 39 | The `TimeoutSec` setting is important because pulling a docker image for the first time takes some time and might cause a time out. 40 | 41 | If you're familiar with systemd service files you'll notice that the crate service file looks similar to a regular systemd service file. The only difference is the `[X-Fleet]` section that ensures only one service named *crate@x.service* is assigned per node. 42 | 43 | Submit it to the cluster using fleet (assuming a 3 node cluster): 44 | 45 | ```bash 46 | fleetctl submit crate@{1,2,3}.service 47 | ``` 48 | 49 | Start the service across the cluster (assuming a 3 node cluster): 50 | 51 | ```bash 52 | fleetctl start crate@{1,2,3}.service 53 | ``` 54 | 55 | Once a crate service starts a folder named */data/crate* will be created on each CoreOS node. The crate docker image is pulled and once finished the container launches. 56 | 57 | Check Status: 58 | 59 | ```bash 60 | fleetctl list-units 61 | ``` 62 | 63 | ## Next Steps 64 | 65 | - [Connect to Crate Cluster](/docs/connect) 66 | - [Import Data](/docs/import) 67 | - [Client Libraries](/docs/clients) 68 | - [Scale a Cluster](/docs/scale) 69 | -------------------------------------------------------------------------------- /pages/docs/install/containers/docker-cloud.html: -------------------------------------------------------------------------------- 1 | title: Getting Started with Crate on Docker Cloud 2 | author: Chris Ward 3 | 4 | [Docker Cloud](https://cloud.docker.com) is Docker's official platform for building, managing and deploying Docker containers across a variety of cloud providers and a provides features ideal for Development workflows. One of the best and most relevant features for Crate users is [default support for overlay networking](https://docs.docker.com/engine/userguide/networking/get-started-overlay/). 5 | 6 | ## Connect Cloud Providers 7 | The first step is to connect the cloud hosting providers you would like to use with Docker Cloud. The current options are Amazon Web Services, Digital Ocean, Microsoft Azure, Softlayer and Packet. 8 | 9 | ## Create Nodes 10 | Visit the *Nodes* section of the [dashboard](https://cloud.docker.com/node/cluster/list/) and click the large green *Launch your first Node* button. 11 | 12 | Give the cluster a name, select the details of your cloud provider and give the cluster a tag that we use to group and target services. 13 | 14 | ![Nodes Section]({% media '/media/1603/dc_create_cluster.png' %}) 15 | 16 | After a couple of minutes, the cluster will be ready. 17 | 18 | ![Cluster Ready]({% media '/media/1603/dc_nodes.png' %}) 19 | 20 | And here are the new instances on Digital Ocean (in my case). 21 | 22 | ![New Instances]({% media '/media/1603/dc_droplets.png' %}) 23 | 24 | 25 | ## Create Services 26 | Next we need to setup our services. Docker Cloud provide an amazing selection of configuration and management options through their UI, but by far the easiest and quickest method for getting a Crate cluster deployed is by using a 'Stack' file. This allows us to set some options that Crate needs to function correctly and then you can analyze the resulting services to see what Docker Cloud is capable of. 27 | 28 | Click on the *Stacks* tab, then the green *Create your first stack* button. Give the Stack a name and add the following code: 29 | 30 | ```yaml 31 | crate1: 32 | image: 'crate:latest' 33 | command: 'crate -Cnetwork.bind_host=_eth0:ipv4_ -Cnetwork.publish_host=_ethwe:ipv4_' 34 | ports: 35 | - '4200:4200' 36 | - '4300:4300' 37 | crate2: 38 | image: 'crate:latest' 39 | command: 'crate -Cnetwork.bind_host=_eth0:ipv4_ -Cnetwork.publish_host=_ethwe:ipv4_' 40 | crate3: 41 | image: 'crate:latest' 42 | command: 'crate -Cnetwork.bind_host=_eth0:ipv4_ -Cnetwork.publish_host=_ethwe:ipv4_' 43 | ``` 44 | 45 | This creates three instances of Crate, all using the 'latest' tagged Docker image. One sets ports manually and the others use dynamic port allocation. Finally, we change the default [publish_host](/docs/stable/configuration.html#conf-hosts). We do this because Docker Cloud has default support for Weave, which allows for seamless cross machine communication through its overlay network. However, Weave requires Crate to publish on a different interface to its default and this is how we accomplish this. 46 | 47 | Click the green *Create stack* button and you will see a list of the resulting services not yet running. 48 | 49 | Click the green *Start* button and after a few moments you will see our 3 node Crate cluster spread across containers and nodes. We have used Docker Cloud's default approach to load balancing (Emptiest Node) but [there are many to choose from](https://docs.docker.com/docker-cloud/feature-reference/deployment-strategies/). As we are setting one set of ports manually, this will limit some of our potential deployment strategies. 50 | 51 | ![Services]({% media '/media/1603/dc_running_services.png' %}) 52 | 53 | Click the *Endpoints* tab to see the cluster URL and open the link ending in port 4200 under the *Service endpoints* section, adding */admin* to access the Crate admin interface. You should see a 3 node cluster, indicated by the '3' in the top right of the window. 54 | 55 | ![Services]({% media '/media/1603/dc_endpoint.png' %}) 56 | 57 | To double check what is happening, click the *Nodes* tab, you should see the two VMs, one with 1 container and 1 with 2. 58 | 59 | ![Nodes Tab]({% media '/media/1603/dc_node_dashboard_spread.png' %}) 60 | 61 | ## Conclusion 62 | The real potential in the Docker Cloud lies in its simple scalability through a user-friendly UI (and CLI) which pairs well with Crate, this has been a simple, 'getting started' example and we recommend you look further at [Docker Cloud's documentation](https://docs.docker.com/docker-cloud/) to explore its full potential. 63 | 64 | ## Next Steps 65 | 66 | - [Connect to Crate Cluster](/docs/connect) 67 | - [Import Data](/docs/import) 68 | - [Client Libraries](/docs/clients) 69 | - [CrateDB and Docker Best Practices](https://crate.io/docs/reference/best_practice/docker.html) 70 | - [Scale a Cluster](/docs/scale) 71 | -------------------------------------------------------------------------------- /pages/docs/install/containers/index.html: -------------------------------------------------------------------------------- 1 | title: Running Crate in Containers 2 | author: Chris Ward 3 | 4 | Crate is ideal for containerized environments, creating and scaling a cluster takes minutes and your valuable data is always in sync and available. 5 | 6 |
7 |
8 |
9 | Docker 10 |

Build, Ship, and Run Any App, Anywhere.

11 |

Get Started

12 |
13 |
14 | Docker Cloud 15 |

Run Docker Containers in any Cloud.

16 |

Get Started

17 |
18 |
19 | ContainerShip 20 |

Multi-Cloud Docker Hosting Automation Platform.

21 |

Get Started

22 |
23 |
24 | CoreOS 25 |

Linux for Massive Server Deployments

26 |

Get Started

27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /pages/docs/install/index.html: -------------------------------------------------------------------------------- 1 | title: Install 2 | author: Chris Ward 3 | 4 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ad illum redeo. Te enim iudicem aequum puto, modo quae dicat ille bene noris. Non igitur de improbo, sed de callido improbo quaerimus, qualis Q. Mihi enim erit isdem istis fortasse iam utendum. Sed potestne rerum maior esse dissensio? Duo Reges: constructio interrete. Nec lapathi suavitatem acupenseri Galloni Laelius anteponebat, sed suavitatem ipsam neglegebat; Ut enim consuetudo loquitur, id solum dicitur honestum, quod est populari fama gloriosum. 5 | -------------------------------------------------------------------------------- /pages/docs/install/local/download-thanks.html: -------------------------------------------------------------------------------- 1 | title: Thanks for Downloading Crate 2 | author: Michael Beer 3 | 4 | 5 | 6 | ## Your download should begin automatically. 7 | 8 | If your download did not start, click here to retry. 9 | 10 | Crate is also available for other platforms. 11 | 12 | # Next Steps 13 | 14 | - [Connect to Crate Cluster](/docs/connect) 15 | - [Import Data](/docs/import) 16 | - [Client Libraries](/docs/clients) 17 | - [Scale a Cluster](/docs/scale) 18 | 19 | 20 | 30 | 32 | 37 | -------------------------------------------------------------------------------- /pages/docs/install/local/index.html: -------------------------------------------------------------------------------- 1 | title: Install Crate 2 | author: Chris Ward 3 | 4 | Crate provides packages and executables that will work on any operating systems capable of running Java. 5 | 6 |
7 |
8 |
9 | Linux 10 |

11 |

Install on Linux

12 |
13 |
14 | OS X 15 |

16 |

Install on Mac

17 |
18 |
19 | Windows 20 |

21 |

Install on Windows

22 |
23 |
24 | Tarball 25 |

26 |

Download Tarball

27 |
28 |
29 |
30 | -------------------------------------------------------------------------------- /pages/docs/install/local/mac.html: -------------------------------------------------------------------------------- 1 | title: Install Crate on Mac 2 | author: Chris Ward 3 | 4 | You can install and run Crate on a Mac with one simple command in your terminal application: 5 | 6 | ```bash 7 | bash -c "$(curl -L try.crate.io)" 8 | ``` 9 | 10 | To create a cluster, run the command multiple times to create new instances that will discover each when running on the same machine. 11 | 12 | ## Next Steps 13 | 14 | - [Connect to Crate Cluster](/docs/connect) 15 | - [Import Data](/docs/import) 16 | - [Client Libraries](/docs/clients) 17 | - [Scale a Cluster](/docs/scale) 18 | -------------------------------------------------------------------------------- /pages/docs/install/local/tarball.html: -------------------------------------------------------------------------------- 1 | title: Install Crate from a Tarball 2 | author: Chris Ward 3 | 4 | ## Latest Stable Release 5 | 6 | Version {{ CONFIG.stable_version }}
Released on {{ CONFIG.stable_version_date }} 7 | 8 | Download latest stable release. 9 | 10 | Start Crate by extracting the downloaded archive, move into the _bin_ folder and run: 11 | 12 | ```bash 13 | ./crate 14 | ``` 15 | 16 | To create a cluster of Crate instances, run the command multiple times. 17 | 18 | 19 | ## Testing Releases 20 | Test builds of Crate should only be used for testing upcoming new features not in production. Download latest testing release. 21 | 22 | Nightly builds of Crate are provided for testing purposes only. You can download the latest builds here. 23 | 24 | 25 | 26 | ## Next Steps 27 | 28 | - [Connect to Crate Cluster](/docs/connect) 29 | - [Import Data](/docs/import) 30 | - [Client Libraries](/docs/clients) 31 | - [Scale a Cluster](/docs/scale) 32 | -------------------------------------------------------------------------------- /pages/docs/install/local/windows.html: -------------------------------------------------------------------------------- 1 | title: Install Crate on Windows 2 | author: Chris Ward 3 | 4 | ## Configure Windows 5 | 6 | To install Crate on Windows, you will need a [Java JDK installed](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html). 7 | 8 | Set the `JAVA_HOME` environment variable: 9 | 10 | ![Windows environment variables]({% media '/media/1512/win-envvar.png' %}) 11 | 12 | Allow the ports Crate uses through the Windows Firewall: 13 | 14 | ![Windows Firewall ports]({% media '/media/1512/win-port.gif' %}) 15 | 16 | ## Install Crate 17 | 18 | [Download the Crate Tarball](/docs/install/local/tarball/), expand it and move to a convenient location. 19 | 20 | Start Crate by running `.\bin\crate`, to create a cluster, run the command multiple times. 21 | 22 | ## Next Steps 23 | 24 | - [Connect to Crate Cluster](/docs/connect) 25 | - [Import Data](/docs/import) 26 | - [Client Libraries](/docs/clients) 27 | - [Scale a Cluster](/docs/scale) 28 | -------------------------------------------------------------------------------- /pages/docs/reference/overview.html: -------------------------------------------------------------------------------- 1 | title: Reference Documentation 2 | author: Chris Ward 3 | 4 | Want to know more in-depth details of Crate or our client libraries and utilities? 5 | -------------------------------------------------------------------------------- /pages/docs/scale/index.html: -------------------------------------------------------------------------------- 1 | title: 0 to 50 nodes in No Time 2 | author: Chris Ward 3 | 4 | Crate is designed to be easy to scale and adding a new node to a cluster is as simple as starting your first Crate instance. 5 | 6 | If you have followed any of our installation guides you likely now have one Crate instance running with some test data, for the sake of this tutorial, we will assume it's the public Twitter data. 7 | 8 | Here is my one node Crate cluster, not a large amount of data, but it's running in a Docker container on my local machine, so enough for demonstration purposes. 9 | 10 | Open the Crate admin UI at *SERVER_IP:4200/admin* and you should see something like the following, note the *NODES: 1* indicator. 11 | 12 | ![A 1 Node Cluster]({% static '/images/scale_1_node_cluster.png' %}) 13 | 14 | Let's add a second Crate node to the cluster, this will depend on how you installed Crate, to start a new Crate instance, run the same command as starting your first. For example: 15 | 16 | **Docker** 17 | 18 | ```bash 19 | docker run -P -d crate 20 | ``` 21 | 22 | **Ubuntu** 23 | 24 | ```bash 25 | sudo service crate start 26 | ``` 27 | 28 | [Find our how to start nodes with other installations](/docs/install/). 29 | 30 | Within a couple of seconds, the second node will have joined the cluster and the *NODES:* count should have increased to 2. Depending on the complexity and quantity of data and hardware setup you will also notice the cluster state changes to yellow momentarily as it rebalances and resynchronizes data across the cluster. 31 | 32 | ![A 2 Node Cluster]({% static '/images/scale_2_node_cluster.png' %}) 33 | 34 | Add another node to the cluster using the same steps as above. You will notice the same happening as before, but this time quickly switch to the *TABLES* tab after adding the third node. Here you can see that Crate also provides information about how data is rebalancing at a table and shard level as well as at a cluster level. 35 | 36 | ![A 3 Node Cluster]({% static '/images/scale_3_node_cluster.png' %}) 37 | 38 | Try removing a node from the cluster by killing a Crate process or stopping a docker container with `docker stop container_id`. You will notice that again the cluster will rebalance and re-sync across the remaining nodes. 39 | 40 | Try running a simple query on the cluster, such as: 41 | 42 | ```sql 43 | SELECT count(*) AS quantity, user['verified'] 44 | FROM tweets 45 | GROUP BY user['verified'] 46 | ORDER BY quantity DESC limit 100; 47 | ``` 48 | 49 | Add and remove nodes to the cluster and try issuing the same query each time, you should notice no change in the result and very little difference in speed. 50 | 51 | 52 | Related 53 | 54 | Setting Heap Size 55 | Configuring Node Quorum 56 | 57 | 58 | -------------------------------------------------------------------------------- /pages/docs/scale/multi_zone_setup.html: -------------------------------------------------------------------------------- 1 | title: Multi Zone Setup 2 | author: Chris Ward 3 | 4 | If possible, we recommend running all Crate nodes of a cluster inside the same physical space (e.g. data center) to minimize network latency and maximize speed between the nodes. These factors can have a significant impact on the performance of Crate clusters. 5 | 6 | This is because replicas are written *synchronously* and making a write task wait for the replicas to write somewhere in a data center hundreds of miles away can lead to noticeable latency and cause the cluster to slow down. 7 | 8 | In certain scenarios it may be necessary to run a cluster across multiple data centers or availability zones. We'll call these **zones** from now on. 9 | 10 | For a multi zone setup, Crate clusters need to fulfill the following 3 requirements: 11 | 12 | ## Requirements 13 | 1. When inserting data, it should be replicated in a way so that at least one full replica is present inside each zone. 14 | 2. If a zone becomes unavailable, all data still needs to be fully available. 15 | 3. When querying data, all data should only be collected from shards that are inside the same zone as the initial request. 16 | 17 | To achieve these requirements, make use of **shard allocation awareness**. If you are new to setting up a multi-node Crate cluster you should read our [multi node setup](/docs/scale/multi_node_setup) guide first. 18 | 19 | ## Assigning Tags 20 | First, assign a tag containing the zone to the cluster nodes. This enables shard allocation awareness. 21 | 22 | It's possible to assign arbitrary tags to nodes using the *crate.yaml* settings file or the `-C` option on startup. [Read our in-depth guide](/docs/reference/configuration.html) for more details on Crate configuration options. 23 | 24 | In *crate.yaml* a zone tag looks like: 25 | 26 | ```yaml 27 | node.zone: us-east-1 28 | ``` 29 | 30 | The node is tagged with a `zone` of the value `us-east-1`, an availability zone of a cloud computing provider. 31 | 32 | 33 | Note 34 | These tags and settings can't be changed at runtime and need to be set on startup. 35 | 36 | 37 | ## Allocation Awareness 38 | Now tags can be set as attributes for the shard allocation awareness. We use the tag `zone` that we just assigned to the node as an attribute: 39 | 40 | ```yaml 41 | cluster.routing.allocation.awareness.attributes: zone 42 | ``` 43 | 44 | This means that Crate will try to allocate shards and their replicas according to the `zone` tags, so that a shard and its replica are not on a node with the same `zone` value. 45 | 46 | Let's add a second and a third node in a different zone (`us-west-1`) and tag them accordingly. 47 | 48 | ```yaml 49 | node.zone: us-west-1 50 | cluster.routing.allocation.awareness.attributes: zone 51 | ``` 52 | 53 | When the cluster is started, we will create a table with 6 shards and 1 replica. The 6 shards will be distributed evenly across the nodes (2 shards on each node) and the replicas allocated on nodes with a different `zone` value to its primary shard. 54 | 55 | If that isn't possible (e.g. `num replicas > num zones - 1`) Crate will still allocate the replicas on nodes with the same `zone` value to avoid unassigned shards. 56 | 57 | 58 | Note 59 | Allocation awareness only means that Crate tries to conform to the awareness attributes, to avoid such allocations, force the awareness. 60 | 61 | 62 | ## Force Awareness 63 | To fulfill the 3rd requirement you need to ensure that when running a query on a node with a certain `zone` value it only executes the request on shards allocated on nodes with the same `zone` value. 64 | 65 | This means you need to know the different `zone` attribute values to force awareness on nodes. 66 | 67 | You can force awareness on certain attributes, for example, the `zone`: 68 | 69 | ```yaml 70 | cluster.routing.allocation.awareness.force.zone.values: us-east-1,us-west-1 71 | ``` 72 | 73 | When set, no more replicas than needed are allocated on a specific group of nodes. 74 | 75 | 76 | Example 77 | You have 2 nodes with `zone` set to `us-east-1` and create a table with 8 shards and 1 replica. 8 primary shards will be allocated and the 8 replica shards left unassigned. Only when you add a new node with `zone` set to `us-west-1` will the replica shards be allocated. 78 | 79 | 80 | 81 | By using these settings and their mechanisms correctly, you should be able to setup a cluster that spans across multiple zones and fulfills the 3 requirements above, but be aware of the drawbacks such a setup can have. 82 | -------------------------------------------------------------------------------- /pages/docs/search/index.html: -------------------------------------------------------------------------------- 1 | title: Search 2 | author: Chris Ward 3 | console: true 4 | consolequery: SELECT date_format('%Y-%m', date_trunc('month', created_at)) AS date, count(*) AS cnt_pos FROM github WHERE match(record_ft, 'hallelujah hurray bingo amused cheerful excited glad proud') AND TYPE = 'PushEvent' AND (created_at >= '2012-01-01' AND created_at <= '2015-09-01') GROUP BY date ORDER BY date ASC 5 | 6 | ## Find the Answers you Need, Instantly 7 | Crate offers a comprehensive selection of tools to suit the needs of many business requirements. From analyzing large data sets and text records in real-time to find the details you need, to storing and retrieving media files, Crate has what you're looking for. 8 | 9 | Whilst other solutions make your developers learn new and single-purpose skills to use them, with Crate they can use familiar and established knowledge to gain new potential. 10 | 11 | ## Crate is the only solution you need 12 | If you've ever developed an application that used a traditional database for storing data you'll know the complexities of adding search features beyond SQL `like` queries. Typically this has involved integrating additional components to your application stack such as Lucene, Solr or Elastic Search. This search index then needs to synchronized with data changes and maintained. 13 | 14 | Crate includes comprehensive built-in full text search features alongside SQL and BLOB storage, available in queries with other fields in the same tables. 15 | 16 | ## Full Text Search 17 | With Crate, full text search and analysis of column values is comprehensive and fast. Let's look at an example. 18 | 19 | {% include "includes/interactive_console.html" with query=consolequery %} 20 | 21 | ```sql 22 | SELECT date_format('%Y-%m', date_trunc('month', created_at)) AS date, 23 | count(*) AS cnt_pos 24 | FROM github 25 | WHERE match(record_ft, 'hallelujah hurray bingo amused cheerful excited glad proud') 26 | AND TYPE = 'PushEvent' AND (created_at >= '2012-01-01' AND created_at <= '2015-09-01') 27 | GROUP BY date ORDER BY date ASC; 28 | ``` 29 | 30 | This query searches our GitHub archive data set for commit messages pushed to repositories that contained positive words between the beginning of 2012 and September 2015 and splits them per month. Of course searching for these words doesn't necessarily mean the commit messages were positive, but for example purposes it's perfect. 31 | 32 | The `match()` statement is where the magic happens and allows for a [wide variety of analysis](https://crate.io/docs/stable/sql/analyzer.html) options. 33 | 34 | ## Try Crate now 35 | We have a 3-instance cluster setup for you to try out, head over to [play.crate.io](https://play.crate.io/_plugin/crate-admin/#/) and go crazy! 36 | 37 | ## Getting Started / Install 38 | Keen to get started with your own cluster? [Our 5 step process](getting-started) will result in a Crate cluster populated with data and connected to an application in no time. 39 | -------------------------------------------------------------------------------- /pages/docs/support/index.html: -------------------------------------------------------------------------------- 1 | title: Support 2 | author: Chris Ward 3 | description: Crate is an open source project with a strong community. Join the Crate community on Google Groups, IRC, meetups, or contribute on GitHub 4 | 5 |

At Crate we firmly believe that your success is our success, and we’ll do our best to offer you support when you need help using Crate.

6 |

To be able to support the requirements of enterprise customers Crate offers a range of enterprise services to guarantee speedy resolution of issues.

7 | 8 |

Discuss Crate

9 |

Join the Crate discussion, ask for advice and suggest improvements through our community supported forums on StackOverflow or Slack. 10 | 11 | 12 |

Connect with Crate

13 |

You can report issues or request features by opening a request on GitHub.

14 | 15 | 16 |

Learn Crate

17 |

Access the Crate documentation for common troubleshooting issues. 18 | -------------------------------------------------------------------------------- /pages/docs/tools/index.html: -------------------------------------------------------------------------------- 1 | title: Tools Overview 2 | description: Management tools, utilities and data visualization for Crate 3 | author: Christian Haudum 4 | 5 | There are several tools that play well with Crate, from development utilities to data visualization tools. We even use some of them ourselves! 6 | 7 | This page gives an overview of the tools available and tested with the latest version of Crate. If you know of any other tools that work well with Crate, please [get in touch](mailto:office@crate.io). 8 | 9 | ## Management Utilities 10 | 11 | ### SQuirreL SQL 12 | 13 | SQirreL is an open-source, cross-platform, graphical Java SQL Client (requires Java >= 6.x) that allows you to view the structure of any JDBC compliant database. 14 | 15 | Here is a setup guide about [how to connect to Crate with SQirreL]({% url '/docs/tools/squirrel.html' %}). 16 | 17 | - [Download](http://squirrel-sql.sourceforge.net) 18 | - [Official documentation](http://squirrel-sql.sourceforge.net/paper/SQuirreL_us.pdf) 19 | 20 | ### conZole 21 | 22 | conZole is a web-based SQL console written in Node.js that lets you inspect data in a Crate cluster. It uses the [node-crate](https://github.com/megastef/node-crate) driver and [Zebra UI](http://www.zebkit.com/) as the HTML5 front end. 23 | 24 | - [Github](https://github.com/megastef/crate-conZole) 25 | 26 | ### Crash 27 | 28 | The Crate Shell (aka `crash`) is an officially maintained, open-source command line interface (SQL shell) for Crate. It's written in Python (requires Python >= 2.7) and supports multiple output formats such as tabular output, CSV or JSON. 29 | 30 | - How to connect to Crate with crash [here](https://crate.io/docs/connect/crash/) 31 | - Full reference [documentation](https://crate.io/docs/reference/crash/) 32 | - [Github](https://github.com/crate/crash) 33 | - [PyPi](https://pypi.python.org/pypi/crash) 34 | 35 | ### cr8 Utilities 36 | 37 | `cr8` is a collection of command line tools for Crate written in Python and developed by one of our core developers. It reduces repetitive tasks such as filling tables with sample data, a real 'Swiss army knife' for Crate users. 38 | 39 | - [Blog post](https://crate.io/a/cr8-utility-scripts/). 40 | - [Github](https://github.com/mfussenegger/cr8) 41 | - [PyPi](https://pypi.python.org/pypi/cr8) 42 | 43 | ### ctop 44 | 45 | `ctop` is a simple stat/top tool for Crate written in Python and based on [urwid](http://urwid.org/). It can display metrics such as CPU, memory, heap usage, network traffic and disk i/o in a console user interface. 46 | 47 | - [Blog post](https://crate.io/a/ctop-top-for-crate-cluster/) 48 | - [Github](https://github.com/chaudum/crate-top) 49 | 50 | ## Data Visualization 51 | 52 | ### Tableau Desktop 53 | 54 | Tableau is a business analytics and data visualization software that lets you see and understand data in minutes. 55 | 56 | **Connecting Tableau to a Crate cluster requires our ODBC driver, find more details [here](/enterprise/odbc).** 57 | 58 | - [Official website](http://www.tableau.com/) 59 | - [How to use Tableau](http://www.tableau.com/learn) 60 | 61 | 62 | ### SQLPad 63 | 64 | SQLPad is a beautiful, web-based SQL editor written in Node.js that can run in your own private cloud and supports multiple databases such as Postgres, MySQL, SQL Server, Vertica and since version `1.12.0`, also Crate. 65 | 66 | - [Website](http://rickbergfalk.github.io/sqlpad/) 67 | - [Github](https://github.com/rickbergfalk/sqlpad) 68 | 69 | ### Pentaho 70 | 71 | Pentaho prepares and blends data, delivering business analytics from any source. You can connect to Crate clusters by using the standalone version of [our JDBC driver](https://crate.io/docs/reference/jdbc/). 72 | 73 | - [Website](http://community.pentaho.com) 74 | - [Github](https://github.com/pentaho/pentaho-kettle) 75 | 76 | ### StreamSets Data Collector 77 | 78 | StreamSets Data Collector is a lightweight, powerful engine that streams data in real time. Use Data Collector to route and process data in your data streams. [Here is our manual]({% url '/docs/tools/streamsets.html' %}) on how to use Crate as an origin and destination in a StreamSets pipeline. 79 | 80 | - [Download](https://streamsets.com/opensource/) 81 | - [Official documentation](https://streamsets.com/documentation/datacollector/latest/help/) 82 | 83 | ### Zoomdata 84 | 85 | Zoomdata is a SaaS solution for deep analysis of big data sets in a visual interface. Crate is available as a data source connection. 86 | 87 | ### Grafana 88 | 89 | Grafana is a very versatile tool for visualizing all kinds of time series data, and it has a Crate plugin. 90 | 91 | - [Website](https://grafana.net/) 92 | - [Crate Datasource Plugin](https://grafana.net/plugins/crate-datasource) 93 | 94 | ### Metabase 95 | 96 | Metabase is an open source, easy-to-use visualization that answers questions about your data. It's written in Clojure and comes with a Crate driver out of the box! 97 | 98 | - [Read our blogpost about Metabase](https://crate.io/a/visualize-crate-data-with-metabase/) 99 | - [Website](http://www.metabase.com/) 100 | -------------------------------------------------------------------------------- /pages/docs/tools/squirrel.html: -------------------------------------------------------------------------------- 1 | title: Using Crate with SQuirreL SQL 2 | author: Christian Haudum 3 | 4 | 5 | **[SQuirreL](http://www.squirrelsql.org/)** is a graphical SQL client application that can be used to browse and query a JDBC compliant database. 6 | 7 | As Crate supports JDBC with its Crate JDBC driver, it can easily be used with SQUirreL. 8 | 9 | ## Setup 10 | [SQuirreL](http://www.squirrelsql.org/) does not provide a Crate driver with its distribution, so an extra setup step is required to run Crate with [SQuirreL](http://www.squirrelsql.org/): 11 | 12 | 1. Copy the [Crate JDBC standalone](https://bintray.com/crate/crate/crate-jdbc/view/files/io/crate/crate-jdbc-standalone) jar to the SQuirreL lib folder. On OS X, when installing SQuirreL with the MaxOS X installer, this is `/Applications/SQuirreLSQL.app/Contents/Resources/Java/lib/` 13 | 14 | 2. Start [SQuirreL](http://www.squirrelsql.org/). 15 | 16 | 3. Choose the `Drivers` tab and add a new driver, adding the following information into the form and confirm by pressing ok. 17 | ![squirrel add driver dialogue]({% media '/media/1602/squirrel_add_driver.png' %}) 18 | 19 | 4. Choose the `Aliases` tab and add a new Alias, Choose your new driver (called crate in our example) and enter your database URL. Username and password are not supported, so leave them blank. 20 | ![squirrel add alias dialogue]({% media '/media/1602/squirrel_add_alias.png' %}) 21 | 22 | 5. Connect your alias to your crate instance. 23 | 24 | ## Usage 25 | 26 | You can browse Crate using the Object Tree Worksheet, that is the usual view you use for browsing your tables and get information about their schema. 27 | 28 | ![browsing the content and schema of a table using squirrel]({% media '/media/1602/squirrel_view.png' %}) 29 | 30 | When browsing a table’s content using Content, it is possible to edit the table contents by right-clicking and choosing Make Editable. 31 | 32 | ![editing the content of a table using squirrel]({% media '/media/1602/squirrel_edit.png' %}) 33 | 34 | Using the SQuirreL SQL Editor it is possible to execute arbitrary SQL commands and scripts. 35 | 36 | ![using the squirrel sql editor]({% media '/media/1602/squirrel_sql.png' %}) 37 | -------------------------------------------------------------------------------- /pages/feed/menu.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | {"url": "https://crate.io/demo?utm_source=adminui&utm_medium=browser&utm_term=&utm_content=demolink&utm_campaign=newsfeed&ajs_event=clicked_demo_link", 4 | "title": "Schedule a 1-ON-1 demo with a Crate engineer"}, 5 | {"url": "https://crate.io/blog?utm_source=adminui&utm_medium=browser&utm_term=&utm_content=morelink&utm_campaign=newsfeed&ajs_event=clicked_more_link", 6 | "title": "More"} 7 | ] 8 | } 9 | -------------------------------------------------------------------------------- /pages/sitemap-cactus.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% for page in CACTUS.pages %}{% if page.path != 'error.html' %} 4 | 5 | {{ CONFIG.site }}{{ page.absolute_final_url }} 6 | weekly 7 | 0.8 8 | 9 | {% endif %}{% endfor %} 10 | 11 | -------------------------------------------------------------------------------- /plugins/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/plugins/__init__.py -------------------------------------------------------------------------------- /plugins/coffeescript.disabled.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pipes 3 | import subprocess 4 | import logging 5 | 6 | def run(command): 7 | 8 | logger = logging.getLogger(__name__) 9 | 10 | logger.debug(command) 11 | 12 | os.environ['PATH'] = '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/share/npm/bin:' 13 | 14 | process = subprocess.Popen([command], 15 | shell=True, 16 | stdin=subprocess.PIPE, 17 | stdout=subprocess.PIPE, 18 | stderr=subprocess.PIPE) 19 | 20 | stdout = process.stdout.readline() 21 | stderr = process.stderr.readline() 22 | 23 | if stdout: logger.info(stdout) 24 | if stderr: logger.warning(stderr) 25 | 26 | 27 | def preBuild(site): 28 | run('coffee -c %s/js/*.coffee' % pipes.quote(site.static_path)) 29 | -------------------------------------------------------------------------------- /plugins/haml.disabled.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | import sys 23 | import os 24 | import codecs 25 | 26 | # How to: 27 | # * Install hamlpy (https://github.com/jessemiller/HamlPy) 28 | # * .haml files will compiled to .html files 29 | 30 | 31 | from hamlpy.hamlpy import Compiler 32 | from cactus.utils.filesystem import fileList 33 | 34 | CLEANUP = [] 35 | 36 | def preBuild(site): 37 | for path in fileList(site.paths['pages']): 38 | 39 | #only file ends with haml 40 | if not path.endswith('.haml'): 41 | continue 42 | 43 | #read the lines 44 | haml_lines = codecs.open(path, 'r', encoding='utf-8').read().splitlines() 45 | 46 | #compile haml to html 47 | compiler = Compiler() 48 | output = compiler.process_lines(haml_lines) 49 | 50 | #replace path 51 | outPath = path.replace('.haml', '.html') 52 | 53 | #write the html file 54 | with open(outPath,'w') as f: 55 | f.write(output) 56 | 57 | CLEANUP.append(outPath) 58 | 59 | 60 | def postBuild(site): 61 | global CLEANUP 62 | for path in CLEANUP: 63 | print path 64 | os.remove(path) 65 | CLEANUP = [] 66 | -------------------------------------------------------------------------------- /plugins/page_context.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | def preBuildPage(page, context, data): 23 | """ 24 | Updates the context of the page to include: the page itself as {{ CURRENT_PAGE }} 25 | """ 26 | 27 | # This will run for each page that Cactus renders. 28 | # Any changes you make to context will be passed to the template renderer for this page. 29 | 30 | config = context['__CACTUS_SITE__'].config 31 | extra = { 32 | "CURRENT_PAGE": page, 33 | # Add your own dynamic context elements here! 34 | "CONFIG": config.get('settings', {}), 35 | } 36 | 37 | context.update(extra) 38 | return context, data 39 | -------------------------------------------------------------------------------- /plugins/sass.disabled.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | import os 23 | import pipes 24 | 25 | def postBuild(site): 26 | os.system( 27 | 'sass -t compressed --update %s/static/css/*.sass' % 28 | pipes.quote(site.paths['build'] 29 | )) 30 | -------------------------------------------------------------------------------- /plugins/scss.disabled..py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | import os 23 | import sys 24 | import pipes 25 | import shutil 26 | import subprocess 27 | 28 | from cactus.utils.filesystem import fileList 29 | 30 | """ 31 | This plugin uses pyScss to translate sass files to css 32 | 33 | Install: 34 | 35 | sudo easy_install pyScss 36 | 37 | """ 38 | 39 | try: 40 | from scss import Scss 41 | except: 42 | sys.exit("Could not find pyScss, please install: sudo easy_install pyScss") 43 | 44 | 45 | CSS_PATH = 'static/css' 46 | 47 | for path in fileList(CSS_PATH): 48 | 49 | if not path.endswith('.scss'): 50 | continue 51 | 52 | with open(path, 'r') as f: 53 | data = f.read() 54 | 55 | css = Scss().compile(data) 56 | 57 | with open(path.replace('.scss', '.css'), 'w') as f: 58 | f.write(css) 59 | -------------------------------------------------------------------------------- /plugins/sprites.disabled.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | import os 23 | import sys 24 | import pipes 25 | import shutil 26 | import subprocess 27 | 28 | """ 29 | This plugin uses glue to sprite images: 30 | http://glue.readthedocs.org/en/latest/quickstart.html 31 | 32 | Install: 33 | 34 | (Only if you want to sprite jpg too) 35 | brew install libjpeg 36 | 37 | (Only if you want to optimize pngs with optipng) 38 | brew install optipng 39 | 40 | sudo easy_install pip 41 | sudo pip uninstall pil 42 | sudo pip install pil 43 | sudo pip install glue 44 | """ 45 | 46 | try: 47 | import glue 48 | except Exception, e: 49 | sys.exit('Could not use glue: %s\nMaybe install: sudo easy_install glue' % e) 50 | 51 | 52 | IMG_PATH = 'static/img/sprites' 53 | CSS_PATH = 'static/css/sprites' 54 | 55 | KEY = '_PREV_CHECKSUM' 56 | 57 | def checksum(path): 58 | command = 'md5 `find %s -type f`' % pipes.quote(IMG_PATH) 59 | return subprocess.check_output(command, shell=True) 60 | 61 | def preBuild(site): 62 | 63 | currChecksum = checksum(IMG_PATH) 64 | prevChecksum = getattr(site, KEY, None) 65 | 66 | # Don't run if none of the images has changed 67 | if currChecksum == prevChecksum: 68 | return 69 | 70 | if os.path.isdir(CSS_PATH): 71 | shutil.rmtree(CSS_PATH) 72 | 73 | os.mkdir(CSS_PATH) 74 | os.system('glue --cachebuster --crop --optipng "%s" "%s" --project' % (IMG_PATH, CSS_PATH)) 75 | 76 | setattr(site, KEY, currChecksum) 77 | -------------------------------------------------------------------------------- /plugins/static_optimizers.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | from cactus.contrib.external.closure import ClosureJSOptimizer 23 | from cactus.contrib.external.yui import YUICSSOptimizer 24 | 25 | 26 | def preBuild(site): 27 | """ 28 | Registers optimizers as requested by the configuration. 29 | Be sure to read the plugin to understand and use it. 30 | """ 31 | 32 | # Inspect the site configuration, and retrieve an `optimize` list. 33 | # This lets you configure optimization selectively. 34 | # You may want to use one configuration for staging with no optimizations, and one 35 | # configuration for production, with all optimizations. 36 | optimize = site.config.get("optimize", []) 37 | 38 | if "js" in optimize: 39 | # If `js` was found in the `optimize` key, then register our JS optimizer. 40 | # This uses closure, but you could use cactus.contrib.external.yui.YUIJSOptimizer! 41 | site.external_manager.register_optimizer(ClosureJSOptimizer) 42 | 43 | if "css" in optimize: 44 | # Same thing for CSS. 45 | site.external_manager.register_optimizer(YUICSSOptimizer) 46 | 47 | # Add your own types here! 48 | -------------------------------------------------------------------------------- /plugins/template_tags.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8; -*- 2 | # 3 | # Licensed to Crate (https://crate.io) under one or more contributor 4 | # license agreements. See the NOTICE file distributed with this work for 5 | # additional information regarding copyright ownership. Crate licenses 6 | # this file to you under the Apache License, Version 2.0 (the "License"); 7 | # you may not use this file except in compliance with the License. You may 8 | # obtain a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # However, if you have executed another commercial license agreement 19 | # with Crate these terms will supersede the license and you may use the 20 | # software solely pursuant to the terms of the relevant commercial agreement. 21 | 22 | __docformat__ = "reStructuredText" 23 | 24 | from django.template.loader import add_to_builtins 25 | 26 | # register filters 27 | add_to_builtins('web.filters') 28 | # register tags 29 | add_to_builtins('web.tags') 30 | -------------------------------------------------------------------------------- /post_templates/article.html: -------------------------------------------------------------------------------- 1 | title: Article Title 2 | author: name 3 | description: a short description 4 | created: 2015-01-01 00:00:00 5 | post_name: crate-article 6 | tags: comma, separated, tags 7 | category: crate-category 8 | topics: coma, separated, post, names 9 | meta_title: Article Title 10 | meta_description: meta description 11 | open_graph_title: Article Title 12 | open_graph_description: open graph description 13 | 14 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 15 | 16 | Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. 17 | 18 | In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. 19 | 20 | Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. 21 | 22 | Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus 23 | -------------------------------------------------------------------------------- /post_templates/blog.html: -------------------------------------------------------------------------------- 1 | title: Blog Title 2 | author: name 3 | description: a short description 4 | created: 2015-01-01 00:00:00 5 | post_name: crate-blog 6 | tags: comma, separated, tags 7 | category: crate-category 8 | meta_title: Blog Title 9 | meta_description: meta description 10 | open_graph_title: Blog Title 11 | open_graph_description: open graph description 12 | 13 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 14 | 15 | Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. 16 | 17 | In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. 18 | 19 | Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. 20 | 21 | Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui. Etiam rhoncus 22 | -------------------------------------------------------------------------------- /static/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /static/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/apple-touch-icon.png -------------------------------------------------------------------------------- /static/css/crateio-rtd.css: -------------------------------------------------------------------------------- 1 | .wrapper-content-right .section { 2 | margin-top: 32px; 3 | } 4 | 5 | .wrapper-content-right > .section { 6 | margin-top: 0px; 7 | } 8 | 9 | .toctree { 10 | padding-left: 0; 11 | list-style: none; 12 | } 13 | 14 | .toctree li { 15 | list-style: none; 16 | } 17 | 18 | a.current, a.current-active { 19 | font-weight: bold; 20 | } 21 | 22 | .highlight { 23 | font-size: 14px; 24 | } 25 | 26 | .highlight pre { 27 | padding: 2px 10px; 28 | } 29 | 30 | blockquote { 31 | font-size: 20px; 32 | border-left: 0px; 33 | padding: 0px 0px; 34 | } 35 | 36 | /** NOTES, etc **/ 37 | 38 | .todo .admonition-title, 39 | .seealso .admonition-title, 40 | .note .admonition-title, 41 | .warning .admonition-title { 42 | padding: 10px 20px; 43 | font-weight: bold; 44 | color: #000000; 45 | } 46 | 47 | .warning { 48 | background-color: #ffcdc9; 49 | border-left: 5px solid #ff5b4d; 50 | } 51 | 52 | .note { 53 | background-color: #ccf2fc; 54 | border-left: 5px solid #55d4f5; 55 | display: block; 56 | } 57 | 58 | .admonition { 59 | display: block; 60 | 61 | margin-top: 10px; 62 | margin-bottom: 10px; 63 | padding: 7px; 64 | } 65 | 66 | .seealso, 67 | .todo { 68 | background-color: #e7e7e7; 69 | border-left: 5px solid #888888; 70 | padding: 16px; 71 | } 72 | 73 | .note .admonition-title { 74 | padding-bottom: 0; 75 | background-color: #ccf2fc; 76 | display: block; 77 | } 78 | 79 | .warning .admonition-title { 80 | padding-bottom: 0; 81 | background-color: #ffcdc9; 82 | display: block; 83 | } 84 | 85 | .seealso .admonition-title, 86 | .todo .admonition-title { 87 | padding-bottom: 0; 88 | background-color: #e7e7e7; 89 | display: block; 90 | } 91 | .todo span, .seealso span, .note span, .warning span { 92 | padding: 10px 20px; 93 | margin: 0; 94 | display: block; 95 | } 96 | 97 | .seealso a { 98 | display: block; 99 | } 100 | 101 | 102 | /** MENU **/ 103 | 104 | .bs-docs-sidenav .toctree li { 105 | padding: 3px 0px; 106 | line-height: 16px; 107 | } 108 | 109 | .bs-docs-sidenav .toctree li.border-top { 110 | padding-top: 16px; 111 | } 112 | 113 | .bs-docs-sidenav .toctree li a { 114 | text-decoration: none; 115 | font-size: 14px; 116 | line-height: 16px; 117 | color: black; 118 | } 119 | 120 | .bs-docs-sidenav .toctree li.current > a, 121 | .bs-docs-sidenav .toctree li.active > a { 122 | font-weight: bold; 123 | } 124 | .bs-docs-sidenav ul { 125 | margin-bottom: 0px; 126 | } 127 | 128 | .bs-docs-sidenav .toctree ul li.active ul { 129 | display: block; 130 | } 131 | 132 | .bs-docs-sidenav .toctree li.current > ul, 133 | .bs-docs-sidenav .toctree ul li.active > ul { 134 | display: block !important; 135 | } 136 | .bs-docs-sidenav { 137 | padding-left: 0px; 138 | } 139 | .bs-docs-sidebar { 140 | padding: 8px 16px; 141 | } 142 | 143 | .affix { 144 | position: fixed !important; 145 | top: 20px; 146 | } 147 | .wrapper-navleft { 148 | padding: 0px; 149 | border: 0px; 150 | } 151 | .wrapper-navleft .bs-docs-sidebar { 152 | border: 1px solid #e7e7e7; 153 | } 154 | .wrapper-content-right li { 155 | font-size: 16px; 156 | line-height: 1.5em; 157 | } 158 | 159 | .border-top { 160 | border-top: 1px solid #e7e7e7; 161 | padding-top: 16px; 162 | margin-top: 16px; 163 | } 164 | -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- 1 | .lang-col { 2 | min-height: 200px; 3 | } 4 | 5 | .codehilite > pre { 6 | padding: 15px; 7 | border: 1px solid #ccc; 8 | border-radius: 2px; 9 | background: #f0f0f0 none repeat scroll 0 0; 10 | } 11 | -------------------------------------------------------------------------------- /static/css/friendly-codehilite.css: -------------------------------------------------------------------------------- 1 | .codehilite .hll { background-color: #ffffcc } 2 | .codehilite .c { color: #60a0b0; font-style: italic } /* Comment */ 3 | .codehilite .err { border: 1px solid #FF0000 } /* Error */ 4 | .codehilite .k { color: #007020; font-weight: bold } /* Keyword */ 5 | .codehilite .o { color: #666666 } /* Operator */ 6 | .codehilite .cm { color: #60a0b0; font-style: italic } /* Comment.Multiline */ 7 | .codehilite .cp { color: #007020 } /* Comment.Preproc */ 8 | .codehilite .c1 { color: #60a0b0; font-style: italic } /* Comment.Single */ 9 | .codehilite .cs { color: #60a0b0; background-color: #fff0f0 } /* Comment.Special */ 10 | .codehilite .gd { color: #A00000 } /* Generic.Deleted */ 11 | .codehilite .ge { font-style: italic } /* Generic.Emph */ 12 | .codehilite .gr { color: #FF0000 } /* Generic.Error */ 13 | .codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 14 | .codehilite .gi { color: #00A000 } /* Generic.Inserted */ 15 | .codehilite .go { color: #808080 } /* Generic.Output */ 16 | .codehilite .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 17 | .codehilite .gs { font-weight: bold } /* Generic.Strong */ 18 | .codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 19 | .codehilite .gt { color: #0040D0 } /* Generic.Traceback */ 20 | .codehilite .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 21 | .codehilite .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 22 | .codehilite .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 23 | .codehilite .kp { color: #007020 } /* Keyword.Pseudo */ 24 | .codehilite .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 25 | .codehilite .kt { color: #902000 } /* Keyword.Type */ 26 | .codehilite .m { color: #40a070 } /* Literal.Number */ 27 | .codehilite .s { color: #4070a0 } /* Literal.String */ 28 | .codehilite .na { color: #4070a0 } /* Name.Attribute */ 29 | .codehilite .nb { color: #007020 } /* Name.Builtin */ 30 | .codehilite .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 31 | .codehilite .no { color: #60add5 } /* Name.Constant */ 32 | .codehilite .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 33 | .codehilite .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 34 | .codehilite .ne { color: #007020 } /* Name.Exception */ 35 | .codehilite .nf { color: #06287e } /* Name.Function */ 36 | .codehilite .nl { color: #002070; font-weight: bold } /* Name.Label */ 37 | .codehilite .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 38 | .codehilite .nt { color: #062873; font-weight: bold } /* Name.Tag */ 39 | .codehilite .nv { color: #bb60d5 } /* Name.Variable */ 40 | .codehilite .ow { color: #007020; font-weight: bold } /* Operator.Word */ 41 | .codehilite .w { color: #bbbbbb } /* Text.Whitespace */ 42 | .codehilite .mf { color: #40a070 } /* Literal.Number.Float */ 43 | .codehilite .mh { color: #40a070 } /* Literal.Number.Hex */ 44 | .codehilite .mi { color: #40a070 } /* Literal.Number.Integer */ 45 | .codehilite .mo { color: #40a070 } /* Literal.Number.Oct */ 46 | .codehilite .sb { color: #4070a0 } /* Literal.String.Backtick */ 47 | .codehilite .sc { color: #4070a0 } /* Literal.String.Char */ 48 | .codehilite .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 49 | .codehilite .s2 { color: #4070a0 } /* Literal.String.Double */ 50 | .codehilite .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 51 | .codehilite .sh { color: #4070a0 } /* Literal.String.Heredoc */ 52 | .codehilite .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 53 | .codehilite .sx { color: #c65d09 } /* Literal.String.Other */ 54 | .codehilite .sr { color: #235388 } /* Literal.String.Regex */ 55 | .codehilite .s1 { color: #4070a0 } /* Literal.String.Single */ 56 | .codehilite .ss { color: #517918 } /* Literal.String.Symbol */ 57 | .codehilite .bp { color: #007020 } /* Name.Builtin.Pseudo */ 58 | .codehilite .vc { color: #bb60d5 } /* Name.Variable.Class */ 59 | .codehilite .vg { color: #bb60d5 } /* Name.Variable.Global */ 60 | .codehilite .vi { color: #bb60d5 } /* Name.Variable.Instance */ 61 | .codehilite .il { color: #40a070 } /* Literal.Number.Integer.Long */ 62 | -------------------------------------------------------------------------------- /static/css/terminal.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Terminal style for /try page 3 | * 4 | */ 5 | 6 | .terminal { 7 | background-color: #666666; 8 | border: 1px solid #e0e0e0; 9 | color: #ffffff; 10 | border-radius: 8px 8px 4px 4px; 11 | overflow: hidden; 12 | color: #efefef; 13 | box-shadow: 0px 4px 5px 0px rgba(0,0,0,0.38); 14 | -webkit-box-shadow: 0px 4px 5px 0px rgba(0,0,0,0.38); 15 | -moz-box-shadow: 0px 4px 5px 0px rgba(0,0,0,0.38); 16 | line-height: 24px; 17 | } 18 | 19 | .terminal-header { 20 | text-align: center; 21 | padding: 0; 22 | color: #666666; 23 | font-size: 13px; 24 | border-bottom: 1px solid #e0e0e0; 25 | height: 24px; 26 | /* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#e8e6e8+0,d2d0d2+100 */ 27 | background: #efefef; /* Old browsers */ 28 | background: -moz-linear-gradient(top, #efefef 0%, #d2d0d2 100%); /* FF3.6-15 */ 29 | background: -webkit-linear-gradient(top, #efefef 0%,#d2d0d2 100%); /* Chrome10-25,Safari5.1-6 */ 30 | background: linear-gradient(to bottom, #efefef 0%,#d2d0d2 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ 31 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#efefef', endColorstr='#d2d0d2',GradientType=0 ); /* IE6-9 */ 32 | } 33 | 34 | .terminal-body { 35 | background-color: #111111; 36 | min-height: 200px; 37 | clear: both; 38 | } 39 | 40 | .terminal pre, .terminal code, .terminal input, .terminal textarea { 41 | font-family: Consolas, Menlo, "Courier New", monospace; 42 | font-size: 14px; 43 | line-height: 16px; 44 | } 45 | 46 | pre.terminal-history { 47 | margin: 0px; 48 | padding: 10px; 49 | color: #ffffff; 50 | border: 0px none; 51 | background-color: transparent; 52 | max-height: 480px; 53 | word-wrap: normal !important; 54 | } 55 | 56 | .terminal-prompt { 57 | padding: 0 10px 10px; 58 | color: #98978b; 59 | } 60 | 61 | .terminal-prompt textarea { 62 | border: 0px none; 63 | color: #98978b; 64 | background-color: transparent; 65 | padding: 0px; 66 | width: 100%; 67 | line-height: 120%; 68 | resize: vertical; 69 | } 70 | 71 | .terminal-prompt textarea:focus { 72 | outline: none; 73 | } 74 | 75 | pre.tut { 76 | cursor: pointer; 77 | } 78 | 79 | .terminal .text-comment, 80 | .terminal .text-muted { 81 | white-space: normal; 82 | } 83 | .terminal .text-muted { 84 | color: #c2c5c3; 85 | } 86 | .terminal .text-success { 87 | color: #c0c86d; 88 | } 89 | .terminal .text-danger { 90 | color: #c66363; 91 | } 92 | .terminal .text-sql { 93 | line-height: 100%; 94 | } 95 | 96 | .terminal-bullet { 97 | margin-left: 12px; 98 | } 99 | .terminal-bullet span { 100 | display: inline-block; 101 | width: 12px; 102 | height: 12px; 103 | border-radius: 6px; 104 | margin-right: 2px; 105 | } 106 | .terminal-bullet .bullet-red { 107 | background-color: #FC635E; 108 | } 109 | .terminal-bullet .bullet-yellow { 110 | background-color: #FDBE41; 111 | } 112 | .terminal-bullet .bullet-green { 113 | background-color: #35CD4B; 114 | } 115 | -------------------------------------------------------------------------------- /static/css/zenburn-hljs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/favicon.ico -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/favicon.png -------------------------------------------------------------------------------- /static/fonts/BlenderPro-BoldWeb.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/BlenderPro-BoldWeb.woff -------------------------------------------------------------------------------- /static/fonts/blenderpro-bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-bold-webfont.eot -------------------------------------------------------------------------------- /static/fonts/blenderpro-bold-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-bold-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/blenderpro-bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-bold-webfont.woff -------------------------------------------------------------------------------- /static/fonts/blenderpro-bold-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-bold-webfont.woff2 -------------------------------------------------------------------------------- /static/fonts/blenderpro-thin-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-thin-webfont.eot -------------------------------------------------------------------------------- /static/fonts/blenderpro-thin-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-thin-webfont.ttf -------------------------------------------------------------------------------- /static/fonts/blenderpro-thin-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-thin-webfont.woff -------------------------------------------------------------------------------- /static/fonts/blenderpro-thin-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/fonts/blenderpro-thin-webfont.woff2 -------------------------------------------------------------------------------- /static/images/0816/awesome-to-the-max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/awesome-to-the-max.png -------------------------------------------------------------------------------- /static/images/0816/crate-k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/crate-k8s.png -------------------------------------------------------------------------------- /static/images/0816/crate-k8s2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/crate-k8s2.png -------------------------------------------------------------------------------- /static/images/0816/craties.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/craties.png -------------------------------------------------------------------------------- /static/images/0816/intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/intro.png -------------------------------------------------------------------------------- /static/images/0816/k8s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/k8s.png -------------------------------------------------------------------------------- /static/images/0816/max-cooking.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/max-cooking.jpg -------------------------------------------------------------------------------- /static/images/0816/schwag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/schwag.png -------------------------------------------------------------------------------- /static/images/0816/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0816/setup.png -------------------------------------------------------------------------------- /static/images/0916/logo-packet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0916/logo-packet.png -------------------------------------------------------------------------------- /static/images/0916/packet-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0916/packet-project.png -------------------------------------------------------------------------------- /static/images/0916/packet-servers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/0916/packet-servers.png -------------------------------------------------------------------------------- /static/images/1116/crate-db-recovery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/1116/crate-db-recovery.png -------------------------------------------------------------------------------- /static/images/1116/cratedb-load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/1116/cratedb-load.png -------------------------------------------------------------------------------- /static/images/1216/grafana-cratedb-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/1216/grafana-cratedb-dashboard.png -------------------------------------------------------------------------------- /static/images/1216/paul-adams.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/1216/paul-adams.jpg -------------------------------------------------------------------------------- /static/images/5645e3972a73124134e9e237_hero-job.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/5645e3972a73124134e9e237_hero-job.jpg -------------------------------------------------------------------------------- /static/images/565e0d8d1f8534060fa79589_logo-avuxi-160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/565e0d8d1f8534060fa79589_logo-avuxi-160.png -------------------------------------------------------------------------------- /static/images/565e0daa354b49b24c51b97f_logo-voipstudio-160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/565e0daa354b49b24c51b97f_logo-voipstudio-160.png -------------------------------------------------------------------------------- /static/images/AWS_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/AWS_Logo.png -------------------------------------------------------------------------------- /static/images/Azure_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Azure_Logo.png -------------------------------------------------------------------------------- /static/images/Crash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Crash.png -------------------------------------------------------------------------------- /static/images/Docker_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Docker_logo.png -------------------------------------------------------------------------------- /static/images/GCE_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/GCE_logo.png -------------------------------------------------------------------------------- /static/images/Linux_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Linux_logo.png -------------------------------------------------------------------------------- /static/images/Mac_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Mac_Logo.png -------------------------------------------------------------------------------- /static/images/Windows_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/Windows_Logo.png -------------------------------------------------------------------------------- /static/images/admin_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/admin_ui.png -------------------------------------------------------------------------------- /static/images/amazon-logo-182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/amazon-logo-182.png -------------------------------------------------------------------------------- /static/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/apple-touch-icon.png -------------------------------------------------------------------------------- /static/images/aws-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/aws-logo.png -------------------------------------------------------------------------------- /static/images/blog.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/blog.jpg -------------------------------------------------------------------------------- /static/images/bt-share-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/bt-share-facebook.png -------------------------------------------------------------------------------- /static/images/bt-share-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/bt-share-google.png -------------------------------------------------------------------------------- /static/images/bt-share-linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/bt-share-linkedin.png -------------------------------------------------------------------------------- /static/images/bt-share-mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/bt-share-mail.png -------------------------------------------------------------------------------- /static/images/bt-share-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/bt-share-twitter.png -------------------------------------------------------------------------------- /static/images/cisco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cisco.png -------------------------------------------------------------------------------- /static/images/cloud_admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cloud_admin.png -------------------------------------------------------------------------------- /static/images/cloud_everywhere.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cloud_everywhere.png -------------------------------------------------------------------------------- /static/images/cloud_open-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cloud_open-source.png -------------------------------------------------------------------------------- /static/images/cloud_scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cloud_scale.png -------------------------------------------------------------------------------- /static/images/crate-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/crate-logo.png -------------------------------------------------------------------------------- /static/images/crate-logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/crate-logo_1.png -------------------------------------------------------------------------------- /static/images/culture-drink.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-drink.jpg -------------------------------------------------------------------------------- /static/images/culture-food.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-food.jpg -------------------------------------------------------------------------------- /static/images/culture-gear.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-gear.jpg -------------------------------------------------------------------------------- /static/images/culture-nutrition.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-nutrition.jpg -------------------------------------------------------------------------------- /static/images/culture-sleep.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-sleep.jpg -------------------------------------------------------------------------------- /static/images/culture-sport.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-sport.jpg -------------------------------------------------------------------------------- /static/images/culture-testing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-testing.jpg -------------------------------------------------------------------------------- /static/images/culture-together.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-together.jpg -------------------------------------------------------------------------------- /static/images/culture-wild.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/culture-wild.jpg -------------------------------------------------------------------------------- /static/images/cv-logo-badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/cv-logo-badge.png -------------------------------------------------------------------------------- /static/images/documentation.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/documentation.jpg -------------------------------------------------------------------------------- /static/images/efre_logo_l.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/efre_logo_l.jpg -------------------------------------------------------------------------------- /static/images/efre_logo_s.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/efre_logo_s.jpg -------------------------------------------------------------------------------- /static/images/f-logo-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-facebook.png -------------------------------------------------------------------------------- /static/images/f-logo-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-github.png -------------------------------------------------------------------------------- /static/images/f-logo-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-google.png -------------------------------------------------------------------------------- /static/images/f-logo-linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-linkedin.png -------------------------------------------------------------------------------- /static/images/f-logo-twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-twitter.png -------------------------------------------------------------------------------- /static/images/f-logo-youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/f-logo-youtube.png -------------------------------------------------------------------------------- /static/images/fa-bw-cisco.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-cisco.png -------------------------------------------------------------------------------- /static/images/fa-bw-gigaom-launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-gigaom-launchpad.png -------------------------------------------------------------------------------- /static/images/fa-bw-gigaom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-gigaom.png -------------------------------------------------------------------------------- /static/images/fa-bw-hacker-news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-hacker-news.png -------------------------------------------------------------------------------- /static/images/fa-bw-inventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-inventures.png -------------------------------------------------------------------------------- /static/images/fa-bw-pioneers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-pioneers.png -------------------------------------------------------------------------------- /static/images/fa-bw-sxsw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-sxsw.png -------------------------------------------------------------------------------- /static/images/fa-bw-techcrunch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-bw-techcrunch.png -------------------------------------------------------------------------------- /static/images/fa-cisco-top-15 .png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-cisco-top-15 .png -------------------------------------------------------------------------------- /static/images/fa-gigaom-launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-gigaom-launchpad.png -------------------------------------------------------------------------------- /static/images/fa-gigaom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-gigaom.png -------------------------------------------------------------------------------- /static/images/fa-hacker-news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-hacker-news.png -------------------------------------------------------------------------------- /static/images/fa-inventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-inventures.png -------------------------------------------------------------------------------- /static/images/fa-pioneers-final-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-pioneers-final-8.png -------------------------------------------------------------------------------- /static/images/fa-sxsw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-sxsw.png -------------------------------------------------------------------------------- /static/images/fa-techcrunch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/fa-techcrunch.png -------------------------------------------------------------------------------- /static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/favicon.png -------------------------------------------------------------------------------- /static/images/gigaom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/gigaom.png -------------------------------------------------------------------------------- /static/images/gigaom_launchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/gigaom_launchpad.png -------------------------------------------------------------------------------- /static/images/google-logo-210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/google-logo-210.png -------------------------------------------------------------------------------- /static/images/hackernews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hackernews.png -------------------------------------------------------------------------------- /static/images/hero-bg-about.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-bg-about.jpg -------------------------------------------------------------------------------- /static/images/hero-crates.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-crates.jpg -------------------------------------------------------------------------------- /static/images/hero-docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-docs.png -------------------------------------------------------------------------------- /static/images/hero-front-1440.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-front-1440.jpg -------------------------------------------------------------------------------- /static/images/hero-job.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-job.jpg -------------------------------------------------------------------------------- /static/images/hero-use-cases.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero-use-cases.jpg -------------------------------------------------------------------------------- /static/images/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero.png -------------------------------------------------------------------------------- /static/images/hero_bg_abstract_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hero_bg_abstract_2.jpg -------------------------------------------------------------------------------- /static/images/hittisau.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/hittisau.jpg -------------------------------------------------------------------------------- /static/images/icon-connect-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-connect-app.png -------------------------------------------------------------------------------- /static/images/icon-connect-to-cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-connect-to-cluster.png -------------------------------------------------------------------------------- /static/images/icon-docs@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-docs@2x.png -------------------------------------------------------------------------------- /static/images/icon-home-fast-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-home-fast-x100.png -------------------------------------------------------------------------------- /static/images/icon-home-playswell-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-home-playswell-x100.png -------------------------------------------------------------------------------- /static/images/icon-home-simple-x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-home-simple-x100.png -------------------------------------------------------------------------------- /static/images/icon-import-data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-import-data.png -------------------------------------------------------------------------------- /static/images/icon-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-install.png -------------------------------------------------------------------------------- /static/images/icon-navigation-up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-navigation-up.png -------------------------------------------------------------------------------- /static/images/icon-performance@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-performance@2x.png -------------------------------------------------------------------------------- /static/images/icon-scale-cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-scale-cluster.png -------------------------------------------------------------------------------- /static/images/icon-search@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-search@2x.png -------------------------------------------------------------------------------- /static/images/icon-search@2x_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-search@2x_1.png -------------------------------------------------------------------------------- /static/images/icon-speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-speed.png -------------------------------------------------------------------------------- /static/images/icon-start@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-start@2x.png -------------------------------------------------------------------------------- /static/images/icon-support@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon-support@2x.png -------------------------------------------------------------------------------- /static/images/icon_analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon_analytics.png -------------------------------------------------------------------------------- /static/images/icon_blob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon_blob.png -------------------------------------------------------------------------------- /static/images/icon_document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon_document.png -------------------------------------------------------------------------------- /static/images/icon_restructure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon_restructure.png -------------------------------------------------------------------------------- /static/images/icon_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/icon_search.png -------------------------------------------------------------------------------- /static/images/inventures.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/inventures.png -------------------------------------------------------------------------------- /static/images/lang-erlang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/lang-erlang.png -------------------------------------------------------------------------------- /static/images/lang-java.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/lang-java.png -------------------------------------------------------------------------------- /static/images/lang-perl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/lang-perl.jpg -------------------------------------------------------------------------------- /static/images/lang-php.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/lang-php.png -------------------------------------------------------------------------------- /static/images/lang-python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/lang-python.png -------------------------------------------------------------------------------- /static/images/logo-aws.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-aws.png -------------------------------------------------------------------------------- /static/images/logo-azure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-azure.png -------------------------------------------------------------------------------- /static/images/logo-crate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-crate.png -------------------------------------------------------------------------------- /static/images/logo-gce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-gce.png -------------------------------------------------------------------------------- /static/images/logo-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-google.png -------------------------------------------------------------------------------- /static/images/logo-linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-linux.png -------------------------------------------------------------------------------- /static/images/logo-osx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-osx.png -------------------------------------------------------------------------------- /static/images/logo-packet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-packet.png -------------------------------------------------------------------------------- /static/images/logo-softlayer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-softlayer.png -------------------------------------------------------------------------------- /static/images/logo-tutum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-tutum.png -------------------------------------------------------------------------------- /static/images/logo-ubuntu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-ubuntu.png -------------------------------------------------------------------------------- /static/images/logo-windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo-windows.png -------------------------------------------------------------------------------- /static/images/logo_containership.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_containership.png -------------------------------------------------------------------------------- /static/images/logo_coreos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_coreos.png -------------------------------------------------------------------------------- /static/images/logo_docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_docker.png -------------------------------------------------------------------------------- /static/images/logo_dockercloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_dockercloud.png -------------------------------------------------------------------------------- /static/images/logo_linux.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_linux.png -------------------------------------------------------------------------------- /static/images/logo_windows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/logo_windows.png -------------------------------------------------------------------------------- /static/images/microsoft-logo-210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/microsoft-logo-210.png -------------------------------------------------------------------------------- /static/images/notadev.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/notadev.jpg -------------------------------------------------------------------------------- /static/images/packet-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/packet-project.png -------------------------------------------------------------------------------- /static/images/packet-servers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/packet-servers.png -------------------------------------------------------------------------------- /static/images/pioneers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/pioneers.png -------------------------------------------------------------------------------- /static/images/resilience-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/resilience-status.png -------------------------------------------------------------------------------- /static/images/robert-downey-jr-i-love-you-kisses.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/robert-downey-jr-i-love-you-kisses.gif -------------------------------------------------------------------------------- /static/images/scale_1_node_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/scale_1_node_cluster.png -------------------------------------------------------------------------------- /static/images/scale_2_node_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/scale_2_node_cluster.png -------------------------------------------------------------------------------- /static/images/scale_3_node_cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/scale_3_node_cluster.png -------------------------------------------------------------------------------- /static/images/sequoia-microservices-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/sequoia-microservices-preview.png -------------------------------------------------------------------------------- /static/images/slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/slack.png -------------------------------------------------------------------------------- /static/images/snowsprint_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/snowsprint_bg.jpg -------------------------------------------------------------------------------- /static/images/softlayer-logo-200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/softlayer-logo-200.png -------------------------------------------------------------------------------- /static/images/status_bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/status_bar.png -------------------------------------------------------------------------------- /static/images/sxsw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/sxsw.png -------------------------------------------------------------------------------- /static/images/techcrunch-disrupt-winners.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/techcrunch-disrupt-winners.jpg -------------------------------------------------------------------------------- /static/images/techcrunch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/techcrunch.png -------------------------------------------------------------------------------- /static/images/usecases.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/crate/crate-web/9e595858266aedc67709718a593070129f9b39b1/static/images/usecases.jpg -------------------------------------------------------------------------------- /static/js/modernizr.js: -------------------------------------------------------------------------------- 1 | /* Modernizr 2.7.1 (Custom Build) | MIT & BSD 2 | * Build: http://modernizr.com/download/#-video-touch-shiv-cssclasses-teststyles-prefixes-cssclassprefix:w!mod! 3 | */ 4 | ;window.Modernizr=function(a,b,c){function w(a){j.cssText=a}function x(a,b){return w(m.join(a+";")+(b||""))}function y(a,b){return typeof a===b}function z(a,b){return!!~(""+a).indexOf(b)}function A(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:y(f,"function")?f.bind(d||b):f}return!1}var d="2.7.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={},o={},p={},q=[],r=q.slice,s,t=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["­",'"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},u={}.hasOwnProperty,v;!y(u,"undefined")&&!y(u.call,"undefined")?v=function(a,b){return u.call(a,b)}:v=function(a,b){return b in a&&y(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=r.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(r.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(r.call(arguments)))};return e}),n.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:t(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},n.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c};for(var B in n)v(n,B)&&(s=B.toLowerCase(),e[s]=n[B](),q.push((e[s]?"":"no-")+s));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)v(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" w-mod-"+(b?"":"no-")+a),e[a]=b}return e},w(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=m,e.testStyles=t,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" w-mod-js w-mod-"+q.join(" w-mod-"):""),e}(this,this.document); 5 | /** 6 | * Webflow: Custom tests 7 | */ 8 | Modernizr.addTest('ios', /(ipod|iphone|ipad)/i.test(navigator.userAgent)); 9 | -------------------------------------------------------------------------------- /static/js/terminal.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Licensed to Crate (https://crate.io) under one or more contributor 3 | * license agreements. See the NOTICE file distributed with this work for 4 | * additional information regarding copyright ownership. Crate licenses 5 | * this file to you under the Apache License, Version 2.0 (the "License"); 6 | * you may not use this file except in compliance with the License. You may 7 | * obtain a copy of the License at 8 | * 9 | * http://www.apache.org/licenses/LICENSE-2.0 10 | * 11 | * Unless required by applicable law or agreed to in writing, software 12 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14 | * License for the specific language governing permissions and limitations 15 | * under the License. 16 | * 17 | * However, if you have executed another commercial license agreement 18 | * with Crate these terms will supersede the license and you may use the 19 | * software solely pursuant to the terms of the relevant commercial agreement. 20 | */ 21 | 22 | var Term = function(elem){ 23 | 24 | var prefix = "cr>"; 25 | var statement = ""; 26 | var pfLen = prefix.length + statement.length + 1; 27 | 28 | var _form = elem; 29 | var form = $(elem); 30 | var settings = form.data(); 31 | 32 | var history = $('pre', elem); 33 | var prompt = $('textarea', elem); 34 | 35 | var setStatement = function(text) { 36 | statement = text; 37 | pfLen = prefix.length + statement.length + 1; 38 | prompt.val(prefix + ' ' + text); 39 | prompt[0].setSelectionRange(pfLen, pfLen); 40 | prompt.focus(); 41 | }; 42 | 43 | var addComment = function(text) { 44 | history.append('

' + text + '
'); 45 | }; 46 | 47 | var addErrorResponse = function(text) { 48 | history.append('
' + text + '
'); 49 | }; 50 | 51 | var addSQLResponse = function(res) { 52 | if (res.cols.length == 0) return; 53 | var t = new AsciiTable(); 54 | t.setHeading.apply(t, res.cols); 55 | for (var r = 0; r < res.rows.length; r++) { 56 | var row = res.rows[r].map(function(e){ return typeof e === 'object' ? JSON.stringify(e) : e; }); 57 | t.addRow.apply(t, row); 58 | } 59 | history.append('
' + t.toString() + '
'); 60 | }; 61 | 62 | var addRequest = function(stmt) { 63 | var span = document.createElement('span'); 64 | var sql = document.createTextNode(stmt); 65 | span.appendChild(sql); 66 | hljs.highlightBlock(span); 67 | history.append('
' + prefix + ' ' + span.innerHTML + '
'); 68 | }; 69 | 70 | var execute = function(stmt) { 71 | addRequest(stmt); 72 | $.ajax({ 73 | type: 'POST', 74 | url: settings.host + '/_sql', 75 | headers: { 76 | 'Content-Type': 'application/json', 77 | 'Accept': 'application/json', 78 | 'Origin': 'play.crate.io' 79 | }, 80 | data: JSON.stringify({"stmt": stmt.replace(/;+$/, ''), "args": []}) 81 | }).done(function(response){ 82 | var duration = parseFloat(response.duration) / 1000.0; 83 | addSQLResponse(response); 84 | addComment('OK ('+ duration +'s)'); 85 | }).fail(function(req){ 86 | if (req.responseJSON) { 87 | addErrorResponse(req.responseJSON.error.message); 88 | } else if (req.statusText) { 89 | addErrorResponse(req.statusText); 90 | } 91 | }).always(function(e){ 92 | history[0].scrollTop = history[0].scrollHeight; 93 | _form.reset(); 94 | }); 95 | }; 96 | 97 | var resize = function(elem) { 98 | elem.style.height = 0; 99 | elem.style.height = elem.scrollHeight + 'px'; 100 | }; 101 | 102 | prompt.on('focus', function(e){ 103 | resize(e.target); 104 | }); 105 | 106 | prompt.on('keyup', function(e){ 107 | resize(e.target); 108 | var len = e.target.value.length; 109 | if (len < pfLen) e.target.value = prefix + " "; 110 | if (e.target.selectionStart < pfLen) { 111 | e.target.setSelectionRange(pfLen, pfLen); 112 | } 113 | if (e.keyCode === 13) { 114 | form.submit(); 115 | } 116 | }); 117 | 118 | form.on('submit', function(e){ 119 | e.preventDefault(); 120 | var stmt = e.target.stmt.value.substr(prefix.length+1); 121 | console.info('EXECUTE:', stmt); 122 | execute(stmt); 123 | return false; 124 | }); 125 | 126 | 127 | // Public API 128 | this.setStatement = setStatement; 129 | this.addComment = addComment; 130 | this.exec = function(stmt){ 131 | $('html, body').animate({ 132 | scrollTop: Math.max(form.offset().top - 110) 133 | }, 1000); 134 | execute(stmt); 135 | }; 136 | }; 137 | -------------------------------------------------------------------------------- /templates/article.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} -------------------------------------------------------------------------------- /templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "wf_base.html" %} 2 | 3 | {% block content %} 4 |
5 |
6 |

{% block title %}{{ title }}{% endblock %}

7 |

{% block subline %}{{ subline }}{% endblock %}

8 |
9 |
10 |
11 |
12 |
{% block body %}{{ body }}{% endblock %}
13 |
14 |
15 | {% endblock %} 16 | -------------------------------------------------------------------------------- /templates/base_docs.html: -------------------------------------------------------------------------------- 1 | {% extends "wf_base.html" %} 2 | 3 | {% block content %} 4 |
5 |
6 |
7 | Toggle Doc Menu 8 |
9 |
10 |
11 |
12 | 15 |
16 |
17 |

{% block title %}{{ title }}{% block docs_content %}{% endblock %}{% endblock %}

18 |
{% block body %}{{ body }}{% endblock %}
19 |
20 |
21 |
22 |
23 |
24 |
25 | 27 |
Top 28 |
29 |
Next > 30 |
31 |
32 |
33 |
34 | {% endblock %} 35 | 36 | {% block scripts %} 37 | 74 | {% endblock %} 75 | -------------------------------------------------------------------------------- /templates/faq.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 |
6 |
7 |

{% block title %}{{ title }}{% endblock %}

8 |

{% block subline %}{{ subline }}{% endblock %}

9 |
10 |
11 |
12 |
13 |
14 |
15 | 37 |
38 |
39 |
Category
40 |
41 | {% for tag in tags %} 42 | {{ tag }}{% if not forloop.last %}, {% endif %} 43 | {% endfor %} 44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
{% block body %}{{ body }}{% endblock %}
52 |
53 |
54 |
55 |
56 | Back to topAll FAQ 57 |
58 |
59 | {% endblock %} 60 | -------------------------------------------------------------------------------- /templates/head.html: -------------------------------------------------------------------------------- 1 | {{ title }} | {{ CONFIG.title }} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /templates/includes/interactive_console.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 | 5 | 6 | 7 |
8 |
crate@play.crate.io | crash
9 |
10 |
11 | 12 |
Welcome to the Crate Shell (aka CraSh), hit enter to execute query
13 |
14 | 15 |
16 |
17 |
18 | -------------------------------------------------------------------------------- /templates/install.html: -------------------------------------------------------------------------------- 1 | {% extends "docs.html" %} 2 | 3 | {% block body %} 4 | {% block install_content %} 5 | {% endblock %} 6 | {% endblock %} -------------------------------------------------------------------------------- /templates/post.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 |
6 |
7 |

{% block title %}{{ title }}{% endblock %}

8 |

{% block subline %}{{ subline }}{% endblock %}

9 |
10 |
11 |
12 |
13 |
14 |
15 | 37 |
38 |
39 |
Author
40 |
{{ author }}
41 |
42 |
43 |
Filed under
44 |
45 | {% for tag in tags %} 46 | {{ tag }}{% if not forloop.last %}, {% endif %} 47 | {% endfor %} 48 |
49 |
50 |
51 |
Date
52 |
{{ date|date:"F j, Y" }}
53 |
54 |
55 |
56 |
57 |
58 |
59 |
{% block body %}{{ body }}{% endblock %}
60 |
61 |
62 |
63 |
64 | Back to topAll posts 65 |
66 |
67 | {% endblock %} 68 | -------------------------------------------------------------------------------- /templates/releasenote.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | 4 | {% block content %} 5 |
6 |
7 |

{% block title %}{{ title }}{% endblock %}

8 |

{% block subline %}{{ subline }}{% endblock %}

9 |
10 |
11 |
12 |
13 |
14 |
15 | 37 |
38 |
39 |
Release Date
40 |
{{ date|date:"F j, Y" }}
41 |
42 |
43 |
44 |
45 |
46 |
47 |
{% block body %}{{ body }}{% endblock %}
48 |
49 |
50 |
51 |
52 | Back to topAll FAQ 53 |
54 |
55 | {% endblock %} 56 | -------------------------------------------------------------------------------- /templates/wf_base.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {% block wf_head %}{% include "head.html" %}{% endblock %} 6 | 7 | 8 | 9 | 10 | {% block wf_header %}{% include "wf_header.html" %}{% endblock %} 11 | 12 | 13 | 14 | {% block content %}{{ content }}{% endblock %} 15 | 16 | 17 | 18 | {% block wf_footer %}{% include "wf_footer.html" %}{% endblock %} 19 | 20 | 21 | {% block scripts %} {% endblock %} 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /templates/wf_header.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 16 |
17 |
18 | --------------------------------------------------------------------------------