diff --git a/.metalsmith/client/search.coffee b/.metalsmith/client/search.coffee index ec8c0734f..2167ea586 100644 --- a/.metalsmith/client/search.coffee +++ b/.metalsmith/client/search.coffee @@ -17,6 +17,7 @@ setupSearch = -> # Get the search results element, and use tapir to populate it. jQuery '#search-results' .tapir + 'host': 'http://ulkk65a182f3.leeolayvar.koding.io:3000/search' 'token': '543475ab3493cda4d1000001' 'query_param': 'q' 'summary_limit': 400 diff --git a/.metalsmith/helper b/.metalsmith/helper index 49a99edd6..897939944 100755 --- a/.metalsmith/helper +++ b/.metalsmith/helper @@ -29,10 +29,10 @@ Example Deploy: case "build" cd ./build and set -l cur_br (git branch | sed -n 's/^\* //p') - and test "$cur_br" = "gh-pages" + and test "$cur_br" = "production" and git reset --hard HEAD and git clean -fd - and git pull origin gh-pages + and git pull origin production and cd .. and gulp or begin @@ -56,7 +56,7 @@ Example Deploy: rm -rf ./build and git clone git@github.com:koding/kdlearn build and cd ./build - and git checkout gh-pages + and git checkout production and cd .. or begin set -l err $status diff --git a/.metalsmith/metal.coffee b/.metalsmith/metal.coffee index 0477ef6c2..c8c67dd5e 100644 --- a/.metalsmith/metal.coffee +++ b/.metalsmith/metal.coffee @@ -17,6 +17,7 @@ permalinks = require 'metalsmith-permalinks' templates = require 'metalsmith-templates' aboutSchema = require './plugins/about-schema' authors = require './plugins/authors' +autoDate = require './plugins/autodate' defaultMeta = require './plugins/defaultmeta' descMeta = require './plugins/descriptionMeta' paginate = require './plugins/paginate' @@ -70,10 +71,8 @@ markedRenderer.heading = (text, level) -> # ensure a new paragraph. markedRenderer.blockquote = (quote) -> quoteTypes = - "success": "success fa fa-check-circle" - "warning": "warning fa fa-exclamation-circle" - "error": "error fa fa-exclamation-triangle" - "tip": "tip fa fa-info-circle" + "tip": "tip fa fa-check-circle" + "alert": "alert fa fa-exclamation-circle" # Blocks is the final list of blockquotes that we're going to return blocks = [] @@ -96,7 +95,7 @@ markedRenderer.blockquote = (quote) -> block = block[quoteType.length+1...] # Add back the

that we stole, but ignore the type, since # we don't want that in the final quote for matches - block = "

" + block + block = "

" + quoteType + "" + block # If there was no match for any quoteType, then add back the #

type: that we stole # Note that the zero index (0) wasn't actually split on the type, @@ -144,6 +143,7 @@ module.exports = build = (callback=->) -> highlight: (code, lang) -> lang = [lang] if lang? highlightjs.highlightAuto(code, lang).value + .use autoDate() .use excerpts() .use titleify() .use moment() @@ -183,6 +183,9 @@ module.exports = build = (callback=->) -> .use newPage output: '404' metadata: template: '404.toffee' + .use newPage + output: '404-tag' + metadata: template: '404-tag.toffee' .use snapshot collection: 'faq' .use snapshot collection: 'guide' .use paginateTags diff --git a/.metalsmith/package.json b/.metalsmith/package.json index 01694ba4d..96a4dca57 100644 --- a/.metalsmith/package.json +++ b/.metalsmith/package.json @@ -18,14 +18,14 @@ "metalsmith-drafts": "0.0.1", "js-yaml": "^3.2.2", "marked": "^0.3.2", - "metalsmith": "https://github.com/leeolayvar/metalsmith/tarball/ignores-support", - "metalsmith-collections": "https://github.com/leeolayvar/metalsmith-collections/tarball/fileName", + "metalsmith": "https://github.com/leeola/metalsmith/tarball/ignores-support-kdlearn", + "metalsmith-collections": "https://github.com/leeola/metalsmith-collections/tarball/fileName", "metalsmith-excerpts": "^1.0.0", "metalsmith-ignore": "^0.1.2", "metalsmith-markdown": "^0.2.1", "metalsmith-metadata": "0.0.1", "metalsmith-permalinks": "^0.3.0", - "metalsmith-templates": "^0.5.0", + "metalsmith-templates": "^0.7.0", "moment": "^2.6.0", "sanitize-html": "^1.1.5", "toffee": "^0.1.8" diff --git a/.metalsmith/plugins/autodate.coffee b/.metalsmith/plugins/autodate.coffee new file mode 100644 index 000000000..a9daf356d --- /dev/null +++ b/.metalsmith/plugins/autodate.coffee @@ -0,0 +1,28 @@ +# +# # Autodate +# +# Automatically apply the Unix modified timestamp into the `date` +# variable if not present. +# + + +### +# @param {Object} opts +# @param {Boolean} opts.replaceAll If true, Replace all of the `date` +# values. If false, add `date` values only if it is null. +# @param {Boolean} opts.trimTime Remove the hours/minutes/etc from time +# values if they exist. This is useful to avoid the exact modified time, +# which might be just seconds ago. +### +module.exports = (opts={}) -> + opts.replaceAll ?= false + opts.trimTime ?= true + (files, metalsmith, done) -> + for _, file of files + if not file.date? or opts.replaceAll is true + file.date = new Date file.stats.mtime + if opts.trimTime is true + file.date.setHours 0,0,0,0 + done() + + diff --git a/.metalsmith/plugins/popularapi.coffee b/.metalsmith/plugins/popularapi.coffee index c26f68361..a0313e078 100644 --- a/.metalsmith/plugins/popularapi.coffee +++ b/.metalsmith/plugins/popularapi.coffee @@ -134,7 +134,7 @@ addApiFiles = (files, metalsmith, opts={}, callback) -> # Now add our plain count apis for count, json of api - newFile files, "/api/popular/#{count}.json", + newFile files, "api/popular/#{count}.json", #JSON.stringify json # Temporarily pretty formatted JSON.stringify json, null, 2 @@ -153,7 +153,7 @@ addApiFiles = (files, metalsmith, opts={}, callback) -> # Now add the tag api to the files object for tagName, tApi of api for count, json of tApi - newFile files, "/api/popular/#{tagName}/#{count}.json", + newFile files, "api/popular/#{tagName}/#{count}.json", #JSON.stringify json # Temporarily pretty formatted JSON.stringify json, null, 2 diff --git a/.metalsmith/plugins/recentapi.coffee b/.metalsmith/plugins/recentapi.coffee index d7474f858..74eb933ec 100644 --- a/.metalsmith/plugins/recentapi.coffee +++ b/.metalsmith/plugins/recentapi.coffee @@ -29,7 +29,7 @@ newFile = (files, uri, content) -> null printableFile = (file, opts={}) -> - opts.baseHttp ?= "http://learn.koding.com/" + opts.baseHttp ?= "https://learn.koding.com/" file = title: file.title url: [opts.baseHttp, file.filename].join "" @@ -65,7 +65,7 @@ module.exports = (opts={}) -> # Now add our plain count apis for count, json of api - newFile files, "/api/recent/#{count}.json", + newFile files, "api/recent/#{count}.json", #JSON.stringify json # Temporarily pretty formatted JSON.stringify json, null, 2 @@ -85,7 +85,7 @@ module.exports = (opts={}) -> # Now add the tag api to the files object for tagName, tApi of api for count, json of tApi - newFile files, "/api/recent/#{tagName}/#{count}.json", + newFile files, "api/recent/#{tagName}/#{count}.json", #JSON.stringify json # Temporarily pretty formatted JSON.stringify json, null, 2 diff --git a/.metalsmith/plugins/redirects.coffee b/.metalsmith/plugins/redirects.coffee index f11304715..fb0bf7c83 100644 --- a/.metalsmith/plugins/redirects.coffee +++ b/.metalsmith/plugins/redirects.coffee @@ -24,8 +24,9 @@ module.exports = (opts={}) -> if not rSource? then return done() rDestination = redirects[rSource] + output = if rSource[0] is '/' then rSource[1..] else rSource pageOpts = - output: rSource + output: output metadata: template: opts.template source: rSource diff --git a/.metalsmith/sass/main.scss b/.metalsmith/sass/main.scss index a5e02d43f..e28f627cc 100644 --- a/.metalsmith/sass/main.scss +++ b/.metalsmith/sass/main.scss @@ -74,7 +74,7 @@ body { margin: 0; padding: 0; font-family: 'Open Sans', 'Proxima Nova', 'Helvetica Neue', Helvetica, Arial; - font-size: $normal_font; + font-size: $normal_font; text-rendering: optimizelegibility; line-height: 2; color: $grey; @@ -215,15 +215,15 @@ header { position: absolute; top: 70px; left: 50%; - width: 1000px; - margin-left: -500px; + width: 1090px; + margin-left: -645px; padding: 0; } } } .container { width: 95%; - max-width: 1000px; + max-width: 1090px; margin: 0 auto; position: relative; padding: 0 20px; @@ -250,12 +250,12 @@ blockquote { padding-left: 20px; text-align: left; } -.success, -.error, -.warning, -.tip { +.tip, +.alert { display: block; border-radius: 3px; + border: 1px solid #ededed; + border-left-width: 10px; position: relative; &:before { position: absolute; @@ -270,23 +270,24 @@ blockquote { width: 93%; vertical-align: middle; font-family: 'Open Sans','Proxima Nova','Helvetica Neue',Helvetica,Arial; + .label { + text-transform: uppercase; + display: block; + font-size: 12px; + font-weight: bold; + margin: 2px 0 0; + } } } -.success { +.tip { background-color: #f3f8f3; - border: 1px solid #50af51; + border-left-color: #50af51; + .label { color: #4D844D; } } -.error { +.alert { background-color: #fdf7f7; - border: 1px solid #d9534f; -} -.warning { - background-color: #fcf8f2; - border: 1px solid #f0ad4e; -} -.tip { - background-color: #F7F9FD; - border: 1px solid #4F7BD9; + border-left-color: #d9534f; + .label { color: #CF3F3F; } } dd { padding: 0; @@ -311,7 +312,7 @@ footer.main-footer { border-top: 1px solid $color_gray_nurse_approx; height: auto; .inner-container { - max-width: 1290px; + max-width: 1090px; padding: 0 45px; margin: 0 auto; display: block; @@ -392,27 +393,32 @@ footer.main-footer { h1#logo { margin: 10px 0; } -.hasHeader { - #logo { - span.img { - width: 185px; - } - } -} +// .hasHeader { +// #logo { +// span.img { +// width: 185px; +// } +// } +// } .noHeader { #logo { span.img { - width: 216px; + // width: 185px; + margin-left: 15px; } } + .hiring { + left: 220px; + } } #logo { span.img { display: inline-block; background-image: url(../img/logo.header.png); background-size: 185px; - background-position: center; + background-position: 0; background-repeat: no-repeat; + width: 185px; height: 23px; vertical-align: middle; margin-bottom: 10px; @@ -422,6 +428,33 @@ h1#logo { text-decoration: none; } } +.hiring { + background-color: #F7E747 !important; + border-radius: 3px; + // text-transform: uppercase; + position: absolute; + top: 36px; + left: 205px; + &:before { + content: ''; + top: 6px; + left: -5px; + position: absolute; + width: 0; + height: 0; + border-style: solid; + border-width: 8px 8px 8px 0; + border-color: transparent #f7e847 transparent transparent; + } + a { + color: #535353 !important; + font-size: 12px; + padding: 0 10px; + &:hover { + text-decoration: none; + } + } +} nav { background: $dark-grey; @@ -460,7 +493,7 @@ nav { box-shadow: 0px 0px 0px 5px rgba(0,0,0,0.2); border-radius: 4px; top: 45px; - left: -375px; + left: -355px; z-index: 30; cursor: initial; &:before { @@ -517,6 +550,7 @@ nav { font-size: 12px; line-height: 19px; display: none; + padding-right: 10px; } .sub-icon { display: none; @@ -575,18 +609,21 @@ nav { border-radius: 4px; margin: 14px 0; .searchIcon { - background-image: url(../img/sprite.png); - background-position: -6px -2px; - background-repeat: no-repeat; + // background-image: url(../img/sprite.png); + // background-position: -6px -2px; + // background-repeat: no-repeat; height: 20px; width: 20px; display: block; + font-size: 18px; + text-align: center; + color: $white; } } } .topSearchBox { display: none; - max-width: 1000px; + max-width: 1090px; padding: 0 0 20px 0; margin: 0 auto; position: relative; @@ -1674,6 +1711,7 @@ pre { border-radius: 3px; background-color: $light-grey; overflow: scroll; + line-height: 1.5; } pre code { padding: 0; @@ -1768,6 +1806,7 @@ table { font-size: 13px; font-style: italic; color: $light-grey2; + a { color: $color_4; } } .verbose-guide-list .title { margin: 0; @@ -1932,3 +1971,11 @@ footer.main-footer .cclicense img { color: #a2a2a2; } } + +.tip:before { + color: #50af51; +} + +.alert:before { + color: #d9534f; +} diff --git a/.metalsmith/sass/rwd.scss b/.metalsmith/sass/rwd.scss index 84ea74ae4..293bdc31c 100644 --- a/.metalsmith/sass/rwd.scss +++ b/.metalsmith/sass/rwd.scss @@ -18,14 +18,31 @@ #menu { padding-top: 20px; li { - width: 50%; + width: 55%; display: inline-block; margin-right: 0; padding-bottom: 10px; + .icon { + float: right; + margin-top: 7px; + } } #mobile-menu { display: block; } + > .toplinks { + > li { + .submenu { + width: 280px; + left: -10px; + .column { + width: 100% !important; + min-height: auto; + display: block; + } + } + } + } } } .topSearchBox { @@ -55,6 +72,15 @@ width: 280px; } } + .noHeader #logo span.img { + margin-left: 0; + } + .hiring { + display: none; + } + .container { + max-width: 280px; + } .page { >.container { width: 280px; @@ -151,7 +177,7 @@ } /* Landscape phone to portrait tablet */ -@media (min-width: 480px) and (max-width: 768px) { +@media (min-width: 480px) and (max-width: 768px) { body { background-color: #5c656d !important; background-image: none !important; @@ -208,6 +234,9 @@ width: 400px; } } + .hiring { + display: none; + } .page { >.container { width: 400px; @@ -301,10 +330,3 @@ position: relative; } } - -/* Portrait tablet to landscape and desktop */ -@media (min-width: 768px) and (max-width: 940px) { - - - -} \ No newline at end of file diff --git a/.metalsmith/static/img/logo.header.png b/.metalsmith/static/img/logo.header.png index 2cfe0861c..bd450e438 100644 Binary files a/.metalsmith/static/img/logo.header.png and b/.metalsmith/static/img/logo.header.png differ diff --git a/.metalsmith/static/img/logo.header.svg b/.metalsmith/static/img/logo.header.svg new file mode 100644 index 000000000..558787a27 --- /dev/null +++ b/.metalsmith/static/img/logo.header.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + +University + diff --git a/.metalsmith/templates/404-tag.toffee b/.metalsmith/templates/404-tag.toffee new file mode 100644 index 000000000..1166e5f06 --- /dev/null +++ b/.metalsmith/templates/404-tag.toffee @@ -0,0 +1,18 @@ +#{partial 'head.toffee'} +#{partial 'topnav.toffee'} + +

+ +#{partial 'sidebar.toffee'} + +
+

No guides for this category yet!

+

+ Sorry, no guides have been created for this categoy yet. If you think there's a specific guide you would want to see under this + section then you can always request a new guide by contacting us or checkout how you can contribute one on your own! +

+
+ +
+#{partial 'footer.toffee'} + diff --git a/.metalsmith/templates/404.toffee b/.metalsmith/templates/404.toffee index 119b9c3ac..829ccaba8 100644 --- a/.metalsmith/templates/404.toffee +++ b/.metalsmith/templates/404.toffee @@ -1,9 +1,12 @@ #{partial 'head.toffee'} #{partial 'topnav.toffee'} -
-
-

Page Not Found

+
+ +#{partial 'sidebar.toffee'} + +
+

Page Not Found

The page you requested cannot be found. If you think this is in error, please Contact Us. diff --git a/.metalsmith/templates/faq.toffee b/.metalsmith/templates/faq.toffee index fd984c461..1988b01a8 100644 --- a/.metalsmith/templates/faq.toffee +++ b/.metalsmith/templates/faq.toffee @@ -5,13 +5,13 @@ #{partial 'sidebar.toffee'}

#{title}

#{print contents} diff --git a/.metalsmith/templates/faqs.toffee b/.metalsmith/templates/faqs.toffee index 7b88a7139..0b49dcbc1 100644 --- a/.metalsmith/templates/faqs.toffee +++ b/.metalsmith/templates/faqs.toffee @@ -27,13 +27,13 @@

#{faq.title}

#{print faq.snapshot} diff --git a/.metalsmith/templates/feed.toffee b/.metalsmith/templates/feed.toffee index a09f63bcc..528af5b36 100644 --- a/.metalsmith/templates/feed.toffee +++ b/.metalsmith/templates/feed.toffee @@ -1,9 +1,9 @@ Koding University diff --git a/.metalsmith/templates/footer.toffee b/.metalsmith/templates/footer.toffee index 34125bfaf..f2ca52c92 100644 --- a/.metalsmith/templates/footer.toffee +++ b/.metalsmith/templates/footer.toffee @@ -6,12 +6,13 @@ Community About Legal + Blog @@ -41,6 +42,5 @@ print script for script in scripts #} - diff --git a/.metalsmith/templates/head.toffee b/.metalsmith/templates/head.toffee index 9c4445140..58198813e 100644 --- a/.metalsmith/templates/head.toffee +++ b/.metalsmith/templates/head.toffee @@ -1,9 +1,9 @@ {# @@ -30,10 +30,9 @@ {: :} #} - - - - + + + @@ -50,16 +49,16 @@ #} - + - - - + + + @@ -68,5 +67,7 @@ + + diff --git a/.metalsmith/templates/header.toffee b/.metalsmith/templates/header.toffee index 5a4e1a243..e318b52fd 100644 --- a/.metalsmith/templates/header.toffee +++ b/.metalsmith/templates/header.toffee @@ -3,14 +3,8 @@

What is Koding University?

- Koding reduces setup time from hours to minutes so that you can focus - on learning to code vs installing and configuring packages and frameworks. - Koding accounts come with a VM that has everything pre-installed and ready to go! -

-

- Koding University will get you acquainted with Koding itself as well as some of the popular - technologies that are prevelant today and how you how you can get up and running with them in no time. - Start with the video's below for an overview of Koding or use the links above to dig into other topics. Let the learning begin! + Koding University will get you acquainted with Koding as well as some of the popular technologies that are prevelant today and how you can get up and running with them in no time. + Start with the video below for an overview of Koding or use the links above to dig into other topics. Let the learning begin!

