Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 84.73 KB | None | 0 0
  1. <!DOCTYPE html><html><head><meta charset="utf-8"><title>Installe ton VPS</title><style>code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}code,kbd{padding:2px 4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{display:block;margin:0 0 10px;word-break:break-all;word-wrap:break-word;color:#333;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}fieldset{border:0;min-width:0}legend{display:block;width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type="radio"],input[type="checkbox"]{margin:1px 0 0;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{padding-top:7px}output,.form-control{display:block;font-size:14px;line-height:1.4285714;color:#555}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#777;opacity:1}.form-control:-ms-input-placeholder{color:#777}.form-control::-webkit-input-placeholder{color:#777}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type="date"],input[type="time"],input[type="datetime-local"],input[type="month"]{line-height:34px;line-height:1.4285714 \0}input[type="date"].input-sm,.form-horizontal .form-group-sm input[type="date"].form-control,.input-group-sm>input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.form-horizontal .form-group-sm input[type="time"].form-control,.input-group-sm>input[type="time"].form-control,.input-group-sm>input[type="time"].input-group-addon,.input-group-sm>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-sm,.form-horizontal .form-group-sm input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].form-control,.input-group-sm>input[type="datetime-local"].input-group-addon,.input-group-sm>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-sm,.form-horizontal .form-group-sm input[type="month"].form-control,.input-group-sm>input[type="month"].form-control,.input-group-sm>input[type="month"].input-group-addon,.input-group-sm>.input-group-btn>input[type="month"].btn{line-height:30px}input[type="date"].input-lg,.form-horizontal .form-group-lg input[type="date"].form-control,.input-group-lg>input[type="date"].form-control,.input-group-lg>input[type="date"].input-group-addon,.input-group-lg>.input-group-btn>input[type="date"].btn,input[type="time"].input-lg,.form-horizontal .form-group-lg input[type="time"].form-control,.input-group-lg>input[type="time"].form-control,.input-group-lg>input[type="time"].input-group-addon,.input-group-lg>.input-group-btn>input[type="time"].btn,input[type="datetime-local"].input-lg,.form-horizontal .form-group-lg input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].form-control,.input-group-lg>input[type="datetime-local"].input-group-addon,.input-group-lg>.input-group-btn>input[type="datetime-local"].btn,input[type="month"].input-lg,.form-horizontal .form-group-lg input[type="month"].form-control,.input-group-lg>input[type="month"].form-control,.input-group-lg>input[type="month"].input-group-addon,.input-group-lg>.input-group-btn>input[type="month"].btn{line-height:46px}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;min-height:20px;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="radio"].disabled,fieldset[disabled] input[type="radio"],input[type="checkbox"][disabled],input[type="checkbox"].disabled,fieldset[disabled] input[type="checkbox"],.radio-inline.disabled,fieldset[disabled] .radio-inline,.checkbox-inline.disabled,fieldset[disabled] .checkbox-inline,.radio.disabled label,fieldset[disabled] .radio label,.checkbox.disabled label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-horizontal .form-group-lg .form-control-static.form-control,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.form-control-static.input-sm,.form-horizontal .form-group-sm .form-control-static.form-control,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-left:0;padding-right:0}.input-sm,.form-horizontal .form-group-sm .form-control,.input-group-sm>.form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.input-group-sm>.input-group-addon{height:30px;line-height:1.5}.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,.form-horizontal .form-group-sm select.form-control,.input-group-sm>select.form-control,.input-group-sm>select.input-group-addon,.input-group-sm>.input-group-btn>select.btn{height:30px;line-height:30px}textarea.input-sm,.form-horizontal .form-group-sm textarea.form-control,.input-group-sm>textarea.form-control,.input-group-sm>textarea.input-group-addon,.input-group-sm>.input-group-btn>textarea.btn,select[multiple].input-sm,.form-horizontal .form-group-sm select[multiple].form-control,.input-group-sm>select[multiple].form-control,.input-group-sm>select[multiple].input-group-addon,.input-group-sm>.input-group-btn>select[multiple].btn{height:auto}.input-lg,.form-horizontal .form-group-lg .form-control,.input-group-lg>.form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.input-group-lg>.input-group-addon{height:46px;line-height:1.33}.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,.form-horizontal .form-group-lg select.form-control,.input-group-lg>select.form-control,.input-group-lg>select.input-group-addon,.input-group-lg>.input-group-btn>select.btn{height:46px;line-height:46px}textarea.input-lg,.form-horizontal .form-group-lg textarea.form-control,.input-group-lg>textarea.form-control,.input-group-lg>textarea.input-group-addon,.input-group-lg>.input-group-btn>textarea.btn,select[multiple].input-lg,.form-horizontal .form-group-lg select[multiple].form-control,.input-group-lg>select[multiple].form-control,.input-group-lg>select[multiple].input-group-addon,.input-group-lg>.input-group-btn>select[multiple].btn{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:25px;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center}.input-lg+.form-control-feedback,.input-lg+.form-horizontal .form-group-lg .form-control,.form-horizontal .form-group-lg .input-lg+.form-control,.input-lg+.input-group-lg>.form-control,.input-group-lg>.input-lg+.form-control,.input-lg+.input-group-lg>.input-group-addon,.input-group-lg>.input-lg+.input-group-addon,.input-lg+.input-group-lg>.input-group-btn>.btn,.input-group-lg>.input-group-btn>.input-lg+.btn{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback,.input-sm+.form-horizontal .form-group-sm .form-control,.form-horizontal .form-group-sm .input-sm+.form-control,.input-sm+.input-group-sm>.form-control,.input-group-sm>.input-sm+.form-control,.input-sm+.input-group-sm>.input-group-addon,.input-group-sm>.input-sm+.input-group-addon,.input-sm+.input-group-sm>.input-group-btn>.btn,.input-group-sm>.input-group-btn>.input-sm+.btn{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66502c;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c09f6b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .form-group:before{content:" ";display:table}.form-horizontal .form-group:after{content:" ";display:table;clear:both}.form-horizontal .has-feedback .form-control-feedback{top:0;right:15px}.btn{display:inline-block;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.btn-default.dropdown-toggle{background-image:none}.btn-default.disabled,.btn-default.disabled:hover,.btn-default.disabled:focus,.btn-default.disabled:active,.btn-default.disabled.active,.btn-default[disabled],.btn-default[disabled]:hover,.btn-default[disabled]:focus,.btn-default[disabled]:active,.btn-default[disabled].active,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default:hover,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#3580bd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#3073a9;border-color:#28608e}.btn-primary:active,.btn-primary.active,.open>.btn-primary.dropdown-toggle{background-image:none}.btn-primary.disabled,.btn-primary.disabled:hover,.btn-primary.disabled:focus,.btn-primary.disabled:active,.btn-primary.disabled.active,.btn-primary[disabled],.btn-primary[disabled]:hover,.btn-primary[disabled]:focus,.btn-primary[disabled]:active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary:hover,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#3580bd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4eae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#469d44;border-color:#3b8439}.btn-success:active,.btn-success.active,.open>.btn-success.dropdown-toggle{background-image:none}.btn-success.disabled,.btn-success.disabled:hover,.btn-success.disabled:focus,.btn-success.disabled:active,.btn-success.disabled.active,.btn-success[disabled],.btn-success[disabled]:hover,.btn-success[disabled]:focus,.btn-success[disabled]:active,.btn-success[disabled].active,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success:hover,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4eae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46bada}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#31b2d5;border-color:#269cbc}.btn-info:active,.btn-info.active,.open>.btn-info.dropdown-toggle{background-image:none}.btn-info.disabled,.btn-info.disabled:hover,.btn-info.disabled:focus,.btn-info.disabled:active,.btn-info.disabled.active,.btn-info[disabled],.btn-info[disabled]:hover,.btn-info[disabled]:focus,.btn-info[disabled]:active,.btn-info[disabled].active,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info:hover,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46bada}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#d58112}.btn-warning:active,.btn-warning.active,.open>.btn-warning.dropdown-toggle{background-image:none}.btn-warning.disabled,.btn-warning.disabled:hover,.btn-warning.disabled:focus,.btn-warning.disabled:active,.btn-warning.disabled.active,.btn-warning[disabled],.btn-warning[disabled]:hover,.btn-warning[disabled]:focus,.btn-warning[disabled]:active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning:hover,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43d3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#c92e2c;border-color:#ac2525}.btn-danger:active,.btn-danger.active,.open>.btn-danger.dropdown-toggle{background-image:none}.btn-danger.disabled,.btn-danger.disabled:hover,.btn-danger.disabled:focus,.btn-danger.disabled:active,.btn-danger.disabled.active,.btn-danger[disabled],.btn-danger[disabled]:hover,.btn-danger[disabled]:focus,.btn-danger[disabled]:active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger:hover,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43d3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6596;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:hover,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm,.form-horizontal .form-group-sm .input-group-addon.form-control,.input-group-sm>.input-group-addon.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg,.form-horizontal .form-group-lg .input-group-addon.form-control,.input-group-lg>.input-group-addon.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:1.4285714;text-decoration:none;color:#428bca;background-color:#fff;border:1px solid #ddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>a:focus,.pagination>li>span:hover,.pagination>li>span:focus{color:#2a6596;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:hover,.pagination>.active>a:focus,.pagination>.active>span,.pagination>.active>span:hover,.pagination>.active>span:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;background-color:#fff;border-color:#ddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal-open,.modal{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate3d(0,-25%,0);transform:translate3d(0,-25%,0);-webkit-transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4285714px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4285714}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{content:" ";display:table}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.hljs{display:block;overflow-x:auto;padding:.5em;background:#002b36;color:#839496;-webkit-text-size-adjust:none}.hljs-comment,.hljs-template_comment,.diff .hljs-header,.hljs-doctype,.hljs-pi,.lisp .hljs-string,.hljs-javadoc{color:#586e75}.hljs-keyword,.hljs-winutils,.method,.hljs-addition,.css .hljs-tag,.hljs-request,.hljs-status,.nginx .hljs-title{color:#859900}.hljs-number,.hljs-command,.hljs-string,.hljs-tag .hljs-value,.hljs-rules .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula,.hljs-regexp,.hljs-hexcolor,.hljs-link_url{color:#2aa198}.hljs-title,.hljs-localvars,.hljs-chunk,.hljs-decorator,.hljs-built_in,.hljs-identifier,.vhdl .hljs-literal,.hljs-id,.css .hljs-function{color:#268bd2}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.smalltalk .hljs-number,.hljs-constant,.hljs-class .hljs-title,.hljs-parent,.hljs-type,.hljs-link_reference{color:#b58900}.hljs-preprocessor,.hljs-preprocessor .hljs-keyword,.hljs-pragma,.hljs-shebang,.hljs-symbol,.hljs-symbol .hljs-string,.diff .hljs-change,.hljs-special,.hljs-attr_selector,.hljs-subst,.hljs-cdata,.css .hljs-pseudo,.hljs-header{color:#cb4b16}.hljs-deletion,.hljs-important{color:#dc322f}.hljs-link_label{color:#6c71c4}.tex .hljs-formula{background:#073642}*,*:before,*:after{box-sizing:border-box}html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}images{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd{font-size:1em}code,kbd,pre,samp{font-family:monospace,monospace}samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}.debug{background-color:#ffc0cb!important}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ir{background-color:transparent;border:0;overflow:hidden}.ir::before{content:'';display:block;height:150%;width:0}html{font-size:.875em;background:#fafafa;color:#373D49}html,body{font-family:Georgia,Cambria,serif;height:100%}body{font-size:1rem;font-weight:400;line-height:2rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}li{-webkit-font-feature-settings:'kern' 1,'onum' 1,'liga' 1;-moz-font-feature-settings:'kern' 1,'onum' 1,'liga' 1;font-feature-settings:'kern' 1,'onum' 1,'liga' 1;margin-left:1rem}li>ul,li>ol{margin-bottom:0}p{padding-top:.66001rem;-webkit-font-feature-settings:'kern' 1,'onum' 1,'liga' 1;-moz-font-feature-settings:'kern' 1,'onum' 1,'liga' 1;font-feature-settings:'kern' 1,'onum' 1,'liga' 1;margin-top:0}p,pre{margin-bottom:1.33999rem}pre{font-size:1rem;padding:.66001rem 9.5px 9.5px;line-height:2rem;background:-webkit-linear-gradient(top,#fff 0,#fff .75rem,#f5f7fa .75rem,#f5f7fa 2.75rem,#fff 2.75rem,#fff 4rem);background:linear-gradient(to bottom,#fff 0,#fff .75rem,#f5f7fa .75rem,#f5f7fa 2.75rem,#fff 2.75rem,#fff 4rem);background-size:100% 4rem;border-color:#D3DAEA}blockquote{margin:0}blockquote p{font-size:1rem;margin-bottom:.33999rem;font-style:italic;padding:.66001rem 1rem 1rem;border-left:3px solid #A0AABF}th,td{padding:12px}h1,h2,h3,h4,h5,h6{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;-webkit-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;-moz-font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;font-feature-settings:'dlig' 1,'liga' 1,'lnum' 1,'kern' 1;font-style:normal;font-weight:600;margin-top:0}h1{line-height:3rem;font-size:2.05714rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.95312rem;margin-bottom:.18358rem;padding-top:.81642rem}h2,h3{line-height:3rem}h3{font-size:1.64571rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.54686rem;padding-top:.45314rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}a{cursor:pointer;color:#35D7BB;text-decoration:none}a:hover,a:focus{border-bottom-color:#35D7BB;color:#dff9f4}img{height:auto;max-width:100%}.g{display:block}.g:after{clear:both;content:'';display:table}.g-b{float:left;margin:0;width:100%}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--center{display:block;float:none;margin:0 auto}.g-b--right{float:right}.g-b--1of1{width:100%}.g-b--1of2,.g-b--2of4,.g-b--3of6,.g-b--4of8,.g-b--5of10,.g-b--6of12{width:50%}.g-b--1of3,.g-b--2of6,.g-b--4of12{width:33.333%}.g-b--2of3,.g-b--4of6,.g-b--8of12{width:66.666%}.g-b--1of4,.g-b--2of8,.g-b--3of12{width:25%}.g-b--3of4,.g-b--6of8,.g-b--9of12{width:75%}.g-b--1of5,.g-b--2of10{width:20%}.g-b--2of5,.g-b--4of10{width:40%}.g-b--3of5,.g-b--6of10{width:60%}.g-b--4of5,.g-b--8of10{width:80%}.g-b--1of6,.g-b--2of12{width:16.666%}.g-b--5of6,.g-b--10of12{width:83.333%}.g-b--1of8{width:12.5%}.g-b--3of8{width:37.5%}.g-b--5of8{width:62.5%}.g-b--7of8{width:87.5%}.g-b--1of10{width:10%}.g-b--3of10{width:30%}.g-b--7of10{width:70%}.g-b--9of10{width:90%}.g-b--1of12{width:8.333%}.g-b--5of12{width:41.666%}.g-b--7of12{width:58.333%}.g-b--11of12{width:91.666%}.g-b--push--1of1{margin-left:100%}.g-b--push--1of2,.g-b--push--2of4,.g-b--push--3of6,.g-b--push--4of8,.g-b--push--5of10,.g-b--push--6of12{margin-left:50%}.g-b--push--1of3,.g-b--push--2of6,.g-b--push--4of12{margin-left:33.333%}.g-b--push--2of3,.g-b--push--4of6,.g-b--push--8of12{margin-left:66.666%}.g-b--push--1of4,.g-b--push--2of8,.g-b--push--3of12{margin-left:25%}.g-b--push--3of4,.g-b--push--6of8,.g-b--push--9of12{margin-left:75%}.g-b--push--1of5,.g-b--push--2of10{margin-left:20%}.g-b--push--2of5,.g-b--push--4of10{margin-left:40%}.g-b--push--3of5,.g-b--push--6of10{margin-left:60%}.g-b--push--4of5,.g-b--push--8of10{margin-left:80%}.g-b--push--1of6,.g-b--push--2of12{margin-left:16.666%}.g-b--push--5of6,.g-b--push--10of12{margin-left:83.333%}.g-b--push--1of8{margin-left:12.5%}.g-b--push--3of8{margin-left:37.5%}.g-b--push--5of8{margin-left:62.5%}.g-b--push--7of8{margin-left:87.5%}.g-b--push--1of10{margin-left:10%}.g-b--push--3of10{margin-left:30%}.g-b--push--7of10{margin-left:70%}.g-b--push--9of10{margin-left:90%}.g-b--push--1of12{margin-left:8.333%}.g-b--push--5of12{margin-left:41.666%}.g-b--push--7of12{margin-left:58.333%}.g-b--push--11of12{margin-left:91.666%}.g-b--pull--1of1{margin-right:100%}.g-b--pull--1of2,.g-b--pull--2of4,.g-b--pull--3of6,.g-b--pull--4of8,.g-b--pull--5of10,.g-b--pull--6of12{margin-right:50%}.g-b--pull--1of3,.g-b--pull--2of6,.g-b--pull--4of12{margin-right:33.333%}.g-b--pull--2of3,.g-b--pull--4of6,.g-b--pull--8of12{margin-right:66.666%}.g-b--pull--1of4,.g-b--pull--2of8,.g-b--pull--3of12{margin-right:25%}.g-b--pull--3of4,.g-b--pull--6of8,.g-b--pull--9of12{margin-right:75%}.g-b--pull--1of5,.g-b--pull--2of10{margin-right:20%}.g-b--pull--2of5,.g-b--pull--4of10{margin-right:40%}.g-b--pull--3of5,.g-b--pull--6of10{margin-right:60%}.g-b--pull--4of5,.g-b--pull--8of10{margin-right:80%}.g-b--pull--1of6,.g-b--pull--2of12{margin-right:16.666%}.g-b--pull--5of6,.g-b--pull--10of12{margin-right:83.333%}.g-b--pull--1of8{margin-right:12.5%}.g-b--pull--3of8{margin-right:37.5%}.g-b--pull--5of8{margin-right:62.5%}.g-b--pull--7of8{margin-right:87.5%}.g-b--pull--1of10{margin-right:10%}.g-b--pull--3of10{margin-right:30%}.g-b--pull--7of10{margin-right:70%}.g-b--pull--9of10{margin-right:90%}.g-b--pull--1of12{margin-right:8.333%}.g-b--pull--5of12{margin-right:41.666%}.g-b--pull--7of12{margin-right:58.333%}.g-b--pull--11of12{margin-right:91.666%}.splashscreen{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#373D49;z-index:22}.splashscreen-dillinger{width:260px;height:auto;display:block;margin:0 auto;padding-bottom:3rem}.splashscreen p{font-size:1.25rem;padding-top:.56251rem;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;text-align:center;max-width:500px;margin:0 auto;color:#FFF}.sp-center{position:relative;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%}.open-menu>.wrapper{overflow-x:hidden}.page{margin:0 auto;position:relative;top:0;left:0;width:100%;height:100%;z-index:2;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out;background-color:#fff;padding-top:51px;will-change:left}.open-menu .page{left:270px}.title{line-height:1rem;font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem;font-weight:500;color:#A0AABF;letter-spacing:1px;text-transform:uppercase;padding-left:16px;padding-right:16px;margin-top:1rem}.split-preview .title{padding-left:0}.title-document{line-height:1rem;font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem;font-weight:400;font-family:"Ubuntu Mono",Monaco;color:#373D49;padding-left:16px;padding-right:16px;width:80%;min-width:300px;outline:0;border:none}.icon{display:block;margin:0 auto;width:36px;height:36px;border-radius:3px;text-align:center}.icon svg{display:inline-block;margin-left:auto;margin-right:auto}.icon-preview{background-color:#373D49;line-height:40px}.icon-preview svg{width:19px;height:12px}.icon-settings{background-color:#373D49;line-height:44px}.icon-settings svg{width:18px;height:18px}.icon-link{width:16px;height:16px;line-height:1;margin-right:24px;text-align:right}.navbar{background-color:#373D49;height:51px;width:100%;position:fixed;top:0;left:0;z-index:6;-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out;will-change:left}.navbar:after{content:"";display:table;clear:both}.open-menu .navbar{left:270px}.navbar-brand{float:left;margin:0 0 0 24px;padding:0;line-height:42px}.navbar-brand svg{width:85px;height:11px}.nav-left{float:left}.nav-right{float:right}.nav-sidebar{width:100%}.menu{list-style:none;padding:0;margin:0}.menu a{border:0;color:#A0AABF;text-transform:uppercase;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;outline:none}.menu a:hover{color:#35D7BB}.menu .menu-item{display:none;float:left;margin:0;border:0;position:relative}.menu .menu-item>a{line-height:51px;padding:0 24px;display:block;height:51px;font-size:12px;letter-spacing:1px}.menu .menu-item--settings,.menu .menu-item--preview,.menu .menu-item--save-to.in-sidebar,.menu .menu-item--import-from.in-sidebar,.menu .menu-item--link-unlink.in-sidebar,.menu .menu-item--documents.in-sidebar{display:block}.menu .menu-item--documents{padding-bottom:1rem}.menu .menu-item.open>a{background-color:#1D212A}.menu .menu-item-icon>a{padding:0;height:auto}.menu .menu-item-icon:hover>a{background-color:transparent}.menu .menu-link.open i{background-color:#1D212A}.menu .menu-link.open g{fill:#35D7BB}.menu .menu-link-preview,.menu .menu-link-settings{margin-top:8px;width:51px}.menu-sidebar{width:100%}.menu-sidebar .menu-item{width:100%;float:none;margin-bottom:1px}.menu-sidebar .menu-item.open>a{background-color:#373D49}.menu-sidebar .open .caret{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.menu-sidebar>.menu-item:hover .dropdown a,.menu-sidebar>.menu-item:hover .dropdown .settings{background-color:transparent}.menu-sidebar .menu-link{background-color:#373D49;font-weight:600}.menu-sidebar .menu-link:after{content:"";display:table;clear:both}.menu-sidebar .menu-link>span{float:left}.menu-sidebar .menu-link>.caret{text-align:right;float:right;top:22px}.menu-sidebar .dropdown,.menu-sidebar .settings{width:100%;background-color:transparent;position:static}.dropdown{position:absolute;right:0;top:51px;width:188px}.dropdown,.settings{display:none;background-color:#1D212A}.dropdown{padding:0}.dropdown,.settings,.sidebar-list{list-style:none;margin:0}.sidebar-list{padding:0}.dropdown li,.dropdown .settings,.sidebar-list li{line-height:1;margin:32px 0;padding:0 0 0 32px}.dropdown a,.dropdown .settings,.sidebar-list a{color:#D0D6E2;display:block;text-transform:none}.dropdown a:after,.dropdown .settings,.sidebar-list a:after{content:"";display:table;clear:both}.dropdown .icon,.dropdown .settings,.sidebar-list .icon{float:right}.open .dropdown,.open .settings,.open .sidebar-list{display:block}.open .dropdown.collapse,.open .collapse.settings,.open .sidebar-list.collapse{display:none}.open .dropdown.collapse.in,.open .collapse.in.settings,.open .sidebar-list.collapse.in{display:block}.dropdown .unlinked .icon,.dropdown .unlinked .settings,.sidebar-list .unlinked .icon{opacity:.3}.dropdown.documents li,.dropdown.documents .documents.settings,.sidebar-list.documents li{background-image:url('../img/icons/file.svg');background-position:240px center;background-repeat:no-repeat;background-size:14px 16px;padding:3px 32px}.dropdown.documents li.octocat,.dropdown.documents .documents.settings,.sidebar-list.documents li.octocat{background-image:url('../img/icons/octocat.svg');background-position:234px center;background-size:24px 24px}.dropdown.documents li:last-child,.dropdown.documents .documents.settings,.sidebar-list.documents li:last-child{margin-bottom:1rem}.dropdown.documents li.active a,.dropdown.documents li.active .documents.settings,.sidebar-list.documents li.active a{color:#35D7BB}.settings{position:fixed;top:67px;right:16px;border-radius:3px;width:288px;background-color:#373D49;padding:16px;z-index:7}.show-settings .settings{display:block}.settings .has-checkbox{float:left}.settings a{font-size:1.25rem;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;line-height:28px;color:#D0D6E2}.settings a:after{content:"";display:table;clear:both}.settings a:hover{color:#35D7BB}.settings li{border-bottom:1px solid #4F535B;margin:0;padding:16px 0}.settings li:last-child{border-bottom:none}.brand{border:none;display:block}.brand:hover g{fill:#35D7BB}.toggle{display:block;width:40px;height:16px;padding:25px 16px 26px;float:left}.toggle span:after,.toggle span:before{content:'';position:absolute;left:0;top:-6px}.toggle span:after{top:6px}.toggle span{position:relative;display:block}.toggle span,.toggle span:after,.toggle span:before{width:20px;height:2px;background-color:#D3DAEA;-webkit-transition:all .3s;transition:all .3s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.open-menu .toggle span,.toggle:hover span{background-color:transparent}.open-menu .toggle span:before,.toggle:hover span:before{-webkit-transform:rotate(45deg)translate(3px,3px);-ms-transform:rotate(45deg)translate(3px,3px);transform:rotate(45deg)translate(3px,3px)}.open-menu .toggle span:after,.toggle:hover span:after{-webkit-transform:rotate(-45deg)translate(5px,-6px);-ms-transform:rotate(-45deg)translate(5px,-6px);transform:rotate(-45deg)translate(5px,-6px)}.caret{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;position:relative;top:-1px;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.sidebar{overflow:auto;height:100%;padding-right:15px;padding-bottom:15px;width:285px}.sidebar-wrapper{-webkit-overflow-scrolling:touch;background-color:#2B2F36;left:0;height:100%;overflow-y:hidden;position:fixed;top:0;width:285px;z-index:1}.sidebar-branding{width:160px;padding:0;margin:16px auto}.header{border-bottom:1px solid #E8E8E8;position:relative}.words{line-height:1rem;font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem;font-weight:500;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;color:#A0AABF;letter-spacing:1px;text-transform:uppercase;z-index:5;position:absolute;right:16px;top:0}.words span{color:#000}.btn{text-align:center;display:inline-block;width:100%;text-transform:uppercase;font-weight:600;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:0 1px 0 #1b8b76;padding:16px 24px;background-color:#35D7BB;border-radius:3px;margin:0 auto 16px;line-height:1;color:#fff;-webkit-transition:all .15s linear;transition:all .15s linear;-webkit-font-smoothing:antialiased}.btn--new,.btn--save{display:block;width:238px}.btn--new:hover,.btn--new:focus,.btn--save:hover,.btn--save:focus{color:#fff;border-bottom-color:transparent;box-shadow:0 1px 3px #24b59b;text-shadow:0 1px 0 #24b59b}.btn--save{background-color:#4A5261;text-shadow:0 1px 1px #1e2127}.btn--save:hover,.btn--save:focus{color:#fff;border-bottom-color:transparent;box-shadow:0 1px 5px #08090a;text-shadow:none}.btn--delete{display:block;width:238px;background-color:transparent;font-size:12px;text-shadow:none}.btn--delete:hover,.btn--delete:focus{color:#fff;border-bottom-color:transparent;text-shadow:0 1px 0 #08090a;opacity:.8}.btn--ok,.btn--close{border-top:0;background-color:#4A5261;text-shadow:0 1px 0 #08090a;margin:0}.btn--ok:hover,.btn--ok:focus,.btn--close:hover,.btn--close:focus{color:#fff;background-color:#292d36;text-shadow:none}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(55,61,73,.8);-webkit-transition:all .25s ease-in-out;transition:all .25s ease-in-out;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;will-change:left,opacity,visibility;z-index:5;opacity:0;visibility:hidden}.show-settings .overlay{visibility:visible;opacity:1}.switch{float:right;line-height:1}.switch input{display:none}.switch small{display:inline-block;cursor:pointer;padding:0 24px 0 0;-webkit-transition:all ease .2s;transition:all ease .2s;background-color:#2B2F36;border-color:#2B2F36}.switch small,.switch small:before{border-radius:30px;box-shadow:inset 0 0 2px 0 #14171F}.switch small:before{display:block;content:'';width:28px;height:28px;background:#fff}.switch.checked small{padding-right:0;padding-left:24px;background-color:#35D7BB;box-shadow:none}.modal--dillinger.about .modal-dialog{font-size:1.25rem;max-width:500px}.modal--dillinger .modal-dialog{max-width:600px;width:auto;margin:5rem auto}.modal--dillinger .modal-content{background:#373D49;border-radius:3px;box-shadow:0 2px 5px 0 #2C3B59;color:#fff;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;padding:2rem}.modal--dillinger ul{list-style-type:disc;margin:1rem 0;padding:0 0 0 1rem}.modal--dillinger li{padding:0;margin:0}.modal--dillinger .modal-header{border:0;padding:0}.modal--dillinger .modal-body{padding:0}.modal--dillinger .modal-footer{border:0;padding:0}.modal--dillinger .close{color:#fff;opacity:1}.modal-backdrop{background-color:#373D49}.pagination--dillinger{padding:0!important;margin:1.5rem 0!important;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-align-content:stretch;-ms-flex-line-pack:stretch;align-content:stretch}.pagination--dillinger,.pagination--dillinger li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.pagination--dillinger li{-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.pagination--dillinger li:first-child>a,.pagination--dillinger li.disabled>a,.pagination--dillinger li.disabled>a:hover,.pagination--dillinger li.disabled>a:focus,.pagination--dillinger li>a{background-color:transparent;border-color:#4F535B;border-right-color:transparent}.pagination--dillinger li.active>a,.pagination--dillinger li.active>a:hover,.pagination--dillinger li.active>a:focus{border-color:#4A5261;background-color:#4A5261;color:#fff}.pagination--dillinger li>a{float:none;color:#fff;width:100%;display:block;text-align:center;margin:0;border-right-color:transparent;padding:6px}.pagination--dillinger li>a:hover,.pagination--dillinger li>a:focus{border-color:#35D7BB;background-color:#35D7BB;color:#fff}.pagination--dillinger li:last-child a{border-color:#4F535B}.pagination--dillinger li:first-child a{border-right-color:transparent}.diNotify{position:absolute;z-index:9999;left:0;right:0;top:0;margin:0 auto;max-width:400px;text-align:center;-webkit-transition:top .5s ease-in-out,opacity .5s ease-in-out;transition:top .5s ease-in-out,opacity .5s ease-in-out;visibility:hidden}.diNotify-body{-webkit-font-smoothing:antialiased;background-color:#35D7BB;background:#666E7F;border-radius:3px;color:#fff;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;overflow:hidden;padding:1rem 2rem .5rem;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}.diNotify-icon{display:block;width:16px;height:16px;line-height:16px;position:relative;top:3px}.diNotify-message{padding-left:1rem}.zen-wrapper{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:10;background-color:#FFF;opacity:0;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.zen-wrapper.on{opacity:1}.enter-zen-mode{background-image:url('../img/icons/enter-zen.svg');right:.5rem;top:.5rem;display:none}.enter-zen-mode,.close-zen-mode{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;background-repeat:no-repeat;width:32px;height:32px;display:block;position:absolute}.close-zen-mode{background-image:url('../img/icons/exit-zen.svg');right:1rem;top:1rem}.zen-page{position:relative;top:0;bottom:0;z-index:11;height:100%;width:100%}#zen{font-size:1.25rem;width:300px;height:80%;margin:0 auto;position:relative;top:10%}#zen:before,#zen:after{content:"";position:absolute;height:10%;width:100%;z-index:12;pointer-events:none}#zen:after{background-image:-webkit-linear-gradient(270deg,rgba(255,255,255,0)0%,#fff 100%);background-image:linear-gradient(-180deg,rgba(255,255,255,0)0%,#fff 100%);bottom:0}.split{overflow:scroll}.split-editor{padding-left:0;padding-right:0;position:relative}.show-preview .split-editor{display:none}.split-preview{background-color:#fff;display:none;position:absolute;top:129px;z-index:4}.show-preview .split-preview{display:block}#editor{font-size:1rem;font-family:"Ubuntu Mono",Monaco;font-weight:400;line-height:2rem;width:100%;height:100%}#editor .ace_gutter{-webkit-font-smoothing:antialiased}#preview a{color:#A0AABF;text-decoration:underline}.sr-only{visibility:hidden;text-overflow:110%;overflow:hidden;top:-100px;position:absolute}.mnone{margin:0!important}@media screen and (min-width:27.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.05714rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.95312rem;margin-bottom:.18358rem;padding-top:.81642rem}h3{font-size:1.64571rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.54686rem;padding-top:.45314rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--m1of1{width:100%}.g-b--m1of2,.g-b--m2of4,.g-b--m3of6,.g-b--m4of8,.g-b--m5of10,.g-b--m6of12{width:50%}.g-b--m1of3,.g-b--m2of6,.g-b--m4of12{width:33.333%}.g-b--m2of3,.g-b--m4of6,.g-b--m8of12{width:66.666%}.g-b--m1of4,.g-b--m2of8,.g-b--m3of12{width:25%}.g-b--m3of4,.g-b--m6of8,.g-b--m9of12{width:75%}.g-b--m1of5,.g-b--m2of10{width:20%}.g-b--m2of5,.g-b--m4of10{width:40%}.g-b--m3of5,.g-b--m6of10{width:60%}.g-b--m4of5,.g-b--m8of10{width:80%}.g-b--m1of6,.g-b--m2of12{width:16.666%}.g-b--m5of6,.g-b--m10of12{width:83.333%}.g-b--m1of8{width:12.5%}.g-b--m3of8{width:37.5%}.g-b--m5of8{width:62.5%}.g-b--m7of8{width:87.5%}.g-b--m1of10{width:10%}.g-b--m3of10{width:30%}.g-b--m7of10{width:70%}.g-b--m9of10{width:90%}.g-b--m1of12{width:8.333%}.g-b--m5of12{width:41.666%}.g-b--m7of12{width:58.333%}.g-b--m11of12{width:91.666%}.g-b--push--m1of1{margin-left:100%}.g-b--push--m1of2,.g-b--push--m2of4,.g-b--push--m3of6,.g-b--push--m4of8,.g-b--push--m5of10,.g-b--push--m6of12{margin-left:50%}.g-b--push--m1of3,.g-b--push--m2of6,.g-b--push--m4of12{margin-left:33.333%}.g-b--push--m2of3,.g-b--push--m4of6,.g-b--push--m8of12{margin-left:66.666%}.g-b--push--m1of4,.g-b--push--m2of8,.g-b--push--m3of12{margin-left:25%}.g-b--push--m3of4,.g-b--push--m6of8,.g-b--push--m9of12{margin-left:75%}.g-b--push--m1of5,.g-b--push--m2of10{margin-left:20%}.g-b--push--m2of5,.g-b--push--m4of10{margin-left:40%}.g-b--push--m3of5,.g-b--push--m6of10{margin-left:60%}.g-b--push--m4of5,.g-b--push--m8of10{margin-left:80%}.g-b--push--m1of6,.g-b--push--m2of12{margin-left:16.666%}.g-b--push--m5of6,.g-b--push--m10of12{margin-left:83.333%}.g-b--push--m1of8{margin-left:12.5%}.g-b--push--m3of8{margin-left:37.5%}.g-b--push--m5of8{margin-left:62.5%}.g-b--push--m7of8{margin-left:87.5%}.g-b--push--m1of10{margin-left:10%}.g-b--push--m3of10{margin-left:30%}.g-b--push--m7of10{margin-left:70%}.g-b--push--m9of10{margin-left:90%}.g-b--push--m1of12{margin-left:8.333%}.g-b--push--m5of12{margin-left:41.666%}.g-b--push--m7of12{margin-left:58.333%}.g-b--push--m11of12{margin-left:91.666%}.g-b--pull--m1of1{margin-right:100%}.g-b--pull--m1of2,.g-b--pull--m2of4,.g-b--pull--m3of6,.g-b--pull--m4of8,.g-b--pull--m5of10,.g-b--pull--m6of12{margin-right:50%}.g-b--pull--m1of3,.g-b--pull--m2of6,.g-b--pull--m4of12{margin-right:33.333%}.g-b--pull--m2of3,.g-b--pull--m4of6,.g-b--pull--m8of12{margin-right:66.666%}.g-b--pull--m1of4,.g-b--pull--m2of8,.g-b--pull--m3of12{margin-right:25%}.g-b--pull--m3of4,.g-b--pull--m6of8,.g-b--pull--m9of12{margin-right:75%}.g-b--pull--m1of5,.g-b--pull--m2of10{margin-right:20%}.g-b--pull--m2of5,.g-b--pull--m4of10{margin-right:40%}.g-b--pull--m3of5,.g-b--pull--m6of10{margin-right:60%}.g-b--pull--m4of5,.g-b--pull--m8of10{margin-right:80%}.g-b--pull--m1of6,.g-b--pull--m2of12{margin-right:16.666%}.g-b--pull--m5of6,.g-b--pull--m10of12{margin-right:83.333%}.g-b--pull--m1of8{margin-right:12.5%}.g-b--pull--m3of8{margin-right:37.5%}.g-b--pull--m5of8{margin-right:62.5%}.g-b--pull--m7of8{margin-right:87.5%}.g-b--pull--m1of10{margin-right:10%}.g-b--pull--m3of10{margin-right:30%}.g-b--pull--m7of10{margin-right:70%}.g-b--pull--m9of10{margin-right:90%}.g-b--pull--m1of12{margin-right:8.333%}.g-b--pull--m5of12{margin-right:41.666%}.g-b--pull--m7of12{margin-right:58.333%}.g-b--pull--m11of12{margin-right:91.666%}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{margin-bottom:.89999rem;padding-top:.10001rem}.title-document,.settings a{font-size:1.25rem}.words{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#zen{width:400px}#editor{font-size:1rem}}@media screen and (min-width:46.25em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.05714rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.95312rem;margin-bottom:.18358rem;padding-top:.81642rem}h3{font-size:1.64571rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.54686rem;padding-top:.45314rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--t1of1{width:100%}.g-b--t1of2,.g-b--t2of4,.g-b--t3of6,.g-b--t4of8,.g-b--t5of10,.g-b--t6of12{width:50%}.g-b--t1of3,.g-b--t2of6,.g-b--t4of12{width:33.333%}.g-b--t2of3,.g-b--t4of6,.g-b--t8of12{width:66.666%}.g-b--t1of4,.g-b--t2of8,.g-b--t3of12{width:25%}.g-b--t3of4,.g-b--t6of8,.g-b--t9of12{width:75%}.g-b--t1of5,.g-b--t2of10{width:20%}.g-b--t2of5,.g-b--t4of10{width:40%}.g-b--t3of5,.g-b--t6of10{width:60%}.g-b--t4of5,.g-b--t8of10{width:80%}.g-b--t1of6,.g-b--t2of12{width:16.666%}.g-b--t5of6,.g-b--t10of12{width:83.333%}.g-b--t1of8{width:12.5%}.g-b--t3of8{width:37.5%}.g-b--t5of8{width:62.5%}.g-b--t7of8{width:87.5%}.g-b--t1of10{width:10%}.g-b--t3of10{width:30%}.g-b--t7of10{width:70%}.g-b--t9of10{width:90%}.g-b--t1of12{width:8.333%}.g-b--t5of12{width:41.666%}.g-b--t7of12{width:58.333%}.g-b--t11of12{width:91.666%}.g-b--push--t1of1{margin-left:100%}.g-b--push--t1of2,.g-b--push--t2of4,.g-b--push--t3of6,.g-b--push--t4of8,.g-b--push--t5of10,.g-b--push--t6of12{margin-left:50%}.g-b--push--t1of3,.g-b--push--t2of6,.g-b--push--t4of12{margin-left:33.333%}.g-b--push--t2of3,.g-b--push--t4of6,.g-b--push--t8of12{margin-left:66.666%}.g-b--push--t1of4,.g-b--push--t2of8,.g-b--push--t3of12{margin-left:25%}.g-b--push--t3of4,.g-b--push--t6of8,.g-b--push--t9of12{margin-left:75%}.g-b--push--t1of5,.g-b--push--t2of10{margin-left:20%}.g-b--push--t2of5,.g-b--push--t4of10{margin-left:40%}.g-b--push--t3of5,.g-b--push--t6of10{margin-left:60%}.g-b--push--t4of5,.g-b--push--t8of10{margin-left:80%}.g-b--push--t1of6,.g-b--push--t2of12{margin-left:16.666%}.g-b--push--t5of6,.g-b--push--t10of12{margin-left:83.333%}.g-b--push--t1of8{margin-left:12.5%}.g-b--push--t3of8{margin-left:37.5%}.g-b--push--t5of8{margin-left:62.5%}.g-b--push--t7of8{margin-left:87.5%}.g-b--push--t1of10{margin-left:10%}.g-b--push--t3of10{margin-left:30%}.g-b--push--t7of10{margin-left:70%}.g-b--push--t9of10{margin-left:90%}.g-b--push--t1of12{margin-left:8.333%}.g-b--push--t5of12{margin-left:41.666%}.g-b--push--t7of12{margin-left:58.333%}.g-b--push--t11of12{margin-left:91.666%}.g-b--pull--t1of1{margin-right:100%}.g-b--pull--t1of2,.g-b--pull--t2of4,.g-b--pull--t3of6,.g-b--pull--t4of8,.g-b--pull--t5of10,.g-b--pull--t6of12{margin-right:50%}.g-b--pull--t1of3,.g-b--pull--t2of6,.g-b--pull--t4of12{margin-right:33.333%}.g-b--pull--t2of3,.g-b--pull--t4of6,.g-b--pull--t8of12{margin-right:66.666%}.g-b--pull--t1of4,.g-b--pull--t2of8,.g-b--pull--t3of12{margin-right:25%}.g-b--pull--t3of4,.g-b--pull--t6of8,.g-b--pull--t9of12{margin-right:75%}.g-b--pull--t1of5,.g-b--pull--t2of10{margin-right:20%}.g-b--pull--t2of5,.g-b--pull--t4of10{margin-right:40%}.g-b--pull--t3of5,.g-b--pull--t6of10{margin-right:60%}.g-b--pull--t4of5,.g-b--pull--t8of10{margin-right:80%}.g-b--pull--t1of6,.g-b--pull--t2of12{margin-right:16.666%}.g-b--pull--t5of6,.g-b--pull--t10of12{margin-right:83.333%}.g-b--pull--t1of8{margin-right:12.5%}.g-b--pull--t3of8{margin-right:37.5%}.g-b--pull--t5of8{margin-right:62.5%}.g-b--pull--t7of8{margin-right:87.5%}.g-b--pull--t1of10{margin-right:10%}.g-b--pull--t3of10{margin-right:30%}.g-b--pull--t7of10{margin-right:70%}.g-b--pull--t9of10{margin-right:90%}.g-b--pull--t1of12{margin-right:8.333%}.g-b--pull--t5of12{margin-right:41.666%}.g-b--pull--t7of12{margin-right:58.333%}.g-b--pull--t11of12{margin-right:91.666%}.splashscreen-dillinger{width:500px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem}.menu .menu-item--save-to,.menu .menu-item--import-from{display:block}.menu .menu-item--preview,.menu .menu-item--save-to.in-sidebar,.menu .menu-item--import-from.in-sidebar{display:none}.settings a{font-size:1.25rem}.words{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog{font-size:1.25rem}.enter-zen-mode{display:block}.close-zen-mode{right:3rem;top:3rem}#zen{font-size:1.25rem;width:500px}.split-editor{border-right:1px solid #E8E8E8;float:left;height:calc(100vh - 130px);-webkit-overflow-scrolling:touch;padding-right:16px;width:50%}.show-preview .split-editor{display:block}.split-preview{display:block;float:right;height:calc(100vh - 130px);-webkit-overflow-scrolling:touch;position:static;top:0;width:50%}#editor{font-size:1rem}}@media screen and (min-width:62.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.05714rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.95312rem;margin-bottom:.18358rem;padding-top:.81642rem}h3{font-size:1.64571rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.54686rem;padding-top:.45314rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.g{margin-left:-16px;margin-right:-16px}.g-b{padding-left:16px;padding-right:16px}.g-b--d1of1{width:100%}.g-b--d1of2,.g-b--d2of4,.g-b--d3of6,.g-b--d4of8,.g-b--d5of10,.g-b--d6of12{width:50%}.g-b--d1of3,.g-b--d2of6,.g-b--d4of12{width:33.333%}.g-b--d2of3,.g-b--d4of6,.g-b--d8of12{width:66.666%}.g-b--d1of4,.g-b--d2of8,.g-b--d3of12{width:25%}.g-b--d3of4,.g-b--d6of8,.g-b--d9of12{width:75%}.g-b--d1of5,.g-b--d2of10{width:20%}.g-b--d2of5,.g-b--d4of10{width:40%}.g-b--d3of5,.g-b--d6of10{width:60%}.g-b--d4of5,.g-b--d8of10{width:80%}.g-b--d1of6,.g-b--d2of12{width:16.666%}.g-b--d5of6,.g-b--d10of12{width:83.333%}.g-b--d1of8{width:12.5%}.g-b--d3of8{width:37.5%}.g-b--d5of8{width:62.5%}.g-b--d7of8{width:87.5%}.g-b--d1of10{width:10%}.g-b--d3of10{width:30%}.g-b--d7of10{width:70%}.g-b--d9of10{width:90%}.g-b--d1of12{width:8.333%}.g-b--d5of12{width:41.666%}.g-b--d7of12{width:58.333%}.g-b--d11of12{width:91.666%}.g-b--push--d1of1{margin-left:100%}.g-b--push--d1of2,.g-b--push--d2of4,.g-b--push--d3of6,.g-b--push--d4of8,.g-b--push--d5of10,.g-b--push--d6of12{margin-left:50%}.g-b--push--d1of3,.g-b--push--d2of6,.g-b--push--d4of12{margin-left:33.333%}.g-b--push--d2of3,.g-b--push--d4of6,.g-b--push--d8of12{margin-left:66.666%}.g-b--push--d1of4,.g-b--push--d2of8,.g-b--push--d3of12{margin-left:25%}.g-b--push--d3of4,.g-b--push--d6of8,.g-b--push--d9of12{margin-left:75%}.g-b--push--d1of5,.g-b--push--d2of10{margin-left:20%}.g-b--push--d2of5,.g-b--push--d4of10{margin-left:40%}.g-b--push--d3of5,.g-b--push--d6of10{margin-left:60%}.g-b--push--d4of5,.g-b--push--d8of10{margin-left:80%}.g-b--push--d1of6,.g-b--push--d2of12{margin-left:16.666%}.g-b--push--d5of6,.g-b--push--d10of12{margin-left:83.333%}.g-b--push--d1of8{margin-left:12.5%}.g-b--push--d3of8{margin-left:37.5%}.g-b--push--d5of8{margin-left:62.5%}.g-b--push--d7of8{margin-left:87.5%}.g-b--push--d1of10{margin-left:10%}.g-b--push--d3of10{margin-left:30%}.g-b--push--d7of10{margin-left:70%}.g-b--push--d9of10{margin-left:90%}.g-b--push--d1of12{margin-left:8.333%}.g-b--push--d5of12{margin-left:41.666%}.g-b--push--d7of12{margin-left:58.333%}.g-b--push--d11of12{margin-left:91.666%}.g-b--pull--d1of1{margin-right:100%}.g-b--pull--d1of2,.g-b--pull--d2of4,.g-b--pull--d3of6,.g-b--pull--d4of8,.g-b--pull--d5of10,.g-b--pull--d6of12{margin-right:50%}.g-b--pull--d1of3,.g-b--pull--d2of6,.g-b--pull--d4of12{margin-right:33.333%}.g-b--pull--d2of3,.g-b--pull--d4of6,.g-b--pull--d8of12{margin-right:66.666%}.g-b--pull--d1of4,.g-b--pull--d2of8,.g-b--pull--d3of12{margin-right:25%}.g-b--pull--d3of4,.g-b--pull--d6of8,.g-b--pull--d9of12{margin-right:75%}.g-b--pull--d1of5,.g-b--pull--d2of10{margin-right:20%}.g-b--pull--d2of5,.g-b--pull--d4of10{margin-right:40%}.g-b--pull--d3of5,.g-b--pull--d6of10{margin-right:60%}.g-b--pull--d4of5,.g-b--pull--d8of10{margin-right:80%}.g-b--pull--d1of6,.g-b--pull--d2of12{margin-right:16.666%}.g-b--pull--d5of6,.g-b--pull--d10of12{margin-right:83.333%}.g-b--pull--d1of8{margin-right:12.5%}.g-b--pull--d3of8{margin-right:37.5%}.g-b--pull--d5of8{margin-right:62.5%}.g-b--pull--d7of8{margin-right:87.5%}.g-b--pull--d1of10{margin-right:10%}.g-b--pull--d3of10{margin-right:30%}.g-b--pull--d7of10{margin-right:70%}.g-b--pull--d9of10{margin-right:90%}.g-b--pull--d1of12{margin-right:8.333%}.g-b--pull--d5of12{margin-right:41.666%}.g-b--pull--d7of12{margin-right:58.333%}.g-b--pull--d11of12{margin-right:91.666%}.splashscreen-dillinger{width:700px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{font-size:1.25rem;margin-bottom:.89999rem;padding-top:.10001rem}.menu .menu-item--export-as{display:block}.menu .menu-item--preview{display:none}.settings a{font-size:1.25rem}.words{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#zen{width:700px}#editor{font-size:1rem}}@media screen and (min-width:87.5em){html{font-size:.875em}body{font-size:1rem}ul,ol{margin-bottom:.83999rem;padding-top:.16001rem}p{padding-top:.66001rem}p,pre{margin-bottom:1.33999rem}pre,blockquote p{font-size:1rem;padding-top:.66001rem}blockquote p{margin-bottom:.33999rem}h1{font-size:2.05714rem;margin-bottom:.21999rem;padding-top:.78001rem}h2{font-size:1.95312rem;margin-bottom:.18358rem;padding-top:.81642rem}h3{font-size:1.64571rem;margin-bottom:.07599rem;padding-top:.92401rem}h4{font-size:1.5625rem;margin-bottom:.54686rem;padding-top:.45314rem}h5{font-size:1.25rem;margin-bottom:-.56251rem;padding-top:.56251rem}h6{font-size:1rem;margin-bottom:-.65001rem;padding-top:.65001rem}.splashscreen-dillinger{width:800px}.splashscreen p{font-size:1.25rem;margin-bottom:1.43749rem;padding-top:.56251rem}.title{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.title-document{margin-bottom:.89999rem;padding-top:.10001rem}.title-document,.settings a{font-size:1.25rem}.words{font-size:.8rem;margin-bottom:.77999rem;padding-top:.22001rem}.modal--dillinger.about .modal-dialog,#zen{font-size:1.25rem}#editor{font-size:1rem}}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}.form-horizontal .form-group-lg .control-label{padding-top:14.3px}.form-horizontal .form-group-sm .control-label{padding-top:6px}.modal-dialog{width:600px;margin:30px auto}.modal-content{box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}</style></head><body>
  2. <h1 id="install-du-vps">Install du VPS</h1>
  3. <blockquote>
  4. <p>ssh root@ip_du_vps</p>
  5. </blockquote>
  6. <p>Mise à jour : </p>
  7. <blockquote>
  8. <p>apt-get update
  9. apt-get upgrade</p>
  10. </blockquote>
  11. <p>Changement du mot de passe :</p>
  12. <blockquote>
  13. <p>passwd</p>
  14. </blockquote>
  15. <p>Création d&#39;un utilisateur autre que root (plus prudent ...) : </p>
  16. <blockquote>
  17. <p>adduser votrepseudo</p>
  18. </blockquote>
  19. <p>... Puis lui donner les privilèges sudo :</p>
  20. <blockquote>
  21. <p>adduser votrepseudo sudo</p>
  22. </blockquote>
  23. <p>Install d&#39;Apache :</p>
  24. <blockquote>
  25. <p>apt-get install -y apache2 apache2.2-common</p>
  26. </blockquote>
  27. <p>Teste : <a href="http://ip_du_vps">http://ip_du_vps</a>
  28. Si ça marche, continue.</p>
  29. <p>Désactivation du site par défaut :</p>
  30. <blockquote>
  31. <p>a2dissite 000-default</p>
  32. </blockquote>
  33. <p>Activation des mods:</p>
  34. <blockquote>
  35. <p>a2enmod rewrite</p>
  36. <p>a2enmod headers</p>
  37. <p>a2enmod expires</p>
  38. </blockquote>
  39. <p>Création du virtual host :</p>
  40. <blockquote>
  41. <p>cd /etc/apache2/sites-available</p>
  42. <p>nano <strong><em>nom_du_site</em></strong>.conf</p>
  43. </blockquote>
  44. <p>Configuration du virtual host :</p>
  45. <pre><code> &lt;VirtualHost *:80&gt;
  46. ServerName ***www.nom_de_domaine.com***
  47. ServerAlias ***nom_de_domaine.com***
  48. DocumentRoot /var/www/***nom_du_site***
  49. &lt;/VirtualHost&gt;
  50. </code></pre><p>Pour les sous-domaines :</p>
  51. <pre><code> &lt;VirtualHost *:80&gt;
  52. ServerName autre.***nom_de_domaine.com***
  53. DocumentRoot /var/www/autre
  54. &lt;/VirtualHost&gt;
  55. </code></pre><p>Activation du site :</p>
  56. <blockquote>
  57. <p>a2ensite <em>nom_du_site</em></p>
  58. </blockquote>
  59. <p>Création du folder pour le site, et attribution des droits à Apache !</p>
  60. <blockquote>
  61. <p>mkdir /var/www/<strong><em>nom_du_site</em></strong></p>
  62. <p>chown -R www-data:www-data /var/www/<strong><em>nom_du_site</em></strong></p>
  63. </blockquote>
  64. <p>Rendre le serveur moins bavard :</p>
  65. <blockquote>
  66. <p>nano /etc/apache2/conf-enabled/security.conf</p>
  67. </blockquote>
  68. <p>Et éditer :</p>
  69. <pre><code>ServerTokens Prod
  70. ServerSignature Off
  71. </code></pre><p>Relancer Apache : </p>
  72. <blockquote>
  73. <p>service apache2 reload</p>
  74. </blockquote>
  75. <p>Install PHP :</p>
  76. <blockquote>
  77. <p>apt-get install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php</p>
  78. </blockquote>
  79. <p>Install MySQL :</p>
  80. <blockquote>
  81. <p>apt-get install -y mysql-server mysql-client mysql-common</p>
  82. </blockquote>
  83. <p>Install PhpMyAdmin : </p>
  84. <blockquote>
  85. <p>apt-get install -y phpmyadmin
  86. Pendant l&#39;install, choisir :</p>
  87. <ul>
  88. <li>Apache2 </li>
  89. <li>dbconfig-common : Oui</li>
  90. <li>Mot de Passe MySQL définit avant</li>
  91. </ul>
  92. </blockquote>
  93. <p>Supprimer le dossier d&#39;install :</p>
  94. <blockquote>
  95. <p>rm -Rf /usr/share/phpmyadmin/setup</p>
  96. </blockquote>
  97. <p>Optionnel : </p>
  98. <blockquote>
  99. <p>nano /etc/phpmyadmin/config.inc.php</p>
  100. </blockquote>
  101. <p>Remplacer cookies par http ici :</p>
  102. <pre><code> $cfg[&#39;Servers&#39;][$i][&#39;auth_type&#39;] = &#39;http&#39;;
  103. </code></pre><p>Install Pure-FTPd (si le SFTP de base ne te convient pas) :</p>
  104. <blockquote>
  105. <p>apt-get install -y pure-ftpd-mysql</p>
  106. <p>mysql -u root -p</p>
  107. </blockquote>
  108. <p>Entrer le mot de passe MySQL</p>
  109. <blockquote>
  110. <p>CREATE USER &#39;pureftpd&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;<strong><em>mot_de_passe_random</em></strong>&#39;;</p>
  111. <p>GRANT USAGE ON <em>.</em> TO &#39;pureftpd&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;<strong><em>meme_mot_de_passe_random</em></strong>&#39; WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;</p>
  112. <p>CREATE DATABASE IF NOT EXISTS &#39;pureftpd&#39;;</p>
  113. <p>GRANT ALL PRIVILEGES ON &#39;pureftpd&#39;.* TO &#39;pureftpd&#39;@&#39;localhost&#39;;</p>
  114. <p>FLUSH PRIVILEGES;</p>
  115. <p>USE pureftpd;</p>
  116. <p>CREATE TABLE users (User varchar(16) NOT NULL default &#39;&#39;, Password varchar(64) NOT NULL default &#39;&#39;, Uid varchar(11) NOT NULL default &#39;&#39;, Gid varchar(11) NOT NULL default &#39;&#39;, Dir varchar(128) NOT NULL default &#39;&#39;, PRIMARY KEY (User) );</p>
  117. <p>INSERT INTO &#39;users&#39; ( &#39;User&#39; , &#39;Password&#39; , &#39;Uid&#39; , &#39;Gid&#39; , &#39;Dir&#39; ) VALUES (<strong><em>&#39;nom_du_user_ftp</em></strong>&#39;, MD5( &#39;<strong><em>pass_user_ftp</em></strong>&#39; ) , &#39;33&#39;, &#39;33&#39;, &#39;/var/www/<strong><em>nom_du_site</em></strong>&#39;);</p>
  118. <p>exit</p>
  119. <p>nano /etc/pure-ftpd/db/mysql.conf</p>
  120. </blockquote>
  121. <p>Puis éditer le fichier avec ça :</p>
  122. <pre><code> MYSQLUser pureftpd
  123. MYSQLPassword ***MotDePasseMySQL***
  124. MYSQLDatabase pureftpd
  125. # Important: md5 au lieu de cleartext !
  126. MYSQLCrypt md5
  127. </code></pre><p>Puis : </p>
  128. <blockquote>
  129. <p>echo yes &gt; /etc/pure-ftpd/conf/ChrootEveryone</p>
  130. <p>echo yes &gt; /etc/pure-ftpd/conf/DisplayDotFiles</p>
  131. <p>cd /etc/pure-ftpd/conf</p>
  132. <p>nano MinUID</p>
  133. </blockquote>
  134. <p>Remplacer <strong><em>1000</em></strong> par <strong><em>33</em></strong></p>
  135. <p>Puis : </p>
  136. <blockquote>
  137. <p>service pure-ftpd reload</p>
  138. </blockquote>
  139. <p>Install du serveur SMTP :
  140. Dans l&#39;administration OVH, dans l&#39;ancienne interface, aller dans &quot;Domaines &amp; DNS&quot; &gt; &quot;Zone DNS&quot;.</p>
  141. <p>Créer des redirections :</p>
  142. <pre><code> mail.ton_site.com A ip_du_serveur
  143. .ton_site.com MX 1 mail.ton_site.com
  144. .ton_site.com SPF v=spf1 a mx ~all
  145. </code></pre><p>Puis </p>
  146. <blockquote>
  147. <p>apt-get install -y postfix-mysql</p>
  148. </blockquote>
  149. <p>Pendant l&#39;install, choisir : &quot;No configuration&quot;</p>
  150. <blockquote>
  151. <p>mysql -u root -p</p>
  152. <p>CREATE USER &#39;postfix&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;<strong><em>mot_de_passe_random</em></strong>&#39;;</p>
  153. <p>GRANT USAGE ON <em>.</em> TO &#39;postfix&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;<strong><em>meme_mot_de_passe_random</em></strong>&#39; WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;</p>
  154. <p>CREATE DATABASE IF NOT EXISTS &#39;postfix&#39;;</p>
  155. <p>GRANT ALL PRIVILEGES ON &#39;postfix&#39;.* TO &#39;postfix&#39;@&#39;localhost&#39;;</p>
  156. <p>FLUSH PRIVILEGES;</p>
  157. <p>USE postfix;</p>
  158. <p>CREATE TABLE &#39;domaines&#39; ( &#39;domaine&#39; varchar(255) NOT NULL default &#39;&#39;, &#39;etat&#39; tinyint(1) NOT NULL default &#39;1&#39;, PRIMARY KEY (&#39;domaine&#39;)) ENGINE=MyISAM;</p>
  159. <p>CREATE TABLE &#39;comptes&#39; ( &#39;email&#39; varchar(255) NOT NULL default &#39;&#39;, &#39;password&#39; varchar(255) NOT NULL default &#39;&#39;, &#39;quota&#39; int(10) NOT NULL default &#39;0&#39;, &#39;etat&#39; tinyint(1) NOT NULL default &#39;1&#39;, &#39;imap&#39; tinyint(1) NOT NULL default &#39;1&#39;, &#39;pop3&#39; tinyint(1) NOT NULL default &#39;1&#39;, PRIMARY KEY (&#39;email&#39;)) ENGINE=MyISAM;</p>
  160. <p>CREATE TABLE &#39;alias&#39; (&#39;source&#39; varchar(255) NOT NULL default &#39;&#39;, &#39;destination&#39; text NOT NULL, &#39;etat&#39; tinyint(1) NOT NULL default &#39;1&#39;, PRIMARY KEY (&#39;source&#39;)) ENGINE=MyISAM;</p>
  161. <p>INSERT INTO &#39;domaines&#39; ( &#39;domaine&#39; , &#39;etat&#39; ) VALUES (&#39;<strong><em>ton_site.com</em></strong>&#39;, &#39;1&#39;);</p>
  162. <p>INSERT INTO &#39;comptes&#39; ( &#39;email&#39; , &#39;password&#39; , &#39;quota&#39; , &#39;etat&#39; , &#39;imap&#39; , &#39;pop3&#39; ) VALUES (&#39;webmaster@<strong><em>ton_site</em></strong>.com&#39;, ENCRYPT( &#39;<strong><em>ton_mot_de_passe&#39;</em></strong> ) , &#39;0&#39;, &#39;1&#39;, &#39;1&#39;, &#39;1&#39;);</p>
  163. <p>exit</p>
  164. </blockquote>
  165. <p>Créer ces 5 fichiers :</p>
  166. <blockquote>
  167. <p>nano /etc/postfix/mysql-virtual_domaines.cf</p>
  168. </blockquote>
  169. <pre><code> hosts = 127.0.0.1
  170. user = postfix
  171. password = ***Mot de passe Mysql de Postfix***
  172. dbname = postfix
  173. select_field = &#39;virtual&#39;
  174. table = domaines
  175. where_field = domaine
  176. additional_conditions = AND etat=1
  177. </code></pre><blockquote>
  178. <p>nano /etc/postfix/mysql-virtual_comptes.cf</p>
  179. </blockquote>
  180. <pre><code> hosts = 127.0.0.1
  181. user = postfix
  182. password = ***Mot de passe Mysql de Postfix***
  183. dbname = postfix
  184. table = comptes
  185. select_field = CONCAT(SUBSTRING_INDEX(email,&#39;@&#39;,-1),&#39;/&#39;,SUBSTRING_INDEX(email,&#39;@&#39;,1),&#39;/&#39;)
  186. where_field = email
  187. additional_conditions = AND etat=1
  188. </code></pre><blockquote>
  189. <p>nano /etc/postfix/mysql-virtual_aliases.cf</p>
  190. </blockquote>
  191. <pre><code> hosts = 127.0.0.1
  192. user = postfix
  193. password = ***Mot de passe Mysql de Postfix***
  194. dbname = postfix
  195. table = alias
  196. select_field = destination
  197. where_field = source
  198. additional_conditions = AND etat=1
  199. </code></pre><blockquote>
  200. <p>nano /etc/postfix/mysql-virtual_aliases_comptes.cf</p>
  201. </blockquote>
  202. <pre><code> hosts = 127.0.0.1
  203. user = postfix
  204. password = ***Mot de passe Mysql de Postfix***
  205. dbname = postfix
  206. table = comptes
  207. select_field = email
  208. where_field = email
  209. additional_conditions = AND etat=1
  210. </code></pre><blockquote>
  211. <p>nano /etc/postfix/mysql-virtual_quotas.cf</p>
  212. </blockquote>
  213. <pre><code> hosts = 127.0.0.1
  214. user = postfix
  215. password = ***Mot de passe Mysql de Postfix***
  216. dbname = postfix
  217. table = comptes
  218. select_field = quota
  219. where_field = email
  220. </code></pre><p>Sécuriser les fichiers de config :</p>
  221. <blockquote>
  222. <p>chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf</p>
  223. <p>chgrp postfix /etc/postfix/mysql-virtual_*.cf</p>
  224. </blockquote>
  225. <p>Créer user et groupe système UNIX : </p>
  226. <blockquote>
  227. <p>groupadd -g 5000 vmail</p>
  228. <p>useradd -g vmail -u 5000 vmail -d /var/spool/vmail/ -m</p>
  229. </blockquote>
  230. <p>Créer fichier de config :</p>
  231. <blockquote>
  232. <p>nano /etc/postfix/main.cf</p>
  233. </blockquote>
  234. <p>(remplacer <strong><em>ADRESSE_COMPLETE</em></strong> par <strong><em>mail.ton_server.com</em></strong>)</p>
  235. <pre><code> smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
  236. biff = no
  237. disable_vrfy_command = yes
  238. smtpd_helo_required = yes
  239. append_dot_mydomain = no
  240. myhostname = ***ADRESSE_COMPLETE***
  241. myorigin = ***ADRESSE_COMPLETE***
  242. mydestination = ***ADRESSE_COMPLETE***, localhost.localdomain, localhost
  243. relayhost =
  244. mynetworks = 127.0.0.0/8, ***IP_DE_TON_SERVEUR***
  245. mailbox_size_limit = 0
  246. recipient_delimiter = +
  247. inet_interfaces = all
  248. inet_protocols = ipv4
  249. virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql-virtual_aliases_comptes.cf
  250. virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domaines.cf
  251. virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_comptes.cf
  252. virtual_mailbox_base = /var/spool/vmail/
  253. virtual_uid_maps = static:5000
  254. virtual_gid_maps = static:5000
  255. smtpd_sender_restrictions =
  256. permit_mynetworks,
  257. warn_if_reject reject_unverified_sender
  258. smtpd_recipient_restrictions =
  259. permit_mynetworks,
  260. permit_sasl_authenticated,
  261. reject_unauth_destination
  262. smtpd_client_restrictions =
  263. permit_mynetworks
  264.  
  265. smtpd_sasl_auth_enable = yes
  266. broken_sasl_auth_clients = yes
  267. smtpd_sasl_authenticated_header = yes
  268. smtpd_use_tls = yes
  269. smtpd_tls_cert_file = /etc/postfix/smtpd.cert
  270. smtpd_tls_key_file = /etc/postfix/smtpd.key
  271.  
  272. content_filter = amavis:[127.0.0.1]:10024
  273. receive_override_options = no_address_mappings
  274. </code></pre><p>Install Courier :</p>
  275. <blockquote>
  276. <p>apt-get install -y courier-base courier-authdaemon courier-authlib-mysql courier-imap courier-pop</p>
  277. </blockquote>
  278. <p>Répondre &quot;non&quot; à la question sur la création des dossiers</p>
  279. <p>Modifier le config Mysql :</p>
  280. <blockquote>
  281. <p>nano /etc/courier/authdaemonrc</p>
  282. </blockquote>
  283. <p>Replacer cette ligne :</p>
  284. <pre><code>authmodulelist=&quot;authmysql&quot;
  285. </code></pre><p>Modifier la config MySQL :</p>
  286. <blockquote>
  287. <p>nano /etc/courier/authmysqlrc</p>
  288. </blockquote>
  289. <pre><code> MYSQL_SERVER localhost
  290. MYSQL_USERNAME postfix
  291. MYSQL_PASSWORD ***Mot de passe SQL***
  292. MYSQL_DATABASE postfix
  293. MYSQL_USER_TABLE comptes
  294. MYSQL_CRYPT_PWFIELD password
  295. MYSQL_UID_FIELD 5000
  296. MYSQL_GID_FIELD 5000
  297. MYSQL_LOGIN_FIELD email
  298. MYSQL_HOME_FIELD &quot;/var/spool/vmail/&quot;
  299. MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,&#39;@&#39;,-1),&#39;/&#39;,SUBSTRING_INDEX(email,&#39;@&#39;,1),&#39;/&#39;)
  300. #MYSQL_NAME_FIELD
  301. </code></pre><p>Surtout bien penser à commenter <strong><em>MYSQL_NAME_FIELD</em></strong></p>
  302. <blockquote>
  303. <p>apt-get install -y courier-pop-ssl courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl</p>
  304. </blockquote>
  305. <p>Création des certificats :</p>
  306. <blockquote>
  307. <p>cd /etc/postfix</p>
  308. <p>openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509</p>
  309. </blockquote>
  310. <p>Mettre <strong><em>mail.ton_serveur.com</em></strong> dans &quot;<em>Common Name</em>&quot;</p>
  311. <blockquote>
  312. <p>chmod o= /etc/postfix/smtpd.key</p>
  313. <p>mkdir -p /var/spool/postfix/var/run/saslauthd</p>
  314. <p>nano /etc/default/saslauthd</p>
  315. </blockquote>
  316. <pre><code> START=yes
  317. OPTIONS=&quot;-c -m /var/spool/postfix/var/run/saslauthd -r&quot;
  318. </code></pre><blockquote>
  319. <p>nano /etc/pam.d/smtp</p>
  320. </blockquote>
  321. <p>Modifier ces valeurs : </p>
  322. <pre><code> auth required pam_mysql.so user=postfix passwd=***mot_de_passe_db*** host=127.0.0.1 db=postfix table=comptes usercolumn=email passwdcolumn=password crypt=1
  323. account sufficient pam_mysql.so user=postfix passwd=***mot_de_passe_db*** host=127.0.0.1 db=postfix table=comptes usercolumn=email passwdcolumn=password crypt=1
  324. </code></pre><blockquote>
  325. <p>nano /etc/postfix/sasl/smtpd.conf</p>
  326. </blockquote>
  327. <p>Config : </p>
  328. <pre><code> pwcheck_method: saslauthd
  329. mech_list: plain login
  330. allow_plaintext: true
  331. auxprop_plugin: sql
  332. sql_engine: mysql
  333. sql_hostnames: 127.0.0.1
  334. sql_user: postfix
  335. sql_passwd: ***mot_de_passe_db***
  336. sql_database: postfix
  337. sql_select: select password from comptes where email = &#39;%u@%r&#39;
  338. </code></pre><blockquote>
  339. <p>adduser postfix sasl</p>
  340. <p>cd /etc/courier</p>
  341. <p>rm -f /etc/courier/imapd.pem</p>
  342. <p>rm -f /etc/courier/pop3d.pem</p>
  343. <p>nano /etc/courier/imapd.cnf</p>
  344. </blockquote>
  345. <p>Éditer : </p>
  346. <pre><code> CN=mail.ton_serveur.com
  347. </code></pre><blockquote>
  348. <p>nano /etc/courier/pop3d.cnf</p>
  349. </blockquote>
  350. <p>Éditer : </p>
  351. <pre><code> CN=mail.ton_serveur.com
  352. </code></pre><p>Regénérer les certificats :</p>
  353. <blockquote>
  354. <p>mkimapdcert </p>
  355. <p>mkpop3dcert</p>
  356. </blockquote>
  357. <p>Install Clamav :</p>
  358. <blockquote>
  359. <p>apt-get install -y amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 libnet-ph-perl libnet-snpp-perl libnet-telnet-perl nomarch lzop pax</p>
  360. <p>nano /etc/amavis/conf.d/15-content_filter_mode</p>
  361. </blockquote>
  362. <p>Décommenter :</p>
  363. <pre><code> @bypass_virus_checks_maps = (
  364. \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
  365. @bypass_spam_checks_maps = (
  366. \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
  367. </code></pre><blockquote>
  368. <p>nano /etc/amavis/conf.d/50-user</p>
  369. </blockquote>
  370. <p>Ajouter la ligne suivante avant : “#———— Do not modify anything below this line ————-” :</p>
  371. <pre><code> $pax=&#39;pax&#39;;
  372. </code></pre><blockquote>
  373. <p>adduser clamav amavis</p>
  374. <p>nano /etc/postfix/master.cf</p>
  375. </blockquote>
  376. <p>Éditer :</p>
  377. <pre><code> amavis unix - - - - 2 smtp
  378. -o smtp_data_done_timeout=1200
  379. -o smtp_send_xforward_command=yes
  380.  
  381. 127.0.0.1:10025 inet n - - - - smtpd
  382. -o content_filter=
  383. -o local_recipient_maps=
  384. -o relay_recipient_maps=
  385. -o smtpd_restriction_classes=
  386. -o smtpd_client_restrictions=
  387. -o smtpd_helo_restrictions=
  388. -o smtpd_sender_restrictions=
  389. -o smtpd_recipient_restrictions=permit_mynetworks,reject
  390. -o mynetworks=127.0.0.0/8
  391. -o strict_rfc821_envelopes=yes
  392. -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
  393. </code></pre><p>Redémarrer TOUS LES SERVICES :D</p>
  394. <blockquote>
  395. <p>/etc/init.d/postfix restart</p>
  396. <p>/etc/init.d/saslauthd restart</p>
  397. <p>/etc/init.d/courier-authdaemon restart</p>
  398. <p>/etc/init.d/courier-imap restart</p>
  399. <p>/etc/init.d/courier-imap-ssl restart</p>
  400. <p>/etc/init.d/courier-pop restart</p>
  401. <p>/etc/init.d/courier-pop-ssl restart </p>
  402. <p>/etc/init.d/amavis restart</p>
  403. <p>/etc/init.d/clamav-daemon restart</p>
  404. <p>/etc/init.d/clamav-freshclam restart</p>
  405. </blockquote>
  406. <p>Vérification telnet :</p>
  407. <blockquote>
  408. <p>telnet mail.<strong><em>ton_site.com</em></strong> 25</p>
  409. </blockquote>
  410. <pre><code> Trying ton_ip_de_server
  411. Connected to mail.ton_site.com.
  412. Escape character is &#39;^]&#39;.
  413. 220 mail.ton_site.com ESMTP Postfix (Debian/GNU)
  414. </code></pre><blockquote>
  415. <p>ehlo <strong><em>ton_site.com</em></strong></p>
  416. </blockquote>
  417. <pre><code> 250-mail.ton_site.com
  418. 250-PIPELINING
  419. 250-SIZE 10240000
  420. 250-ETRN
  421. 250-STARTTLS
  422. 250-AUTH PLAIN LOGIN
  423. 250-AUTH=PLAIN LOGIN
  424. 250-ENHANCEDSTATUSCODES
  425. 250-8BITMIME
  426. 250 DSN
  427. </code></pre><blockquote>
  428. <p>mail from: webmaster@<strong><em>ton_site</em></strong>.com</p>
  429. </blockquote>
  430. <pre><code> 250 2.1.0 Ok
  431. </code></pre><blockquote>
  432. <p>rcpt to: webmaster@<strong><em>ton_site</em></strong>.com</p>
  433. </blockquote>
  434. <pre><code> 250 2.1.5 Ok
  435. </code></pre><blockquote>
  436. <p>data</p>
  437. </blockquote>
  438. <pre><code> 354 End data with .
  439. </code></pre><blockquote>
  440. <p>Supertest mail .</p>
  441. </blockquote>
  442. <pre><code> 250 2.0.0 Ok: queued as 92743D63E2A
  443. </code></pre><blockquote>
  444. <p>quit</p>
  445. </blockquote>
  446. <pre><code> 221 2.0.0 Bye
  447. Connection closed by foreign host.
  448. </code></pre><p>Install Roundcube :</p>
  449. <blockquote>
  450. <p>mysql -u root -p</p>
  451. <p>CREATE DATABASE roundcubedb;</p>
  452. <p>CREATE USER usercube;</p>
  453. <p>SET PASSWORD FOR &#39;usercube&#39; = PASSWORD(<strong><em>&#39;un_password_random</em></strong>&#39;);</p>
  454. <p>GRANT ALL PRIVILEGES ON roundcubedb.* to usercube@localhost;</p>
  455. <p>FLUSH PRIVILEGES;</p>
  456. <p>exit</p>
  457. </blockquote>
  458. <p>Puis:</p>
  459. <blockquote>
  460. <p>cd /tmp &amp;&amp; wget <a href="http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.0/roundcubemail-1.1.0.tar.gz/download">http://sourceforge.net/projects/roundcubemail/files/roundcubemail/1.1.0/roundcubemail-1.1.0.tar.gz/download</a></p>
  461. <p>tar -xzvf roundcubemail-1.1.0.tar.gz -C /var/www</p>
  462. <p>mv /var/www/roundcubemail-1.1.0/ /var/www/webmail</p>
  463. <p>chown www-data:www-data /home/roundcube/www/temp</p>
  464. <p>chown www-data:www-data /home/roundcube/www/logs</p>
  465. <p>mysql -u root -p roundcubedb &lt; /var/www/webmail/SQL/mysql.initial.sql</p>
  466. <p>nano /etc/apache2/sites-available/roundcube.conf</p>
  467. </blockquote>
  468. <pre><code> Alias /roundcube &quot;/var/www/roundcube/&quot;
  469. &lt;Directory &quot;/var/www/roundcube&quot;&gt;
  470. Options FollowSymLinks MultiViews
  471. AllowOverride All
  472. Order allow,deny
  473. allow from all
  474. &lt;/Directory&gt;
  475. </code></pre><blockquote>
  476. <p>a2ensite roundcube</p>
  477. <p>service apache2 restart</p>
  478. </blockquote>
  479. <p>Depuis le navigateur, va : <a href="http://ton-server.com/webmail/installer/">http://ton-server.com/webmail/installer/</a></p>
  480. <p>Mettre les paramètres demandés pour MySQL
  481. Mettre localhost pour les serveurs IMAP et POP</p>
  482. <p>Sauver les 2 fichiers de configuration générés dans :</p>
  483. <pre><code> /var/www/roundcube/config/db.inc.php
  484. /var/www/roundcube/config/main.inc.php
  485. </code></pre><p>Va sur Roundcube :
  486. <a href="http://www.ton_site.com/roundcube/">http://www.ton_site.com/roundcube/</a></p>
  487. <p>Teste la connexion avec l&#39;adresse créée avant : webmaster@ton_site.com</p>
  488. <p>Une fois l&#39;install finie : </p>
  489. <blockquote>
  490. <p>rm -Rf /var/www/webmail/installer</p>
  491. </blockquote>
  492. <p>Et pour finir, un système de notifs par mail dès qu&#39;une update est dispo :</p>
  493. <blockquote>
  494. <p>apt-get install -y apticron</p>
  495. <p>nano /etc/apticron/apticron.conf</p>
  496. </blockquote>
  497. <pre><code>EMAIL=&quot;ton_adresse@mail.com&quot;
  498. </code></pre>
  499. </body></html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement