mirror of
https://github.com/dokku/dokku.git
synced 2025-12-25 16:29:30 +01:00
380 lines
20 KiB
HTML
380 lines
20 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400:sans-serif|Open+Sans:400:sans-serif" rel="stylesheet" type="text/css">
|
|
<title>Dokku - The smallest PaaS implementation you've ever seen</title>
|
|
|
|
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-57x57.png">
|
|
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-60x60.png">
|
|
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-72x72.png">
|
|
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-76x76.png">
|
|
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-114x114.png">
|
|
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-120x120.png">
|
|
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-144x144.png">
|
|
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-152x152.png">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/apple-touch-icon-180x180.png">
|
|
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
|
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
|
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
|
<link rel="icon" type="image/png" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
|
<link rel="manifest" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/manifest.json">
|
|
<link rel="shortcut icon" href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/favicon.ico">
|
|
<meta name="apple-mobile-web-app-title" content="Dokku">
|
|
<meta name="application-name" content="Dokku">
|
|
<meta name="msapplication-TileColor" content="#da532c">
|
|
<meta name="msapplication-TileImage" content="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/mstile-144x144.png">
|
|
<meta name="msapplication-config" content="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/favicons/browserconfig.xml">
|
|
<meta name="theme-color" content="#ffffff">
|
|
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha/css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="https://cdn.rawgit.com/dokku/dokku/v0.4.14/docs/assets/style.css" rel="stylesheet">
|
|
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet">
|
|
<style>
|
|
blockquote.new-as-of {border-left:4px solid #d1f2a5;background-color:#effab4;}
|
|
blockquote.not-yet-released {border-left:4px solid #ef5b58;background-color:#f9ad76;}
|
|
|
|
.rst-versions.rst-badge {display: block;}
|
|
.rst-other-versions {text-align: left;}
|
|
.rst-other-versions a {border: 0;}
|
|
.rst-other-versions dl {margin: 0;}
|
|
|
|
.bookmark-added-msg {display: none;}
|
|
.bookmark-active {display: none;}
|
|
.bookmark-inactive {display: none;}
|
|
|
|
.fa:before{-webkit-font-smoothing:antialiased}
|
|
.clearfix{*zoom:1}
|
|
.clearfix:before,.clearfix:after{display:table;content:""}
|
|
.clearfix:after{clear:both}
|
|
a .fa{display:inline-block;text-decoration:inherit}
|
|
li .fa{display:inline-block}
|
|
li .fa-large:before,li .fa-large:before{width:1.875em}
|
|
ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}
|
|
ul.fas li .fa{width:0.8em}
|
|
ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}
|
|
.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#15518d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-size:13px;z-index:400}
|
|
.rst-versions a{color:#7c8e98;text-decoration:none}
|
|
.rst-versions .rst-badge-small{display:none}
|
|
.rst-versions .rst-current-version{padding:12px;background-color:#2475c3;display:block;text-align:right;font-size:90%;cursor:pointer;color:#d8edf8;*zoom:1}
|
|
.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}
|
|
.rst-versions .rst-current-version:after{clear:both}
|
|
.rst-versions .rst-current-version .fa{color:#fcfcfc}
|
|
.rst-versions .rst-current-version .fa-book{float:left; line-height: 30px}
|
|
.rst-versions .rst-current-version .icon-book{float:left}
|
|
.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}
|
|
.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}
|
|
.rst-versions.shift-up .rst-other-versions{display:block}
|
|
.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:light-gray;display:none}
|
|
.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #d6edf9}
|
|
.rst-versions .rst-other-versions dd{display:inline-block;margin:0}
|
|
.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}
|
|
.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}
|
|
.rst-versions.rst-badge .icon-book{float:none}
|
|
.rst-versions.rst-badge .fa-book{float:none}
|
|
.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}
|
|
.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}
|
|
.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}
|
|
.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}
|
|
.dev-warning, .outdated-warning {position: absolute;top: 0;width: 100%;padding: 8px 20px 8px;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;background-image: -webkit-linear-gradient(-45deg, rgba(0,0,0,0.04) 25%, transparent 25%, transparent 50%, rgba(0,0,0,0.04) 50%, rgba(0,0,0,0.04) 75%, transparent 75%, transparent);background-image: -moz-linear-gradient(-45deg, rgba(0,0,0,0.04) 25%, transparent 25%, transparent 50%, rgba(0,0,0,0.04) 50%, rgba(0,0,0,0.04) 75%, transparent 75%, transparent);background-image: linear-gradient(135deg, rgba(0,0,0,0.04) 25%, transparent 25%, transparent 50%, rgba(0,0,0,0.04) 50%, rgba(0,0,0,0.04) 75%, transparent 75%, transparent);font-family: "Roboto", Corbel, Avenir, "Lucida Grande", "Lucida Sans", sans-serif;font-size: 14px;text-align: center;background-color: #ffe761;}
|
|
@media screen and (max-width: 768px){
|
|
.rst-versions{width:85%;display:none}
|
|
.rst-versions.shift{display:block}img{width:100%;height:auto}
|
|
}
|
|
@media screen and (min-width: 768px){
|
|
.dev-warning, .outdated-warning { position: fixed; min-width: 768px;}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="dev-warning doc-floating-warning" style="display:none">
|
|
This document is for dokku's development version, which can be significantly different from previous releases. For older releases, use the version selector floating in the bottom right corner of this page.
|
|
</div>
|
|
<div class="header">
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-md-offset-2">
|
|
<h1 class="heading navbar-brand">
|
|
<a href="http://dokku.viewdocs.io/dokku/">Dokku</a>
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="col-xs-8 col-md-6 col-md-push-4 markdown-body" style="padding-top:16px">
|
|
{{CONTENT}}
|
|
</div>
|
|
<div class="col-xs-4 col-md-2 col-md-pull-6 col-md-offset-2" style="padding-top:16px">
|
|
<div class="list-group">
|
|
<a href="#" class="list-group-item disabled">Getting Started</a>
|
|
<a href="/dokku/installation/" class="list-group-item">Getting Started with Dokku</a>
|
|
<a href="/dokku/upgrading/" class="list-group-item">Upgrading Dokku</a>
|
|
<a href="/dokku/troubleshooting/" class="list-group-item">Troubleshooting</a>
|
|
<a href="/dokku/getting-started/where-to-get-help/" class="list-group-item">Getting Help</a>
|
|
|
|
<a href="#" class="list-group-item disabled">Deployment</a>
|
|
|
|
<a href="/dokku/application-deployment/" class="list-group-item">Deploying an Application</a>
|
|
<a href="/dokku/deployment/buildpacks/" class="list-group-item">Buildpack Deployment</a>
|
|
<a href="/dokku/deployment/dockerfiles/" class="list-group-item">Dockerfile Deployment</a>
|
|
<a href="/dokku/deployment/images/" class="list-group-item">Image Tagging</a>
|
|
<a href="/dokku/remote-commands/" class="list-group-item">Remote Commands</a>
|
|
<a href="/dokku/deployment/one-off-processes/" class="list-group-item">One Off Processes/Cron</a>
|
|
<a href="/dokku/process-management/" class="list-group-item">Scaling Apps</a>
|
|
<a href="/dokku/deployment/user-management/" class="list-group-item">User Management</a>
|
|
<a href="/dokku/checks-examples/" class="list-group-item">Zero Downtime Deploy Checks</a>
|
|
|
|
<a href="#" class="list-group-item disabled">Configuration</a>
|
|
|
|
<a href="/dokku/configuration-management/" class="list-group-item">Environment Variables</a>
|
|
<a href="/dokku/dns" class="list-group-item">DNS Configuration</a>
|
|
<a href="/dokku/nginx/" class="list-group-item">Nginx Configuration</a>
|
|
<a href="/dokku/deployment/ssl-configuration/" class="list-group-item">SSL Configuration</a>
|
|
<a href="/dokku/dokku-events-logs/" class="list-group-item">Dokku Event Logs</a>
|
|
|
|
<a href="#" class="list-group-item disabled">Advanced Usage</a>
|
|
|
|
<a href="/dokku/backup-recovery/" class="list-group-item">Backup and Recovery</a>
|
|
<a href="/dokku/deployment/deployment-tasks/" class="list-group-item">Deployment Tasks</a>
|
|
<a href="/dokku/docker-options/" class="list-group-item">Docker Container Options</a>
|
|
<a href="/dokku/dokku-storage/" class="list-group-item">Persistent Storage</a>
|
|
<a href="/dokku/proxy/" class="list-group-item">Proxy Management</a>
|
|
|
|
<a href="#" class="list-group-item disabled">Community Contributions</a>
|
|
|
|
<a href="/dokku/community/clients/" class="list-group-item">Clients</a>
|
|
<a href="/dokku/plugins/" class="list-group-item">Plugins</a>
|
|
|
|
<a href="#" class="list-group-item disabled">Development</a>
|
|
|
|
<a href="/dokku/development/plugin-creation/" class="list-group-item">Plugin Creation</a>
|
|
<a href="/dokku/development/plugin-triggers/" class="list-group-item">Plugin Triggers</a>
|
|
<a href="/dokku/development/testing/" class="list-group-item">Running Tests</a>
|
|
<a href="/dokku/development/release-process/" class="list-group-item">Release Process</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="injected">
|
|
<div class="rst-versions rst-badge" data-toggle="rst-versions">
|
|
<span class="rst-current-version" data-toggle="rst-current-version" data-doc="{{DOC}}" data-ref="{{REF}}">
|
|
<span class="fa fa-book"> </span>
|
|
v: {{REF}}
|
|
<span class="fa fa-caret-down"></span>
|
|
</span>
|
|
<div class="rst-other-versions">
|
|
<dl>
|
|
<dt>Versions</dt>
|
|
</dl>
|
|
|
|
<dl>
|
|
<dt>On GitHub</dt>
|
|
<dd>
|
|
<a href="https://github.com/{{USER}}/{{NAME}}/blob/master/docs/{{DOC}}" target="_blank">View</a>
|
|
</dd>
|
|
<dd>
|
|
<a href="https://github.com/{{USER}}/{{NAME}}/edit/master/docs/{{DOC}}" target="_blank">Edit</a>
|
|
</dd>
|
|
</dl>
|
|
<!--
|
|
<dl>
|
|
<dt>Search</dt>
|
|
<dd>
|
|
<div style="padding: 6px;">
|
|
<form id="flyout-search-form" class="wy-form" target="_blank" action="/dokku/search" method="get">
|
|
<input type="text" name="q" placeholder="Search docs">
|
|
</form>
|
|
</div>
|
|
</dd>
|
|
</dl>
|
|
-->
|
|
<hr>
|
|
|
|
Free document hosting provided by <a href="http://progrium.viewdocs.io/viewdocs/">Viewdocs</a>.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="dev-warning doc-floating-warning" style="display:none">
|
|
This document is for dokku's development version, which can be significantly different from previous releases. For older releases, use the version selector floating in the bottom right corner of this page.
|
|
</div>
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/1.3.0/anchor.js"></script>
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", function (e) {
|
|
var markdownBody = document.querySelectorAll('.markdown-body')[0],
|
|
isRedirect = markdownBody.innerHTML.trim().indexOf('<p>See the <a href=') === 0;
|
|
if (isRedirect) {
|
|
var redirectUrl = markdownBody.getElementsByTagName('a')[0].href;
|
|
window.location.replace(redirectUrl);
|
|
}
|
|
anchors.options.visible = 'always';
|
|
anchors.add('.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6');
|
|
|
|
var tables = document.querySelectorAll('table'),
|
|
blockquotes = document.querySelectorAll('blockquote'),
|
|
versionList = document.querySelectorAll('.rst-other-versions dl')[0],
|
|
currentVersionEl = document.querySelectorAll('.rst-current-version')[0],
|
|
currentVersion = currentVersionEl.getAttribute('data-ref'),
|
|
versionContainer = document.querySelectorAll('.rst-versions.rst-badge')[0],
|
|
classNames = ['table', 'table-striped', 'table-hover', 'table-condensed'],
|
|
localPath = location.pathname.split('/').splice(2).join("/"),
|
|
addClass = function (el, className) {
|
|
if (el.classList) {
|
|
el.classList.add(className);
|
|
} else {
|
|
el.className += ' ' + className;
|
|
}
|
|
},
|
|
hasClass = function(el, className) {
|
|
if (el.classList) {
|
|
return el.classList.contains(className);
|
|
} else {
|
|
return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);
|
|
}
|
|
},
|
|
removeClass = function(el, className) {
|
|
if (el.classList) {
|
|
el.classList.remove(className);
|
|
} else {
|
|
el.className = el.className.replace(new RegExp('(^|\\b)' + className.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');;
|
|
}
|
|
};
|
|
|
|
var ls2 = {
|
|
save : function(key, jsonData, expirationMS) {
|
|
if (typeof (Storage) == "undefined") { return false; }
|
|
var record = {value: JSON.stringify(jsonData), timestamp: new Date().getTime()/1000 + expirationMS}
|
|
localStorage.setItem(key, JSON.stringify(record));
|
|
return jsonData;
|
|
},
|
|
load : function(key) {
|
|
if (typeof (Storage) == "undefined") { return false; }
|
|
var record = JSON.parse(localStorage.getItem(key));
|
|
if (!record){return false;}
|
|
return (new Date().getTime()/1000 < record.timestamp && JSON.parse(record.value));
|
|
}
|
|
};
|
|
|
|
Array.prototype.forEach.call(blockquotes, function (el, i) {
|
|
if (el.innerHTML.toLowerCase().indexOf('new as of') !== -1) {
|
|
addClass(el, 'new-as-of');
|
|
} else if (el.innerHTML.toLowerCase().indexOf('not yet released') !== -1) {
|
|
addClass(el, 'not-yet-released');
|
|
}
|
|
});
|
|
Array.prototype.forEach.call(classNames, function (className, i) {
|
|
Array.prototype.forEach.call(tables, function (el, i) {
|
|
addClass(el, className);
|
|
});
|
|
});
|
|
|
|
currentVersionEl.addEventListener('click', function() {
|
|
if (hasClass(versionContainer, 'shift-up')) {
|
|
removeClass(versionContainer, 'shift-up');
|
|
} else {
|
|
addClass(versionContainer, 'shift-up');
|
|
}
|
|
});
|
|
|
|
var range = function(start, count) {
|
|
return Array.apply(0, Array(count))
|
|
.map(function (element, index) {
|
|
return index + start;
|
|
});
|
|
}
|
|
|
|
var parseVersions = function(version, versions) {
|
|
var pieces = version.split('.'),
|
|
prefix = pieces.slice(0, 2).join('.') + '.',
|
|
maxPatchVersion = parseInt(pieces.slice(2, 3)[0], 10),
|
|
versionRange = range(0, maxPatchVersion + 1);
|
|
|
|
for (var i in versionRange) {
|
|
versions.push(prefix.concat(versionRange[i]));
|
|
}
|
|
return versions;
|
|
}
|
|
|
|
var addVersionLink = function(version) {
|
|
var a = document.createElement('a'),
|
|
dd = document.createElement('dd'),
|
|
ref = 'dokku~v' + version,
|
|
versionName = 'v' + version;
|
|
if (version == 'master') {
|
|
ref = 'dokku';
|
|
versionName = 'master';
|
|
}
|
|
|
|
a.setAttribute('href', "/" + ref + "/" + localPath);
|
|
a.appendChild(document.createTextNode(versionName));
|
|
if (versionName == currentVersion) {
|
|
var strong = document.createElement('strong');
|
|
strong.appendChild(a);
|
|
dd.appendChild(strong);
|
|
} else {
|
|
dd.appendChild(a);
|
|
}
|
|
versionList.appendChild(dd);
|
|
};
|
|
|
|
var processVersions = function(data) {
|
|
var versions = [];
|
|
for (var key in data['max-versions']) {
|
|
if (!data['max-versions'].hasOwnProperty(key)) {
|
|
continue;
|
|
}
|
|
|
|
versions = parseVersions(data['max-versions'][key], versions);
|
|
}
|
|
|
|
addVersionLink('master');
|
|
Array.prototype.forEach.call(versions, function (version, i) {
|
|
addVersionLink(version);
|
|
});
|
|
};
|
|
|
|
if (currentVersion == 'master') {
|
|
document.querySelectorAll('.dev-warning')[0].style.position = 'relative';
|
|
Array.prototype.forEach.call(document.querySelectorAll('.dev-warning'), function (el, i) {
|
|
el.style.display = '';
|
|
});
|
|
}
|
|
|
|
data = ls2.load('max-versions');
|
|
if (!data) {
|
|
var request = new XMLHttpRequest();
|
|
request.open('GET', '/dokku/assets/versions.json', true);
|
|
request.setRequestHeader("Cache-Control", "no-cache, no-store");
|
|
|
|
request.onload = function() {
|
|
if (request.status >= 200 && request.status < 400) {
|
|
var data = JSON.parse(request.responseText);
|
|
// store for 1 day
|
|
ls2.save('max-versions', data, 86400);
|
|
processVersions(data);
|
|
}
|
|
};
|
|
|
|
request.onerror = function() {
|
|
// There was a connection error of some sort
|
|
};
|
|
|
|
request.send();
|
|
} else {
|
|
processVersions(data);
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|