diff --git a/.metalsmith/templates/index.toffee b/.metalsmith/templates/index.toffee index c712c398d..e924d301b 100644 --- a/.metalsmith/templates/index.toffee +++ b/.metalsmith/templates/index.toffee @@ -19,8 +19,8 @@ printVideo = (filename) ->
  • - + href="//www.youtube.com/embed/#{video.videoId}?autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=1"> + @@ -38,7 +38,7 @@ printVideo = (filename) ->
    + href="//www.youtube.com/embed/MZOpD8mdFVc?autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=1"> diff --git a/.metalsmith/templates/page.toffee b/.metalsmith/templates/page.toffee index 2311c8d95..18a857546 100644 --- a/.metalsmith/templates/page.toffee +++ b/.metalsmith/templates/page.toffee @@ -13,7 +13,7 @@

    #{title}

    @@ -35,8 +35,8 @@ {# if videoId? {: @@ -45,14 +45,14 @@
    #{print contents}
    - + #{partial 'guidefooter.toffee'} - +
    - +
  • diff --git a/.metalsmith/templates/search.toffee b/.metalsmith/templates/search.toffee index 987a84524..bd11c60c1 100644 --- a/.metalsmith/templates/search.toffee +++ b/.metalsmith/templates/search.toffee @@ -2,9 +2,11 @@ #{partial 'topnav.toffee', nav: 'hasHeader'}
    diff --git a/.metalsmith/templates/sharrebtns.toffee b/.metalsmith/templates/sharrebtns.toffee index 6a5ba4870..b88b1861f 100644 --- a/.metalsmith/templates/sharrebtns.toffee +++ b/.metalsmith/templates/sharrebtns.toffee @@ -5,7 +5,7 @@ https://developers.facebook.com/docs/opengraph/howtos/maximizing-distribution-media-content/ --> - + @@ -15,9 +15,9 @@
  • - + - + - + - - + - + reddit @@ -55,7 +55,7 @@
  • - + - + email diff --git a/.metalsmith/templates/sitemap.toffee b/.metalsmith/templates/sitemap.toffee index 8ed15be03..221af7cf1 100644 --- a/.metalsmith/templates/sitemap.toffee +++ b/.metalsmith/templates/sitemap.toffee @@ -2,9 +2,9 @@ {# for item in items {: - http://learn.koding.com#{item.link} - #{moment(item.pubDate).format 'YYYY-MM-DD'} - monthly + http://learn.koding.com#{item.link} + #{moment(item.pubDate).format 'YYYY-MM-DD'} + monthly :} #} diff --git a/.metalsmith/templates/topnav.toffee b/.metalsmith/templates/topnav.toffee index 3914ff883..21fe21885 100644 --- a/.metalsmith/templates/topnav.toffee +++ b/.metalsmith/templates/topnav.toffee @@ -10,11 +10,12 @@ else +
    - +
    @@ -80,7 +81,7 @@ else Working with others - Real-time collaboration on Koding + Collaboration on Koding @@ -98,15 +99,15 @@ else
    - Get answers to the most common of questions. Setting up FTP or ssh-ing into your VM, no matter the question you'll find an answer here. + Get answers to the most common questions. E.g. setting up FTP or SSH-ing into your VM. There's a lot of great content here to get you started in the right direction. - If you're a beginner then you should start here. Understand what powers your Koding VM has and how you can perform better to build beter projects. + If you are a beginner then you should start here. Clearly understand what powers your Koding account has and how you can grow your software development and other technical skills. - All the Koding features in one place explained. Since we keep adding ones very often, you should come back here from time to time to see the newly added ones. + All Koding features in one place! Since we keep adding new features often, you should come back here from time to time to see what's new. @@ -114,19 +115,19 @@ else - Learn how you can preview your work and showcase it to potential clients and teammates. + Learn how easy it is to preview your work and showcase it to team members, classmates or clients. - Testing your code is very important. This section contains guides that will help you into writting tests and implementing third-party software to test your apps. + Testing your code is very important. This section contains guides that will help you with writing tests and implementing third-party frameworks to test your code. - When you're finished with an app the next logical step is to deploy it to production. The guides in this section will help you to deploy to the most common deployment platforms. + When you're finished with a project, the next logical step is to deploy it to production. The guides in this section will help you to deploy to the most common cloud platforms. - Many apps require a database to store data. If your app requires data storage and you don't know how to configure a database on your VM, these guides will help you. + Many projects and apps require a database to store data. If your project requires data storage and you don't know how to configure a database on your VM, these guides will help you with the latest database technologies. @@ -134,7 +135,7 @@ else - With the help of the guides in this sections you'll learn how to configure and setup the most popular frameworks and platforms out there. + With the help of the guides in this sections you'll learn how to configure and setup the most popular frameworks and platforms right on your Koding VM. @@ -142,11 +143,11 @@ else - Koding Collaboration allows you to easily and effectively collaborate and share resources with your team, students, peers or friends. + Koding Collaboration allows you to easily and effectively collaborate and share resources with your team, students, peers or friends. Learn how to get started and collaborate in real-time. - Help us grow the Koding University. This section will outline some guideliness for guide submissions to adhere to. + Help us grow Koding University. This section outlines the guidelines for submitting your own articles that can appear on this site. Help educate the community! diff --git a/.metalsmith/templates/videos.toffee b/.metalsmith/templates/videos.toffee index 4fd15b285..ce9e2ebd2 100644 --- a/.metalsmith/templates/videos.toffee +++ b/.metalsmith/templates/videos.toffee @@ -20,8 +20,8 @@ printVideo = (filename, rel="videos") ->
  • - + href="//www.youtube.com/embed/#{video.videoId}?autoplay=1&rel=0&controls=0&showinfo=0&modestbranding=1"> + @@ -43,6 +43,7 @@ printVideo = (filename, rel="videos") -> {# printVideo 'guides/ide-introduction/index.html', 'koding' #} {# printVideo 'guides/terminal-introduction/index.html', 'koding' #} {# printVideo 'guides/chat-introduction/index.html', 'koding' #} + {# printVideo videoId: 'JU9MyMsX5XM', title: 'Add Your Own Machine To Koding', 'koding' #}
  • diff --git a/.metalsmith/vendor/js/jquery.tapir.js b/.metalsmith/vendor/js/jquery.tapir.js index 288a865e7..6a21a8ea0 100644 --- a/.metalsmith/vendor/js/jquery.tapir.js +++ b/.metalsmith/vendor/js/jquery.tapir.js @@ -8,7 +8,8 @@ settings = { token: false, - query_param: 'query' + query_param: 'query', + host: 'http://tapirgo.com/api/1/search.json' }; if (options) { @@ -22,7 +23,7 @@ el.html('
    Searching...
    ') $.getJSON( - 'http://tapirgo.com/api/1/search.json?token=' + settings.token + '&query=' + paramValue(settings.query_param) + '&callback=?', function(data){ + settings.host + '?token=' + settings.token + '&query=' + paramValue(settings.query_param) + '&callback=?', function(data){ if(settings['complete']) { settings.complete(!!data.length, data) } if (!data.length) { el.html('
    No results found
    '); diff --git a/README_1.md b/README_1.md new file mode 100644 index 000000000..75523a892 --- /dev/null +++ b/README_1.md @@ -0,0 +1,18 @@ +# Awesome, you've just made a new workspace! +Workspaces are fantastic for organizing your work. This new workspace, which lives inside the 'Workspaces' folder of your home +directory, is a place where you can store all relevant and related files to a particular project. For example, if you +are working on multiple projects, its nice to have them separated as follows: +-|home dir + -|Workspaces + -| Project 1 + -| Project 2 + -| Project 3 + +Workspaces help keep your projects organized. You can create any number of workspaces. There are no limits. + +Note: A workspace folder is just a regular folder so you can create any number of files and folders inside it. + +As you move back and forth between your workspaces, Koding will remember everything about each workspace. This includes things +like IDE settings, files open, Terminals open, etc. + +Enjoy and Happy Koding! \ No newline at end of file diff --git a/categories.yaml b/categories.yaml index 182067b7f..06261ee70 100644 --- a/categories.yaml +++ b/categories.yaml @@ -6,7 +6,7 @@ ftp : FTP javascript : JavaScript mysql : MySQL nodejs : Node.js -php : PHP +php123 : PHP phpmyadmin : phpMyAdmin postgresql : PostgreSQL pyrocms : PyroCMS diff --git a/faq/change-username.md b/faq/change-username.md index c64f491ad..ec162ed85 100644 --- a/faq/change-username.md +++ b/faq/change-username.md @@ -3,7 +3,9 @@ title: Can I change my Koding username? importance: 4 --- -In short no. Why...? It's because when you first create your account we provision a lot of support services in the background for your account and all of these would need to get updated. This becomes problematic if you have made changes to your VM (even if you have created one file). If you really want to change your username, the only option is to delete your current account and make a new one with the desired username. +In short no. Sorry :( + +Why...? It's because when you first create your account we provision a lot of support services in the background for your account and all of these would need to get updated. This becomes problematic if you have made changes to your VM (even if you have created one file). If you really want to change your username, the only option is to delete your current account and make a new one with the desired username. But ... you can however , change your display name as seen associated with your the bulletin board posts. Just browse to https://koding.com/Account/Profile where you may change "Name" and/or "LastName" as you would like them to appear to other koding users wherever you chat on koding. This quite niftily has the side-effect of changing your nick on all of you past postings instantaneously. Note that this feature does not in any way allow you to be anonymous. Anyone who clicks on your chat nick (whatever it may be at the time) will always see your canonical username in the URL of your profile. diff --git a/faq/delete-account.md b/faq/delete-account.md index 88c6b0488..4734e5eaa 100644 --- a/faq/delete-account.md +++ b/faq/delete-account.md @@ -5,4 +5,4 @@ importance: 4 You do not have to contact Koding support if you wish to delete your account. Simply head over to [Account Settings](https://koding.com/Account/Delete) from where you can easily initiate the deletion process. -It would help us immensly if you can take the quick 3 question survey right after the deletion process ends. It will help us understand why we lost you and how we can improve. +It would help us immensly if you can take the short survey presented on the account deletion screen we can understand why we lost you and how we can improve. diff --git a/faq/inactive-vms/index.md b/faq/inactive-vms/index.md new file mode 100644 index 000000000..af8d029f0 --- /dev/null +++ b/faq/inactive-vms/index.md @@ -0,0 +1,30 @@ +--- +title: Are inactive accounts cleaned up? +importance: 5 +--- + +### How does Koding ensure that the platform is scalable and performant for all users? +We perodically clean up VMs of inactive accounts to ensure that the dormant resources +allocated to these accounts are not a burden for the system. This ensures a "speedy" +Koding for everyone who uses it regularly. + +> type:tip +> Inactive VMs are cleaned up but the account is not itself deleted. Paid account VMs +> are not a part of the cleanup process even if they are unused. + +### The cleanup process +1. If a user has not logged into their account in over 21 days, we send them an email notification +requesting that they confirm their active status by simply logging back into their account. +2. However, if by the 25th day the user is still dormant/inactive, another email is sent but this +time with the notice that the inactive VM will be deleted (along with all the data inside it). +3. On day 30, the dormant VM is deleted permanently. + +This type of cleanup is necessary because with hunderds of thousands of accounts, +we want to ensure that our regular users get the full benefit of the resources of the platform. + +> type:tip +> Even though the VM is terminated, we still keep a record of any referral space you may +> have accumulated when you were an active user so if you return at any point in the future, +> you can reclaim the referral space. + +Maintaining your account is simple, just [log back in](https://koding.com)! diff --git a/faq/kdopen/index.md b/faq/kdopen/index.md new file mode 100644 index 000000000..ca4510a52 --- /dev/null +++ b/faq/kdopen/index.md @@ -0,0 +1,33 @@ +--- +title: Is there a Terminal command to open files in Editor? +importance: 2 +--- + +The `kdopen` command does just that! + +First you need to install `kdopen` using our `kpm` [package manager](http://learn.koding.com/guides/getting-started-kpm/). Type the following command in Terminal to set up the required components for `kdopen`: +``` +kpm install kdbin +``` +> type:tip +> If kpm itself is not installed, you can install it using the command +> `curl -sSL learn.koding.com/kpm.sh | sh` + +Once `kdbin` is installed, you can now type the following command in Terminal +to open a file in the Koding Editor: +``` +kdopen +``` + +`kdopen` supports wildcards so if you type: +``` +kdopen *.html +``` +it will open each file with the extension `.html` (in the current directory) in its own tab on the Editor. + +If you are opening a file that does not exist, `kdopen` will create the file first +and then open it up. The file will be created in the current directory. + +
    + +
    diff --git a/faq/kdopen/kdopen-main.png b/faq/kdopen/kdopen-main.png new file mode 100644 index 000000000..490019297 Binary files /dev/null and b/faq/kdopen/kdopen-main.png differ diff --git a/faq/open-ports.md b/faq/open-ports.md index 8baa2dd54..54174e2d5 100644 --- a/faq/open-ports.md +++ b/faq/open-ports.md @@ -7,6 +7,8 @@ Most Unix ports are available on Koding VMs. We do not block any TCP traffic (inbound or outbound). See the following list for open ports, as well as ports in use by default. - Ports **2** through **65,534** are open. +- Port **22** is taken by SSH. - Port **80** is taken by Apache, but this can be turned off to free up the port. To turn off Apache, type in: `sudo service apache2 stop` in Terminal. +- port **56789** is taken by klient. - Ports **2** through **1,024** require `sudo` access. diff --git a/faq/posting-guidelines.md b/faq/posting-guidelines.md new file mode 100644 index 000000000..539485b89 --- /dev/null +++ b/faq/posting-guidelines.md @@ -0,0 +1,25 @@ +--- +title: Guidelines to keep in mind when sharing on Koding's Activity Feed. +importance: 5 +--- + +### A few basic rules: +1. If your question in of the category “how do I…” then always check Koding University. Chances are high that we have a handy dandy guide for you. +2. Ask your questions in a way that would make it easy for others to answer. (hint: ask the question as if you were trying to answer it). More awesome “question asking techniques” [here](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/). +3. Posts that contain any of these will be mercilessly deleted by the moderators and your account could be banned: + * abusive, racist or derogatory posts + * meaningless posts + * referral links to 3rd party sites +4. If someone answers your question with a relevant answer, be polite and thank them (or go the extra step and “like” them!). +5. We all need to collaborate to keep the Koding community klean. Report any abuse to [abuse@koding.com](abuse@koding.com). Fight back on any abuse! +6. Don’t share private info (email address, phone number, etc.) +7. Use Markdown whenever possible (posting code fragments, links, images, etc.) Our handy Markdown guide can be found [here](http://learn.koding.com/guides/markdown/). Preview your Markdown before posting using the M↓ button. +8. When posting code, only post relevant portions. A good rule of thumb is not to exceed 10-15 lines. +9. Don’t ask for the Koding support team to help via a post here. Instead, hit us up at [support@koding.com](support@koding.com). We monitor that inbox constantly (visualize a Koder positioned like a Hawk, watching that inbox). +10. If you think you can remotely help someone, expert or not, just do it. + +### Tools we recommend: +* For screen grabs: [Monosnap](http://monosnap.com/) +* For posting code: [Gist](https://gist.github.com/) +* For executables: [IDEone](http://ideone.com/) +* For HTML, CSS and JS: [JSFiddle](http://jsfiddle.net/) diff --git a/faq/redeem-referrals/index.md b/faq/redeem-referrals/index.md index 2d9914024..1e7e1674c 100644 --- a/faq/redeem-referrals/index.md +++ b/faq/redeem-referrals/index.md @@ -1,21 +1,52 @@ --- -title: How do I claim storage space earned through referrals? +title: How can I earn & claim additional storage space through referrals? importance: 2 --- -If you have earned extra stroage space on your Koding account as a result of referrals +### Earning free referral space +You can earn up to 500MB per referral on Koding. Earning referrals is as easy as +inviting your friends, colleagues, classmates, students, etc. to join Koding! + +To get started, head over to [Account Settings](https://koding.com/Account/Referral) and +grab your personalized referral link (see location details in the graphic below). +You can then use the easy to use social media share buttons to distribute your personal +referral link or send/share the link directly via your preferred distribution method. + +![referrals](/faq/redeem-referrals/referral.png) + +Each **new** user who signs up and verifies a Koding account earns you 500MB in extra +storage space! Your friend also gets an extra 500MB. It's a win-win! + +**Note:** The maximum storage that can be earned via referrals is 7GB (or 14 referrals) which +means you can grow the storage of your free Koding account to 10GB (3GB default + 7GB earned +through referrals). Referrals can be earned by paid or free accounts. The maximum earned storage +limit is the same for both types. + +> type:tip +> The section below outlines how you can redeem space once you have earned it. Please +> note that redemption can only happen in multiples of whole number GBs. Read more below. + +### Redeeeming your earned referral storage +If you have earned extra storage space on your Koding account as a result of referrals or other offers we've made available to our users, then reclaiming that earned space is now easier than ever. -To add earned space to your VM, head over to VM settings and click the plus sign located +> type:alert +> Before we proceed, please note that referral space can only be claimed in increments of +> whole number GBs. That means if you have referred one person and earned 500MB (0.5GB) then +> you will need to wait until another person signs up using your referral link so that you get to a +> whole number (1GB) of earned space which can then be redeemed by following the process +> outlined below. + +To add earned space to your VM, head over to [VM settings](http://learn.koding.com/guides/understanding-vm-panel/) and click the plus sign located next to the disk size indicator (as shown in the image below). ![disk size indicator](/faq/redeem-referrals/resizedisk.png) -Once you click the plus sign, you will be shown a modal that will allow you to resize +Once you click the plus sign, you will be shown a modal that will allow you to resize your existing disk and add all or some of your earned storage. ![disk resize](/faq/redeem-referrals/resizeaction.png) -> type:warning +> type:alert > If you feel there's an error in your reported earned storage space, please [send us a note](mailto:support@koding.com). diff --git a/faq/redeem-referrals/referral.png b/faq/redeem-referrals/referral.png new file mode 100644 index 000000000..9463dfda0 Binary files /dev/null and b/faq/redeem-referrals/referral.png differ diff --git a/faq/redeem-referrals/resizedisk.png b/faq/redeem-referrals/resizedisk.png index 0138a9570..a8d0aef35 100644 Binary files a/faq/redeem-referrals/resizedisk.png and b/faq/redeem-referrals/resizedisk.png differ diff --git a/faq/reset-password.md b/faq/reset-password.md new file mode 100644 index 000000000..cc92db5b5 --- /dev/null +++ b/faq/reset-password.md @@ -0,0 +1,24 @@ +--- +title: How do I reset my password? +importance: 3 +--- + +### How do I reset the password for my Koding account? +To reset your password, head over to [Account Settings](https://koding.com/Account/Profile). The password change +field is located at the bottom of the Profile tab. + +Once you input the new password, the system will prompt you for the current password before making the change. Once +your password is verified, the password will be changed and you will also receive an email notification letting you +know that your password has been updated. + +### How do I reset my password if I login using GitHub / Twitter / Facebook / Google+ etc.? +If you are logging into Koding using Twitter, Github, Facebook, Google+, etc. then you were not required to set up +a password when you first created your account. In a sitution such as this, follow the steps below to set up your +password: +1. Log out from koding.com +2. Head over to the [password recovery](https://koding.com/Recover) page +3. Enter your email address and the system will send you an email with the link to reset/set your password + +> type:tip +> Even if you set up a password using the steps above, you can still log in using GitHub, Twitter, Facebook, +> Google+, etc. or you can use the new password to log in. Both will work. \ No newline at end of file diff --git a/faq/sidebar-collapse/index.md b/faq/sidebar-collapse/index.md index 2a84acfa8..954052b0c 100644 --- a/faq/sidebar-collapse/index.md +++ b/faq/sidebar-collapse/index.md @@ -7,13 +7,26 @@ Our computer screens come in all shapes and sizes and if you don't have a high r then the amount of space occupied by the VM panel/sidebar and the file tree can be a bit too much. Did you know that both the VM panel/sidebar and file tree can be collapsed? +There are two ways you can collapse the sidebar and filetree. +1. Using collapse icons +2. Double click the panel dividers + +### Using collapse icons +Both the sidebar and the file tree have handy icons that will cause the respective panels to +collapse. The animation below shows how. +![sidebar-2](/faq/sidebar-collapse/sidebar2.gif) + +### Double clicking the panel dividers #### Collapsing/Closing the VM Panel/Sidebar -Double click the dividing column line between the VM panel and file tree and it will collapse +**Double click** the dividing column line between the VM panel and file tree and it will collapse the panel! To expand, click the logo. (see image below for an example). - #### Collapsing/Closing the file tree -Double click the dividing column line between the file tree and the IDE/Terminal and it will collapse +**Double click** the dividing column line between the file tree and the IDE/Terminal and it will collapse the file tree panel! To expand, click the folder icon. (see image below for an example). ![Sidebar Collapse](/faq/sidebar-collapse/sidebar.gif) + +> type:tip +> The sidebar and filetree can only be collapsed when you are in the VM section of Koding. +> They cannot be collapsed when in Channels or Messages. diff --git a/faq/sidebar-collapse/sidebar2.gif b/faq/sidebar-collapse/sidebar2.gif new file mode 100644 index 000000000..1672da7d3 Binary files /dev/null and b/faq/sidebar-collapse/sidebar2.gif differ diff --git a/faq/split-panes/index.md b/faq/split-panes/index.md new file mode 100644 index 000000000..9bcb780d0 --- /dev/null +++ b/faq/split-panes/index.md @@ -0,0 +1,20 @@ +--- +title: How can I split the editor and terminal area? +importance: 4 +--- + +Sometimes one editor or terminal screen is not enough, so just like you can on any code editor and terminal app on your computer, you can also split the editor and terminal areas on Koding to gain more virtual windows. + +The image below shows the first method you can use to split panes. The drop-down menu provides the split options. +![split-1](/faq/split-panes/split-1.png) + +The second (and more fun) method of splitting panes is to use our visual pane splitter as shown in +the animated gif below. + +Simply move your mouse to the center of a pane (horizontal or vertical center) and you will see a animated/visual split bar appear showing you a preview of the split. click to make it permanent! + +
    + +
    + +Have a crazy split screen setup, share it with us on [Twitter](https://twitter.com/home?status=hey%20%40koding,%20here's%20the%20super-awesome%20split%20screen%20setup%20on%20my%20%23koding%20account.)! :) diff --git a/faq/split-panes/split-1.png b/faq/split-panes/split-1.png new file mode 100644 index 000000000..e301a97f6 Binary files /dev/null and b/faq/split-panes/split-1.png differ diff --git a/faq/sudo-password.md b/faq/sudo-password.md index 0c575607b..fe5803065 100644 --- a/faq/sudo-password.md +++ b/faq/sudo-password.md @@ -1,9 +1,16 @@ --- -title: What is my sudo password? +title: What is my sudo/root password? importance: 5 --- -By default, there is no `sudo` password on your Koding VM. It is blank/empty which means that if you want to use `sudo`, all you need to do is as follows: +To switch to the `root` user on your VM, simply type in: +``` +sudo su +``` + +By default, there is no `sudo` password on your Koding VM. It is blank/empty. + +So, if you want to use run a command as the root user, all you need to do is as follows: ``` sudo diff --git a/faq/vm-hostname/first.png b/faq/vm-hostname/first.png index 5ac3782e3..6970b6c62 100644 Binary files a/faq/vm-hostname/first.png and b/faq/vm-hostname/first.png differ diff --git a/faq/vm-hostname/hostname.png b/faq/vm-hostname/hostname.png index 054a411a9..2a908a005 100644 Binary files a/faq/vm-hostname/hostname.png and b/faq/vm-hostname/hostname.png differ diff --git a/faq/vm-hostname/index.md b/faq/vm-hostname/index.md index 7611cea40..16d84f58e 100644 --- a/faq/vm-hostname/index.md +++ b/faq/vm-hostname/index.md @@ -3,29 +3,28 @@ title: What is my VM Hostname/Address/Domain Name? importance: 5 --- -The system assigned name for your VM is available on top of the VM settings panel under the label: *Assigned URL*. -This is not editable. +The system assigned name for your VM is available on VM settings modal under the label: *Assigned URL*. +> type:tip +> This is an assigned name and is not editable. -We realize that most users will probably run into trouble trying to remember our creatively designed VM names -(sorry, we had to make sure they were unique) so Koding VMs can also very easily be assigned a username based -namespace (username.koding.io). This makes it easy to remember the domain name for your VM since it is your +We realize that most users will probably run into trouble trying to remember our creatively designed VM names +(sorry, we had to make sure they were unique) so Koding VMs can also very easily be assigned a username based +namespace (username.koding.io). This makes it easy to remember the domain name for your VM since it is your username! (Note: You can still reach the VM by using the system assigned name as described above.) To assign your username based domain to a VM, follow these 2 easy steps: -1. open the VM settings panel and click on "More" to reveal the domain settings (as -shown in the image below) -2. toggle the switch next to your personal namespace to enable it for this VM. (Note: If you have more than one VM, you will be able to reassign the same namespace on other VM settings panels but only one VM can have the namespace applied to it at any given time.) +1. open the [VM settings modal](http://learn.koding.com/guides/understanding-vm-panel/) and click on the "Domains" tab to reveal the domain settings (as shown in the image below) +2. toggle the switch next to your personal namespace to enable it for this VM. (Note: If you have more than one VM, you will be able to reassign the same namespace on other VM settings modals but only one VM can have the namespace applied to it at any given time.) ![Personal namespace](/faq/vm-hostname/first.png) In addition to this, Koding also allows you to create sub-domains -so that if you want to configure your apache/nginx web server to serve multiple +so that if you want to configure your apache/nginx web server to serve multiple virtual hosts, it's easy to assign them all their own unique sub-domains. [Read more about virtual hosts.](http://www.rackspace.com/knowledge_center/article/how-to-serve-multiple-domains-using-virtual-hosts) -To use this feature, head back to the VM settings panel and follow these 3 easy steps: - -1. click the (+) icon next to the "Domains" label to open up an input box where you can type in a new sub-domain. All you need to provide is the sub-domain, we will add the .username.koding.io part automatically. +To use this feature, head back to the VM settings modal and follow these 3 easy steps: +1. click on the "Domains" tab in the VM settings modal +2. click the "Add new domain" button to open up an input box where you can type in a new sub-domain. All you need to provide is the sub-domain, we will add the .username.koding.io part automatically. ![Add subdomain](/faq/vm-hostname/second.png) -2. once added, these sub-domains become available on the setting panels -of all your VMs for easy reassignment -3. deleting a sub-domain is as easy as adding one! +3. once added, these sub-domains become available on the setting modals of all your VMs for easy reassignment +4. deleting a sub-domain is as easy as adding one! ![Remove subdomain](/faq/vm-hostname/third.png) diff --git a/faq/vm-hostname/second.png b/faq/vm-hostname/second.png index 82c795f8e..6f5551509 100644 Binary files a/faq/vm-hostname/second.png and b/faq/vm-hostname/second.png differ diff --git a/faq/vm-hostname/third.png b/faq/vm-hostname/third.png index 7a42c8d9e..21bb203d0 100644 Binary files a/faq/vm-hostname/third.png and b/faq/vm-hostname/third.png differ diff --git a/faq/vm-ip-vs-address.md b/faq/vm-ip-vs-address.md index d1108c9d6..4a0613d95 100644 --- a/faq/vm-ip-vs-address.md +++ b/faq/vm-ip-vs-address.md @@ -3,12 +3,12 @@ title: Should I use my VM's IP or Address? importance: 4 --- -Koding gives you access to your VMs IP, as well as an Address that +Koding gives you access to your VMs IP, as well as an Address that always points to that VM's IP, so which should you use, and why? -While your VMs IP will operate perfectly fine, the IP is dynamic. In +While your VMs IP will operate perfectly fine, the IP is dynamic. In other words, it will change. Because of this, Koding gives you a [VM -Address][vm address], which will *always* point to your VM, regardless of +Address][vm address], which will *always* point to your VM, regardless of IP changes, so this is what you usually want to use. > type:tip diff --git a/faq/vm-network.md b/faq/vm-network.md new file mode 100644 index 000000000..733ddf774 --- /dev/null +++ b/faq/vm-network.md @@ -0,0 +1,56 @@ +--- +title: How can I monitor network traffic/usage? +importance: 5 +--- + +There are a variety of tools for Ubuntu that you can install on your VM in order to monitor traffic and network usage. Listed below are three of our favorites. +> type:tip +> Before installing any of the tools mentioned below, make sure you update your +> repositories by using the command: `sudo apt-get update` + +1. **nload**: This tool allows users you to monitor the incoming and outgoing traffic separately. It also draws out an ascii graph to indicate the same, the scale of which can be adjusted. Easy and simple to use, and does not support many options. So if you just need to take a quick look at the total bandwidth usage without details of individual processes, then nload will be handy. +To install, type the following command in Terminal: +``` +sudo apt-get install nload -y +``` +and then to run, type: +``` +nload +``` +2. **iftop**: This tool measures the data flowing through individual socket connections, and it works in a manner that is different from Nload. Iftop uses the pcap library to capture the packets moving in and out of the network adapter, and then sums up the size and count to find the total bandwidth under use. Although iftop reports the bandwidth used by individual connections, it cannot report the process name/id involved in the particular socket connection. But being based on the pcap library, iftop is able to filter the traffic and report bandwidth usage over selected host connections as specified by the filter. +To install, type the following command in Terminal: +``` +sudo apt-get install iftop -y +``` +and then to run, type: +``` +sudo iftop -n +``` +3. **iptraf**: This is an interactive and colorful IP Lan monitor. It shows individual connections and the amount of data flowing between the hosts. +To install, type the following command in Terminal: +``` +sudo apt-get install iptraf iptraf-ng -y +``` +and then to run, type: +``` +sudo iptraf +``` +4. **nethogs**: This is a small 'net top' tool that shows the bandwidth used by individual processes and sorts the list putting the most intensive processes on top. In the event of a sudden bandwidth spike, quickly open nethogs and find the process responsible. Nethogs reports the PID, user and the path of the program. +To install, type the following command in Terminal: +``` +sudo apt-get install nethogs -y +``` +and then to run, type: +``` +sudo nethogs +``` +5. **vnstat**: This utility is bit different from most of the other tools. It actually runs a background service/daemon and keeps recording the size of data transfer all the time. Next it can be used to generate a report of the history of network usage. Vnstat is more like a tool to get historic reports of how much bandwidth is used everyday or over the past month. It is not strictly a tool for monitoring the network in real time. +To install, type the following command in Terminal: +``` +sudo apt-get install vnstat -y +``` +and then to run, type: +``` +sudo service start vnstat +``` +Running vnstat without any options would simply show the total amount of data transfer that took place since the date the daemon is running. To monitor the bandwidth usage in realtime, use the `-l` option (live mode). It would then show the total bandwidth used by incoming and outgoing data, but in a very precise manner without any internal details about host connections or processes. diff --git a/faq/vm-poweroff.md b/faq/vm-poweroff.md index b8cad9275..4393436af 100644 --- a/faq/vm-poweroff.md +++ b/faq/vm-poweroff.md @@ -2,9 +2,9 @@ title: How do turn off my my Koding VM? importance: 5 --- -To turn off your VM, we recommend that you use the power on/off toggle in the [VM settings panel](http://learn.koding.com/guides/understanding-vm-panel/). This ensures that all internal API calls are triggered and all Koding services are aware that you have powered down your VM. +To turn off your VM, we recommend that you use the power on/off toggle in the [VM settings modal](http://learn.koding.com/guides/understanding-vm-panel/). This ensures that all internal API calls are triggered and all Koding services are aware that you have powered down your VM. -> type: tip +> type:tip > VMs for our free accounts automatically turn off after 60 minutes of inactivity on our IDE or Terminal > so there's no need to manually turn the VM off. @@ -26,4 +26,4 @@ An unknown error occured, please open a new tab. Click here to dismiss this one. ``` both of the above messages, even though they look like errors are normal because a manual reboot has been requested. -We don't recommend using `sudo poweroff` or `sudo shutdown` to power down your VM as it will leave the associated sub-systems in an unknown state which may disrupt you from using your account. Use the settings panel to stop/turn off your VM. +We don't recommend using `sudo poweroff` or `sudo shutdown` to power down your VM as it will leave the associated sub-systems in an unknown state which may disrupt you from using your account. Use the [VM settings modal](http://learn.koding.com/guides/understanding-vm-panel/) to stop/turn off your VM. diff --git a/faq/vm-reinit/index.md b/faq/vm-reinit/index.md index b4aafdab0..1a06f8bbb 100644 --- a/faq/vm-reinit/index.md +++ b/faq/vm-reinit/index.md @@ -5,28 +5,26 @@ importance: 4 Sometimes, after you're installed a slew of software and things have started to conflict, there's a need to send your VM back to its original state. To achieve that, Koding offers -an easy reinitialization function which you can use at any time you like. +an easy reinitialization function which you can use at any time you like. #### What does reinitialization do? When you reinit your VM, the system will delete everything on your VM and create a new one from -scratch. +scratch. -> type:error +> type:alert > **NOTE: You will lose all existing data (unless you back it up somewhere) on the VM that you are reinitializing. This is an irreversible process so please proceed with caution.** To backup -your data, we recommend you [use FTP](http://learn.koding.com/guides/setting-up-ftp-on-koding/) +your data, we recommend you [use FTP](http://learn.koding.com/guides/setting-up-ftp-on-koding/) to transfer the files. Reinitialization will however preserve your VM settings and any domain names that you may have created. #### How do I reinit my VM? To reinit your VM, follow these easy steps: -1. turn your VM to "on" state -2. head over to the VM settings panel (as shown in the screen shot below) -3. expand the "More" and "Advanced" sections -4. click the "Reinitialize" button inside the Advanced section. +1. head over to the [VM settings modal](http://learn.koding.com/guides/understanding-vm-panel/) (as shown in the screen shot below) +2. turn your VM to "on" state (if it is off) +3. then click on the "Advanced" tab +4. click the "Reinitialize" button inside the Advanced section to begin the reinit process. Once you initiate a reinit, you will see appropriate messages on the screen as your VM rebuilds. - - ![VM Reinit](/faq/vm-reinit/reinit.png) diff --git a/faq/vm-reinit/reinit.png b/faq/vm-reinit/reinit.png index d7c86863f..7d0566aab 100644 Binary files a/faq/vm-reinit/reinit.png and b/faq/vm-reinit/reinit.png differ diff --git a/faq/what-is-koding.md b/faq/what-is-koding.md index 560e5b9b2..d37656800 100644 --- a/faq/what-is-koding.md +++ b/faq/what-is-koding.md @@ -3,10 +3,10 @@ title: What is Koding? importance: 0 --- -Koding is a robust and feature rich cloud-based development environment complete with free VMs, an attractive IDE and sudo level terminal access. Your ideal software development playground! +[Koding](https://koding.com) is a robust and feature rich cloud-based development environment complete with free virtual machines (VMs), an attractive IDE and sudo level terminal access. Your ideal software development playground and everything you need to move your software development to the cloud! A Koding VM has many of the popular software packages and programming languages preinstalled so that you can focus on learning vs installing and configuring. -The Koding platform provides all you need to move your software development to the cloud. You will be up and running in minutes on your own cloud-based Linux boxes where you can learn programming languages like Ruby, Go, Java, NodeJS, PHP, C, C++, Perl, Python…the list goes on! You can experiment with installing, configuring/hacking Wordpress, Laravel, Django, Bootstrap and a slew of others or fire up a MySQL, Mongo, or Postgres server with the click of a button. If clicking buttons is not your thing (yes, we are that way too!) then you also have your favorite vim and emacs right there. +You will be up and running in minutes on your own cloud-based Linux boxes where you can learn programming languages like Ruby, Go, Java, NodeJS, PHP, C, C++, Perl, Python…the list goes on! You can experiment with installing, configuring/hacking WordPress, Laravel, Django, Bootstrap and a slew of others or fire up a MySQL, Mongo, or Postgres server with the click of a button. If clicking buttons is not your thing (yes, we are that way too!) then you also have your favorite vim and emacs right there. -Our collaboration features allow you to pair-program with your friends and colleagues by allowing you to share (in real-time) your web-based IDE, Terminal and white board. All Koding virtual machines come with full root access so you are not hindered in any way. +Our collaboration features allow you to pair-program with your friends and colleagues by allowing you to share (in real-time) your online IDE, Terminal and white board. All Koding virtual machines come with full root access so you are not hindered in any way. -Signing up is easy and free! Leave your localhost behind and step into the future. Code in the cloud! +Say goodbye to localhost! diff --git a/guides/2-factor-auth/2fa-1.png b/guides/2-factor-auth/2fa-1.png new file mode 100644 index 000000000..bf4863ac0 Binary files /dev/null and b/guides/2-factor-auth/2fa-1.png differ diff --git a/guides/2-factor-auth/2fa-2.png b/guides/2-factor-auth/2fa-2.png new file mode 100644 index 000000000..f680c55c2 Binary files /dev/null and b/guides/2-factor-auth/2fa-2.png differ diff --git a/guides/2-factor-auth/index.md b/guides/2-factor-auth/index.md new file mode 100644 index 000000000..0611d61cd --- /dev/null +++ b/guides/2-factor-auth/index.md @@ -0,0 +1,41 @@ +--- +title: Enabling 2-factor authentication on your Koding account +author: Team Koding +categories: [koding features] +--- + +2-factor authentication (2FA) gives your Koding account an added layer of security and protection. Once enabled, +you will be required to provide a verification code along with your password each time you sign in to Koding. + +![2fa-2](2fa-2.png) + +2FA is increasingly become a required standard and many of the leading companies in the world [now support](https://twofactorauth.org/) 2FA. + +### How do I enable 2FA on my Koding account? +To enable 2FA, you will first need to install an app that generates authentication tokens on your phone. We recommend either the Google Authenticator app or Authy. +1. [Download Authy for iPhone](https://itunes.apple.com/en/app/authy/id494168017?mt=8) +2. [Download Authy for Android](https://play.google.com/store/apps/details?id=com.authy.authy&hl=en) +3. [Download Google Authenticator for iPhone](https://itunes.apple.com/us/app/google-authenticator/id388497605?mt=8) +4. [Download Google Authenticator for Android](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2) + +Once you have installed the app, follow these steps to enable 2FA on your Koding account. +> type:tip +> The instructions below are for the Google Authenticator app. Other apps like Authy have a similar workflow. +> If you get stuck somewhere in the setup, you can always [send us an email](support@koding.com). + +1. Log in to your Koding account +2. Go to the 2FA section in [Account Settings](https://koding.com/Account/TwoFactorAuth) +3. Open up the Google Authenticator app on your phone and click the + icon (as shown in the image below) +4. Select "Scan Barcode" +5. Scan the code shown in the Account Settings +6. The Google Authenticator app will add your Koding account to the list and generate a code +7. Enter the code into Account Settings to verify and activate 2FA + +![2FA-1](2fa-1.png) + + + +### How do I disable 2FA on my Koding account? +To disable 2FA, follow these simple steps: +1. visit the 2FA tab in [Account Settings](https://koding.com/Account/TwoFactorAuth) +2. enter your Koding password and click the "Disable" button diff --git a/guides/angularjs-step-by-step.md b/guides/angularjs-step-by-step.md deleted file mode 100644 index f1583219f..000000000 --- a/guides/angularjs-step-by-step.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: AngularJS Step-by-Step Setup -author: Team Koding -date: 2014-03-09 -categories: [frameworks platforms, angularjs, javascript] - -template: page.toffee ---- - -# AngularJS Step-by-Step Setup - -This article is all about AngularJS and how to get you started with it on -[Koding](https://koding.com). - -## AngularJS: What's it all about. - -Everything is dynamic these days, or at least in should be. The age of the static documents is slightly fading away and people like to interact with websites and applications in real-time. Queue frameworks that offer dynamism to web apps. These frameworks offer an endless list of possibilities and give developers free reign over how people interact with their application, in real-time. One of the most popular frameworks these days, that is starting to be approached by more and more developers is AngularJS. AngularJS can be used with any application development workflow due to the fact that it's extensible and because it works well with other libraries. - -## Setting it up on Koding - -Ok, but how can we develop a web application in the cloud and preview the -result a the same time? It's easy, we use [Koding](https://koding.com)! -[Koding's](https://koding.com) built-in preview system enables you to preview -your progress with a single click. It's as simple as 1,2,3. So let's get -started then. First we create a new .html file using the Ace editor app, that -comes pre-installed with [Koding](https://koding.com), or any editor you prefer -or have installed. The next step is to head over to the [AngularJS -website](http://angularjs.org/) and get one of their simple examples. For this -tutorial we're going to use the first tutorial that comes up, a simple "Hello!" -example. We copy that and paste it into our file, the one that we created -earlier. - -```html - - - - - - -
    - - -
    -

    Hello {{yourName}}!

    -
    - - -``` - -We can now save our file and check out the result, by clicking the little -"hamburger" menu in the top right corner of Ace editor and then choose Preview. -The example we got should display nicely. Go ahead and test to see if it -works. Simple and fun! - -And that's it. Why not continue and experiment with AngularJS on -[Koding](https://koding.com) and see what more cool stuff you can -make. As always, more Quick Tips and beginner friendly guides coming -soon, so stay tuned! diff --git a/guides/apache-tomcat-on-koding.md b/guides/apache-tomcat-on-koding.md index 40df96ce2..b03eb269b 100644 --- a/guides/apache-tomcat-on-koding.md +++ b/guides/apache-tomcat-on-koding.md @@ -2,7 +2,6 @@ author: Vinay Jain username: vinayjain title: Apache Tomcat on Koding -date: 2015-03-19 description: 'Running Apache Tomcat On Koding' categories: [frameworks platforms, Java] --- @@ -21,65 +20,65 @@ In this guide we'll take a look on how to deploy Java Web Applications on [Apach Since you are here we assume that you already know what Web Applications are and why do you need [Apache Tomcat](http://tomcat.apache.org/) to run those applications. -> type:warning -> Tomcat doesn't come preinstalled with your VM, so you need do download, install and configure Tomcat manually. +> type:alert +> Tomcat doesn't come preinstalled with your VM, so you need do download, install and configure Tomcat manually. Follow the steps below to get started: Head over to your VM [Terminal](https://koding.com/Terminal), and download Apache Tomcat 7.0 using the `wget` command. - + +``` +wget http://apache.mirrors.hoobly.com/tomcat/tomcat-7/v7.0.55/bin/apache-tomcat-7.0.55.tar.gz ``` -wget http://apache.mirrors.hoobly.com/tomcat/tomcat-7/v7.0.55/bin/apache-tomcat-7.0.55.tar.gz -``` - -If the above link doesn't work, make sure you get the link from Tomcat's official download page. + +If the above link doesn't work, make sure you get the link from Tomcat's official download page. Extract the downloaded file by typing: - + ``` tar -xvzf apache-tomcat-7* -``` +``` Rename the directory for easy access in future. - + ``` mv apache-tomcat-7.0.55 tomcat -``` +``` Now we need to set role and password in `tomcat-users.xml`. Use the command below to edit the tomcat-user.xml file. - + ``` nano apache/conf/tomcat-users.xml ``` - + Add this line just above `` - + ``` ``` -> type:warning +> type:alert > Make sure you replace the `CHOOSE A USERNAME` and `INSERT A PASSWORD HERE` with a desired username and password. Since you already have the Apache server running on your VM on port 80, you must specify another running port for Apache Tomcat. So we will edit the server.xml file now. Use the command below to open it using `nano`. ``` nano apache/conf/server.xml -``` - +``` + Find this line - + ``` -``` - +``` + Change the port number to `8084`. - + Everything is setup now. It's time to run Apache Tomcat. Use the bellow command to achieve this. - + ``` bash tomcat/bin/startup.sh -``` +``` If you see the `Tomcat Started` message, you can now follow a similar url as the bellow one: @@ -95,4 +94,4 @@ Deploy the `.war` file of your Java app to Apache Tomcat and run it. And that's it. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com) +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com) diff --git a/guides/cakephp-for-beginners.md b/guides/cakephp-for-beginners.md index bbf2d42f8..33b206dbb 100644 --- a/guides/cakephp-for-beginners.md +++ b/guides/cakephp-for-beginners.md @@ -1,7 +1,6 @@ --- title: CakePHP Installation for Beginners author: Team Koding -date: 2014-04-01 template: page.toffee categories: [frameworks platforms, php, cakephp] --- @@ -71,4 +70,4 @@ Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostn And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/cassandra-installation-beginners.md b/guides/cassandra-installation-beginners.md index a3122bf96..f936ebd75 100644 --- a/guides/cassandra-installation-beginners.md +++ b/guides/cassandra-installation-beginners.md @@ -1,7 +1,6 @@ --- title: Cassandra installation for beginners author: Team Koding -date: 2015-02-10 categories: [frameworks platforms, cassandra,java,apache] template: page.toffee --- @@ -121,4 +120,4 @@ The result of the above commands should output `Connected to: 'Test Cluster'`. S And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/change-shell.md b/guides/change-shell.md index feab6fdbd..dc0c87f2f 100644 --- a/guides/change-shell.md +++ b/guides/change-shell.md @@ -1,14 +1,13 @@ --- title: How to change your command shell author: Team Koding -date: 2014-11-19 categories: [understanding vm, koding, shell] --- # Changing your default command/login shell Koding VMs, by default, come with [bash](http://www.gnu.org/software/bash/) as the default command shell. There are several alternatives -to bash [out there](http://en.wikipedia.org/wiki/Comparison_of_command_shells) (zsh, fish, csh, tcsh, etc.) and so you may wish to change +to bash [out there](http://en.wikipedia.org/wiki/Comparison_of_command_shells) (zsh, fish, csh, tcsh, etc.) and so you may wish to change your command shell to something other than bash. To change your default command shell, follow these easy steps: ### Set a password for your koding VM user account @@ -17,9 +16,9 @@ Since the user account on your Koding VM's does not have a default password, you sudo passwd ``` Input a password at the prompt and make sure you pick something secure. Going forward, this will be the password for the user account -on your Koding VM. +on your Koding VM. -> type:success +> type:tip > Note: This does not change your Koding.com password. That remain the same. Now type in: diff --git a/guides/change-theme/index.md b/guides/change-theme/index.md index 70f92f459..fc9f59205 100644 --- a/guides/change-theme/index.md +++ b/guides/change-theme/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-10-28 categories: [koding features, koding] --- diff --git a/guides/chat-introduction.md b/guides/chat-introduction.md index 319791c5e..e458c1ca3 100644 --- a/guides/chat-introduction.md +++ b/guides/chat-introduction.md @@ -1,7 +1,6 @@ --- title: Koding Chat Introduction author: Team Koding -date: 2014-10-19 categories: [koding features, koding] videoId: QFSyGuWs00Q --- diff --git a/guides/codeigniter-for-beginners.md b/guides/codeigniter-for-beginners.md index 6623e61fc..dcebe467a 100644 --- a/guides/codeigniter-for-beginners.md +++ b/guides/codeigniter-for-beginners.md @@ -1,7 +1,6 @@ --- title: Codeigniter Installation for Beginners author: Team Koding -date: 2014-01-07 categories: [frameworks platforms, codeigniter, php] template: page.toffee @@ -61,4 +60,4 @@ Koding comes with Apache by default, so Codeigniter _just works_. As you can see, setting up CodeIgniter is a pretty simple process. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/collaboration/index.md b/guides/collaboration/index.md index defa09c15..f00d9edfc 100644 --- a/guides/collaboration/index.md +++ b/guides/collaboration/index.md @@ -1,22 +1,17 @@ --- title: How can I do real-time collaboration on Koding? author: Team Koding -date: 2014-12-05 -categories: [real time collaboration, koding] +categories: [collaboration, koding] improvable: false --- -> type:warning -> This guide is not complete as the Collaboration feature is still under development. If you run into any - issues while using it, please [let us know](mailto:support@koding.com). - ### What is Collaboration? Koding Collaboration allows you to easily and effectively collaborate and share resources with your team, students, peers or friends. When you enable Collaboration, you are effectively sharing your virtual machine (VM) with those whom you invite into the sharing session. The session remains active until you hit "End Session". Every person you share a session with requires a Koding account (free or paid). -> type:error +> type:alert > Since the user(s) with whom you share your session have access to all the files on your VM, make sure that you are sharing with people that you know. ![Collaboration 1](otheruser.png) @@ -45,17 +40,25 @@ Since Koding Collaboration allows you to share your Terminal as well, it's great you are stuck with that shell script and need someone to take a peek. Koding Collaboration also allows you to share a white-board for all those times when a picture is just needed. -### What does "Watch" mode mean? -Watch mode, the default mode, shares your workspace and everyone in that session gets a replica of your +### Options for the host when starting a collaboration session. +When starting a session, the host of the session has the following options available to them: +1.
    **What does "Watch" mode mean?** Watch mode, the default mode, +shares your workspace and everyone in that session gets a replica of your workspace on their screen. So if you open file tabs, new Terminals tabs and even switch tabs, other -sessions participants see it all and their screens also update in real time with these actions. - -When a session participant chooses to "unwatch" your session, it means they are free to do what they +sessions participants see it all and their screens also update in real time with these actions. When a session participant chooses to "unwatch" your session, it means they are free to do what they want on their end of the collaborative session without having to be distracted by the host changing files or opening new tabs. This is very useful when you want to work on a few different files and the users in the session can open files independently on the VM shared by the host yet not distract each other. This is a bit confusing at first but then you'll wonder how else would Collaboration ever happen! +2. **Read-only session** +If this option is enabled then none of the guests can make any changes to your files either +through the editor or the Terminal. The session is essentially "read-only" for them. This is a great +option for teachers to use cause you don't want your student's doing `rm -rf` on your VM! :) +3. **Participants/Guests can mute the host** +In some situations, a host may want to allow guests to mute them, this option provides that +functionality. This is handy when there is no real "host" and someone starts a session for the +group/team but everyone needs equal level of controls over the session. ### What does "Kick" do? This is available to the host if they want to remove someone from a shared session without ending @@ -67,3 +70,32 @@ the session. Generally, we recommend that you exit/close your sessions yourself. However, there are situations when you cannot close/end your session (e.g. browser crash). In such cases, you have up to one (1) minute to reconnect otherwise at the end of a minute, all sessions are auto-terminated. + +### Video collaboration +> type:tip +> Video collaboration will not work on Safari because Safari does not +> support WebRTC which is a requirement for this feature to work. + +### What is video collaboration? +Video collaboration on Koding will allow you to interact live with your friend and colleagues. The +feature uses the camera and mic from your device to send and receive live audio/video with the +users you are collaborating with. If you have ever used Skype or Facetime, then you already know +exactly how this works! + +### How do I start a video collaboration session? +As a host, when you start a collaboration session, you can add video to it by clicking the camera +icon as shown in the image below. + +> type:tip +> Only the host can add video to the collaboration session. + +![video collaboration 1](video-collab-1.png) + +### What controls do I have during a video collaboration session? +If you are in the video session, you have the following handy controls: +1. Mute yourself: clicking this allows you to stop sending audio from you to the other participants in the session. This is handy when you are having a conversation that does not need to be heard by your session participants. +2. Stop video: clicking this allows you to stop sending your video (audio still works) to the other participants in the session. Handy when you've had a bad hair day :) +3. Mute session: clicking this will mute the other participants so that you will not hear them anymore. Handy when you have someone stop by your desk and you need to turn down the conversation from the collaboration session. +4. Leave video: clicking this will end **your** video session but you will **not** be dropping the collaboration session, just the video portion will end. This is handy when you are in a long collaboration session where you don't need to continue to hear/see the session participants but still need to be involved in the session activities. + +![video collaboration 2](video-collab-2.png) diff --git a/guides/collaboration/video-collab-1.png b/guides/collaboration/video-collab-1.png new file mode 100644 index 000000000..b7fa58cc5 Binary files /dev/null and b/guides/collaboration/video-collab-1.png differ diff --git a/guides/collaboration/video-collab-2.png b/guides/collaboration/video-collab-2.png new file mode 100644 index 000000000..38013e0b9 Binary files /dev/null and b/guides/collaboration/video-collab-2.png differ diff --git a/guides/connect-laravel-mysql.md b/guides/connect-laravel-mysql.md new file mode 100644 index 000000000..206ad292f --- /dev/null +++ b/guides/connect-laravel-mysql.md @@ -0,0 +1,69 @@ +--- +title: Connecting Laravel to a MySQL Database +author: Kyle Barney +username: kylebarney +date: 2015-10-27 +description: 'An Introductory Guide to Connecting Your Laravel App to a MySQL database on the Koding platform.' +categories: [laravel, mysql, php] +--- + +#Connecting Laravel 5.1 to a MySQL Database + +##Step 1: Create a MySQL Database and User + +You need to create a MySQL database so that your Laravel application has something to connect to. In order to do this, make sure that you have both MySQL and PHPMyAdmin installed on your Koding VM. You can find the instructions on how to do this [here](http://learn.koding.com/guides/installing-mysql/) and [here](http://learn.koding.com/guides/install-phpmyadmin/). **Make sure that you can access the PHPMyAdmin panel before proceeding.** + +Once you have accessed the PHPMyAdmin control panel, look at the panel on the right-hand side labeled "Database server." The first list item should say: +- Server: Localhost via UNIX socket + +These instructions are written for a database server running on `localhost`. If your database server is located elsewhere, be sure to update that location later on when we update Laravel's `.env` file. (All that being said, `localhost` is the Koding default, so you shouldn't have to change anything here.) + +Once you've verified your database servers's location, we need to complete two more steps before we are ready to connect your Laravel application to MySQL. They are: +1. Create a database +2. Create a user for Laravel to use when it accesses the database + +###Creating a Database in PHPMyAdmin + +On the main PHPMyAdmin page, click the "Databases" button on the main top toolbar. On that screen, enter a name for your database and hit "Create." + +###Creating a User in PHPMyAdmin + +Now click on the "Users" button from the top main toolbar. Under the list of current users you will find a link labeled "Add User." Click that and enter a new username and password combination. For the `Host` field, use the dropdown menu and select `Local`. + +**Make sure to remember the values you entered while creating your user and database. You will need them to tell Laravel where to look for the database as well as give it permission to access it.** + +##Step Two: Connect Laravel to the MySQL Database + +*Prerequisite*: Before your Laravel app can connect to the database you must start up the web server. Navigate to your app's main directory and run the following command: + +`php artisan serve --host=0.0.0.0 --port=8080` + +Your app should now be visible at: `http://KODING_USERNAME.koding.io:8080` + +--- + +In this step you will need to edit the `.env` file included in your Laravel install. It should be located in the main directory by default - not within any subfolders. (Make sure that you have a `.env` file and not just a `.env.example` file. If you are missing the `.env` file, make a copy of the `.env.example` file and rename it as `.env`.) + +The Laravel `.env` file contains a number of configurations that Laravel uses to run your app. The database connection configurations are part of that set. + +In order to connect your Laravel app to MySQL, find the database section of the `.env` file (the fields will all have the prefix `DB`), enter the location of the database server (the Koding default for this should be `localhost`), the name of the database that you created, and the username and password associated with the user that your just created. + +For example, if my database server is localhost, my user is named 'Jim' with a password of "LaravelRocks!", and my database is named "My_Laravel_Database", then the DB section of my .env file should look like this: + +``` +DB_HOST=localhost + +DB_DATABASE=My_Laravel_Database + +DB_USERNAME=Jim + +DB_PASSWORD=LaravelRocks! +``` + +The settings in your .env file need to **exactly** match the server name, user information, and database name set up in PHPMyAdmin, otherwise your connection will fail. + +Once you've entered that information, save the file, go to the command line, and run `php artisan migrate`. You should see a message indicating that the "migration" was successful. (Laravel migrations are beyond the scope of this article, but you can learn more about them [here](http://laravel.com/docs/5.1/migrations) and [here](https://laracasts.com/series/laravel-5-fundamentals/episodes/7). For now, just know that a successful migration means that your Laravel app is successfully communicating with your MySQL database.) + +To see the results of this connection in to your database, return to PHPMyAdmin. There should be two additional tables in the database that you created for your project. + +If you see the new tables, congratulations, you've established a connection between your Laravel app and your MySQL database. If you don't see them, check the `database/migrations` folder in your Laravel install. There should be two files in that folder - one to create a users table and one to create a password resets table. If the files are there but you are still having trouble connecting to your database, review this guide and the [Laravel documentation](http://laravel.com/docs/5.1) to see where you might have made a mistake. diff --git a/guides/connect-with-ssh-windows/index.md b/guides/connect-with-ssh-windows/index.md index bc7d4a068..17f2ca154 100644 --- a/guides/connect-with-ssh-windows/index.md +++ b/guides/connect-with-ssh-windows/index.md @@ -1,7 +1,6 @@ --- title: Connect with SSH from Windows author: Team Koding -date: 2015-03-11 categories: [understanding vm, ssh, windows] template: page.toffee --- @@ -13,7 +12,7 @@ of Koding, to interact with your Koding VM. This is also required if you're inte We are going to be connecting using PuTTY, and we are going to use the terminology "local" to represent the machine that you're connecting to Koding with. -> type:warning +> type:alert > Note that PuTTY can be troublesome. You may want to consider [Cygwin][cygwin] to easily connect with the [Unix instructions][connect-unix]. @@ -29,7 +28,7 @@ to easily connect with the [Unix instructions][connect-unix]. For this connection method, you will need the [PuTTY SSH client suite][putty suite] `putty.exe`, `plink.exe`, and `pageant.exe`. -> type:warning +> type:alert > PuTTY has proven difficult to support due to the UI and ease of checking/configuring PuTTY incorrectly. With that said, we highly recommend using [Cygwin][cygwin], since it offers a real and normal Unix SSH Config. * Copy the text contents of your PuTTY public key. If you are not sure what or where it is, please refer to the **Requirements** section of this guide. @@ -106,12 +105,12 @@ If you're having trouble SSH-ing into your VM, after pasting your SSH key in the And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). [koding]: https://koding.com [putty suite]: http://www.chiark.greenend.org.uk/~sgtatham/putty/ [puttygen]: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html -[puttygen tutorial]: http://katsande.com/using-puttygen-to-generate-ssh-private-public-keys +[puttygen tutorial]: http://sshcontrol.com/help/puttygen_keys [connect-unix]: /guides/ssh-into-your-vm [cygwin]: https://www.cygwin.com/ [tunneling]: /guides/ssh-tunneling diff --git a/guides/connect-your-machine/image1.png b/guides/connect-your-machine/image1.png new file mode 100644 index 000000000..c686cbb9f Binary files /dev/null and b/guides/connect-your-machine/image1.png differ diff --git a/guides/connect-your-machine/image2.png b/guides/connect-your-machine/image2.png new file mode 100644 index 000000000..174989d0a Binary files /dev/null and b/guides/connect-your-machine/image2.png differ diff --git a/guides/connect-your-machine/image3.png b/guides/connect-your-machine/image3.png new file mode 100644 index 000000000..24486843c Binary files /dev/null and b/guides/connect-your-machine/image3.png differ diff --git a/guides/connect-your-machine/image4.png b/guides/connect-your-machine/image4.png new file mode 100644 index 000000000..ac9b1fb61 Binary files /dev/null and b/guides/connect-your-machine/image4.png differ diff --git a/guides/connect-your-machine/image5.png b/guides/connect-your-machine/image5.png new file mode 100644 index 000000000..366acc7e1 Binary files /dev/null and b/guides/connect-your-machine/image5.png differ diff --git a/guides/connect-your-machine/index.md b/guides/connect-your-machine/index.md new file mode 100644 index 000000000..0a780d166 --- /dev/null +++ b/guides/connect-your-machine/index.md @@ -0,0 +1,74 @@ +--- +title: Connect your own machine to Koding +author: Team Koding +categories: [koding features, koding] +template: page.toffee +--- + +### What does "connect your own machine" mean? +This feature allows you to connect your own machine (physical or virtual) to your Koding account so that it will +show up in the sidebar just like a regular Koding VM. This means that once your machine is connected to Koding, +you can open a Terminal and any file on that machine directly from your Koding account! You can even start +[collaboration sessions](http://learn.koding.com/guides/collaboration/)! + +### What types of machines can I connect to my Koding account? +Presently, the following are the requirements for any machine that can be connected to Koding: +1. the machine needs to have a public IP address +2. the machine must be running Ubuntu Linux 13.x or 14.x (support for 15.x is coming) +3. you must have root/sudo access on the system + +In addition to these machine related requirements, you must also ensure that you have the following +ports open (in case you are running a firewall): +1. 80/tcp +2. 56789/tcp + +### How does Koding make this happen? +The steps are outlined below but in a nutshell, what happens is that you download our "Koding Service Connector" +to your machine and this service acts like a "bridge" between your machine and your Koding account. + +### How can I connect my own machine to Koding? +Connecting your machine to Koding is easy, just follow these steps but first make sure that the requirements +stated above are met: +1. Bring up the VMs list dialogue box as shown in the screen shot. +![image1](image1.png) + +2. Click "Add Your Own VM" +![image2](image2.png) + +3. In the dialogue box that appears, copy the install script and run it on your machine +![image3](image3.png) +> type:tip +> Leave the dialogue box open while you run the install script on your machine. This is a +> requirement since we are "listening" for a connection from your machine. Also, make sure +> you have root access to run the install script otherwise it will fail. + +4. The install script will download the necessary software, configure it and install it on your +machine. +![image4](image4.png) + +5. Once the install script is done running on your machine, within a few seconds your machine +should show up in the sidebar. +![image5](image5.png) + +### Are there any limits to how many machines I can connect? +Our free accounts are restricted to one external machine and paid accounts don't have any limits to the number +of machines/VMs they can connect to their Koding account. + +### Video overview +
    + +
    + +### How can I disconnect a machine that I have connected to my Koding account? +To disconnect a machine, simply go over to machine/VM settings and then click the advanced tab. On that tab you will see +the disconnect button. Click the button to disconnect the machine from your Koding account. + +> type:tip +> Note: Disconnecting will just break the connection between Koding and your machine. Your machine will +> still be running and all files will be available on it. + +If you wish to completely uninstall the Koding Connector Service from your machine, simply run this +command on the machine that you had connected: +``` +sudo dpkg -P klient +``` diff --git a/guides/couchdb-installation-for-beginners.md b/guides/couchdb-installation-for-beginners.md index f2695f600..9e5744f22 100644 --- a/guides/couchdb-installation-for-beginners.md +++ b/guides/couchdb-installation-for-beginners.md @@ -1,7 +1,6 @@ --- title: CouchDB installation for beginners author: Team Koding -date: 2015-01-20 categories: [databases, gruntjs] template: page.toffee --- @@ -68,4 +67,4 @@ The output should look like this: And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/domains/index.md b/guides/domains/index.md index a56b64d2b..c94336086 100644 --- a/guides/domains/index.md +++ b/guides/domains/index.md @@ -1,21 +1,22 @@ --- author: Team Koding -date: 2014-09-02 categories: [understanding vm, koding, domain] --- # Custom Domains with your Koding VM -Koding VMs support custom domains as long as your domain provider +Koding VMs support custom domains (for free!) as long as your domain provider supports one of the following record types. - - CNAME Record - A Record -## Find your VM Address +> type:tip +> These record types are the most common and should be supported by 100% of the +> domain providers out there. +## Find your VM Address First, you'll need to find and copy your [VM Address][vm hostname]. To -find this, please refer to [this guide][vm hostname] - But it will look +find this, please refer to [this guide][vm hostname] - it will look something like the address below: ``` @@ -27,17 +28,18 @@ ulkk3a3a4bb3.joshmurray.koding.io Next, you'll need to create and configure either a **CNAME** Record, or an **A Record** with your domain provider. -To configure either of these record types, refer to your providers guides -and create the record type which you prefer. +To configure either of these record types, refer to your provider's guides +and create the record of the type that you prefer. Once you have created the record +on your domain registrar's panel, paste in the VM Address from above to the `Record Value` of +your domain providers DNS panel. This will point your Domain to the Address that the host resolves to. +> type:tip +> You can use either type. There's no difference from our end. -Once you have created it, paste in the VM Address from above to the -Record Value. This will point your Domain to the Address that the host -resolves to. -## The Waiting Game +## The Waiting Game If the record you are creating is new, it should resolve very quickly. If -however, it is an older record you must wait for the cache to expire. +however, it is an older record you must wait for the global cache to expire. This may take anywhere from 5 minutes to 24 hours. If it has not been resolved after a day, ensure that you used the proper @@ -46,17 +48,17 @@ Domain Provider and ensure that they are able to use Addresses rather than IPs in their record values. ## Can I use my VMs IP? - -For technical reasons, free VMs have rotating IPs. After your VM goes +Our free VMs have rotating IPs which means that after your VM goes offline, it is not guaranteed to boot up with the same IP. This means that you **should not** use your VMs IP as the record value if you're **not** using an Always-On VM. -If however your VM is Always-On, an IP should work, as long as your VM is -not shutdown. For more information on Always-On VMs, see the [Pricing -Page][pricing]. - +If you have a paid Koding account and your VM is marked as `Always-On`, +an IP should work, as long as your VM is not shutdown. For more information +on Always-On VMs, see the [Pricing Page][pricing]. +Once you are done pointing your domain to your VM, you can experiment with +pointing multiple domains to the same VM using as described in [this guide](http://learn.koding.com/guides/vhosts-and-subdomains/). [vm hostname]: /faq/vm-hostname [pricing]: https://koding.com/Pricing diff --git a/guides/dropbox-for-file-sync/index.md b/guides/dropbox-for-file-sync/index.md index 44c0733c1..d816510cb 100644 --- a/guides/dropbox-for-file-sync/index.md +++ b/guides/dropbox-for-file-sync/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2015-01-15 categories: [developer tools, koding, dropbox, file sync, file transfer] --- @@ -18,7 +17,7 @@ Also make sure you have an active Dropbox account (free or paid). Run the following command, in your Koding Terminal, to install the necessary dependency: -> type:warning +> type:alert > If you already have Dropbox installed via KPM then you need to run `kpm uninstall dropbox` and then the below command to get the latest version. ``` @@ -64,4 +63,4 @@ To set up selective sync, follow these easy steps: ``` Simply substitute the `/path/to/` above to the actual path to the Dropbox script you downloaded. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/drupal-setup-installation-beginners/index.md b/guides/drupal-setup-installation-beginners/index.md index 2bac93540..4e9de8dde 100644 --- a/guides/drupal-setup-installation-beginners/index.md +++ b/guides/drupal-setup-installation-beginners/index.md @@ -1,7 +1,6 @@ --- title: Drupal Setup and Installation for Beginners author: Thien -date: 2014-07-15 categories: [cms, drupal, php] --- @@ -146,7 +145,7 @@ Return in the Drupal root directory if needed (~/Web in this example). cd ~/Web ``` -Make your own copy of the settings files, to be writed by the Drupal installer (single site install). +Make your own copy of the settings files, to be written by the Drupal installer (single site install). ``` cd sites/default @@ -155,7 +154,7 @@ Make your own copy of the settings files, to be writed by the Drupal installer ( sudo chmod a+w services.yml settings.php ``` -Create the files directory and make it writeable. If you see this error ```Writable (public download method)```, you need to run following code in the command line, on the Drupal directory (~/Web by default). +Create the files directory and make it writable. If you see this error ```Writable (public download method)```, you need to run following code in the command line, on the Drupal directory (~/Web by default). ``` mkdir files diff --git a/guides/elasticsearch-install-for-beginners.md b/guides/elasticsearch-install-for-beginners.md index 9c3f23786..5830b48d4 100644 --- a/guides/elasticsearch-install-for-beginners.md +++ b/guides/elasticsearch-install-for-beginners.md @@ -1,7 +1,6 @@ --- title: Elasticsearch install for beginners author: Team Koding -date: 2015-02-06 categories: [developer tools, elasticsearch] template: page.toffee --- @@ -42,7 +41,7 @@ sudo apt-get install oracle-java7-installer You can check if Java has installed correctly by running `java -version`. -> type:success +> type:tip > All Koding VMs come preinstalled with Java. ## Installing @@ -123,4 +122,4 @@ curl -XPOST 'http://localhost:9200/_shutdown' And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/elixir-on-koding.md b/guides/elixir-on-koding.md index aab82548d..22aece2a4 100644 --- a/guides/elixir-on-koding.md +++ b/guides/elixir-on-koding.md @@ -1,7 +1,6 @@ --- author: Antoine Proulx username: proulxantoine -date: 2014-07-09 categories: [frameworks platforms, elixir] --- @@ -137,4 +136,4 @@ unzip elixir.zip -d ~/lang/elixir And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/emberjs-starting-kit.md b/guides/emberjs-starting-kit.md index 372e67789..8c7425b62 100644 --- a/guides/emberjs-starting-kit.md +++ b/guides/emberjs-starting-kit.md @@ -1,7 +1,6 @@ --- title: "EmberJS: A Starting Kit for Beginners" author: Team Koding -date: 2014-03-02 categories: [frameworks platforms, emberjs, javascript] template: page.toffee diff --git a/guides/emmet/index.md b/guides/emmet/index.md new file mode 100644 index 000000000..72fcbbae3 --- /dev/null +++ b/guides/emmet/index.md @@ -0,0 +1,51 @@ +--- +title: Emmet support in the Koding IDE/Editor +author: Team Koding +categories: [koding features, IDE, koding] +template: page.toffee +--- +### What is Emmet? +Emmet (formerly Zen Coding) is a web-developer’s toolkit that can greatly improve HTML & CSS workflow. +Using Emmet, you can type CSS-like expression that dynamically expand to produce valid HTML/CSS syntax thereby +saving you tons of typing time. + +### How do I use Emmet? +Follow these steps to get a quick taste of Emmet: +1. Make sure Emmet support is turned on in the [Editor/IDE settings](http://learn.koding.com/guides/ide-introduction/) +1. Open up a new file in the Koding Editor/IDE +2. Save the file as a `.html` file by pressing `Cmd+s` or `Ctrl+s` +3. In the first line of the file, type in: +``` +html>head>title>body +``` +and hit the `tab` key. Your abbreviated emmet syntax should automatically expand into: +```html + + + + + + + + +``` +...that was easy! + +You can also do crazy things like: +``` +ul#nav>li.item$*4>a{Item $} +``` +which then expands into: +```html + +``` +As you can see, once you master the emmet syntax, your productivity is vastly improved. + +> type:tip +> A full list of Emmet shortcuts is available [here](http://docs.emmet.io/cheat-sheet/) and +> the full documentation is available [here](http://docs.emmet.io/). diff --git a/guides/enable-php-mail-function.md b/guides/enable-php-mail-function.md index c964b8725..49d9ed336 100644 --- a/guides/enable-php-mail-function.md +++ b/guides/enable-php-mail-function.md @@ -1,7 +1,6 @@ --- title: Enable PHP mail() function author: Team Koding -date: 2014-07-12 categories: [understanding vm, php] template: page.toffee diff --git a/guides/enable-ufw/index.md b/guides/enable-ufw/index.md index a4ea1fdcd..e8a2a09f2 100644 --- a/guides/enable-ufw/index.md +++ b/guides/enable-ufw/index.md @@ -1,13 +1,12 @@ --- title: Making your VM secure using Ubuntu UFW (Uncomplicated Firewall) author: Team Koding -date: 2015-01-08 categories: [understanding vm, koding] template: page.toffee --- # Securing your VM using the built-in (and pre-installed) Ubuntu UFW -> type:error +> type:alert > You should follow the steps in this guide to its entirety otherwise if you enable the firewall and don't finish adding key services like ssh, you may be locked out of your VM. Please proceed with caution. @@ -16,7 +15,7 @@ available when it comes to enabling a firewall on Ubuntu (the operating system t to try any/all of those. For the purposes of this guide, we will focus on the ufw firewall software that is already installed by default on all Koding VMs. -UFW stands for "Uncomplicated Firewall" and is essentially a wrapper around the more complicated iptables firewall. It +UFW stands for "Uncomplicated Firewall" and is essentially a wrapper around the more complicated iptables firewall. It was built to provide an easy interface that is more usable for most users as compared to the more complicated interface that comes with iptables. @@ -56,7 +55,7 @@ if we don't add some specific rules quickly, you may get locked out of your own ## Adding rules to ensure that your Koding VM works just fine even with ufw enabled. Since you are using Koding via a browser, there are services running on your VM that the Koding application -needs to talk to. When you enable the firewall, you essentially are cutting off access to these services so +needs to talk to. When you enable the firewall, you essentially are cutting off access to these services so it is VERY IMPORTANT that you enable the services below as soon as you turn on the firewall. Type in this command to enable ssh access through the firewall @@ -74,7 +73,7 @@ and then add a rule for a specific port that Koding requires ``` sudo ufw allow 56789/tcp ``` -> type:error +> type:alert > If you do not open up the ports mentioned above, then you will be locked out of your VM and will need to send us a support request to have it fixed. ## Allowing access to specific standard services. @@ -117,7 +116,7 @@ sudo ufw status numbered You may see something like: ``` Status: active - + To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere @@ -126,7 +125,7 @@ Status: active [ 4] 22 (v6) ALLOW IN Anywhere (v6) [ 5] 80 (v6) ALLOW IN Anywhere (v6) [ 6] 56789/tcp (v6) ALLOW IN Anywhere (v6) - + ``` Now, simply use the number next to the rule you wish to delete and replace it in the command below: ``` @@ -142,9 +141,9 @@ you will get a confirmation: ``` Resetting all rules to installed defaults. Proceed with operation (y|n)? y ``` -When you hit "y" ufw will backup all existing rules before doing the reset. Resetting the rules will also disable your firewall. +When you hit "y" ufw will backup all existing rules before doing the reset. Resetting the rules will also disable your firewall. ## Help, I locked myself out of my VM If for some reason you enabled your firewall and did not take the steps needed to open up the ports needed for Koding to work, then -your only recourse is to reinit your VM. That process is described in [this guide](http://learn.koding.com/faq/vm-reinit/). If you -encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +your only recourse is to reinit your VM. That process is described in [this guide](http://learn.koding.com/faq/vm-reinit/). If you +encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/freeing-up-space.md b/guides/freeing-up-space.md index b62ec13a6..c452ee3fc 100644 --- a/guides/freeing-up-space.md +++ b/guides/freeing-up-space.md @@ -1,11 +1,14 @@ --- title: How to free up space on a Koding VM author: Team Koding -date: 2015-02-13 categories: [common questions, koding] template: page.toffee --- +> type:tip +> You can get more space by referring your friends and colleagues to Koding! For every +> new referral, you get an extra 500MB. More details [here](http://learn.koding.com/faq/redeem-referrals/). + # How to free up space on a Koding VM This tutorial will cover some basic steps and advanced that will help you clear space on your VM by deleting software packages that you don't need or use. @@ -76,4 +79,4 @@ find / -size +50000 -exec ls -lahg {} \; That should give you plenty to consider for deletion and once you are done deleting, hopefully you can recover storage space on your VM. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/ftp-with-filezilla/filezilla1.png b/guides/ftp-with-filezilla/filezilla1.png new file mode 100644 index 000000000..7273b6e7c Binary files /dev/null and b/guides/ftp-with-filezilla/filezilla1.png differ diff --git a/guides/ftp-with-filezilla/filezilla2.png b/guides/ftp-with-filezilla/filezilla2.png new file mode 100644 index 000000000..be8f0a019 Binary files /dev/null and b/guides/ftp-with-filezilla/filezilla2.png differ diff --git a/guides/ftp-with-filezilla/filezilla3.png b/guides/ftp-with-filezilla/filezilla3.png new file mode 100644 index 000000000..33ce26d42 Binary files /dev/null and b/guides/ftp-with-filezilla/filezilla3.png differ diff --git a/guides/ftp-with-filezilla/filezilla4.png b/guides/ftp-with-filezilla/filezilla4.png new file mode 100644 index 000000000..277fdbb57 Binary files /dev/null and b/guides/ftp-with-filezilla/filezilla4.png differ diff --git a/guides/ftp-with-filezilla/index.md b/guides/ftp-with-filezilla/index.md new file mode 100644 index 000000000..2a11d8868 --- /dev/null +++ b/guides/ftp-with-filezilla/index.md @@ -0,0 +1,61 @@ +--- +title: Using FileZilla to connect to your Koding VM +author: Team Koding +categories: [developer tools, file sync, ftp, file transfer] +--- + +[FileZilla](https://filezilla-project.org/) is a popular FTP client and is widely used +on Windows OS. It's extremely easy to use FileZilla to connect to your VM. This guide +will cover two methods of connecting: +1. Using general connection settings +2. Using a secure connection + +> type:alert +> Before continuing, please ensure that FTP is set up and running on your VM. If you +> have not yet set up FTP, follow the instructions on this [guide](http://learn.koding.com/guides/setting-up-ftp-on-koding/) to set it up before +> proceeding. + +### Setting up a generic connection to your Koding VM using FileZilla. +As the images below show, its very easy to connect to your Koding VM using the standard +username and password that you created while setting up FTP on your VM. + +![pic 1](filezilla1.png) + +![pic 2](filezilla2.png) + +### Setting up a secure FTP connection to your FTP +To have FileZilla connect with your VM using secure (SFTP), you will need to add your +private key(s) to the FileZilla application. You will also need to add your public key +to the `authorized_keys` file on your VM. If you have not yet set up the +`authorized_keys` file in your `.ssh` directory of your VM, then please [read this guide](http://learn.koding.com/guides/ssh-into-your-vm/#adding-to-your-authorized-keys) before continuing. + +> type:alert +> Without setting up the above mentioned file, you will get +> connection errors when connecting over SFTP. + +With your public key added to the `authorized_keys` file, you can now set up +FileZilla with your **private key** and easily connect to your VM. + +Within the FileZilla preferences, find the SFTP section and add your **private key** as +shown in the image below. + +![pic 3](filezilla3.png) + +Once the file is accepted by FileZilla, you can go back to the host setup and change the settings +to connect using SFTP (as shown in the image below). + +![pic 4](filezilla4.png) + +### Connection errors and how to fix them +If you get the error below while trying to connect, please check your public and private keys. +SSH key setup is very temperamental and even an extra space or line break can render the keys useless +which in turn will cause connection problems. +``` +Status: Connecting to your_koding_username.koding.io... +Response: fzSftp started, protocol_version=2 +Command: keyfile "path_to_your_key_file" +Command: open "xxxxxxx@your_koding_username.koding.io" 22 +Command: Trust new Hostkey: Once +Error: Disconnected: No supported authentication methods available (server sent: publickey) +Error: Could not connect to server +``` diff --git a/guides/general-htaccess.md b/guides/general-htaccess.md index 585bbd4a5..440fb643a 100644 --- a/guides/general-htaccess.md +++ b/guides/general-htaccess.md @@ -1,7 +1,6 @@ --- title: General .htaccess author: Team Koding -date: 2014-02-02 categories: [understanding vm, apache] template: page.toffee diff --git a/guides/getting-started-angularjs.md b/guides/getting-started-angularjs.md new file mode 100644 index 000000000..2c0e494f9 --- /dev/null +++ b/guides/getting-started-angularjs.md @@ -0,0 +1,128 @@ +--- +title: Getting Started with AngularJS +author: Team Koding +categories: [frameworks platforms, angularjs, javascript] + +template: page.toffee +--- + +# Getting Started with AngularJS + +## Introduction + +[AngularJS](http://angularjs.org/) is a Javascript framework that extends HTML to create interactive applications. +In contrast to other frameworks, AngularJS does not require additional code to manipulate the HTML elements to obtain data and update the user interface. +It provides extended HTML tags, known as directives, that developers can bind to Javascript variables and data structures. + +This tutorial presents how to create and preview an AngularJS application on [Koding](https://koding.com). + +## A first application in AngularJS + +AngularJS is a Javascript Framework. +To use it, it is necessary to reference the corresponding script in the HTML document. +You can reference a local copy of the AngularJS script in your machine or a remote copy located in some CDN server in the internet. +For instance, instead of using a local copy of AngularJS, you can reference the library in the Google APIs CDN using the following HTML code: + +```html + +``` + +Once referenced the AngularJS script, it is necessary to indicate which part of the HTML document must be processed by the framework. +Basically, it is necessary to define an `ng-app` attribute to indicate the HTML element that contains the application. +For instance, if all the HTML document includes elements that must be processed by AngularJS, you can include the `ng-app` attribute in the root HTML tag. + +```html + + + + + + +``` + +Inside the element with the `ng-app` attribute, the HTML tags become dynamic elements that can be bounded to Javascript variables and data structures. +These variables, known as the model, will be updated automatically when the user interacts with the HTML elements. +For instance, it is possible to define a text box that updates automatically a variable using the `ng-model` attribute. +The following HTML code defines a text box with a binding to a variable named `yourName`: + +```html + +``` + +The value of the variables in the model can be presented in the user interface using expressions. +For instance, the following expression presents to the user the value in `yourName`: + +```html +{{yourName}} +``` + +Each time the user enters data into the text box, the variable `yourName` in the model is updated. +In addition, each time the variable `yourName` in the model is modified, the user interface is updated automatically. +This behaviour is known as double-binding: the view is bounded to the model, and the model is bounded to the view. + + +## Implementing the application in Koding + +Using the concepts explained above, it is possible to create a simple application where the user can enter some data and the user interface is updated accordingly. + +To create the application and use the preview options in Koding, it is necessary to create the project under the `Web` folder. +You can create the project folder using the following commands: + +``` +cd Web +mkdir your_project +cd your_project +``` + +Then, you may create an HTML file with the application. +If you have installed the [`kdopen`](http://learn.koding.com/faq/kdopen/) command, you can create the file using the following command: + +``` +kdopen index.html +``` + +> type:tip +> You can create the folders and files using the Koding user interface instead of the Terminal. + +Then, you can enter the code for the application using the Koding editor. +For instance, the code for a simple AngularJS application is the following: + +```html + + + + + + +
    + + +
    +

    Hello {{yourName}}!

    +
    + + +``` + +You can now save the file and check out the result. +To [preview the app](http://learn.koding.com/categories/previewing/), you can use the "Preview" option in the drop down menu of each editor tab. +In addition, you can use the `Ctrl(Cmd) + Alt + P` keyboard shortcut. +This will open a new browser tab and show you a preview of the application. + +## Further information + +AngularJS is a framework aimed to create large applications. +It supports, not only the double-binding, but also the definition of controllers, services and custom directives, among others. +The [Made with Angular website](https://www.madewithangular.com/) maintains a showcase of interesting Angular applications. +More information can be found in the [AngularJS website](http://angularjs.org/). +There are some free tutorials in the [CodeSchool](http://campus.codeschool.com/courses/shaping-up-with-angular-js/intro), the [Codecademy](https://www.codecademy.com/en/courses/learn-angularjs) and the [w3schools](http://www.w3schools.com/angular/default.asp) websites. + +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/getting-started-biicode.md b/guides/getting-started-biicode.md index 276fef81a..d73712bae 100644 --- a/guides/getting-started-biicode.md +++ b/guides/getting-started-biicode.md @@ -1,11 +1,9 @@ --- author: drodri username: drodri -date: 2014-10-02 categories: [first program, C/C++] --- - # Building C / C++ applications with biicode Building larger applications can be somewhat difficult and cumbersome to the newbie. @@ -16,33 +14,35 @@ We will be using in the following examples [biicode][biicode], which is a depend that allows to easily retrieve existing code and also manages to automatically generate build files for your project. -You can install it running from your [terminal][terminal]: +## Install biicode +You can install it running from your [terminal][terminal]: ``` $ wget http://apt.biicode.com/install.sh && chmod +x install.sh && ./install.sh ``` -After it finish, you can run a helper command that install an updated version of CMake: +After it finishes, you can run a helper command that install an updated version of CMake: ``` $ bii setup:cpp ``` -Lets build an application that computes the SHA1 of a string. Usually you dont want to write +## Build you application + +Lets build an application that computes the SHA1 of a string. Usually you don't want to write yourself such algorithm, but rather use an existing implementation. -The following commands will create a project and a "Hello world" file, which you can build and -run: +### Create a project + +Create a simple project: ``` -$ bii init cryptoproject -$ cd cryptoproject -$ bii new myuser/crypto --hello=cpp -$ bii cpp:build -$ ./bin/myuser_crypto_main -Hello world! +$ bii init mycppcrypto -L +$ cd my_cpp_project ``` -Now replace the contents of the "main.cpp" file inside the blocks/myuser/crypto folder with: +Now you are inside a new block called "mycppcrypto". Let's place some code in! + +Create a new *main.cpp* file and place the code below: ``` #include "cryptopp/cryptopp/sha.h" @@ -60,31 +60,50 @@ int main() { std::cout << hash << std::endl; } ``` +### Manage your dependencies If you now try to build this example, it will fail. You can try to do so, and then check -your dependencies: +your dependencies with **bii deps**: + ``` -$ bii cpp:build +$ bii build +$ ... #ERROR $ bii deps + user/mycppcrypto depends on: + system: + iostream + string + unresolved: + cryptopp/cryptopp/filters.h + cryptopp/cryptopp/hex.h + cryptopp/cryptopp/sha.h ``` -The code depends on some external code, the Crypto++ library. This can be easily retrieved -with the "find" command +The code depends on some external code, the Crypto++ library. With **bii find** command biicode will easily retrieve dependencies: ``` $ bii find +... +INFO: All dependencies resolved +Find resolved new dependencies: + cryptopp/cryptopp: 8 +INFO: Saving files from: cryptopp/cryptopp ``` +### Build the project Now you can build and run it: + ``` -$ bii cpp:build +$ bii build $ ./bin/myuser_crypto_main F7FF9E8B7BB2E09B70935A5D785E0CC5D9D0ABF0 ``` - +That is the encryption code for the "hello" string! For further examples, you can have a look to the [biicode C/C++ documentation][biicodedocs] and the -[examples][biicodeexamples] +[examples][biicodeexamples]. + +Got any doubts using biicode in your projects? Do not hesitate to [contact us][contact-us] or visit our [forum][forum]. We're available at [Stackoverflow tag][stackoverflow] too. @@ -95,4 +114,6 @@ For further examples, you can have a look to the [biicode C/C++ documentation][b [biicode]: https://www.biicode.com/ [biicodedocs]: http://docs.biicode.com/c++.html [biicodeexamples]: http://docs.biicode.com/c++/examples.html - +[stackoverflow]: http://stackoverflow.com/questions/tagged/biicode +[contact-us]: http://web.biicode.com/contact-us/ +[forum]: http://forum.biicode.com/ \ No newline at end of file diff --git a/guides/getting-started-c-cpp.md b/guides/getting-started-c-cpp.md index 1b82ae719..66668603d 100644 --- a/guides/getting-started-c-cpp.md +++ b/guides/getting-started-c-cpp.md @@ -1,7 +1,6 @@ --- author: drodri username: drodri -date: 2014-10-02 categories: [first program, C/C++] --- diff --git a/guides/getting-started-clojure.md b/guides/getting-started-clojure.md new file mode 100644 index 000000000..daf6b9e9a --- /dev/null +++ b/guides/getting-started-clojure.md @@ -0,0 +1,76 @@ +--- +author: Jajati K. Sahoo +username: jp0d +categories: [frameworks platforms, clojure] +--- + + +# Getting Started with Clojure + +In this guide we'll introduce Clojure and how to write your first program +in Koding. + +Clojure is a functional programming language that features a concise syntax, +elegant concurrency support. The best feature of this language is it's ability +to compile into Java byte code and running it on the standard JVM. + +## Setting up Clojure + +Clojure is written in Java and is available in the form of a Jar file. To use +the Clojure interpreter, one must download it from the maven repository below. +The below command will download Clojure in the current directory. + +$ curl -O -J -L http://repo1.maven.org/maven2/org/clojure/clojure/1.6.0/clojure-1.6.0.zip + +If the link doesn't work, please take the latest Maven repository from +Clojure website. + +## The Clojure Shell or the REPL + +To enter the Clojure shell or REPL, execute the following command from the [Terminal][terminal]. +To be able execute the following you must have a valid JRE in your VM. + +```clojure +$ java -cp clojure-1.6.0.jar clojure.main +Clojure 1.6.0 +user=> (+ 10 10) +20 +``` + +## Creating a shortcut for Clojure. + +If you wish to create a shortcut to the Clojure shell, you can create a small script and put it +in the `~/bin` directory. You could name the script `cloj.sh` and put the following content +there. + +```sh +#!/bin/bash + +java -cp /home/your_user_name/clojure-1.6.0/clojure-1.6.0.jar clojure.main +``` + +Then use the following command to make it executable. +```sh +chmod +x ~/bin/cloj.sh +``` + +To access the Clojure shell, you can type `$ cloj.sh` command anywhere from the [Terminal][terminal]. + +## Install [Lein](http://leiningen.org/) +`Lein` is the build tool for Clojure. It creates the project structure and builds your +Clojure application. The following steps may be used to install Lein. + +- First download the `lein` application using the following command in your ~/bin directory. + +```sh +curl -O -L -J https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein +``` +- Make it executable using the command `chmod +x ~/bin/lein` +- Run the `lein` program from [Terminal][terminal]. It'll download itself. + +[koding]: https://koding.com +[ace]: https://koding.com/Ace +[terminal]: https://koding.com/Terminal +[lein]: http://leiningen.org/ + + diff --git a/guides/getting-started-drupal8-beta.md b/guides/getting-started-drupal8-beta.md index 7fae728bc..692b0cbf4 100644 --- a/guides/getting-started-drupal8-beta.md +++ b/guides/getting-started-drupal8-beta.md @@ -1,7 +1,6 @@ --- author: Nik LePage username: NikLP -date: 2014-10-02 categories: [cms, drupal] --- @@ -93,7 +92,7 @@ Save yourself a few seconds by doing the usual copying of settings.php and set p sudo chown myuser:www-data files # NB this is server/user specific! chmod 0775 files -> type:warning +> type:alert > You need to change these permissions back to something more sane afterwards… 0644 and 0775 seem to be ok, but I’m open to abuse on the matter.) And you’re off! To open your VM in a browser, click the ellipsis next to your VM name (probably koding-vm-0) and then the VM name to open the site in a new tab, and follow the usual Drupal installer instructions! NB If you're a developer, you might want to check out Webchick's setup video from Drupalcon AMS: http://www.youtube.com/watch?v=wKdU2Q1NIZQ diff --git a/guides/getting-started-expressjs.md b/guides/getting-started-expressjs.md index 8bdd67368..8fd0de89e 100644 --- a/guides/getting-started-expressjs.md +++ b/guides/getting-started-expressjs.md @@ -1,39 +1,38 @@ --- author: Team Koding -date: 2014-08-02 categories: [frameworks platforms, nodejs, javascript] --- # Getting Started with ExpressJS -In this guide we will go over basic usage of the NodeJS web framework, -ExpressJS. If you are not familiar with NodeJS, please review the -[Getting Started with NodeJS][gettingstartednode] guide. Lets get +In this guide we will go over basic usage of the NodeJS web framework, +ExpressJS. If you are not familiar with NodeJS, please review the +[Getting Started with NodeJS][gettingstartednode] guide. Lets get started! ## Installing -First, make a directory to follow along with this tutorial, and work from -in that directory. Next, we're going to install Express with the +First, make a directory to follow along with this tutorial, and work from +in that directory. Next, we're going to install Express with the following command. ``` npm install express ``` -If you already have a `package.json` file for your project, you can add -the `--save` flag and Express will be added as a project dependency. In +If you already have a `package.json` file for your project, you can add +the `--save` flag and Express will be added as a project dependency. In this example we're going to ignore dependencies for simplicity. -You'll notice a new directory is created named `node_modules`. This is -where the local installations of your packages are stored. When you -import them, such as with `require('express')`, they are loaded from this +You'll notice a new directory is created named `node_modules`. This is +where the local installations of your packages are stored. When you +import them, such as with `require('express')`, they are loaded from this directory. ## Hello World and Routes -Copy the following code into a file named `app.js`. Remember that at +Copy the following code into a file named `app.js`. Remember that at anytime you can run your server with `node app.js`. ```javascript @@ -63,14 +62,14 @@ app.get('/:name', function(req, res){ }); ``` -The `app.get()` method takes a Route *(string or regex)* to listen to -requests on. If a user visits `http://hostname.username.koding.io/`, they +The `app.get()` method takes a Route *(string or regex)* to listen to +requests on. If a user visits `http://hostname.username.koding.io/`, they are greeted with `Hello World, From /`. -If someone visits `http://hostname.username.koding.io/john`, they are -greeted with `Hello john`. `:name` is a URL *parameter*, which is sort of -like a wildcard for that section of the URL. Respond to the request with -the parameter by using the name of the parameter on the `req.params` +If someone visits `http://hostname.username.koding.io/john`, they are +greeted with `Hello john`. `:name` is a URL *parameter*, which is sort of +like a wildcard for that section of the URL. Respond to the request with +the parameter by using the name of the parameter on the `req.params` object. ```javascript @@ -84,14 +83,14 @@ This final call simply starts the web server on `0.0.0.0:3000`. ## Middleware -We saw how to run a simple server, with a couple routes, now lets add a +We saw how to run a simple server, with a couple routes, now lets add a bit of middleware. -Middleware is a concept of a function which is called in the *middle* of -the request cycle. It's useful for rejecting non-authorized users to many +Middleware is a concept of a function which is called in the *middle* of +the request cycle. It's useful for rejecting non-authorized users to many routes, logging, or just about anything. Middleware is pretty awesome. -Lets add our own middleware to simply log all requests to the console, +Lets add our own middleware to simply log all requests to the console, and another to log all `/:name` requests from above. ```javascript @@ -106,16 +105,16 @@ var logName = function(req, res, next) { } ``` -We've defined two middleware functions above. Our logging function is -first, and we immediately pass it to `app.use()`. Every request that this -express application receives will first go through this logging function. -The logging function just logs the date time, and the path of the -request. Note the `next()` callback, that tells Express that this +We've defined two middleware functions above. Our logging function is +first, and we immediately pass it to `app.use()`. Every request that this +express application receives will first go through this logging function. +The logging function just logs the date time, and the path of the +request. Note the `next()` callback, that tells Express that this middleware is done, and the next one can be called. -Our second middleware, `logName`, is not being used yet. Why? Well, we -only want to use this for our `/:name` route, because it's supposed to -log names. How can we achieve this though? Lets take a look at our +Our second middleware, `logName`, is not being used yet. Why? Well, we +only want to use this for our `/:name` route, because it's supposed to +log names. How can we achieve this though? Lets take a look at our `/:name` route, with the middleware added. ```javascript @@ -124,8 +123,8 @@ app.get('/:name', logName, function(req, res){ }); ``` -By adding this middleware to our route, every request to `/:name` will -first pass through our `logName` function, and then the final anonymous +By adding this middleware to our route, every request to `/:name` will +first pass through our `logName` function, and then the final anonymous function to handle the full response. Lets look at the full code at this state. @@ -156,13 +155,13 @@ var server = app.listen(3000, '0.0.0.0', function() { }); ``` -> type:warning +> type:alert > It's important to remember that order of execution matters! If we define a piece of middleware *after* a route, requests to that route will not run through that middleware. In the above example, the very first thing we do is declare our `app.use()` middleware, and in the `/:name` middleware we use the `logName` function *before* our handler. ## Adding Templates -Now we're getting a hang of routes and middleware, lets complete the step -and add in a template. Add the following code to the top of your `app.js` +Now we're getting a hang of routes and middleware, lets complete the step +and add in a template. Add the following code to the top of your `app.js` file. ```javascript @@ -170,11 +169,11 @@ app.set('view engine', 'jade'); app.set('views', __dirname + '/views'); ``` -`app.set()` is used to configure this app instance. In this case, we set -a couple templating settings of Express, to use the Jade templating +`app.set()` is used to configure this app instance. In this case, we set +a couple templating settings of Express, to use the Jade templating language from the `./views` directory. -Next, create a directory named `views`, and add the following code to a +Next, create a directory named `views`, and add the following code to a file named `index.jade` ```jade @@ -186,10 +185,10 @@ html h1 Hello #{name} ``` -We won't go over the Jade language here, but in short `#{name}` is a -variable which is being passed to this template when we render it. If -you're paying attention, you'll notice that we have yet to actually -render a template in our requests. Lets add the above template to our +We won't go over the Jade language here, but in short `#{name}` is a +variable which is being passed to this template when we render it. If +you're paying attention, you'll notice that we have yet to actually +render a template in our requests. Lets add the above template to our `/:name` handler! ```javascript @@ -198,9 +197,9 @@ app.get('/:name', logName, function(req, res){ }); ``` -In our `/:name` handler, we've replaced the `res.send()` call with -`res.render()`. This loads our `index.jade` template and renders it, with -the object we're passing in as data. The `name` property of that object +In our `/:name` handler, we've replaced the `res.send()` call with +`res.render()`. This loads our `index.jade` template and renders it, with +the object we're passing in as data. The `name` property of that object is accessible from the jade template! @@ -250,7 +249,7 @@ http://hostname.username.koding.io/Josh And you'll see an html page, rendered from your awesome new Express app! -And that's it! We've gone through what express is, how to set it up, +And that's it! We've gone through what express is, how to set it up, routes, middleware, and finally templates. Thanks for reading! [gettingstartednode]: getting-started-nodejs diff --git a/guides/getting-started-jenkins/index.md b/guides/getting-started-jenkins/index.md index 49b305a75..9d6335743 100644 --- a/guides/getting-started-jenkins/index.md +++ b/guides/getting-started-jenkins/index.md @@ -1,7 +1,6 @@ --- title: Getting started with Jenkins author: Team Koding -date: 2014-11-12 categories: [frameworks platforms, jenkins] template: page.toffee --- @@ -22,7 +21,7 @@ This guide will cover the basics on how to install and configure Jenkins on your The first thing you need to do before you install Jenkins is to make sure you add the key and source list to apt. Using the following commands you will be able to do just that. -> type:warning +> type:alert > You should be logged in as root to continue with the following steps. First add the key: @@ -49,7 +48,7 @@ You can now install Jenkins using the following command: apt-get install jenkins ``` -> type:warning +> type:alert > Please note that Jenkins has a lot of dependencies, so it might take some time to install them all. ## Configuring Jenkins diff --git a/guides/getting-started-jsp-maven.md b/guides/getting-started-jsp-maven.md index d43071acb..322c6178e 100644 --- a/guides/getting-started-jsp-maven.md +++ b/guides/getting-started-jsp-maven.md @@ -1,7 +1,6 @@ --- author: Gregory Mihalik username: gmihalik -date: 2015-01-15 description: 'Getting Started with JSP and Maven' categories: [frameworks platforms, Java] --- @@ -93,7 +92,6 @@ on the tomcat web-server. In this file you will see basic HTML markup with the message "Hello World!". You can change this message and refresh your webpage in your browser and see the changes you made. -Now lets add some JSP to this file. A simple example is to add the date: ``` diff --git a/guides/getting-started-kpm.md b/guides/getting-started-kpm.md index 79a852333..f5fa5f272 100644 --- a/guides/getting-started-kpm.md +++ b/guides/getting-started-kpm.md @@ -1,7 +1,6 @@ --- title: Getting started with the Koding Package Manager author: Team Koding -date: 2014-11-17 categories: [koding features, koding] template: page.toffee --- @@ -88,6 +87,6 @@ Bellow is a list of the current available packages that can be installed using t The above list will be updated periodically to include more packages, that you can use on your VM. -KPM is fully extensible so if you want to contribute, you can fork the project on Github and add your own installers for the Koding community! +KPM is fully extensible so if you want to contribute, you can [fork the project on Github](https://github.com/koding/kpm-scripts) and add your own installers for the Koding community! If we are missing any packages and frameworks that you would like KPM to be able to handle, please let us know via email at support@koding.com. diff --git a/guides/getting-started-nodejs.md b/guides/getting-started-nodejs.md index 5b4cf04ec..e129f5d9e 100644 --- a/guides/getting-started-nodejs.md +++ b/guides/getting-started-nodejs.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-01 categories: [frameworks platforms, nodejs, javascript] --- @@ -22,29 +21,29 @@ to a Node specific API which gives you access to the file system, and raw networking. JavaScript run in Node is very similar to Python or Ruby. You have a -command `node`, which runs some JavaScript code. This code uses the Node +command `nodejs`, which runs some JavaScript code. This code uses the Node API to modify the file system, or send/receive network packets. It's rather low level by itself, but like all major languages people have built frameworks ontop of the raw API to make it easier to create applications. +> type:alert +> Because of a conflict with another package, the `node` package from the Ubuntu repositories is called `nodejs` instead of `node`. The available command will be `nodejs`. + ## Installing NodeJS and NPM By default every Koding VM comes preinstalled with NodeJS and NPM, but in case you somehow removed it you can use the following commands to get it back. -To install it use the following command: +Before you start with the install process, make sure you run this command to update the packages list: ``` -sudo apt-get install nodejs +sudo apt-get update ``` -If the above should fail you can install NodeJS through a PPA repository like so: +To install NodeJS use the following command: ``` -sudo apt-get install python-software-properties -sudo add-apt-repository ppa:chris-lea/node.js -sudo apt-get update -sudo apt-get install nodejs +sudo apt-get install nodejs ``` You can check the NodeJS version and if it installed correctly, after the installation process has finished, using the following command: @@ -65,6 +64,14 @@ To make sure NPM has installed successfully, run: npm -v ``` +If the above should fail you can install NodeJS through a PPA repository like so: + +``` +curl -sL https://deb.nodesource.com/setup | sudo bash - +sudo apt-get install nodejs +sudo apt-get install build-essential +``` + ## Running your first Node Script Lets setup a single print line script, and call it. Open up your [Ace @@ -92,13 +99,13 @@ and name it `hello.js`. Finally, open up the [Koding Terminal][terminal] and run this file with the following code. ``` -node hello.js +nodejs hello.js ``` You should see output similar to this: ``` -joshmurray: ~ $ node hello.js +joshmurray: ~ $ nodejs hello.js Hello from NodeJS! joshmurray: ~ $ ``` @@ -186,7 +193,7 @@ machine)*, `0.0.0.0:3000` calls our above function, which we then end with `Hello from NodeJS!`. Lets try this out now, and run it. Just like before, with the file saved -type `node web.js` *(remember, we named this one `web.js`)*. Once it's +type `nodejs web.js` *(remember, we named this one `web.js`)*. Once it's running, open up your browser and go to ``` diff --git a/guides/getting-started-python.md b/guides/getting-started-python.md index 1bfa2db05..48f2525f4 100644 --- a/guides/getting-started-python.md +++ b/guides/getting-started-python.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-04 categories: [first program, python, flask] --- diff --git a/guides/getting-started-ruby.md b/guides/getting-started-ruby.md index c78ef0896..4927835b9 100644 --- a/guides/getting-started-ruby.md +++ b/guides/getting-started-ruby.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2015-02-18 categories: [first program, ruby] --- @@ -18,9 +17,10 @@ started. Lets see what it looks like to run some Ruby code! ## Installing Ruby -You can install Ruby rather easily, using the bellow command: +You can install Ruby rather easily, using the following commands: ``` +gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 curl -sSL https://get.rvm.io | bash -s stable --rails ``` @@ -76,7 +76,7 @@ require 'socket' server = TCPServer.new '0.0.0.0', 3000 loop do - socket = server.accept + socket = server.accept request = socket.gets puts request @@ -106,7 +106,7 @@ going to implement an HTTP response ourselves. Getting our hands dirty! ```ruby loop do - socket = server.accept + socket = server.accept puts socket.gets ``` @@ -184,7 +184,7 @@ To use Sinatra, we need to install it. Run the following command to install Sinatra with RubyGems. ``` -sudo gem install sinatra +gem install sinatra ``` RubyGems is Ruby's answer to Dependency Management. Similar to NPM and diff --git a/guides/getting-started/activity-feed/index.md b/guides/getting-started/activity-feed/index.md index 1c7add2bd..44f841d3b 100644 --- a/guides/getting-started/activity-feed/index.md +++ b/guides/getting-started/activity-feed/index.md @@ -1,7 +1,6 @@ --- title: The Activity Feed author: Team Koding -date: 2014-05-30 categories: [koding features, koding] hideSidebar: true @@ -32,6 +31,9 @@ can get a bit boring though, so Koding supports full ![Markdown](markdown.png) +> type:tip +> Make sure to familiarize yourself with our [posting guidelines](/faq/posting-guidelines/). + ## Previewing To preview your post, simply press the little eye on the right side of diff --git a/guides/getting-started/editing-your-profile/index.md b/guides/getting-started/editing-your-profile/index.md index 90ca79ffc..0144843df 100644 --- a/guides/getting-started/editing-your-profile/index.md +++ b/guides/getting-started/editing-your-profile/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-04 categories: [koding features, koding] hideSidebar: true diff --git a/guides/getting-started/file-upload/index.md b/guides/getting-started/file-upload/index.md index 0a4af00da..433511750 100644 --- a/guides/getting-started/file-upload/index.md +++ b/guides/getting-started/file-upload/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-10-17 categories: [koding features, koding, file transfer] hideSidebar: true @@ -22,13 +21,18 @@ this, open your [Koding IDE][ide], locate your FileTree on the left hand side, and drag a file from your Desktop onto the FileTree. An example image is below. +> type:tip +> You can only upload files up to 100MB at one time. A file over 100MB will not be +> allowed for upload via this method. If yo have larger files, you should use the +> FTP upload method described below. + ![Drag and Drop Upload](drag-n-drop.png) After you let go of the file, your file will be uploaded to your `~/Uploads` directory. If `~/Uploads` does not exist, it will be automatically created. -> type:success +> type:tip > Files uploaded this way are not automatically available for serving over your VMs web server as the `~/Uploads` directory is not inside `~/Web` (the default web root for Koding VMs). If you wish to use any uploaded diff --git a/guides/getting-started/index.md b/guides/getting-started/index.md index 91d818431..77fc825b7 100644 --- a/guides/getting-started/index.md +++ b/guides/getting-started/index.md @@ -1,7 +1,6 @@ --- title: Getting Started author: Team Koding -date: 2014-02-07 categories: [common questions, koding] series: getting-started diff --git a/guides/getting-started/the-ui/index.md b/guides/getting-started/the-ui/index.md index b3cbe305e..2e66bf51b 100644 --- a/guides/getting-started/the-ui/index.md +++ b/guides/getting-started/the-ui/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-05-30 categories: [koding features, koding] hideSidebar: true @@ -93,6 +92,6 @@ account to various services. [koding]: https:://koding.com -[ide]: https://koding.com +[ide]: guides/ide-introduction/ [workspaces]: /guides/getting-started/workspaces [markdown]: /guides/markdown diff --git a/guides/getting-started/workspaces/index.md b/guides/getting-started/workspaces/index.md index d0da3b6fe..5af44c99b 100644 --- a/guides/getting-started/workspaces/index.md +++ b/guides/getting-started/workspaces/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-09-18 categories: [koding features, koding] hideSidebar: true @@ -11,47 +10,51 @@ template: series.toffee # Workspaces -In this guide we'll go over what [Koding][koding] Workspaces are, and how +In this guide we'll go over what Koding Workspaces are, and how to manage them. Lets get started! ## What are they? -Workspaces are a way to save the arrangement of your IDE. Open Files, -Terminals, and File Explorer, Workspaces help you save not just what +Think of a Workspace as a logical grouping of files that have a common +theme. For example, all files that belong to a project can be placed +inside a workspace. They are essentially folders. + +Workspaces are also a way to save the layout of your environment. Open Files, +Terminals, and File Explorer, Workspaces help you save not just what you're working on but *how* you're working. -Furthermore, in upcoming releases workspaces will have integration with -various services and developer tools, making them a quick way to get -started with a specific type of Project or Service. +Furthermore, in upcoming releases, workspaces will have integration with +various services and developer tools, making them a quick way to get +started with a specific type of project or service. ## How to use them? ![Workspaces](workspaces.png) -Workspaces, highlighted in the above image, can be opened simply by -clicking on them. Creating new workspaces is as simple as using the Plus +Workspaces, highlighted in the above image, can be opened simply by +clicking on them. Creating new workspaces is as simple as using the Plus button, in the upper right of the highlighted area. Or you can simply right click on a folder from the FileTree and create a Workspace from there. Like in the image below. ![Workspaces1](workspaces1.png) -With the workspace open, simply use the [IDE][ide] as you want. Open -files, Terminals, Browsers, and Drawing Boards will be remembered between +With the workspace open, simply use the [IDE][ide] as you want. Open +files, Terminals, Browsers, and Drawing Boards will be remembered between programming sessions. ## Workspaces on the File System -With each user created Workspace, a directory is created inside the +With each user created Workspace, a directory is created inside the `~/Workspaces` directory. -You can open this directory in your Terminal or clone your projects +You can open this directory in your Terminal or clone your projects directly into it as you like. ## Linking Workspaces to Existing Directories -Workspace folders are just normal folders on the file system. As such, we -can use Unix symbolic links to folders to achieve what we want. As an +Workspace folders are just normal folders on the file system. As such, we +can use Unix symbolic links to folders to achieve what we want. As an example, lets create a Workspace linked to our Web directory. Open up a Terminal, and type in the following commands. @@ -61,19 +64,19 @@ mkdir -p ~/Workspaces ln -s ~/Web ~/Workspaces/Web ``` -Now, with the Koding UI, create a new workspace named `Web`. That's it! -Now when you click on the workspace, the FileTree will automatically open +Now, with the Koding UI, create a new workspace named `Web`. That's it! +Now when you click on the workspace, the FileTree will automatically open to the Web folder's contents. -It should be noted that we created our link **before** we created the -Workspace. If the workspace already existed, the link would not be set +It should be noted that we created our link **before** we created the +Workspace. If the workspace already existed, the link would not be set correctly. -You can freely remove the Workspace file system and replace them with any -links you desire, as the steps above use, but just be careful not to +You can freely remove the Workspace file system and replace them with any +links you desire, as the steps above use, but just be careful not to delete any of your files in the process. -> type:error +> type:alert > The default Workspace can't be removed as that is the default Web folder on your VM. diff --git a/guides/ghost-installation.md b/guides/ghost-installation.md index 89a843f5e..9a725fe71 100644 --- a/guides/ghost-installation.md +++ b/guides/ghost-installation.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-01 categories: [cms, ghost, nodejs] --- @@ -95,7 +94,7 @@ start your Ghost Blog. npm start ``` -> type:success +> type:tip > If you had previously closed your Terminal, you'll need to navigate into the ghost directory again, with `cd ghost`. ## Visiting your Ghost Blog diff --git a/guides/git.md b/guides/git.md index 9ad43b339..5be208cf4 100644 --- a/guides/git.md +++ b/guides/git.md @@ -1,7 +1,6 @@ --- title: Getting started with Git author: Team Koding -date: 2014-06-14 categories: [developer tools, Git] template: page.toffee diff --git a/guides/hello-world/c++/index.md b/guides/hello-world/c++/index.md index 245fb7873..b639f6216 100644 --- a/guides/hello-world/c++/index.md +++ b/guides/hello-world/c++/index.md @@ -1,7 +1,6 @@ --- title: C++ author: Team Koding -date: 2015-03-03 categories: [first program, hello world, c++, koding] series: hello-world @@ -33,6 +32,9 @@ To run the above file in your Koding VM, just open your Koding Terminal and type g++ -o hellopp helloworld.cpp ./hellopp ``` +> type:tip +> If g++ is not installed on your VM, you can easily install it using these commands: +> `sudo apt-get update; sudo apt-get install g++` ## Explanation diff --git a/guides/hello-world/c-sharp/index.md b/guides/hello-world/c-sharp/index.md new file mode 100644 index 000000000..54666198d --- /dev/null +++ b/guides/hello-world/c-sharp/index.md @@ -0,0 +1,83 @@ +--- +title: C-Sharp (C#) +author: Team Koding +categories: [first program, hello world, C-Sharp, koding] + +series: hello-world +series-index: 3 +template: series.toffee +--- + +# Hello World in C# + +## Introduction +To run C# code on a Linux environment, you will need to use Mono. Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. Mono is sponsored by [Xamarin](http://xamarin.com/). Mono allows developers to build cross-platform applications with improved developer productivity. [Find out more](http://www.mono-project.com/docs/about-mono/) about Mono. + +## Installing Mono +The following instructions will install Mono and MonoDevelop on your Koding VM. + +> type:alert +> Before proceeding, make sure that you have at least 150MB free on your VM. You can check the +> amount of free space you have by using the command: `df -h`. If you need to free up space, follow +> [this guide](http://learn.koding.com/guides/freeing-up-space/). + +To install Mono, type this command in your Terminal: +``` +sudo apt-get install monodevelop mono-utils nunit-console -y +``` +The installation process will take a few minutes. Once it is done, you can verify that the Mono compiler was +successfully installed by using the following command: +``` +mcs --version +``` +the output should look something like: +``` +Mono C# compiler version 3.2.8.0 +``` +> type:tip +> the version number above may be different in your case, that's quite ok. + +###Writing your first program in C# +Open up a new tab in the Koding IDE and type in the following code block: + +``` +// "Hello World!" program in C# + +using System; + +namespace HelloWorld +{ + public class Hello + { + public static void Main () + { + Console.WriteLine ("Hello World!"); + } + } +} +``` +Save the file as `hello.cs` by using the "Save As.." option from the drop down menu available on the tab of this file +in the IDE. + +Now to compile this program so that you can run it, type the following command in Terminal: +``` +mcs hello.cs +``` +> type:tip +> make sure you are in the same directory as the saved file when you execute the command above +> otherwise you may get a "file not found" error. + +The compiler will do its thing and create a new file called `hello.exe` which you can then run by typing +this command in Terminal: +``` +mono hello.exe +``` +You should see the following output in the Terminal: +``` +Hello World! +``` + +Congratulations, you have written your first C# program! + +Now that Mono is installed and available on your VM, you can find plenty of C# tutorials on the Internet and try them out on your Koding VM. Remember one thing, since there is no graphical environment on your Koding VM, you should only write or practice C# programs that are NOT graphical. In other words, stick to writing C# applications that are command line only +for now. diff --git a/guides/hello-world/c/index.md b/guides/hello-world/c/index.md index 74c8a464e..58c104aa7 100644 --- a/guides/hello-world/c/index.md +++ b/guides/hello-world/c/index.md @@ -1,7 +1,6 @@ --- title: C author: Team Koding -date: 2015-03-03 categories: [first program, hello world, c, koding] series: hello-world @@ -17,13 +16,13 @@ C is a general-purpose, imperative computer programming language. As a language ## Implementation -The first thing you need to do is to create a file called `helloworld.c` in your Koding VM and paste the bellow snippet into it. +The first thing you need to do is to create a file called `helloworld.c` in your Koding VM and paste the below snippet into it. ``` #include int main() { - printf(“Hello World”); + printf("Hello World"); return 0; } ``` @@ -57,7 +56,7 @@ The two curly brackets, one in the beginning and one at the end, are used to gro group or function. ``` -printf(“Hello World”); +printf("Hello World"); ``` The `printf` is used for printing things on the screen, in this case the words: __Hello World__. As you can see the data that is to be printed is put inside round brackets. The words Hello World are inside inverted commas, because they are what is called a string (a single letter is called a character and a series of characters is called a string). Strings must always be put between inverted commas. After the last round bracket there must be a semi-colon. The semi-colon shows that it is the end of the command. diff --git a/guides/hello-world/go/index.md b/guides/hello-world/go/index.md index 045a55bb6..ce47aa7cb 100644 --- a/guides/hello-world/go/index.md +++ b/guides/hello-world/go/index.md @@ -1,11 +1,10 @@ --- title: Go author: Team Koding -date: 2015-03-04 categories: [first program, hello world, go, koding] series: hello-world -series-index: 3 +series-index: 4 template: series.toffee --- diff --git a/guides/hello-world/index.md b/guides/hello-world/index.md index 461a7936e..a5318b5df 100644 --- a/guides/hello-world/index.md +++ b/guides/hello-world/index.md @@ -1,7 +1,6 @@ --- title: Hello World on Koding author: Team Koding -date: 2015-03-03 categories: [first program, hello world, koding] series: hello-world diff --git a/guides/hello-world/java/index.md b/guides/hello-world/java/index.md index 8af346ce5..5f640c255 100644 --- a/guides/hello-world/java/index.md +++ b/guides/hello-world/java/index.md @@ -1,11 +1,10 @@ --- title: Java author: Team Koding -date: 2015-03-03 categories: [first program, hello world, java, koding] series: hello-world -series-index: 4 +series-index: 5 template: series.toffee --- @@ -40,7 +39,7 @@ java HelloWorld public class HelloWorld ``` -The first line defines a class called Main. In Java, every line of code that can actually run needs to be inside a class. This line declares a class named Main, which is public, that means that any other class can access it. +The first line defines a class called HelloWorld. In Java, every line of code that can actually run needs to be inside a class. This line declares a class named HelloWorld, which is public, that means that any other class can access it. ``` public static void main(String[] args) @@ -71,3 +70,5 @@ System.out.println("Hello, World!"); And that's it! You just wrote and ran your first Hello World in Java. + +If you'd like to continue dabbling in Java, we recommend taking a look at [this tutorial](http://www.androidauthority.com/java-tutorial-beginners-582147/) written for Koding over at Andriodauthority.com diff --git a/guides/hello-world/pascal/index.md b/guides/hello-world/pascal/index.md new file mode 100644 index 000000000..8b067bb86 --- /dev/null +++ b/guides/hello-world/pascal/index.md @@ -0,0 +1,98 @@ +--- +title: Pascal +author: Bee Jay +username: beeography +categories: [first program, hello world, pascal, koding] + +series: hello-world +series-index: 6 +template: series.toffee +--- + +# Hello World on Koding: Pascal + +## Introduction + +Pascal —or [Object Pascal](http://en.wikipedia.org/wiki/Object_Pascal "Object Pascal")— nowadays is mostly known as an old and outdated programming language. The fact is, Pascal is still alive and kicking right to this very day. Today's Pascal is **not** the old 70s Pascal. It evolves, adapts, and grows with the modern world. The most known and used Pascal compilers of today are [Free Pascal](http://freepascal.org "Free Pascal Compiler") with its [Lazarus IDE](http://lazarus.freepascal.org "Lazarus IDE") and [Embarcadero](http://www.embarcadero.com)'s [Delphi RAD Studio](http://www.embarcadero.com/products/delphi) as the successor of Borland Delphi. + +Functionally, similarly to C language, Pascal is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing the facilities for low-level memory manipulation and the speed of native code. However, conceptually Pascal is a very different compared to the C programming language. Pascal brings you an elegant and neat language, yet still has as much power as C, or other modern programming languages. + +## Implementation + +Since Koding doesn't include the Free Pascal compiler, by default on your VM, the first thing you need to do is to install it manually. Don't worry, it's very easy and straight forward, thanks to Ubuntu OS that is present on each Koding VM. + +Now, open your Koding Terminal and type the following commands: + +```bash +sudo apt-get update +sudo apt-get install fpc +``` + +Let it run and just answer Yes (Y) every time it asks for your confirmation. If all goes fine, Free Pascal should now be installed on your VM. To make sure, continue with this command: + +```bash +fpc +``` + +It is should show Free Pascal's commands and arguments list. If these show up then Free Pascal has been installed on your VM, successfully. + +Next, you'll need to create a file named `helloworld.pas` in your home folder and paste the below snippet into it. + +``` +begin + writeln('Hello World!'); +end. +``` + +To run the above file in your Koding VM, just open your Koding Terminal and type the following commands: + +```bash +fpc helloworld.pas +./helloworld +``` + +The beauty of the Pascal language is that the syntax is very human friendly. That's what a modern programming language should be. So the above snippet will basically write a line of text that outputs `Hello World!`. + +## Pascal on the Web + +Beeing able to compile and run a simple Hello World console application isn't enoug! Today, everything goes on the web. And Pascal certainly is able to do just that! + +Now, open the same `helloworld.pas` program above and let's add some more code. Modify the above code into this: + +``` +begin + writeln('content-type: text/html;'); + writeln; + writeln('Hello World from Pascal!') +end. +``` + +Then switch to your Terminal window and type these commands: + +```bash +$ fpc helloworld.pas +$ mv helloworld Web/helloworld.cgi +``` + +The last command above is deploying your Pascal program as CGI into your web accessible folder on your Koding VM. + +Next, open a new browser window and type your Koding VM domain followed by `helloworld.cgi`, for example: + +> type:tip +> Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostname/). + +``` +http://KODING_USERNAME.koding.io/helloworld.cgi +``` + +Your first Pascal CGI is running and accessible from the internet. Congratulations! + +## Going Further + +It's possible to write complex applications using Pascal. If you're new to Pascal, there are lots of Pascal tutorial on the internet. This one from [Tutorials Point](http://www.tutorialspoint.com/pascal/index.htm "Pascal Programming Online Tutorial") is one of the best online Pascal tutorials. + +[Free Pascal](http://freepascal.org "Free Pascal Compiler") has pretty rich libraries, frameworks, and tools for almost any kind of programming needs, from console, database, mobile, games, multimedia, etc + +And that's it. + +If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com) \ No newline at end of file diff --git a/guides/hello-world/perl/index.md b/guides/hello-world/perl/index.md index 23e295042..209d2f5c9 100644 --- a/guides/hello-world/perl/index.md +++ b/guides/hello-world/perl/index.md @@ -1,11 +1,10 @@ --- title: Perl author: Team Koding -date: 2015-03-03 categories: [first program, hello world, perl, koding] series: hello-world -series-index: 5 +series-index: 7 template: series.toffee --- diff --git a/guides/hello-world/php/index.md b/guides/hello-world/php/index.md index bebad2e87..1caa12484 100644 --- a/guides/hello-world/php/index.md +++ b/guides/hello-world/php/index.md @@ -1,11 +1,10 @@ --- title: PHP author: Team Koding -date: 2015-03-03 categories: [first program, hello world, php, koding] series: hello-world -series-index: 6 +series-index: 8 template: series.toffee --- @@ -37,8 +36,9 @@ To run the above file in your Koding VM, follow a similar URL in your browser: ``` http://KODING_USERNAME.koding.io/helloworld.php ``` - -Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostname/). +> type:tip +> Replace KODING_USERNAME above with your koding username. (It's not obvious to everyone). +> [Find out more](http://learn.koding.com/faq/vm-hostname/) about your VM hostname. ## Explanation diff --git a/guides/hello-world/python/index.md b/guides/hello-world/python/index.md index b4c545575..53a706da0 100644 --- a/guides/hello-world/python/index.md +++ b/guides/hello-world/python/index.md @@ -1,11 +1,10 @@ --- title: Python author: Team Koding -date: 2015-03-04 categories: [first program, hello world, python, koding] series: hello-world -series-index: 7 +series-index: 9 template: series.toffee --- diff --git a/guides/hello-world/ruby/index.md b/guides/hello-world/ruby/index.md index 2a604a56f..9cf3f79cb 100644 --- a/guides/hello-world/ruby/index.md +++ b/guides/hello-world/ruby/index.md @@ -1,11 +1,10 @@ --- title: Ruby author: Team Koding -date: 2015-03-04 categories: [first program, hello world, ruby, koding] series: hello-world -series-index: 8 +series-index: 10 template: series.toffee --- diff --git a/guides/how-to-install-joomla/index.md b/guides/how-to-install-joomla/index.md index 490bdf89d..98f014e70 100644 --- a/guides/how-to-install-joomla/index.md +++ b/guides/how-to-install-joomla/index.md @@ -1,7 +1,6 @@ --- title: How to install Joomla author: Team Koding -date: 2015-03-20 categories: [cms, joomla, php] template: page.toffee --- @@ -119,7 +118,7 @@ sudo touch configuration.php sudo chmod 777 configuration.php ``` -> type:warning +> type:alert > After the installation is complete, we'll need to change the permissions back to 755. ## Step 3 - Finalizing the Joomla install diff --git a/guides/how-to-install-mediawiki/index.md b/guides/how-to-install-mediawiki/index.md index ed0ed4459..9b7b9efed 100644 --- a/guides/how-to-install-mediawiki/index.md +++ b/guides/how-to-install-mediawiki/index.md @@ -1,7 +1,6 @@ --- title: How to install MediaWiki author: Team Koding -date: 2015-03-24 categories: [php,mediawiki] template: page.toffee --- @@ -121,7 +120,7 @@ You should see the initial setup page. It should look like this: Press the **setup the wiki first** button and now you'll just need to follow the instructions on screen and finish the install. -At the very last step of the install process you'll need to download a file and place it's contents in your MediaWiki folder. +At the very last step of the install process you'll need to download a file and place it's contents in your MediaWiki folder. Download the file, open it with your local editor and copy it's contents to a newly created file in your MediaWiki folder. You can use the following commands to achieve this: @@ -141,4 +140,4 @@ copy the contents from the file you just downloaded and then save the file. And that's it! If you navigate to your VM's hostname and add **/mediawiki** at the end you should see a working wiki. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). \ No newline at end of file +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). \ No newline at end of file diff --git a/guides/ide-introduction/index.md b/guides/ide-introduction/index.md index 4a2999798..dacb881b5 100644 --- a/guides/ide-introduction/index.md +++ b/guides/ide-introduction/index.md @@ -1,14 +1,13 @@ --- title: Koding IDE Introduction author: Team Koding -date: 2015-03-18 categories: [koding features, koding] videoId: VdFt7N4Y2IA --- # Koding IDE Introduction -In this guide we'll go over the Koding Integrated Development Environment or IDE for short. We'll try to explain how it works, how to use it and in end share some useful tips that you can use to be more productive. +In this guide we'll go over the Koding Integrated Development Environment or IDE for short. We'll try to explain how it works, how to use it and in the end share some useful tips that you can use to be more productive. ## Getting started @@ -16,7 +15,7 @@ To access your IDE, select your Virtual Machine on the left hand side as picture ![IDE 1](ide1.png) -> type:warning +> type:alert > If you have a Developer or Professional account then select the VM you want to start, from the list. Then click on the `Turn it on` button in the modal. @@ -34,7 +33,7 @@ The Koding IDE consists of two main parts: the FileTree, and the Editor. ![IDE 3](ide3.png) -The IDE can be customized by clicking on the little cog icon and then modifying the seetings based on your needs. +The IDE can be customized by clicking on the little cog icon and then modifying the settings based on your needs. > type:tip > You can also customize the Koding Terminal from here. @@ -53,7 +52,7 @@ The FileTree, on the left, enables file navigation around your VM. You can drag The Editor, that sits on the right of the FileTree, is the main driving force behing the Koding IDE. It allows you to edit a wide variaty of files types, such as .php, .rb, .html, .css just to name a few. -By default the editor will be opened in a horizontal two pane view. Panes can be opened, split and merged at will. They can also be made full screen. +By default the editor will be opened in a horizontal two pane view. Panes can be opened, split and merged at will. They can also be made full screen. You can learn more about these operations in [this guide](/faq/split-panes/). You can open a new tab, in a pane, by clicking on the plus button and then chosing the type of tab you want to open, either a new Terminal tab, a new drawing board or a new file. diff --git a/guides/install-memcache/index.md b/guides/install-memcache/index.md index 502daf0cf..de72b2791 100644 --- a/guides/install-memcache/index.md +++ b/guides/install-memcache/index.md @@ -1,7 +1,6 @@ --- title: How to install Memcache author: Team Koding -date: 2015-01-20 categories: [databases, memcache, php, apache] template: page.toffee --- @@ -86,4 +85,4 @@ echo "stats settings" | nc localhost 11211 And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/install-memcache/php_info.png b/guides/install-memcache/php_info.png index d9defecf4..23eb1bac1 100644 Binary files a/guides/install-memcache/php_info.png and b/guides/install-memcache/php_info.png differ diff --git a/guides/install-mongodb.md b/guides/install-mongodb.md index fd22ef867..f36f6d750 100644 --- a/guides/install-mongodb.md +++ b/guides/install-mongodb.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-10-17 categories: [databases, mongodb] --- @@ -15,12 +14,12 @@ kpm install mongodb *** In this short guide we'll explain how to install MongoDB, and modify -it's configuration to run in a small storage environment. Lets get +it's configuration to run in a small storage environment. Lets get started! ## Installation -Installation is easy, and can be done with `apt-get`, as seen in the +Installation is easy, and can be done with `apt-get`, as seen in the following command. ``` @@ -33,12 +32,12 @@ That's it! You can start Mongo with the following command: sudo service mongodb start ``` -> type:success +> type:tip > If you're running Mongo on a Free Koding VM, read the section below regarding enabling small files... ## Configuring for Limited Storage -If you're running Mongo on a Free VM, you'll need to configure it to use +If you're running Mongo on a Free VM, you'll need to configure it to use small files. To do that, open up the `/etc/mongodb.conf` file with the following command: @@ -52,7 +51,7 @@ With that file open, navigate to the bottom and add the following line: smallfiles=true ``` -Now use `ctrl-x` to save the file. After you've saved the file, simply +Now use `ctrl-x` to save the file. After you've saved the file, simply restart Mongodb with the following command: ``` diff --git a/guides/install-phpmyadmin/index.md b/guides/install-phpmyadmin/index.md index e666826ad..9c31f5073 100644 --- a/guides/install-phpmyadmin/index.md +++ b/guides/install-phpmyadmin/index.md @@ -1,7 +1,6 @@ --- title: Install phpMyAdmin author: Team Koding -date: 2014-10-11 categories: [developer tools, phpmyadmin, mysql] template: page.toffee --- @@ -16,27 +15,27 @@ kpm install phpmyadmin *** -This guide will walk you through the steps you need to take in order to get **phpMyAdmin** installed on your Koding VM. +This guide will walk you through the steps you need to take in order to get **phpMyAdmin** installed on your Koding VM and also it will answer any questions you might have regarding it operating properly. Just follow the steps and you should get phpMyAdmin installed in no time. ## Step 1 -The first thing that you need to do is to update our package list. You can do that using the following command. +The first thing that you need to do is to update your package list. You can do that using the following command. ``` sudo apt-get update ``` -After that you can go ahead and install phpmyadmin using the following command: +After that you can go ahead and install phpMyAdmin using the following command: ``` -sudo apt-get install phpmyadmin +sudo apt-get install phpMyAdmin ``` ## Step 2 -During the installation process you will be prompted to ansyour some questions in order to configure the installation properly. +During the installation process you will be prompted to answer some questions in order to configure the installation properly. When asked to choose the server, you need to select **apache2**. @@ -74,7 +73,7 @@ And at the very bottom of the file you need to include the following line. Include /etc/phpmyadmin/apache.conf ``` -Save the file. +Save the file by pressing `ctrl+o`. One more thing that you need to do before you can see everything working is to enable the **mcrypt** extension. You can do that using the following command. @@ -98,7 +97,50 @@ http://KODING_USERNAME.koding.io/phpmyadmin Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostname/). +## Can't login to phpMyAdmin? + +You might encounter this issue at some point. When this happens, there are multiple causes: either the mySQL server is not working properly, you forgot your credentials or something happened to phpMyAdmin. + +In order to fix the first case you can follow [this guide](http://learn.koding.com/faq/mysql-socket-error-2002/). + +If you forgot your credentials you can follow these steps: + +You can change the mySQL root password by killing the process: + +``` +kill `cat /var/run/mysqld/mysqld.pid` +``` + +Create a text file containing the following statement on a single line. Replace the password with the password that you want to use. + +``` +SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); +``` + +Save the file. This example names the file `/home/me/mysql-init`. The file contains the password, so do not save it where it can be read by other users. If you are not logged in as mysql (the user the server runs as), make sure that the file has permissions that permit mysql to read it. + +Start the MySQL server with the special --init-file option: + +``` +mysqld_safe --init-file=/home/me/mysql-init & +``` + +The server executes the contents of the file named by the --init-file option at startup, changing the 'root'@'localhost' account password. + +After the server has started successfully, delete `/home/me/mysql-init`. + +phpMyAdmin should use the password you set above. + +Make sure you set the new password into phpMyAdmin's `config.inc.php` too, by updating this line: + +``` +$cfg['Servers'][$i]['password'] = 'yourpassword'; +``` + +> type:tip +> You can find the phpMyAdmin config file here `/etc/phpmyadmin/config.inc.php`. + And that's it. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/install-phppgadmin/index.md b/guides/install-phppgadmin/index.md index 115bd18d6..a85a02625 100644 --- a/guides/install-phppgadmin/index.md +++ b/guides/install-phppgadmin/index.md @@ -1,7 +1,6 @@ --- title: Install phpPgAdmin author: Team Koding -date: 2015-01-19 categories: [developer tools, phpPgAdmin, postgresql] template: page.toffee --- @@ -110,4 +109,4 @@ Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostn And that's it. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/install-redis.md b/guides/install-redis.md index a692a1170..31b6efc30 100644 --- a/guides/install-redis.md +++ b/guides/install-redis.md @@ -1,7 +1,6 @@ --- title: How to install Redis author: Team Koding -date: 2015-01-20 categories: [databases, redis] template: page.toffee --- @@ -119,4 +118,4 @@ sudo update-rc.d redis_6379 defaults And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/install-rockmongo/index.md b/guides/install-rockmongo/index.md index 1b4dc268a..1dd5376d9 100644 --- a/guides/install-rockmongo/index.md +++ b/guides/install-rockmongo/index.md @@ -1,7 +1,6 @@ --- title: Install Rockmongo author: Thien -date: 2015-01-2 categories: [databases, rockmongo, mongo] --- @@ -77,4 +76,4 @@ If everything is working properly, you should see the following screen in your b And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/installing-apache-cordova.md b/guides/installing-apache-cordova.md index 373408a25..6a3d2e46c 100644 --- a/guides/installing-apache-cordova.md +++ b/guides/installing-apache-cordova.md @@ -1,7 +1,6 @@ --- title: Installing Apache Cordova author: Team Koding -date: 2014-11-04 categories: [frameworks platforms, apache, nodejs, javascript] template: page.toffee --- @@ -12,7 +11,7 @@ This guide will cover the basics on how to get Apache Cordova installed on your Before you begin please check that you have the following things installed on your Koding VM. For each requirement run each command to make sure that you have that requirement installed on your VM. -> type:success +> type:tip > Note: By default all Koding VMs come preinstalled with the below requirements. * [NodeJS](/getting-started-nodejs/) @@ -63,7 +62,7 @@ To create your first Apache Cordova app project you can use the following comman cordova create FOLDER ID NAME ``` -**FOLDER** represents the folder where the source or the project will be stored (the folder should not be created beforehand). +**FOLDER** represents the folder where the source or the project will be stored (the folder should not be created beforehand). **ID** is the reverse domain-style identifier **NAME** is the application's title. diff --git a/guides/installing-composer.md b/guides/installing-composer.md index c63427a63..668081fb5 100644 --- a/guides/installing-composer.md +++ b/guides/installing-composer.md @@ -1,7 +1,6 @@ --- title: How to install Composer author: Team Koding -date: 2015-01-27 categories: [frameworks platforms, composer, php] template: page.toffee --- @@ -30,7 +29,7 @@ Make sure you have [PHP](http://learn.koding.com/guides/installing-php) and the sudo apt-get install php5-curl ``` -## Installing +## Installing Composer for a Project To get Composer working for a new project you'll need to run the following commands: @@ -68,6 +67,36 @@ If you want to check if Composer is working properly, you can use the following php composer.phar ``` -And that's it! +## Installing Composer Globally -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you use PHP and Composer frequently, instead of installing Composer for each project, you can install it globally to use it in any directory of your Koding machine. + +> type:tip +> If you install Composer using [kpm](http://learn.koding.com/guides/getting-started-kpm/), it is installed globally. + +Composer is installed globally when the executable file is located in one of the folders where Linux looks for programs, i.e. the folders included in the PATH environment variable. +For instance, it is installed globally if you put the composer file into the `/usr/local/bin` folder. + +First, you must download the Composer into a folder in your Koding machine. + +``` +curl -sS https://getcomposer.org/installer | php +``` + +And then move the Composer file into the `/usr/local/bin` folder. + +``` +sudo mv composer.phar /usr/local/bin/composer +``` + +After copying the file, you can run the Composer in any folder using the following command: + +``` +composer +``` + +## Further Information + +Composer is a dependency manager for PHP projects. It allows you to find, download and configure components in your development projects. More information can be found in the [Composer website](https://getcomposer.org/) and the [Packagist component directory](https://packagist.org/). + +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/installing-gruntjs.md b/guides/installing-gruntjs.md index 51d6f9253..d01a03b87 100644 --- a/guides/installing-gruntjs.md +++ b/guides/installing-gruntjs.md @@ -1,7 +1,6 @@ --- title: How to install GruntJS author: Team Koding -date: 2015-01-20 categories: [frameworks platforms, gruntjs] template: page.toffee --- @@ -65,4 +64,4 @@ npm install grunt --save-dev And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/installing-ionic-framework.md b/guides/installing-ionic-framework.md new file mode 100644 index 000000000..6c796a1a3 --- /dev/null +++ b/guides/installing-ionic-framework.md @@ -0,0 +1,99 @@ +--- +title: Installing Ionic Framework +author: Sergiu Butnarasu +username: sergiu +categories: [frameworks platforms, apache, nodejs, javascript] +template: page.toffee +--- + +# Installing Ionic Framework + +This guild will explain how to install [Ionic Framework ](http://ionicframework.com/) and how to run the application in your browser. + +To install Ionic Framework you must update your packages and have nodejs and npm installed on your Koding VM: + +* Update packages + +``` +sudo apt-get update +``` + +* Install nodejs + +``` +sudo apt-get install nodejs +``` + +* Install npm + +``` +sudo apt-get install npm +``` + +> type:tip +> Follow [this guide](http://learn.koding.com/guides/getting-started-nodejs) and [this guide](http://learn.koding.com/guides/updating-nodejs-on-your-vm) to learn more on how to get started with nodejs and npm on your Koding VM. + +## Step 1 - Install Ionic Framework + +After installing npm you will be able to install Ionic Framwork on your Koding VM. Write the following command in your terminal: + +``` +sudo npm install -g cordova ionic +``` + +> type:tip +> Checkout [this guide](http://learn.koding.com/guides/installing-apache-cordova/) for more info regarding Apache Cordova on your Koding VM. + +## Step 2 - Navigate to Applications directory + +Navigate to your application directory, where you will create the ionic app. To do this, write in terminal: + +``` +cd Applications +``` + +## Step 3 - Create your Ionic application + +Now you can create your application using the following command: + +``` +sudo ionic start myApp +``` + +## Step 4 - Navigate to the myApp directory + +To be able to run you application, first you'll need to navigate to your application directory: + +``` +cd myApp +``` + +## Step 5 - Set address + +On this step you can specify what address your browser will connect to: + +``` +ionic address +``` + +## Step 6 - Start a local development server + +Now you can start a local development server to test your Ionic application. To do this, write in your terminal: + +``` +ionic serve --all +``` + +## Step 7 - Access your **running dev server** url: + +Finally you can access your dev server url: + +``` +http://KODING_USERNAME.koding.io:8100 +``` + +Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostname/). + +And that's it. + +If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com) diff --git a/guides/installing-jekyll.md b/guides/installing-jekyll.md new file mode 100644 index 000000000..bf10e4d04 --- /dev/null +++ b/guides/installing-jekyll.md @@ -0,0 +1,66 @@ +--- +title: Installing Jekyll on Koding +author: dehli +categories: [frameworks platforms, jekyll] +template: page.toffee +--- + +# Installing & Setting Up Jekyll + +Before you continue reading this guide why not try a more easy way using the [Koding Package Manager (kpm)](http://learn.koding.com/guides/getting-started-kpm/) and install Jekyll using just one command: + +``` +kpm install jekyll +``` + +*** + +This tutorial will guide you through the installation of Jekyll on a Koding VM. + +## Install RVM +Use the two commands below to install rvm on your virtual machine (for more information visit [here](https://rvm.io/rvm/install)): +``` +gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 + +\curl -sSL https://get.rvm.io | bash -s stable --ruby +``` + +Then run the rvm script: +``` +source .rvm/scripts/rvm +``` + +## Install Jekyll + +Use this command to install Jekyll: +``` +gem install jekyll +``` + +## Create a Jekyll site +> type:tip +> The next step can be skipped if you've already created a Jekyll site. + +Execute the following command, where `JekyllSite` is the destination folder of your website: +``` +jekyll new JekyllSite +``` +## Run the server + +Set the current directory to the website's directory (for this tutorial it's JekyllSite): +``` +cd JekyllSite +``` + +Execute the following command: +``` +jekyll serve --host 0.0.0.0 +``` +> type:tip +> For more details on your hostname, read [this](http://learn.koding.com/guides/what-happened-to-127-0-0-1/).* + +## View the website + +Navigate to [http://username.koding.io:4000](http://username.koding.io:4000) +> type:tip +> Make sure to replace `username` above with your Koding username. diff --git a/guides/installing-linuxbrew.md b/guides/installing-linuxbrew.md index 88d3fa8fb..0e8a98cf6 100644 --- a/guides/installing-linuxbrew.md +++ b/guides/installing-linuxbrew.md @@ -1,7 +1,6 @@ --- title: Installing LinuxBrew author: Alvin Wan -date: 2015-01-08 categories: [frameworks platforms, brew] --- diff --git a/guides/installing-mean-io.md b/guides/installing-mean-io.md index 99c38a98e..3af8b76de 100644 --- a/guides/installing-mean-io.md +++ b/guides/installing-mean-io.md @@ -2,7 +2,6 @@ title: Installing the MEAN.io stack on Koding author: P1xt username: P1xt -date: 2015-01-06 categories: [frameworks platforms, node, angular, express, mongodb] --- diff --git a/guides/installing-mysql/index.md b/guides/installing-mysql/index.md index 8c5987ea0..32cfdb644 100644 --- a/guides/installing-mysql/index.md +++ b/guides/installing-mysql/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-07-30 categories: [databases, koding, mysql] --- diff --git a/guides/installing-oracle-jdk.md b/guides/installing-oracle-jdk.md new file mode 100644 index 000000000..996c3af20 --- /dev/null +++ b/guides/installing-oracle-jdk.md @@ -0,0 +1,84 @@ +--- +title: How to install Oracle JDK +author: Team Koding +categories: [frameworks platforms, java, jdk] +template: page.toffee +--- + +# Installing Oracle JDK + +By default, a new Koding machine includes Java [OpenJDK](http://openjdk.java.net/) 7u85 (64-bits). +Although it is possible to use OpenJDK to run Java programs and application servers, some developers prefer to use the [Oracle JDK](https://www.oracle.com/java/). + +This guide shows you how to install the Oracle JDK in your Koding Machine. + +> type:alert +> The installation of Oracle JDK also includes the Oracle JRE, some libraries and additional fonts. +> This process may require 300-500MB of free disk space in your VM. +> You can check the amount of free space you have by using the command: `df -h` (check the filesystem mounted in `/`). +> If you need to free up space, follow [this guide](http://learn.koding.com/guides/freeing-up-space/). + +## Installing Oracle JDK 7 using KPM + +Koding offers a simple way to install the Oracle JDK by using the [Koding Package Manager](http://learn.koding.com/guides/getting-started-kpm/). + +To install the Oracle JDK you can use the following command: + +``` +kpm install oracle-java7 + +``` + +You can check which Java version was installed by using the `java` command: + +``` +java -version +``` + + +## Installing Oracle JDK 7 or 8 using `apt-get` + +If you prefer, you can install the Oracle JDK using the `apt-get` package manager for Ubuntu. +To do it, you must add first a custom PPA (a custom source for software packages) that includes the Java installers. +The PPA for Oracle JDK 7 and 8 must be installed with the following commands: + +``` +sudo add-apt-repository ppa:webupd8team/java +sudo apt-get update +``` + +Once the PPA is installed, you can install Java using the traditional `apt-get` command. +To install the Java 7, you must use the following command: + +``` +sudo apt-get install oracle-java7-installer +``` + +To install Java 8, you must use: + +``` +sudo apt-get install oracle-java8-installer +``` + +Which version is running by default can be determined with the following command: + +``` +java -version +``` + +> type:tip +> Currently, there is an "early version" of [JDK 9](https://jdk9.java.net/). +> You can install it using the same PPA used for Oracle JDK 7 and 8 by using: +> ``` +> sudo apt-get install oracle-java9-installer +> ``` + +## Changing the default version of Java + +If you install multiple versions of Java in your Koding VM, you can change the default implementation by using the following command: + +``` +sudo update-alternatives --config java +``` + +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/installing-pgcli.md b/guides/installing-pgcli.md index 75ad39387..1a542ac85 100644 --- a/guides/installing-pgcli.md +++ b/guides/installing-pgcli.md @@ -1,7 +1,6 @@ --- title: How to install pgcli author: Team Koding -date: 2015-03-24 categories: [python] template: page.toffee --- @@ -40,7 +39,7 @@ If the above command returns an error, then you do not have pip installed on you sudo apt-get install python-pip ``` -> type:warning +> type:alert > Make sure you also have Python installed on your VM before you can install pip. ## Installing @@ -59,4 +58,4 @@ sudo pip install pgcli And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). \ No newline at end of file +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). \ No newline at end of file diff --git a/guides/installing-phalcon.md b/guides/installing-phalcon.md index b1ba7f4f2..838ab14b0 100644 --- a/guides/installing-phalcon.md +++ b/guides/installing-phalcon.md @@ -2,7 +2,6 @@ title: Installing Phalcon on Koding author: Jay username: aaaqqq -date: 2014-06-27 categories: [frameworks platforms, php] --- diff --git a/guides/installing-php.md b/guides/installing-php.md index c4c8ab117..9235fba32 100644 --- a/guides/installing-php.md +++ b/guides/installing-php.md @@ -1,7 +1,6 @@ --- title: Installing PHP author: Team Koding -date: 2014-08-06 categories: [frameworks platforms, koding, php] template: page.toffee diff --git a/guides/installing-postgresql.md b/guides/installing-postgresql.md index cefbc57ad..9d8962047 100644 --- a/guides/installing-postgresql.md +++ b/guides/installing-postgresql.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-10-22 categories: [databases, postgresql, sql] --- diff --git a/guides/installing-wildfly.md b/guides/installing-wildfly.md new file mode 100644 index 000000000..0846fcf35 --- /dev/null +++ b/guides/installing-wildfly.md @@ -0,0 +1,191 @@ +--- + +title: How to install Wildfly +author: Team Koding + +categories: [frameworks platforms, java, jdk] + +template: page.toffee + +--- + +# Installing Wildfly + +[Wildlfy](http://wildfly.org/) is a full-featured application server that support the latest Java EE 7 standards. +In constrast to other Java application servers such as [Tomcat](http://tomcat.apache.org/) and [Jetty](http://www.eclipse.org/jetty/), +Wildfly supports technologies such as EJB and JSF without further configuration. +It is the preferred server for many developers interested in using these technologies in an opensource platform that is also commercially supported. + +This guide shows you how to install the Wildfly application server in your Koding Machine. + +> type:alert +> The installation of Wildfly requires 120MB of free disk space in your VM. +> You can check the amount of free space you have by using the command: `df -h` (check the filesystem mounted in `/`). +> If you need to free up space, follow [this guide](http://learn.koding.com/guides/freeing-up-space/). + +## Prerequisites + +To run Wildfly, you need Java installed in your Koding VM. +By default, the Koding VMs include a OpenJDK installation that can be used. + +You can check which Java version is installed using the `java` command: + +``` +java -version +``` + +> type:tip +> Some people prefer the Oracle JDK instead of OpenJDK. +> You can install Oracle JDK using the [Koding Package Manager](http://learn.koding.com/guides/getting-started-kpm/): +> ``` +> kpm install oracle-java7 +> ``` + + +## Installing Wildfly + +The first step to install Wildfly is to download the software from the official [website](http://wildfly.org/downloads/). +There are many formats for the file (e.g. there are `.zip` and `.tar.gz` files). +Here we will use the `.tar.gz` file. + +You can download the software directly into the `/opt` folder, the folder used to store optional packages and additional software. +After downloading the archive, you can extract the content directly in that folder. +You can use the following commands to download and extract the software: + +``` +cd /opt +sudo wget http://download.jboss.org/wildfly/9.0.2.Final/wildfly-9.0.2.Final.tar.gz +sudo tar -xzvf wildfly-9.0.2.Final.tar.gz +``` + +The Wildfly software must be now located at `/opt/wildfly-9.0.2.Final`. +To simplify the access to that folder, you can create a symbolic link: + +``` +sudo ln -s /opt/wildfly-9.0.2.Final /opt/wildfly +``` + +> type:tip +> To free up disk space, after extracting the files, you can delete the downloaded archive: +> ``` +> sudo rm /opt/wildfly-9.0.2.Final.tar.gz +> ``` + +First, you can create a `wildlfy` user group and a `wildfly` user using the following commands: + +``` +sudo addgroup wildfly +sudo useradd -g wildfly wildfly +``` + +Then, you must change the ownership of the Wildfly folder to the `wildfly` user. + +``` +sudo chown -R wildfly:wildfly /opt/wildfly-9.0.2.Final +``` + + +> type:tip +> In order to modify the Wildfly configuration files without using `sudo` all the time, you can add your Linux user to the `wildfly` group. +> For instance, if your username is *username*, you may add your user to the `wildfly` group with the following command: +> ``` +> sudo usermod -a -G wildfly username +> ``` + + +## Configuring Wildfly as an Ubuntu service + +In Ubuntu Linux, services (servers) such as apache and sshd starts when the machine boots and are managed using commands such as `service`. +Wildfly includes an script that can be included in the Linux configuration to start and run the server in the same way. +You must copy that script into the `/etc/init.d` folder using the following commands: + +``` +sudo cp /opt/wildfly/bin/init.d/wildfly-init-debian.sh /etc/init.d/wildfly +sudo chown root:root /etc/init.d/wildfly +sudo chmod ug+x /etc/init.d/wildfly +``` + +Now you can start the wildfly server using `sudo service wildfly start`, stop wildfly `sudo service wildfly stop`, +and determine the status of the server with `sudo service wildfly status`. + +To enable Wildfly to start automatically when the server starts, you must add the server to the Linux run-levels. +There are some files that define which programs must run in each level of the operating system. +You may add the wildfly to the startup process using the following command: + +``` +sudo update-rc.d wildfly defaults +``` + +## Configuring remote access to Wildfly + +By default, the Wildfly listen only to the localhost (i.e. it can be accessed only from the Koding VM). +To access Wildlfy from other machines (including your browser) you need to configure the server to listen to the other network interfaces in the machine. +You can change the wildfly configuration by editing the corresponding XML file. + +``` +sudo cd /opt/wildfly/standalone/configuration +sudo vi standalone.xml +``` + +You must change the `public` interface originally bounded to `127.0.0.1`... + +```html + + + +``` + +to listen to any IP address. The resulting XML fragment must be: + +```html + + + +``` + +After modifying the configuration, you must restart the Wildlfy server. + +``` +sudo service wildfly restart +``` + +If your username is *username*, you can access your Wildfly server using `http://username.koding.io:8080`. + + +## Configuring the Wildfly Administration Console + +Wildfly includes an administration console that allows you to upload and monitor web applications. +This console is configured by default to listen only to the localhost. +If you want touse the console from other machines, you must create a management user and configure the `management` interface to listen to any address. + +To access the administration console from other machines, you must update the `management` interface in the `/opt/wildfly/standalone/configuration/standalone.xml` file. +The following code must replace the configuration in the XML file: + +```html + + + +``` + +After restarting Wildfly, the management console will be available at `http://username.koding.io:9990` + +When you go to the management console, it may show you an error message or a login page. +To access the console you must add a *Management User* to Wildfly. +You must run the `add-user` program using the following command: + +``` +sudo /opt/wildfly/bin/add-user.sh +``` + +Once you have created the management user, you can use it to enter to the console. + + +## Further information + +Wildfly supports a lot of Java technologies. +You can use it to create web applications and web services with different options for concerns such as security, clustering and high availability. +To learn more, you can check the official [technical guides](https://docs.jboss.org/author/display/WFLY10/Documentation), +including the [administration guide](https://docs.jboss.org/author/display/WFLY10/Admin+Guide). + + +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/installing-wordpress/index.md b/guides/installing-wordpress/index.md index cbd5cc7b9..15290ae10 100644 --- a/guides/installing-wordpress/index.md +++ b/guides/installing-wordpress/index.md @@ -1,7 +1,6 @@ --- title: Install WordPress author: Team Koding -date: 2014-10-16 categories: [cms, wordpress, php] template: page.toffee --- diff --git a/guides/installing-wordpress/wp1.png b/guides/installing-wordpress/wp1.png index 88e8cd2a4..6a0999b1f 100644 Binary files a/guides/installing-wordpress/wp1.png and b/guides/installing-wordpress/wp1.png differ diff --git a/guides/koding-with-sublime-text/index.md b/guides/koding-with-sublime-text/index.md index f91731342..6e4474212 100644 --- a/guides/koding-with-sublime-text/index.md +++ b/guides/koding-with-sublime-text/index.md @@ -1,79 +1,96 @@ --- -author: William -username: willwac -date: 2014-12-20 +author: koding description: 'Koding with Sublime Text' categories: [common questions, Sublime Text] --- # Koding with Sublime Text -This guide will show you how to connect your Koding VM with Sublime Text via SFTP. +This guide will show you how to connect your Koding VM with Sublime Text (v2 or v3) via SFTP. -## What you will need +## What you will need: +- [Set up FTP](http://learn.koding.com/guides/setting-up-ftp-on-koding) on your Koding VM +- Your Koding username +- Your Koding VM user's password +- Your [VM Hostname](http://learn.koding.com/faq/vm-hostname/) +- [Sublime Text](https://www.sublimetext.com/) v2.x or v3.x -- Set up FTP on your [Koding](https://koding.com) account: http://learn.koding.com/guides/setting-up-ftp-on-koding -- Your [Koding](https://koding.com) username -- Your [Koding](https://koding.com) VM Hostname -- [Sublime Text](https://www.sublimetext.com/) 2 or 3 +## Getting started +1. Download [Package Control](https://sublime.wbond.net/installation#st2) and use the `Package Control: Install Package` command from the command palette. The command palette is opened via `ctrl+shift+p` on Windows and Linux, and `cmd+shift+p` on OS X. +![alt tag](st1.png) -## Getting Down to Business - -1. Download [Package Control](https://sublime.wbond.net/installation#st2) and use the Package Control: Install Package command from the command palette. The command palette is opened via ctrl+shift+p on Windows and Linux, and cmd+shift+p on OS X. - - ![alt tag](st1.png) - -2. Once you run the Package Control: Install Package command, a list of packages will appear. Type in SFTP and hit enter. Using Package Control ensures Sublime SFTP will stay up to date automatically. - - ![alt tag](st2.png) +2. Once you run the Package Control: Install Package command, a list of packages will appear. Type in `SFTP` and hit enter. Using Package Control ensures Sublime SFTP will stay up to date automatically. +![alt tag](st2.png) 3. Open the folder that you want to sync with your VM using Sublime Text - - ![alt tag](st4.png) +![alt tag](st4.png) 4. Right click the folder in the sidebar and select `SFTP/FTP` -> `Map to Remote` +![alt tag](st5.png) - ![alt tag](st5.png) +5. You should now see a file by the name of `sftp-config.json` open up in the editor +![alt tag](st6.png) -5. You should now see `sftp-config.json` opened. - - ![alt tag](st6.png) - -6. Configure your `sftp-config.json` file and save it. - - ``` - // sftp, ftp or ftps +6. Configure your `sftp-config.json` file as described below and save it. +``` +{ + // The tab key will cycle through the settings when first created + // Visit http://wbond.net/sublime_packages/sftp/settings for help + + // sftp, ftp or ftps <<<< this is very important. only use 'ftp' "type": "ftp", - "host": "..koding.io", - "user": "", - "password": "", - //"port": "22", - "remote_path": "/home//", - ``` - - ![alt tag](st7.png) - - Modify the other configurations if you wish. I personally find the option to `upload_on_save` very handy. - - ![alt tag](st8.png) + // select the options below that suit your needs + "save_before_upload": true, + "upload_on_save": false, + "sync_down_on_open": false, + "sync_skip_deletes": false, + "sync_same_age": true, + "confirm_downloads": false, + "confirm_sync": true, + "confirm_overwrite_newer": false, + + // vm connection config + // make sure that your personal domain is active. see http://learn.koding.com/faq/vm-hostname/ + "host": ".koding.io", + "user": "", + // this is not your koding password + "password": "", + //"port": "22", + + "remote_path": "/home/", + "ignore_regexes": [ + "\\.sublime-(project|workspace)", "sftp-config(-alt\\d?)?\\.json", + "sftp-settings\\.json", "/venv/", "\\.svn/", "\\.hg/", "\\.git/", + "\\.bzr", "_darcs", "CVS", "\\.DS_Store", "Thumbs\\.db", "desktop\\.ini" + ], + //"file_permissions": "664", + //"dir_permissions": "775", + + //"extra_list_connections": 0, + + "connect_timeout": 30, + "keepalive": 120, + "ftp_passive_mode": true, + //"ftp_obey_passive_host": false, + //"ssh_key_file": "~/.ssh/id_rsa", + //"sftp_flags": ["-F", "/path/to/ssh_config"], + + //"preserve_modification_times": false, + //"remote_time_offset_in_hours": 0, + //"remote_encoding": "utf-8", + //"remote_locale": "C", + //"allow_config_upload": false, +} +``` 7. Right click the folder, select `SFTP/FTP`. You will now see many more options than before. +![alt tag](st9.png) - ![alt tag](st9.png) - -8. (**IMPORTANT**) Chose whether you want to `Sync Local -> Remote` or `Sync Remote -> Local`. Be very careful about which you choose. - - `Sync Local -> Remote` overwrites what you have in your remote directory that you specified in you `sftp-config.json` file with what you have in your local directory. - - `Sync Remote -> Local` overwrites what you have in your local directory with what you have in your remote directory that you specified in you `sftp-config.json` file. - - ![alt tag](st10.png) +8. (**IMPORTANT**) Chose whether you want to `Sync Local -> Remote` or `Sync Remote -> Local`. Be very careful about which you choose. `Sync Local -> Remote` overwrites what you have in your remote directory that you specified in you `sftp-config.json` file with what you have in your local directory. `Sync Remote -> Local` overwrites what you have in your local directory with what you have in your remote directory that you specified in you `sftp-config.json` file. +![alt tag](st10.png) 9. (**IMPORTANT**) Check what is about to be performed in the box below before confirming your actions! +![alt tag](st11.png) - ![alt tag](st11.png) - -10. And there you have it, a folder synced with your Koding VM. - - ![alt tag](st12.png) +And there you have it, a folder synced with your Koding VM. diff --git a/guides/linux-dash/index.md b/guides/linux-dash/index.md index 3b12effff..a69282230 100644 --- a/guides/linux-dash/index.md +++ b/guides/linux-dash/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-15 categories: [developer tools, apache, monitoring, linux, web dashboard] --- diff --git a/guides/markdown.md b/guides/markdown.md index c4c1d8607..061bb5684 100644 --- a/guides/markdown.md +++ b/guides/markdown.md @@ -1,7 +1,6 @@ --- title: Markdown Basics, for Koding author: Team Koding -date: 2014-05-30 categories: [koding features, markdown] template: page.toffee @@ -125,4 +124,4 @@ You can easily include images in your markdown by using the following notation: ```markdown ![Alt text](full url to the image) ![Alt text](full url to the image "Optional title") -``` +``` \ No newline at end of file diff --git a/guides/mount-ftp-fs/index.md b/guides/mount-ftp-fs/index.md new file mode 100644 index 000000000..a3e2990a1 --- /dev/null +++ b/guides/mount-ftp-fs/index.md @@ -0,0 +1,63 @@ +--- +title: How to mount a remote FTP server as a local directory on your Koding VM? +author: Team Koding +categories: [developer tools, file sync, ftp, file transfer] +template: page.toffee +--- + +In some cases, you may have your code and other relevant files on another server +and need to keep them remote but still want to work on them. The easiest +way to achieve this is to mount the remote system as a local directory +on your Koding VM so that you can work on the files as if they were on +your Koding VM. + +This guide walks you through the process of installing the required +software on your Koding VM. We will use an application called `curlftpfs`. + +You will also need: +1. IP address/domain name of the remote ftp server +2. ftp username and password for the remote server + +### Installing the required application +To install curlftpfs on your Koding VM, use the following command in Terminal: +``` +sudo apt-get update +sudo apt-get install curlftpfs +``` + +### Configuring your VM +Once installation is done, you will need to select a local folder on your VM +that will be the "mount point" for the remote server. As an exmaple, we will +create a new folder called `remote-ftp` in the VM's `/mnt` directory. If you already know +which folder you wan to use, you can skip these steps: + +``` +sudo mkdir /mnt/remote-ftp +``` + +### Making the connection +To initiate a connection, use the following command: +``` +sudo curlftpfs ftp.yourserver.com /mnt/remote-ftp -o user=ftp-username:ftp-password,allow_other +``` + +Note: the `allow_other ` option above will allow the non-root user on your VM to also access +the files available via this mount method. + +> type:alert +> Do not add space after the comma or the allow_other argument will not be recognized. + +That should do it. Now if you navigate to the `/mnt/remote-ftp` directory and pull up a file +list, the list of files should be from the remote server. + +> type:tip +> Even if the files in `/mnt/remote-ftp` are "owned" by the `root` user, any other user should +> still be able to operate on the files because we used the `allow_other` option when we set +> up the connection. + +### Disconnecting +To disconnect (unmount) the remote mount, use the following command: +``` +sudo fusermount -u /mnt/remote-ftp +``` + diff --git a/guides/nginx/index.md b/guides/nginx/index.md index a4f7a6edc..cfa91dac2 100644 --- a/guides/nginx/index.md +++ b/guides/nginx/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-07-31 categories: [frameworks platforms, nginx] --- diff --git a/guides/octopress-for-beginners.md b/guides/octopress-for-beginners.md index 06ec34ca5..3617e788d 100644 --- a/guides/octopress-for-beginners.md +++ b/guides/octopress-for-beginners.md @@ -1,7 +1,6 @@ --- title: Octopress Installation for Beginners author: Team Koding -date: 2014-04-13 categories: [frameworks platforms, octopress, markdown] template: page.toffee --- @@ -65,4 +64,4 @@ Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostn And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/permanent-shared-vm/1.png b/guides/permanent-shared-vm/1.png index 239a711aa..df7a90f70 100644 Binary files a/guides/permanent-shared-vm/1.png and b/guides/permanent-shared-vm/1.png differ diff --git a/guides/permanent-shared-vm/5.png b/guides/permanent-shared-vm/5.png index 4e7946d35..f26e88345 100644 Binary files a/guides/permanent-shared-vm/5.png and b/guides/permanent-shared-vm/5.png differ diff --git a/guides/permanent-shared-vm/index.md b/guides/permanent-shared-vm/index.md index 9db08fb71..80d728dc8 100644 --- a/guides/permanent-shared-vm/index.md +++ b/guides/permanent-shared-vm/index.md @@ -1,18 +1,23 @@ --- title: How to share your VM with someone? author: Team Koding -date: 2015-04-03 -categories: [koding] - -improvable: false +categories: [koding features, collaboration, koding] +template: page.toffee --- - ### What does "Shared VM" mean? The "Share VM" feature allows you to give another Koding user full access to your VM even if you are not using your Koding.com account. This is very different from -[Collaboratiom on Koding](/guides/collaboration/) where you are working with someone in +[Collaboration on Koding](/guides/collaboration/) where you are working with someone in real-time and sharing the IDE and Terminal. +> type:tip +> This feature is only available for accounts with a paid plan (hobbyist, developer or professional). +> Even though a paid account is required to start the sharing, a free account can receive a shared +> VM. + +that as a paid plan owner, you can share your VM with another paid or free plan account. +> + ### What's the benefit? There are several use cases where this makes sense. For example: 1. Multiple people are working on a project. They don't need to collaborate real-time but still need to access the same VM independently. @@ -32,6 +37,3 @@ Can you think of more? If yes, [let us know](mailto:sharedvms@koding.com)! ### How do I leave a shared VM? 1. Click the VM settings for the shared VM and then select "Leave Shared VM" to remove the VM from your Sidebar.![4](4.png) - -> type:tip -> This feature is only available to our paying users. \ No newline at end of file diff --git a/guides/postgresql-on-koding.md b/guides/postgresql-on-koding.md index 57ecbcf2b..6928bba34 100644 --- a/guides/postgresql-on-koding.md +++ b/guides/postgresql-on-koding.md @@ -1,6 +1,5 @@ --- author: Federico Ponzi -date: 2014-04-07 categories: [databases, postgresql, sql] --- @@ -77,7 +76,7 @@ Let's see some useful commands of the psql tool. First of all: you can get some **help** just typing `\?` in your psql command line. To exit from the appearing screen, just press the `q` button. -To **load and execute SQL statemens from file**, you can use this syntax: +To **load and execute SQL statements from file**, you can use this syntax: \i my/file/path.sql diff --git a/guides/prestashop-installation-for-beginners.md b/guides/prestashop-installation-for-beginners.md index 68845fdff..053de81e1 100644 --- a/guides/prestashop-installation-for-beginners.md +++ b/guides/prestashop-installation-for-beginners.md @@ -1,7 +1,6 @@ --- title: PrestaShop Installation for Beginners author: Team Koding -date: 2014-04-09 categories: [frameworks platforms, prestashop, php] template: page.toffee diff --git a/guides/preview/index.md b/guides/preview/index.md new file mode 100644 index 000000000..63fca7980 --- /dev/null +++ b/guides/preview/index.md @@ -0,0 +1,19 @@ +--- +title: How can I preview the code that I write on my Koding VM? +author: Team Koding +categories: [koding features, previewing] +--- + +Since a Koding VM is essentially a Linux machine, we support all programming languages that are +supported on Linux. To get you started with programming, we have also written a series of ["Hello +World" guides](http://learn.koding.com/guides/hello-world/) for several different programming languages. + +### Previewing command line applications +Once you have written your code, previewing it is the next step. If you are writing a command +line application then preview will happen on the command line itself when you run the application. + +### Previewing web applications +To preview your web app, you can use the "Preview" option in the drop down menu of each editor tab. +This will open a new browser tab and show you a preview of that file. +![preview](preview.png) + diff --git a/guides/preview/preview.png b/guides/preview/preview.png new file mode 100644 index 000000000..9bf65f046 Binary files /dev/null and b/guides/preview/preview.png differ diff --git a/guides/pyrocms-installation-for-beginners.md b/guides/pyrocms-installation-for-beginners.md index 9b78b0619..be25ba8cb 100644 --- a/guides/pyrocms-installation-for-beginners.md +++ b/guides/pyrocms-installation-for-beginners.md @@ -1,7 +1,6 @@ --- title: PyroCMS Setup and Installation for Beginners author: Team Koding -date: 2014-03-09 categories: [cms, pyrocms, php] template: page.toffee @@ -63,4 +62,4 @@ Find out more about your VM hostname [here](http://learn.koding.com/faq/vm-hostn And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-django-webserver.md b/guides/setting-django-webserver.md index 618aa1e24..8d90b3a49 100644 --- a/guides/setting-django-webserver.md +++ b/guides/setting-django-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a Django webserver author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, django,python] template: page.toffee --- @@ -69,4 +68,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-laravel-artisan-webserver.md b/guides/setting-laravel-artisan-webserver.md index c0842e11c..67296cd35 100644 --- a/guides/setting-laravel-artisan-webserver.md +++ b/guides/setting-laravel-artisan-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a Laravel webserver with Artisan author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, laravel, artisan,php] template: page.toffee --- @@ -80,4 +79,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-meteorjs-webserver.md b/guides/setting-meteorjs-webserver.md index d1466a14d..0234e4451 100644 --- a/guides/setting-meteorjs-webserver.md +++ b/guides/setting-meteorjs-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a MeteorJS webserver author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, meteorjs] template: page.toffee --- @@ -69,4 +68,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-rails-webserver.md b/guides/setting-rails-webserver.md index f503e017f..997a90d96 100644 --- a/guides/setting-rails-webserver.md +++ b/guides/setting-rails-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a Rails webserver author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, rails,ruby] template: page.toffee --- @@ -46,7 +45,7 @@ cd goodbyetolocalhost You can run the Rails webserver like so: ``` -rails server +rails server -b 0.0.0.0 ``` You will now be able to access the Rails webserver by following a similar URL: @@ -65,4 +64,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-symfony2-webserver.md b/guides/setting-symfony2-webserver.md index ff20cd8f5..e490e811a 100644 --- a/guides/setting-symfony2-webserver.md +++ b/guides/setting-symfony2-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a Symfony2 webserver author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, symfony2,composer,php] template: page.toffee --- @@ -69,4 +68,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-tornado-webserver.md b/guides/setting-tornado-webserver.md index fd7e1bddc..411201e79 100644 --- a/guides/setting-tornado-webserver.md +++ b/guides/setting-tornado-webserver.md @@ -1,7 +1,6 @@ --- title: Setting up a Tornado webserver author: Team Koding -date: 2015-02-26 categories: [frameworks platforms, tornado,python] template: page.toffee --- @@ -73,4 +72,4 @@ sudo netstat -tnlp And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-up-cockpit/index.md b/guides/setting-up-cockpit/index.md index 25a5e0717..931aee6c6 100644 --- a/guides/setting-up-cockpit/index.md +++ b/guides/setting-up-cockpit/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2015-02-18 description: Setup Cockpit on Koding categories: [developer tools, Cockpit] template: page.toffee @@ -87,4 +86,4 @@ If everything was successful this is the first thing your should see: And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/setting-up-ftp-on-koding/index.md b/guides/setting-up-ftp-on-koding/index.md index 5fd12c223..6ecce03ad 100644 --- a/guides/setting-up-ftp-on-koding/index.md +++ b/guides/setting-up-ftp-on-koding/index.md @@ -1,7 +1,6 @@ --- title: Setting up FTP on Koding author: Team Koding -date: 2014-09-15 categories: [common questions, ftp, file transfer] --- @@ -43,6 +42,12 @@ sudo apt-get install proftpd During the install process you will be asked to choose to run your VPS as an inetd or standalone server. Choose the **standalone** option. +After installation, the server should run automatically but just in case it does not, type in +the following command to start the server: +``` +sudo service proftpd start +``` + ## Setting up the FTP User After ProFTPd has been successfully installed, you need to set a FTP password for your user. To do this, paste the following command into your Terminal. @@ -67,6 +72,7 @@ After the hostname, enter your Koding username, and FTP Password that you chose - [FileZilla](https://filezilla-project.org/) - [FileZilla Download](https://filezilla-project.org/download.php?type=client) +- [Connecting to your Koding VM using FileZilla](/guides/ftp-with-filezilla/) [filezilla]: https://filezilla-project.org/ diff --git a/guides/setting-up-ftp-with-vsftpd/index.md b/guides/setting-up-ftp-with-vsftpd/index.md index b09c7c5ce..4717202f6 100644 --- a/guides/setting-up-ftp-with-vsftpd/index.md +++ b/guides/setting-up-ftp-with-vsftpd/index.md @@ -1,7 +1,6 @@ --- title: Setting up FTP with vsftpd author: Team Koding -date: 2015-02-05 categories: [developer tools, ftp, file transfer] --- diff --git a/guides/setting-up-mosh-on-koding.md b/guides/setting-up-mosh-on-koding.md new file mode 100644 index 000000000..da2b9a3a1 --- /dev/null +++ b/guides/setting-up-mosh-on-koding.md @@ -0,0 +1,45 @@ +--- +title: Setting up MOSH on Koding.io +author: Tushar Mathur +username: tusharmathur +categories: [koding, mosh] +template: page.toffee +--- + +Using a remote server for development is so much cooler for obvious reasons. Using MOSH on top of it naturally makes the experience much better. + +###[Koding.com](https://koding.com) + [MOSH](https://mosh.mit.edu/#getting) = *Ecstasy* + + +Here is how you can get mosh to work on koding.com + +1. SSH into the koding server from your client machine. If you haven't added ssh keys yet checkout their [tutorial](http://learn.koding.com/guides/ssh-into-your-vm/). + ```bash + ssh @.koding.io + ``` + +2. Setup [uncomplicated firewall](http://learn.koding.com/guides/enable-ufw/) in the remote machine. + ```bash + sudo apt-get install ufw + sudo ufw status verbose + sudo ufw enable + ``` + +3. Open up critical ports first viz. HTTP, SSH and 56789 for koding. + ```bash + sudo ufw allow ssh + sudo ufw allow http + sudo ufw allow 56789/tcp + ``` + +4. Open up the port (60001 is used by mosh in most cases) on the remote machine for the client machine to access it via udp. + ```bash + sudo ufw allow 60001/udp + ``` + +5. Connect the remote machine by running the mosh command from the client machine. This will automatically ssh into the remote server and start the mosh-server. + ```bash + mosh @.koding.io + ``` + +That's it, you are done. diff --git a/guides/setting-up-sftp-on-koding/index.md b/guides/setting-up-sftp-on-koding/index.md index 0aa238ab5..2f6fc9dc2 100644 --- a/guides/setting-up-sftp-on-koding/index.md +++ b/guides/setting-up-sftp-on-koding/index.md @@ -1,7 +1,6 @@ --- title: Setting up SFTP on Koding author: Team Koding -date: 2015-02-04 categories: [common questions, sftp, ftp, file transfer] --- @@ -29,7 +28,7 @@ and let the update process complete. It should not require any input. First off, you'll need to install `openssh-server`. This can be done by pasting the following command into your [Koding IDE][ide]'s Terminal. -> type:success +> type:tip > The `openssh-server` package comes preinstalled on all Koding VMs. ``` @@ -117,7 +116,7 @@ Finally, in your SFTP Client of choice paste your VM Address into the hostname. After the hostname, enter your Koding username, and SFTP password that you chose in the above commands. An example image from FileZilla can be seen below. -> type:warning +> type:alert > The default port for a SFTP connection is 22. Make sure to specify this when you input the connection details. ![FileZilla SFTP Settings](ftpsettings.png) diff --git a/guides/setting-up-webdav-on-koding/index.md b/guides/setting-up-webdav-on-koding/index.md index e262f4a5e..930f6e465 100644 --- a/guides/setting-up-webdav-on-koding/index.md +++ b/guides/setting-up-webdav-on-koding/index.md @@ -1,7 +1,6 @@ --- title: Setting up WebDav on Koding author: Team Koding -date: 2014-03-16 categories: [common questions, koding, apache, file transfer] template: page.toffee @@ -102,4 +101,4 @@ After the connection is established we enter our username and password and we're Connection to `http://..koding.io/webdav1` closed. -That is all. If you have any issues setting up WebDav you can drop an email at [support@koding.com](mailto:support@koding.com) +That is all. If you have any issues setting up WebDav you can drop us an email at [support@koding.com](mailto:support@koding.com) diff --git a/guides/ssh-chromebook/index.md b/guides/ssh-chromebook/index.md index e5c448203..ce3c67c41 100644 --- a/guides/ssh-chromebook/index.md +++ b/guides/ssh-chromebook/index.md @@ -1,13 +1,12 @@ --- title: Using SSH on a Chromebook to connect to your Koding VM author: Team Koding -date: 2014-12-26 categories: [koding features, ssh] --- In this guide, we will cover how to set up ssh on your Chromebook. There are two ways you can use SSH on a Chromebook. You can either install [Google's SSH -Chrome extention](https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo) +Chrome extention](https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo) or use the native SSH client that is built into the Chrome OS. For the purposes of this guide, we will use the native SSH client method as it does not require the installation of any new software. @@ -24,11 +23,11 @@ build of Chrome OS or that your device manufacturer has opted to remove crosh fr their customd build of the Chrome OS. ### Step 2: Generate the required ssh private and public keys on your VM -> type:success +> type:tip > If you already have a private and public key generated, you can skip the section below -Open up Terminal on your Koding VM and type in the following command: +Open up Terminal on your Koding VM and type in the following command: ``` ssh-keygen ``` @@ -36,10 +35,10 @@ You will be presented with a few choices, accept all defaults until you end up with something like this: ``` Generating public/private rsa key pair. -Enter file in which to save the key (/home/your_username/.ssh/id_rsa): +Enter file in which to save the key (/home/your_username/.ssh/id_rsa): Created directory '/home/your_username/.ssh'. -Enter passphrase (empty for no passphrase): -Enter same passphrase again: +Enter passphrase (empty for no passphrase): +Enter same passphrase again: Your identification has been saved in /home/your_username/.ssh/id_rsa. Your public key has been saved in /home/your_username/.ssh/id_rsa.pub. The key fingerprint is: @@ -77,7 +76,7 @@ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys To achieve this, we will first copy over the private key to our Web folder so that we can download it over the browser. -> type:warning +> type:alert > After downloading the private key you should immediately delete if from your Web folder. This is not the most secure way of copying over your file but is the easiest. If you prefer, you diff --git a/guides/ssh-into-your-vm/index.md b/guides/ssh-into-your-vm/index.md index f7ad26641..786ff770c 100644 --- a/guides/ssh-into-your-vm/index.md +++ b/guides/ssh-into-your-vm/index.md @@ -1,7 +1,6 @@ --- title: Connect with SSH, from Unix author: Team Koding -date: 2014-09-15 categories: [understanding vm, ssh, unix] --- @@ -55,7 +54,7 @@ open the `~/.ssh/authorized_keys` file. Once the key has been pasted in, save the file. -> type:warning +> type:alert > Make sure that the key you have pasted is one long line and that there are not line breaks anywhere. If there are line breaks in the file, your ssh connection will fail. ## Connecting with SSH @@ -78,7 +77,7 @@ ssh joshmurray@unkk05c3f84e.joshmurray.koding.io ## Deleting a key If you no longer wish to authorize an existing key from connecting to your VM, simply delete that key from your `authorized_keys` file. This can be -easily achieved by opening up the `~/.ssh/authorized_keys` file in your +easily achieved by opening up the `~/.ssh/authorized_keys` file in your favorite editor (e.g. nano or vi) and deleting the one line that contains the key for which you wish to remove access. diff --git a/guides/ssh-tunneling.md b/guides/ssh-tunneling.md index 488919c16..5346eccfa 100644 --- a/guides/ssh-tunneling.md +++ b/guides/ssh-tunneling.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-08-9 categories: [understanding vm, ssh] --- diff --git a/guides/sync-files-google-drive.md b/guides/sync-files-google-drive.md index 6cc352f52..3db559403 100644 --- a/guides/sync-files-google-drive.md +++ b/guides/sync-files-google-drive.md @@ -1,11 +1,15 @@ --- title: Sync files using Google Drive author: Team Koding -date: 2014-07-08 categories: [common questions, koding, file sync, google drive, file transfer] template: page.toffee --- +> type:alert +> Due to Google recently deprecating the API on which grive depended, we do not +> recommend you install grive to connect to Google Drive as the author of grive +> has not yet updated the software to work with the new version of the Google +> Docs API. We will update this msg once we have a better solution. # Sync files using Google Drive diff --git a/guides/terminal-introduction/index.md b/guides/terminal-introduction/index.md index f7f9a9deb..bc10e76f8 100644 --- a/guides/terminal-introduction/index.md +++ b/guides/terminal-introduction/index.md @@ -1,7 +1,6 @@ --- title: Koding Terminal Introduction author: Team Koding -date: 2015-03-18 categories: [koding features, koding] videoId: 1579S_7R6EQ --- @@ -16,7 +15,7 @@ To access a Koding Terminal, select your Virtual Machine on the left hand side a ![Terminal 1](term1.png) -> type:warning +> type:alert > If you have a Developer or Professional account then select the VM you want to start, from the list. Then click on the `Turn it on` button in the modal. @@ -28,7 +27,7 @@ After the VM has started, you'll see your Koding IDE. > type:tip > The IDE will remember what files / tabs you had opened last time and the FileTree will remember the folder location. -By default after your VM is started, you will see a Terminal prompt in the lower right portion of your Integrated Development Environment (IDE). +By default after your VM is started, you will see a Terminal prompt in the lower right portion of your Integrated Development Environment (IDE). ## Usage diff --git a/guides/togetherjs-setup-for-beginners.md b/guides/togetherjs-setup-for-beginners.md index 8a5cf7ece..0500534f1 100644 --- a/guides/togetherjs-setup-for-beginners.md +++ b/guides/togetherjs-setup-for-beginners.md @@ -1,7 +1,6 @@ --- title: TogetherJS Setup and Usage for Beginners author: Team Koding -date: 2014-03-05 categories: [frameworks platforms, togetherjs, javascript] template: page.toffee diff --git a/guides/understanding-file-permissions.md b/guides/understanding-file-permissions.md index 17209e510..ad65e9e54 100644 --- a/guides/understanding-file-permissions.md +++ b/guides/understanding-file-permissions.md @@ -1,14 +1,13 @@ --- title: Understanding file permissions author: Team Koding -date: 2015-02-25 categories: [understanding vm, file permissions,koding] template: page.toffee --- # Understanding file permissions -Linux-based systems, Ubuntu beeing one of them, have a simple system for managing individual file permissions, The Unix concepts for file ownership and permissions are the main driving force behind Linux and it's security at the file system level. +Linux-based systems, Ubuntu being one of them, have a simple system for managing individual file permissions, The Unix concepts for file ownership and permissions are the main driving force behind Linux and it's security at the file system level. This guide will cover the basics of file permissions and how you can modify them. @@ -98,9 +97,9 @@ For example, the following command would transfer the ownership and change the g chown demo:www-data demo1 ``` -> type:success +> type:tip > Note: The same principles also apply to folders You should now be able to understand how ownership and permissions work in Linux. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/understanding-vm-panel/index.md b/guides/understanding-vm-panel/index.md index 7dad63b47..859efbf4e 100644 --- a/guides/understanding-vm-panel/index.md +++ b/guides/understanding-vm-panel/index.md @@ -1,51 +1,46 @@ --- -title: Understanding the VM settings panel +title: Understanding the VM settings modal author: Team Koding -date: 2014-11-03 -categories: [koding features, koding] +categories: [understanding-vm, koding features, koding] template: page.toffee --- -# Understanding the VM settings panel - -This guide will explain the basics of the VM settings panel. +## Understanding the VM settings modal +This guide will explain the basics of the VM settings modal. ![VM Panel 1](uvms2.png) -In order to open the VM settings panel you need to hover over the VM name on the right side of Koding (in the sidebar at the top) and then click on the little three points icon on the right, as picture above. +In order to open the VM settings modal you need to hover over the VM name on the right side of Koding (in the sidebar at the top) and then click on the three points icon that appears on the right of the VM label. (as seen in the image above) ![VM Panel 2](uvms1.png) -After you click on the icon mentioned above the VM modal should open, which should look like the one pictured above. - -The VM settings panel has three main sections: the Basic section, the More section and the Advanced section. - -## Basic section +After you click on the icon mentioned above the VM modal should open, which should look like the one pictured above. The VM settings are mostly self explanatory but we will outline them here for clarity. The VM settings modal has three main sections: the Basic section, the More section and the Advanced section. -The basic section includes basic information about your VM and some basic functionality over it. Each line is explained below. +### General Tab +The general tab houses the basic settings about your VM. These are: +1. **On/Off:** This toggle will switch your VM's state between on/off. We recommend using this to turn off your VM as compared to doing a `sudo poweroff` on your VM. +2. **Keep VM always on:** A paid feature, this allows you to keep your VM running all the time. +3. **Nickname:** You can use this to give your VM a nice name that you can remember! +4. **Public IP:** This is the public IP for your VM. +> type:tip +> For free accounts, the public IPs rotate every reboot. +5. **Assigned URL:** This is the system assigned URL/name for your VM. It's long so that it's never duplicated. -* Assigned URL: This is the long assigned URL of your Koding VM. -* Nickname: You can rename your VM and this will update the name that appears in the right sidebar. -* On/Off toggle: The current status of the VM. You can also turn off your VM from here, though we don't recommend it. -* Disk usage: How much space you have used of your VMs available space. -* Public IP: Your VM's public IP. This will change every time you start up your VM. For users on the Free plan, this will change each time you start up your VM. If your VM is Always-On, it will only change when you restart your VM. -* Specs: Specifications your VM has. This is based on your current plan. -* Provider: Your VM provider. In the future you will be able to choose from multiple providers. -* Guides: The most common and useful guides to get you started using your VM. +### Specs Tab +This tab shows you the basic specifications of your VM. -## More section +### Disk Usage Tab +Here you can see how much disk space you have used. -The more section includes some additional settings for your VM. Each setting has been explained below. +### Domains Tab +Here you can create a [custom/short URL for your VM](http://learn.koding.com/faq/vm-hostname/) and/or [define subdomains](http://learn.koding.com/faq/vm-hostname/) and [custom domains for your VM](http://learn.koding.com/guides/domains/). These come in handy if you are running multiple [virtual hosts](http://learn.koding.com/guides/vhosts-and-subdomains/) on your VM. -* Keep VM always on toggle: If you are a paying customer than you can chose to keep your VM Always-On. This means that your VM will not be shut down automatically after 60 minutes. -* Domains: You can enable a [short URL for your VM](http://learn.koding.com/faq/vm-hostname/) and/or [define subdomains](http://learn.koding.com/faq/vm-hostname/) and [custom domains for your VM](http://learn.koding.com/guides/domains/). - -## Advanced section +### VM Sharing +[Shared VMs](http://learn.koding.com/guides/permanent-shared-vm/), another feature for our paid accounts, allows you to share your VM with other Koding members even if you are not online. +### Advanced Tab The advanced section includes settings that only advanced users should use. If you are an unexperienced user then this section should be off limits. +* **Reinitialize VM:** This button will set your VM back to its default state. This means that the VM will be re-imaged, as if you deleted the VM and created a new one. [This guide](https://learn.koding.com/faq/vm-reinit/) explains the reinit function in more detail. +* **Terminate VM:** You can remove your VM and create a new one if you so choose. We recommend you reinit your VM in lieu of deleting and recreating it. -* Reinitialize VM: This button will set your VM back to its default state. This means that the VM will be re-imaged, as if you deleted the VM and created a new one. [This guide](/faq/vm-reinit/) explains the reinit function in more detail. -* Resize VM: If you just upgraded to a paid plan you can choose to assign the necessary space. -* Terminate VM: If you're a paying customer you can remove your VM and create a new one if you so choose. - -If you encounter any issues or have any questions regarding the VM settings panel you can email us at [support@koding.com](mailto:support@koding.com) and we'll gladly help. +If you encounter any issues or have any questions regarding the VM settings modal you can email us at [support@koding.com](mailto:support@koding.com) and we'll gladly help. diff --git a/guides/understanding-vm-panel/uvms1.png b/guides/understanding-vm-panel/uvms1.png index ece1e78f9..12610ecb9 100644 Binary files a/guides/understanding-vm-panel/uvms1.png and b/guides/understanding-vm-panel/uvms1.png differ diff --git a/guides/updating-nodejs-on-your-vm.md b/guides/updating-nodejs-on-your-vm.md index 29b1967df..aa9793b7d 100644 --- a/guides/updating-nodejs-on-your-vm.md +++ b/guides/updating-nodejs-on-your-vm.md @@ -2,7 +2,6 @@ title: Updating Node.js on your VM author: Darryl Dias username: darryldias -date: 2014-06-27 categories: [understanding vm, nodejs, ppa] template: page.toffee @@ -12,20 +11,21 @@ template: page.toffee Your Koding VM is powered by Ubuntu 14.04; by default your Koding VM comes pre-installed with Node 0.10.26, the current stable version of Node.js available in the official Ubuntu repository. We can update to the latest stable version of Node.js available for Ubuntu 14.04 by adding the official Node.js PPA to our local sources list and running a dist-upgrade to switch to the latest stable version. -The Official PPA is updated regularly and is maintained by [Chris Lea](https://chrislea.com/) +Node.js is available from the NodeSource Debian and Ubuntu binary distributions repository (formerly Chris Lea's Launchpad PPA) ## Instructions Adding the official Node.js PPA ```bash -sudo add-apt-repository ppa:chris-lea/node.js +curl --silent --location https://deb.nodesource.com/setup_4.x | sudo bash - ``` Updating the local package database and sources list. ```bash sudo apt-get update +sudo apt-get install nodejs ``` Updating to the latest stable build of Node.js available for Ubuntu 14.04. This will update all the packages that need to update and will also update your Node.js package. diff --git a/guides/upgrading-your-vm/index.md b/guides/upgrading-your-vm/index.md index 8cbbcfe23..f4cab0b27 100644 --- a/guides/upgrading-your-vm/index.md +++ b/guides/upgrading-your-vm/index.md @@ -1,12 +1,14 @@ --- title: Updating the OS (and other packages) your VM author: Team Koding -date: 2014-12-21 categories: [understanding vm, koding] template: page.toffee --- # Updating the OS on your Koding VM +> type:alert +> DO NOT update the OS to Ubuntu 15.xx, it will completely hose your VM and you will +> need to [reinit](http://learn.koding.com/faq/vm-reinit/) This guide will walk you through the process of upgrading the OS, Kernel and core packages on your Koding VM. @@ -16,7 +18,7 @@ We will walk through the following steps: So depending on your need, you can do 1) or 2) or both. -> type:warning +> type:alert > Even though we have tested upgrading the VM, some updates may render your VM inaccessible so please proceed only if you know what you are doing. If you run into problems, you can always re-init your VM or send us a request via [support@koding.com](mailto:support@koding.com). @@ -58,16 +60,16 @@ To update your package list, type the following command in Terminal: ``` sudo apt-get update ``` -> type:warning +> type:alert > No software has been updated at this time, just the list of available packages has been updated. ### Upgrading existing packages These series of commands will update all _existing_ packages. These will NOT install new packages. -To update all currently installed packages to their latest levels, issue the following command in -Terminal: +To update all currently installed packages and the packages that they depend on, to their latest levels, +issue the following command in the Terminal: ``` -sudo apt-get upgrade +sudo apt-get dist-upgrade ``` The system will analyze which packages on your VM need an update and will give you an estimate of the space needed. Make sure that the number shown here is less than the number you saw earlier @@ -94,27 +96,11 @@ If all went well, you will end up on a screen that looks like this and the curso prompt again: ![Finish](finish.png) -Congratulations! You have just finished upgrading your existing packages to their latest official -released levels. This will also include officially released security patches for all existing -software packages. - -If you just wanted to update the , you can stop now. If you also wish to update your Ubuntu distribution, - then you can continue to the next section. - -### Upgrading your Ubuntu Distribution -This command will install new packages that have been released for Ubuntu. As before, please make -sure that you have re-checked the available disk space before proceeding. +Congratulations! You have just finished upgrading your existing packages and the packages that they +depend upon, to their latest official released levels. This will also include officially released +security patches for all existing software packages. -Type in the following command to begin the update process: -``` -sudo apt-get dist-upgrade -``` -The command will pull in new versions of the Linux Kernel (if any are available). Just like before, -if you encounter any screens that ask for overwriting existing files, please follow the recommendations -from the previous section. Once done, you should see something like this: -![update done](update-done.png) - -Now, let's reboot the VM. Open up the settings panel for your VM and toggle the on/off switch. Once +Now, let's reboot the VM. Open up the settings modal for your VM and toggle the on/off switch. Once the VM turns off and you see the button to turn it on, go ahead and click it. This is necessary to ensure that the updated files are brought into use. @@ -129,7 +115,14 @@ you should see output as the following: note that the kernel version has updated. You've just updated your VM to the latest Linux kernel! +One last thing, to help clean up your system it's always good to clean up. If a new kernel was installed +you can remove the old one, and if some packages are no longer used they can be removed as well. To do this +type in the following command in Terminal: +``` +sudo apt-get autoclean +``` + ### If something goes wrong -Your Koding VM can easily be reinitialized to our official version (the version you got when you +Your Koding VM can easily be reinitialized to our official version (the version you got when you made a new Koding account) so if all these updates leave you with an unusable VM, try [reinitializing your VM back to its original state](http://learn.koding.com/faq/vm-reinit/). diff --git a/guides/using-bitbucket-on-koding/index.md b/guides/using-bitbucket-on-koding/index.md index 6249160b4..8c1571d92 100644 --- a/guides/using-bitbucket-on-koding/index.md +++ b/guides/using-bitbucket-on-koding/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-07-16 categories: [developer tools, koding, bitbucket] template: page.toffee diff --git a/guides/using-github/index.md b/guides/using-github/index.md index a00d95d6d..d4bcd0211 100644 --- a/guides/using-github/index.md +++ b/guides/using-github/index.md @@ -1,7 +1,6 @@ --- title: Using Github with Koding author: Team Koding -date: 2014-12-04 categories: [developer tools, koding] template: page.toffee --- @@ -12,7 +11,7 @@ This guide will cover the basics on how to get started with Github on you Koding ## What is Ungit? -[Ungit](https://github.com/FredrikNoren/ungit) is a web based interface for Github made by [Fredrik Noren](https://github.com/FredrikNoren) that runs on any platform. It has a clean and intuitive UI that makes it easy to understand git. It runs on any platform that node.js & git supports and it works well with GitHub. +[Ungit](https://github.com/FredrikNoren/ungit) is a web based interface for Github made by [Fredrik Noren](https://github.com/FredrikNoren) that runs on any platform. It has a clean and intuitive UI that makes it easy to understand git. It runs on any platform that node.js & git supports and it works well with GitHub. ## Getting started @@ -20,7 +19,7 @@ Before we begin please make sure you have the Koding Package Manager (KPM) insta ## Setup -> type:success +> type:tip > `git` is installed by default with every Koding VM. So you will be able to get started right away. Before you can get started with Github on your Koding VM you need to first setup the environment to be able to work properly with Github. @@ -72,7 +71,7 @@ Copy that link and open it in a separate browser window. You should see somethin In the top area of the screen, in the input box you will be able to input the path to a local existing repository on your Koding VM or start with a fresh empty one. -> type:warning +> type:alert > Please note that the input field has autocomplete Start with a basic path like this one. Just make sure that folder exists before you input the path. If that folder doesn’t exist then you will be able to create it using this interface. @@ -82,7 +81,7 @@ Start with a basic path like this one. Just make sure that folder exists before ``` After that hit **Enter || Return** - + You should see something like this: ![Using Github 2](ungit2.png) @@ -125,11 +124,11 @@ Now you can clone any desired repository in this folder using this form: ![Using Githug 6](ungit6.png) -Just copy the repository URL from Github, in the input field and then hit Clone repository. +Just copy the repository URL from Github, in the input field and then hit Clone repository. Wait for the cloning process to finish and now you should see all the commit history and you are now able to work on that repository, perform commits, push changes, using the Koding IDE. -> type:warning +> type:alert > Whenever you turn on Koding VM you will have to run the `ungit` command to get this interface started. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/using-mysql.md b/guides/using-mysql.md index 30a4dd60a..52633297b 100644 --- a/guides/using-mysql.md +++ b/guides/using-mysql.md @@ -1,7 +1,6 @@ --- title: Using mySQL author: Alvin Wan -date: 2015-01-08 categories: [databases, koding, mysql] template: page.toffee --- @@ -105,4 +104,4 @@ Once here, you’ll be able to execute mySQL commands. And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/using-tmux-on-koding.md b/guides/using-tmux-on-koding.md index 09ea367ca..e858d694d 100644 --- a/guides/using-tmux-on-koding.md +++ b/guides/using-tmux-on-koding.md @@ -1,7 +1,6 @@ --- title: Using Tmux on Koding author: Team Koding -date: 2014-05-13 categories: [developer tools, koding, tmux] --- diff --git a/guides/vhosts-and-subdomains.md b/guides/vhosts-and-subdomains.md index b40006668..7d4d9985e 100644 --- a/guides/vhosts-and-subdomains.md +++ b/guides/vhosts-and-subdomains.md @@ -1,18 +1,17 @@ --- title: Koding Subdomains and VHosts author: Team Koding -date: 2014-11-03 categories: [koding features, koding, apache] --- # Koding Subdomains and VHosts -In this guide we'll go over setting up a Koding subdomain to point to a +In this guide we'll go over setting up a Koding subdomain to point to a directory of your choice. ## Creating Subdomains -To create a subdomain, refer to the [Subdomain Section +To create a subdomain, refer to the [Subdomain Section here](/faq/vm-hostname/) ## Creating a Virtual Host @@ -23,9 +22,9 @@ First, run the following command, where `mysubdomain` is the name of your subdom sudo touch /etc/apache2/sites-available/mysubdomain.conf ``` -Next, open the above file with `nano`, `vim`, or whatever command line -editor you prefer. We're using a command line editor, because files -located in `/etc/apache2/sites-available` are owned by `root`, and +Next, open the above file with `nano`, `vim`, or whatever command line +editor you prefer. We're using a command line editor, because files +located in `/etc/apache2/sites-available` are owned by `root`, and require sudo. If you used nano, your command should look like this: @@ -34,7 +33,7 @@ If you used nano, your command should look like this: sudo nano /etc/apache2/sites-available/mysubdomain.conf ``` -Now that you have the file open with your preferred editor, paste in the +Now that you have the file open with your preferred editor, paste in the following code: ```xml @@ -46,12 +45,12 @@ following code: There are a two things you're going to have to change here, so lets go over them. -- **ServerName**: The value of `ServerName` should be your full subdomain +- **ServerName**: The value of `ServerName` should be your full subdomain url, without the http. -- **DocumentRoot**: This is the folder location that you want the - subdomain to direct to. Remember that `/var/www` equals `~/Web`, so in -the given example, `/var/www/myDirectory` equals `~/Web/myDirectory`. +- **DocumentRoot**: This is the folder location that you want the + subdomain to direct to. Remember that `/var/www` equals `~/Web`, so in +the given example, `/var/www/myDirectory` equals `~/Web/myDirectory`. ```xml @@ -60,12 +59,12 @@ the given example, `/var/www/myDirectory` equals `~/Web/myDirectory`. ``` -> type:warning +> type:alert > The DocumentRoot has to be an absolute path. Relative directories such as `/var/www/../foo` and `~/MyDirectory` will not work. If you would like to supply an directory *outside* of `~/Web`, use your full home path, eg: `/home/joshmurray/myNotWebDirectory` ## Enable the Subdomain -Lastly, we need to add our "site" and reload apache. Run the following +Lastly, we need to add our "site" and reload apache. Run the following two commands, replacing `mysubdomain` with the name of your subdomain. ```text @@ -75,31 +74,31 @@ sudo service apache2 reload ## Confirming -To confirm you did all the steps completely, connect to -`http://mysubdomain.username.koding.io` and you should see whatever you -have in your directory of choice. +To confirm you did all the steps completely, connect to +`http://mysubdomain.username.koding.io` and you should see whatever you +have in your directory of choice. ## Troubleshooting ### Apache 404 -If you see a plain white page saying **"Not Found"** with mentions of -Apache and Ubuntu, then Apache is correctly loading a directory, but the -directory is empty. Confirm that your `DocumentRoot` is a correct, and an +If you see a plain white page saying **"Not Found"** with mentions of +Apache and Ubuntu, then Apache is correctly loading a directory, but the +directory is empty. Confirm that your `DocumentRoot` is a correct, and an **absolute** directory. ### Forbidden -By default, Apache is configured to not allow access to directories -outside of `/var/www`. So, if you link to an absolute directory outside -of `/var/www`, such as `/home/joshmurray/hello`, you may see a message +By default, Apache is configured to not allow access to directories +outside of `/var/www`. So, if you link to an absolute directory outside +of `/var/www`, such as `/home/joshmurray/hello`, you may see a message similar to the following. ``` You do not have permission to access / on this server. ``` -To resolve this, you can use the `` directive inside of your +To resolve this, you can use the `` directive inside of your `VirtualHost` directive from above. Example: ```xml @@ -120,21 +119,21 @@ Afterwards, don't forget to reload Apache, with the following command. sudo service apache2 reload ``` -**Important**: It is recommended that you review the [Directory directive -documentation](http://httpd.apache.org/docs/current/mod/core.html#directory), -as there are security implications to allowing directory access, that you +**Important**: It is recommended that you review the [Directory directive +documentation](http://httpd.apache.org/docs/current/mod/core.html#directory), +as there are security implications to allowing directory access, that you should understand. ### I don't have a Subdomain -If you do not already have a Subdomain, you need to create one with the -same name that you used in your [Virtual Host +If you do not already have a Subdomain, you need to create one with the +same name that you used in your [Virtual Host configuration](#creating-a-virtual-host). -To do this, from Koding navigate to your IDE window and go to your VM -Settings. This will appear as little circle next to your VM Name in the -left sidebar of Koding. From the settings menu, Click "More", and add any +To do this, from Koding navigate to your IDE window and go to your VM +Settings. This will appear as little circle next to your VM Name in the +left sidebar of Koding. From the settings menu, Click "More", and add any subdomains that you need. -For a more indepth explanation of this process, refer to the [Subdomain +For a more indepth explanation of this process, refer to the [Subdomain Section here](/faq/vm-hostname/). diff --git a/guides/vm-asleep.md b/guides/vm-asleep.md new file mode 100644 index 000000000..79c509193 --- /dev/null +++ b/guides/vm-asleep.md @@ -0,0 +1,27 @@ +--- +title: Why is my Virtual Machine (VM) asleep? +author: Team Koding +categories: [koding] + +template: page.toffee +--- + +### Why does my Virtual Machine (VM) appear as asleep when I visit it on a browser? + +There are two main reasons for this: +1. The VM is actually off. If this is the case then all that needs +to be done is that the owner of the VM needs to turn the VM on. Details +on how to turn on your VM are available [here](http://learn.koding.com/guides/understanding-vm-panel/). +> type:tip +> If you have a free account, then your VM will automatically +> turn off after 60 minutes of inactivitiy on koding.com. +2. If your VM is on but you are still seeing the "VM is asleep" page, then +that means the global DNS propagation for your particular VM has not yet +completed. Global DNS propagation can take anywhere from 1 to 10 minutes +from the time you turn on your VM. +> type:tip +> For paid accounts, IP addresses don't change upon reboot so DNS propagation +> time is not a problem. + +If you have tried the above and are still having issues, please [send us a note](mailto:support@koding.com) + with the details and we'll be glad to help. diff --git a/guides/vm-introduction.md b/guides/vm-introduction.md index a684a6756..6d81aac5b 100644 --- a/guides/vm-introduction.md +++ b/guides/vm-introduction.md @@ -1,7 +1,6 @@ --- title: Koding Virtual Machines Introduction author: Team Koding -date: 2014-10-10 categories: [koding features, koding] videoId: 77P1vd4oFok --- diff --git a/guides/vm-snapshot/index.md b/guides/vm-snapshot/index.md new file mode 100644 index 000000000..482c852dd --- /dev/null +++ b/guides/vm-snapshot/index.md @@ -0,0 +1,54 @@ +--- +title: Understanding Snapshots +author: Team Koding +categories: [koding features, koding] +template: page.toffee +--- + +### What are Snapshots? +Koding's Snapshot feature gives you the ability to save a __point-in-time__ image of your virtual machine. When you make a snapshot, +the system will make a copy of the VM so that you can use it: +1. as a restorable backup +2. as a starting point for new VMs that you can create. + +### How can I make a snapshot? +To create a snapshot, follow these easy steps: +1. Head over to [VM Settings](http://learn.koding.com/guides/understanding-vm-panel/) modal, click on +the "Snapshots" tab as shown below and then click the "Add New Snapshot" button. +![snapshot-1](snapshots-1.png) + +2. Give your new snapshot a name and then click on "Add Snapshot". +![snapshot-2](snapshots-2.png) + +3. The snapshot will begin to build. +> type:tip +> It can take anywhere between 2 to 5 minutes (depending on the size of your VM) to create the snapshot. + +4. Once it is done creating, the snapshot will be listed and you can take additional actions on it (as shown +in the image below). +![snapshot-5](snapshots-5.png) + +### How do I delete a snapshot? +To delete a snapshot, hover over the name of the snapshot with your mouse to reveal the snapshot +action button and from the available option, select the delete option. + +### How many snapshots can I create? +The snapshot feature is only available to users with a paid plan. If you have a paid plan, the +snapshot limits are as follows: +1. Hobbyist plan: **1 snapshot** +2. Developer plan: **3 snapshots** +3. Professional plan: **5 snapshots** + +> type:tip +> Free accounts cannot create snapshots (for now). + +### How do I use a snapshot to create a new VM? +You can use a snapshot as the creation point for a new VM. This is helpful if you have done the work +to install the relevant software that you use and have a snapshot that is ready to be used. + +To create a new VM using a snapshot, simply add a new VM (if your plan allows) and use an existing +snapshot as the starting point (as shown in the image below). + +![snapshot-6](snapshots-6.png) + + diff --git a/guides/vm-snapshot/snapshots-1.png b/guides/vm-snapshot/snapshots-1.png new file mode 100644 index 000000000..63cff83d3 Binary files /dev/null and b/guides/vm-snapshot/snapshots-1.png differ diff --git a/guides/vm-snapshot/snapshots-2.png b/guides/vm-snapshot/snapshots-2.png new file mode 100644 index 000000000..88e92393a Binary files /dev/null and b/guides/vm-snapshot/snapshots-2.png differ diff --git a/guides/vm-snapshot/snapshots-5.png b/guides/vm-snapshot/snapshots-5.png new file mode 100644 index 000000000..135052c57 Binary files /dev/null and b/guides/vm-snapshot/snapshots-5.png differ diff --git a/guides/vm-snapshot/snapshots-6.png b/guides/vm-snapshot/snapshots-6.png new file mode 100644 index 000000000..118190fe6 Binary files /dev/null and b/guides/vm-snapshot/snapshots-6.png differ diff --git a/guides/vnc-startup-guide.md b/guides/vnc-startup-guide.md index 45f3f1a28..809c729a8 100644 --- a/guides/vnc-startup-guide.md +++ b/guides/vnc-startup-guide.md @@ -2,7 +2,6 @@ title: VNC Startup Guide author: Kaitlyn Schmidt username: Hoshiko86 -date: 2015-03-01 categories: [developer tools, noVNC, VNC, GUI Development] template: page.toffee --- @@ -11,7 +10,7 @@ template: page.toffee or How to Develop and Run Client GUI Applications with Koding and noVNC -The Koding environment and tool base is a great way to code within the cloud. No longer are we tied down to software running on our individual computers. Coding, testing, and running web based applications within Koding is a snap as other tutorials will attest to, but what if you are trying to use Koding to develop a traditional client based GUI application? How can we code and test those types of applications in the cloud? Is it even possible? The answer of course, is YES! We can develop our applications in Koding AND test them in the cloud, all from the comfort our our browser. +The Koding environment and tool base is a great way to code within the cloud. No longer are we tied down to software running on our individual computers. Coding, testing, and running web based applications within Koding is a snap as other tutorials will attest to, but what if you are trying to use Koding to develop a traditional client based GUI application? How can we code and test those types of applications in the cloud? Is it even possible? The answer of course, is YES! We can develop our applications in Koding AND test them in the cloud, all from the comfort our our browser. In the following tutorial I will demonstrate how to set up your Koding VM to allow you to test and run a client GUI application. In the end we are going to accomplish the following goals: @@ -32,7 +31,7 @@ Within the terminal type the following command: sudo apt-get install python-tk ``` -> type:warning +> type:alert > The terminal will ask you for your password before it installs Tkinter. Be ready to type in your password. This process downloads and installs Tkinter into your VM. @@ -88,7 +87,7 @@ Type the following into your terminal sudo apt-get install tightvncserver ``` -> type:warning +> type:alert > The terminal will ask you for your password before it installs TightVNC. Be ready to type in your password. This process downloads and installs TightVNC into your VM. @@ -125,7 +124,7 @@ git clone git://github.com/kanaka/noVNC This will create a new folder in your home directory called noVNC. Everything you need to run noVNC is contained in here. -Next we need to ensure our settings for noVNC are correct. +Next we need to ensure our settings for noVNC are correct. In either the built in Koding Editor or your [Koding Terminal](https://koding.com/Develop/Terminal) , open up your xstartup file. @@ -202,7 +201,7 @@ Using your [Koding Terminal](https://koding.com/Develop/Terminal), type the foll ## Connect to your VNC Server -Connecting to your VNC Server from the cloud is fairly easy with noVNC. +Connecting to your VNC Server from the cloud is fairly easy with noVNC. Within your browser navigate to @@ -236,9 +235,9 @@ You are now connected to your Koding VM within a VNC connection! You should see ## Test Our Sample GUI Application -Connect to your VNC Server via the above instructions. +Connect to your VNC Server via the above instructions. -Use the terminal shown in noVNC for the following steps. +Use the terminal shown in noVNC for the following steps. **DO NOT RUN THESE STEPS IN THE KODING TERMINAL!** @@ -256,7 +255,7 @@ This will start up our sample GUI application. You should see a pop up with two Congratulations! If you've made it this far, you should have a successful setup. Running other GUI programs that you develop is a easy as calling them from the command line in noVNC. -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). [1]: http://i.imgur.com/O8Duk7k.png [2]: http://i.imgur.com/55OmVP9.png diff --git a/guides/webmin-for-koding/index.md b/guides/webmin-for-koding/index.md index b33641eda..bca59c77c 100644 --- a/guides/webmin-for-koding/index.md +++ b/guides/webmin-for-koding/index.md @@ -2,7 +2,6 @@ title: Webmin for Koding author: Mike Spick username: syntackz -date: 2014-06-24 categories: [developer tools, webmin] --- @@ -91,4 +90,4 @@ sudo service webmin restart And that's it! -If you encounter any issues or have any questions please drop an email [here](mailto:support@koding.com). +If you encounter any issues or have any questions please drop us an email [here](mailto:support@koding.com). diff --git a/guides/what-happened-to-127-0-0-1/index.md b/guides/what-happened-to-127-0-0-1/index.md index ef21e1d00..9c24160c6 100644 --- a/guides/what-happened-to-127-0-0-1/index.md +++ b/guides/what-happened-to-127-0-0-1/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-07-10 categories: [common questions, apache, domain, koding] --- @@ -24,8 +23,8 @@ Many development applications will default the IP to `127.0.0.1`, the accessing your web server *locally*. When you use a Koding VM, you typically access it from the Koding Domain, which means that you're accessing your web application *externally*. Meaning that connecting to -`hostname.username.koding.io:3000` will *not* respond with a web server -running on `127.0.0.1:3000`. +`hostname.username.koding.io:3001` will *not* respond with a web server +running on `127.0.0.1:3001`. To solve this issue, we turn to our friendly `0.0.0.0` IP. Unlike `127.0.0.1`, this IP will accept connections from any source. Localhost, or external. @@ -39,8 +38,8 @@ to follow along, copy the following code into a file named `hello.js`. ```javascript require('http').createServer(function(req, res) { res.end('Hello!\n'); -}).listen(3000, process.argv[2]); -console.log('Sending greetings on ', process.argv[2] + ':3000'); +}).listen(3001, process.argv[2]); +console.log('Sending greetings on ', process.argv[2] + ':3001'); ``` Now that we've creating our little Node server, lets open up our @@ -50,11 +49,12 @@ Now that we've creating our little Node server, lets open up our node hello.js 127.0.0.1 ``` -Next, lets visit out domain at the following address, making sure to replace -`username` with your Koding username. +Next, lets visit our domain at the following address, making sure to replace +`username` with your Koding username. To find out what is your VM's hostname, +you can refer to [this guide](http://learn.koding.com/faq/vm-hostname/). ``` -http://hostname.username.koding.io:3000 +http://hostname.username.koding.io:3001 ``` As you can see from the following two images, our web server is not responding diff --git a/guides/what-happens-upon-upgrade/addVMs.png b/guides/what-happens-upon-upgrade/addVMs.png new file mode 100644 index 000000000..c59018b01 Binary files /dev/null and b/guides/what-happens-upon-upgrade/addVMs.png differ diff --git a/guides/what-happens-upon-upgrade/dev-pro2.png b/guides/what-happens-upon-upgrade/dev-pro2.png index bd128b96b..979f5418f 100644 Binary files a/guides/what-happens-upon-upgrade/dev-pro2.png and b/guides/what-happens-upon-upgrade/dev-pro2.png differ diff --git a/guides/what-happens-upon-upgrade/hobbyist2.png b/guides/what-happens-upon-upgrade/hobbyist2.png index aebc43c59..afd424fb6 100644 Binary files a/guides/what-happens-upon-upgrade/hobbyist2.png and b/guides/what-happens-upon-upgrade/hobbyist2.png differ diff --git a/guides/what-happens-upon-upgrade/index.md b/guides/what-happens-upon-upgrade/index.md index c9c0cbb84..1262b0791 100644 --- a/guides/what-happens-upon-upgrade/index.md +++ b/guides/what-happens-upon-upgrade/index.md @@ -1,13 +1,10 @@ --- title: What happens upon upgrade? author: Team Koding -date: 2014-10-02 categories: [koding features, koding] improvable: false --- - - # What happens upon upgrade? You just upgraded your account, awesome (and thanks!) but what happens now? @@ -15,28 +12,33 @@ You just upgraded your account, awesome (and thanks!) but what happens now? Based on the type of plan you selected on the [Pricing page][pricing] you now have access to more resources as compared to your free Koding account. These resources fall into the following categories: - Ability to mark your VM(s) as Always-On - Add more storage to your VM(s) +- Share our VM with other Koding users +- Create snapshots of your VM -### Utilizing new resources when upgrading to the **Hobbyist Plan** -Once you have upgraded to Hobbyist, you can mark your VM as an Always-On VM and increase its storage from 3GB to 10GB. To to this, head over to the settings panel for your VM and follow these easy steps: -1. head over to VM settings (as shown in the image below) -2. expand the "More" panel and then the "Advanced" panel -3. You will see a new button under the Advanced panel labeled "Resize" (this button only appears for users who have upgraded to the Hobbyist plan and have not yet allocated the 10GB. Once you allocate it, the button will disappear) -4. Click the button to initiate resize. Once done, your VM will show 10GB. Verify that using the command `df -h /` -![Hobbyist Plan](hobbyist2.png) - -### Utilizing new resources when upgrading to the **Developer and Professional Plans** -Under these plans, you can have a total of up to 3 (for Developer) and 5 (for Professional) VMs, mark any of them as Always-On and allocate 25GB (for Developer) / 50GB (for Professional) of storage amonst them. You will start with the default free VM and it is up to you whether you want to leave it at the default 3GB or delete it so that you can make a new one with a storage allocation that you prefer. To delete a VM, simply go the settings panel of the VM and click the Terminate button (as shown in the attached screen shot). - +### Turn on "Always On" mode for your VM +1. Go to the [VM settings modal](http://learn.koding.com/guides/understanding-vm-panel/). +2. On the "General" tab, find the switch for "Always On" and turn it on. Your VM will +now not turn off even if you log out. This also means your public IP address will now be static. ![Developer Plan Image 1](dev-pro2.png) +### Adding more disk space +1. Head over to [VM settings](http://learn.koding.com/guides/understanding-vm-panel/) +2. Click on the "Disk Usage" tab and click the "resize your VM" link (as shown in the image below) +![Hobbyist Plan](hobbyist2.png) +3. This will open the resize modal from where you can resize your VM. -To create a new VM, click the + icon in the VM list and you will be presented wit the option to create a new VM with a space allocation that is preferable to you (as shown below). - +### Adding more VMs (Only for Developer and Professional Plans) +1. Hover your mouse over the "Your VMs" label in the sidebar (as shown in the image below) +![Add New VM](addVMs.png) +2. The "+" icon will appear +3. Click the icon to and you will be presented with the option to create a new VM. You can select the size and the region of the VM. ![Developer Plan Image 2](dev-pro.png) +### Share your VM with other Koding users +Sharing your VM is very useful when you are doing "serial collaboration" which means one person takes over when the other is done. You can learn all about how to share your VMs through [this guide](http://learn.koding.com/guides/permanent-shared-vm/). - - -Enjoy the new resources and thanks again for upgrading! If you have any addtional questions regarding upgrades and resources, please send us a [support request](mailto:support@koding.com) and we will get back to you as soon as possible. +### Create Snapshots of your VM +Snapshots are very handy when you want to save the state of your VM as a backup or as a starting point +for a new VM. We have a [full guide](http://learn.koding.com/guides/vm-snapshot/) on this feature that will help you understand all the features. [pricing]: https://koding.com/Pricing diff --git a/guides/what-is-docker/index.md b/guides/what-is-docker/index.md index cce727f7f..58648403a 100644 --- a/guides/what-is-docker/index.md +++ b/guides/what-is-docker/index.md @@ -1,7 +1,6 @@ --- title: A guide to Docker author: Team Koding -date: 2014-10-17 categories: [frameworks platforms, docker] template: page.toffee --- @@ -32,7 +31,7 @@ kpm install docker *** -The version of Ubuntu that is installed on each Koding VM comes with a `docker.io` package and it should install Docker 0.9.1. +The version of Ubuntu that is installed on each Koding VM comes with a `docker.io` package and it should install Docker 0.9.1. We can install Docker on our Koding VM using the following commands: * We update the package list @@ -47,7 +46,7 @@ sudo apt-get update sudo apt-get install docker.io ``` -* We create a link +* We create a link ``` sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker @@ -80,7 +79,7 @@ sudo apt-get update sudo apt-get install lxc-docker ``` -> type:success +> type:tip > You can use the below command, that uses curl, for an easier installation process: ``` diff --git a/guides/what-is-koding.md b/guides/what-is-koding.md index ae6085f65..7bab1cf1f 100644 --- a/guides/what-is-koding.md +++ b/guides/what-is-koding.md @@ -1,7 +1,6 @@ --- title: What is Koding? author: Team Koding -date: 2014-02-17 categories: [koding features, koding] template: page.toffee @@ -72,6 +71,6 @@ of that, what about load balancing and CDNs? Doing it all yourself can be hard. Well, Koding gives you that raw machine. It's not trying to make production hosting for you, but rather it's giving you a completely open and powerful -environment to _make stuff_! So by all means _make_ your Wordpress blog on +environment to _make stuff_! So by all means _make_ your WordPress blog on Koding, and if you really want to host it on Koding, upgrade your plan to include an Always-On VM. Just be aware of the design goals. diff --git a/guides/where-is-my-webserver-root/index.md b/guides/where-is-my-webserver-root/index.md index bd22d0415..893e48e86 100644 --- a/guides/where-is-my-webserver-root/index.md +++ b/guides/where-is-my-webserver-root/index.md @@ -1,6 +1,5 @@ --- author: Team Koding -date: 2014-07-09 categories: [common questions, apache, domain, koding] --- @@ -10,7 +9,7 @@ categories: [common questions, apache, domain, koding] Koding VMs come with Apache preconfigured and serve a sample site to get you started. The files for this site are found in what is typically called your *Web Server Root*. This is the directory that Apache is serving up files from, -and it is located within your Home directory, under the `Web` directory. The +and it is located within your home directory, under the `Web` directory. The full path being: ``` @@ -19,6 +18,9 @@ full path being: Replace `username` with your username. +**Note:** You will find that the Apache web server root is actually `/var/www` +which is then linked to `/home/username/Web` + You can modify the contents of this directory with the [Koding Terminal][terminal], or the [Ace Editor][ace]. In this example, we'll use Ace to browse the files with the FileTree. diff --git a/redirects.yaml b/redirects.yaml index d64aa1400..b63dabf77 100644 --- a/redirects.yaml +++ b/redirects.yaml @@ -71,4 +71,6 @@ /guides/setting-framework-webserver#tornado: /guides/setting-tornado-webserver /guides/setting-framework-webserver#symfony2: /guides/setting-symfony2-webserver /terminal: /guides/terminal-introduction -/ide: /guides/ide-introduction \ No newline at end of file +/ide: /guides/ide-introduction +/connect_your_machine: /guides/connect-your-machine +/connect-your-vm: /guides/connect-your-machine