diff options
95 files changed, 2686 insertions, 1207 deletions
diff --git a/.gitattributes b/.gitattributes index aaf6a39e..d753b1db 100644 --- a/.gitattributes +++ b/.gitattributes | |||
@@ -21,7 +21,6 @@ Dockerfile text | |||
21 | .gitattributes export-ignore | 21 | .gitattributes export-ignore |
22 | .gitignore export-ignore | 22 | .gitignore export-ignore |
23 | .travis.yml export-ignore | 23 | .travis.yml export-ignore |
24 | composer.json export-ignore | ||
25 | doc/**/*.json export-ignore | 24 | doc/**/*.json export-ignore |
26 | doc/**/*.md export-ignore | 25 | doc/**/*.md export-ignore |
27 | docker/ export-ignore | 26 | docker/ export-ignore |
@@ -25,7 +25,7 @@ It runs the latest development version of Shaarli and is updated/reset daily. | |||
25 | Login: `demo`; Password: `demo` | 25 | Login: `demo`; Password: `demo` |
26 | 26 | ||
27 | ### Installation & upgrade | 27 | ### Installation & upgrade |
28 | - [Download](https://github.com/shaarli/Shaarli/wiki/Download) | 28 | - [Download and installation](https://github.com/shaarli/Shaarli/wiki/Download-and-Installation) |
29 | - [Upgrade and migration](https://github.com/shaarli/Shaarli/wiki/Upgrade-and-migration) | 29 | - [Upgrade and migration](https://github.com/shaarli/Shaarli/wiki/Upgrade-and-migration) |
30 | - [Server requirements](https://github.com/shaarli/Shaarli/wiki/Server-requirements) | 30 | - [Server requirements](https://github.com/shaarli/Shaarli/wiki/Server-requirements) |
31 | - [Server configuration](https://github.com/shaarli/Shaarli/wiki/Server-configuration) | 31 | - [Server configuration](https://github.com/shaarli/Shaarli/wiki/Server-configuration) |
diff --git a/application/HttpUtils.php b/application/HttpUtils.php index 2e0792f9..e705cfd6 100644 --- a/application/HttpUtils.php +++ b/application/HttpUtils.php | |||
@@ -1,6 +1,7 @@ | |||
1 | <?php | 1 | <?php |
2 | /** | 2 | /** |
3 | * GET an HTTP URL to retrieve its content | 3 | * GET an HTTP URL to retrieve its content |
4 | * Uses the cURL library or a fallback method | ||
4 | * | 5 | * |
5 | * @param string $url URL to get (http://...) | 6 | * @param string $url URL to get (http://...) |
6 | * @param int $timeout network timeout (in seconds) | 7 | * @param int $timeout network timeout (in seconds) |
@@ -20,38 +21,177 @@ | |||
20 | * echo 'There was an error: '.htmlspecialchars($headers[0]); | 21 | * echo 'There was an error: '.htmlspecialchars($headers[0]); |
21 | * } | 22 | * } |
22 | * | 23 | * |
23 | * @see http://php.net/manual/en/function.file-get-contents.php | 24 | * @see https://secure.php.net/manual/en/ref.curl.php |
24 | * @see http://php.net/manual/en/function.stream-context-create.php | 25 | * @see https://secure.php.net/manual/en/functions.anonymous.php |
25 | * @see http://php.net/manual/en/function.get-headers.php | 26 | * @see https://secure.php.net/manual/en/function.preg-split.php |
27 | * @see https://secure.php.net/manual/en/function.explode.php | ||
28 | * @see http://stackoverflow.com/q/17641073 | ||
29 | * @see http://stackoverflow.com/q/9183178 | ||
30 | * @see http://stackoverflow.com/q/1462720 | ||
26 | */ | 31 | */ |
27 | function get_http_response($url, $timeout = 30, $maxBytes = 4194304) | 32 | function get_http_response($url, $timeout = 30, $maxBytes = 4194304) |
28 | { | 33 | { |
29 | $urlObj = new Url($url); | 34 | $urlObj = new Url($url); |
30 | $cleanUrl = $urlObj->idnToAscii(); | 35 | $cleanUrl = $urlObj->idnToAscii(); |
31 | 36 | ||
32 | if (! filter_var($cleanUrl, FILTER_VALIDATE_URL) || ! $urlObj->isHttp()) { | 37 | if (!filter_var($cleanUrl, FILTER_VALIDATE_URL) || !$urlObj->isHttp()) { |
33 | return array(array(0 => 'Invalid HTTP Url'), false); | 38 | return array(array(0 => 'Invalid HTTP Url'), false); |
34 | } | 39 | } |
35 | 40 | ||
41 | $userAgent = | ||
42 | 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:45.0)' | ||
43 | . ' Gecko/20100101 Firefox/45.0'; | ||
44 | $acceptLanguage = | ||
45 | substr(setlocale(LC_COLLATE, 0), 0, 2) . ',en-US;q=0.7,en;q=0.3'; | ||
46 | $maxRedirs = 3; | ||
47 | |||
48 | if (!function_exists('curl_init')) { | ||
49 | return get_http_response_fallback( | ||
50 | $cleanUrl, | ||
51 | $timeout, | ||
52 | $maxBytes, | ||
53 | $userAgent, | ||
54 | $acceptLanguage, | ||
55 | $maxRedirs | ||
56 | ); | ||
57 | } | ||
58 | |||
59 | $ch = curl_init($cleanUrl); | ||
60 | if ($ch === false) { | ||
61 | return array(array(0 => 'curl_init() error'), false); | ||
62 | } | ||
63 | |||
64 | // General cURL settings | ||
65 | curl_setopt($ch, CURLOPT_AUTOREFERER, true); | ||
66 | curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); | ||
67 | curl_setopt($ch, CURLOPT_HEADER, true); | ||
68 | curl_setopt( | ||
69 | $ch, | ||
70 | CURLOPT_HTTPHEADER, | ||
71 | array('Accept-Language: ' . $acceptLanguage) | ||
72 | ); | ||
73 | curl_setopt($ch, CURLOPT_MAXREDIRS, $maxRedirs); | ||
74 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | ||
75 | curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); | ||
76 | curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); | ||
77 | |||
78 | // Max download size management | ||
79 | curl_setopt($ch, CURLOPT_BUFFERSIZE, 1024); | ||
80 | curl_setopt($ch, CURLOPT_NOPROGRESS, false); | ||
81 | curl_setopt($ch, CURLOPT_PROGRESSFUNCTION, | ||
82 | function($arg0, $arg1, $arg2, $arg3, $arg4 = 0) use ($maxBytes) | ||
83 | { | ||
84 | if (version_compare(phpversion(), '5.5', '<')) { | ||
85 | // PHP version lower than 5.5 | ||
86 | // Callback has 4 arguments | ||
87 | $downloaded = $arg1; | ||
88 | } else { | ||
89 | // Callback has 5 arguments | ||
90 | $downloaded = $arg2; | ||
91 | } | ||
92 | // Non-zero return stops downloading | ||
93 | return ($downloaded > $maxBytes) ? 1 : 0; | ||
94 | } | ||
95 | ); | ||
96 | |||
97 | $response = curl_exec($ch); | ||
98 | $errorNo = curl_errno($ch); | ||
99 | $errorStr = curl_error($ch); | ||
100 | $headSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); | ||
101 | curl_close($ch); | ||
102 | |||
103 | if ($response === false) { | ||
104 | if ($errorNo == CURLE_COULDNT_RESOLVE_HOST) { | ||
105 | /* | ||
106 | * Workaround to match fallback method behaviour | ||
107 | * Removing this would require updating | ||
108 | * GetHttpUrlTest::testGetInvalidRemoteUrl() | ||
109 | */ | ||
110 | return array(false, false); | ||
111 | } | ||
112 | return array(array(0 => 'curl_exec() error: ' . $errorStr), false); | ||
113 | } | ||
114 | |||
115 | // Formatting output like the fallback method | ||
116 | $rawHeaders = substr($response, 0, $headSize); | ||
117 | |||
118 | // Keep only headers from latest redirection | ||
119 | $rawHeadersArrayRedirs = explode("\r\n\r\n", trim($rawHeaders)); | ||
120 | $rawHeadersLastRedir = end($rawHeadersArrayRedirs); | ||
121 | |||
122 | $content = substr($response, $headSize); | ||
123 | $headers = array(); | ||
124 | foreach (preg_split('~[\r\n]+~', $rawHeadersLastRedir) as $line) { | ||
125 | if (empty($line) or ctype_space($line)) { | ||
126 | continue; | ||
127 | } | ||
128 | $splitLine = explode(': ', $line, 2); | ||
129 | if (count($splitLine) > 1) { | ||
130 | $key = $splitLine[0]; | ||
131 | $value = $splitLine[1]; | ||
132 | if (array_key_exists($key, $headers)) { | ||
133 | if (!is_array($headers[$key])) { | ||
134 | $headers[$key] = array(0 => $headers[$key]); | ||
135 | } | ||
136 | $headers[$key][] = $value; | ||
137 | } else { | ||
138 | $headers[$key] = $value; | ||
139 | } | ||
140 | } else { | ||
141 | $headers[] = $splitLine[0]; | ||
142 | } | ||
143 | } | ||
144 | |||
145 | return array($headers, $content); | ||
146 | } | ||
147 | |||
148 | /** | ||
149 | * GET an HTTP URL to retrieve its content (fallback method) | ||
150 | * | ||
151 | * @param string $cleanUrl URL to get (http://... valid and in ASCII form) | ||
152 | * @param int $timeout network timeout (in seconds) | ||
153 | * @param int $maxBytes maximum downloaded bytes | ||
154 | * @param string $userAgent "User-Agent" header | ||
155 | * @param string $acceptLanguage "Accept-Language" header | ||
156 | * @param int $maxRedr maximum amount of redirections followed | ||
157 | * | ||
158 | * @return array HTTP response headers, downloaded content | ||
159 | * | ||
160 | * Output format: | ||
161 | * [0] = associative array containing HTTP response headers | ||
162 | * [1] = URL content (downloaded data) | ||
163 | * | ||
164 | * @see http://php.net/manual/en/function.file-get-contents.php | ||
165 | * @see http://php.net/manual/en/function.stream-context-create.php | ||
166 | * @see http://php.net/manual/en/function.get-headers.php | ||
167 | */ | ||
168 | function get_http_response_fallback( | ||
169 | $cleanUrl, | ||
170 | $timeout, | ||
171 | $maxBytes, | ||
172 | $userAgent, | ||
173 | $acceptLanguage, | ||
174 | $maxRedr | ||
175 | ) { | ||
36 | $options = array( | 176 | $options = array( |
37 | 'http' => array( | 177 | 'http' => array( |
38 | 'method' => 'GET', | 178 | 'method' => 'GET', |
39 | 'timeout' => $timeout, | 179 | 'timeout' => $timeout, |
40 | 'user_agent' => 'Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:45.0)' | 180 | 'user_agent' => $userAgent, |
41 | .' Gecko/20100101 Firefox/45.0', | 181 | 'header' => "Accept: */*\r\n" |
42 | 'accept_language' => substr(setlocale(LC_COLLATE, 0), 0, 2) . ',en-US;q=0.7,en;q=0.3', | 182 | . 'Accept-Language: ' . $acceptLanguage |
43 | ) | 183 | ) |
44 | ); | 184 | ); |
45 | 185 | ||
46 | stream_context_set_default($options); | 186 | stream_context_set_default($options); |
47 | list($headers, $finalUrl) = get_redirected_headers($cleanUrl); | 187 | list($headers, $finalUrl) = get_redirected_headers($cleanUrl, $maxRedr); |
48 | if (! $headers || strpos($headers[0], '200 OK') === false) { | 188 | if (! $headers || strpos($headers[0], '200 OK') === false) { |
49 | $options['http']['request_fulluri'] = true; | 189 | $options['http']['request_fulluri'] = true; |
50 | stream_context_set_default($options); | 190 | stream_context_set_default($options); |
51 | list($headers, $finalUrl) = get_redirected_headers($cleanUrl); | 191 | list($headers, $finalUrl) = get_redirected_headers($cleanUrl, $maxRedr); |
52 | } | 192 | } |
53 | 193 | ||
54 | if (! $headers || strpos($headers[0], '200 OK') === false) { | 194 | if (! $headers) { |
55 | return array($headers, false); | 195 | return array($headers, false); |
56 | } | 196 | } |
57 | 197 | ||
@@ -215,3 +355,29 @@ function page_url($server) | |||
215 | } | 355 | } |
216 | return index_url($server); | 356 | return index_url($server); |
217 | } | 357 | } |
358 | |||
359 | /** | ||
360 | * Retrieve the initial IP forwarded by the reverse proxy. | ||
361 | * | ||
362 | * Inspired from: https://github.com/zendframework/zend-http/blob/master/src/PhpEnvironment/RemoteAddress.php | ||
363 | * | ||
364 | * @param array $server $_SERVER array which contains HTTP headers. | ||
365 | * @param array $trustedIps List of trusted IP from the configuration. | ||
366 | * | ||
367 | * @return string|bool The forwarded IP, or false if none could be extracted. | ||
368 | */ | ||
369 | function getIpAddressFromProxy($server, $trustedIps) | ||
370 | { | ||
371 | $forwardedIpHeader = 'HTTP_X_FORWARDED_FOR'; | ||
372 | if (empty($server[$forwardedIpHeader])) { | ||
373 | return false; | ||
374 | } | ||
375 | |||
376 | $ips = preg_split('/\s*,\s*/', $server[$forwardedIpHeader]); | ||
377 | $ips = array_diff($ips, $trustedIps); | ||
378 | if (empty($ips)) { | ||
379 | return false; | ||
380 | } | ||
381 | |||
382 | return array_pop($ips); | ||
383 | } | ||
diff --git a/application/Languages.php b/application/Languages.php new file mode 100644 index 00000000..c8b0a25a --- /dev/null +++ b/application/Languages.php | |||
@@ -0,0 +1,21 @@ | |||
1 | <?php | ||
2 | |||
3 | /** | ||
4 | * Wrapper function for translation which match the API | ||
5 | * of gettext()/_() and ngettext(). | ||
6 | * | ||
7 | * Not doing translation for now. | ||
8 | * | ||
9 | * @param string $text Text to translate. | ||
10 | * @param string $nText The plural message ID. | ||
11 | * @param int $nb The number of items for plural forms. | ||
12 | * | ||
13 | * @return String Text translated. | ||
14 | */ | ||
15 | function t($text, $nText = '', $nb = 0) { | ||
16 | if (empty($nText)) { | ||
17 | return $text; | ||
18 | } | ||
19 | $actualForm = $nb > 1 ? $nText : $text; | ||
20 | return sprintf($actualForm, $nb); | ||
21 | } | ||
diff --git a/application/NetscapeBookmarkUtils.php b/application/NetscapeBookmarkUtils.php index fdbb0ad7..c3181254 100644 --- a/application/NetscapeBookmarkUtils.php +++ b/application/NetscapeBookmarkUtils.php | |||
@@ -51,4 +51,145 @@ class NetscapeBookmarkUtils | |||
51 | 51 | ||
52 | return $bookmarkLinks; | 52 | return $bookmarkLinks; |
53 | } | 53 | } |
54 | |||
55 | /** | ||
56 | * Generates an import status summary | ||
57 | * | ||
58 | * @param string $filename name of the file to import | ||
59 | * @param int $filesize size of the file to import | ||
60 | * @param int $importCount how many links were imported | ||
61 | * @param int $overwriteCount how many links were overwritten | ||
62 | * @param int $skipCount how many links were skipped | ||
63 | * | ||
64 | * @return string Summary of the bookmark import status | ||
65 | */ | ||
66 | private static function importStatus( | ||
67 | $filename, | ||
68 | $filesize, | ||
69 | $importCount=0, | ||
70 | $overwriteCount=0, | ||
71 | $skipCount=0 | ||
72 | ) | ||
73 | { | ||
74 | $status = 'File '.$filename.' ('.$filesize.' bytes) '; | ||
75 | if ($importCount == 0 && $overwriteCount == 0 && $skipCount == 0) { | ||
76 | $status .= 'has an unknown file format. Nothing was imported.'; | ||
77 | } else { | ||
78 | $status .= 'was successfully processed: '.$importCount.' links imported, '; | ||
79 | $status .= $overwriteCount.' links overwritten, '; | ||
80 | $status .= $skipCount.' links skipped.'; | ||
81 | } | ||
82 | return $status; | ||
83 | } | ||
84 | |||
85 | /** | ||
86 | * Imports Web bookmarks from an uploaded Netscape bookmark dump | ||
87 | * | ||
88 | * @param array $post Server $_POST parameters | ||
89 | * @param array $file Server $_FILES parameters | ||
90 | * @param LinkDB $linkDb Loaded LinkDB instance | ||
91 | * @param string $pagecache Page cache | ||
92 | * | ||
93 | * @return string Summary of the bookmark import status | ||
94 | */ | ||
95 | public static function import($post, $files, $linkDb, $pagecache) | ||
96 | { | ||
97 | $filename = $files['filetoupload']['name']; | ||
98 | $filesize = $files['filetoupload']['size']; | ||
99 | $data = file_get_contents($files['filetoupload']['tmp_name']); | ||
100 | |||
101 | if (strpos($data, '<!DOCTYPE NETSCAPE-Bookmark-file-1>') === false) { | ||
102 | return self::importStatus($filename, $filesize); | ||
103 | } | ||
104 | |||
105 | // Overwrite existing links? | ||
106 | $overwrite = ! empty($post['overwrite']); | ||
107 | |||
108 | // Add tags to all imported links? | ||
109 | if (empty($post['default_tags'])) { | ||
110 | $defaultTags = array(); | ||
111 | } else { | ||
112 | $defaultTags = preg_split( | ||
113 | '/[\s,]+/', | ||
114 | escape($post['default_tags']) | ||
115 | ); | ||
116 | } | ||
117 | |||
118 | // links are imported as public by default | ||
119 | $defaultPrivacy = 0; | ||
120 | |||
121 | $parser = new NetscapeBookmarkParser( | ||
122 | true, // nested tag support | ||
123 | $defaultTags, // additional user-specified tags | ||
124 | strval(1 - $defaultPrivacy) // defaultPub = 1 - defaultPrivacy | ||
125 | ); | ||
126 | $bookmarks = $parser->parseString($data); | ||
127 | |||
128 | $importCount = 0; | ||
129 | $overwriteCount = 0; | ||
130 | $skipCount = 0; | ||
131 | |||
132 | foreach ($bookmarks as $bkm) { | ||
133 | $private = $defaultPrivacy; | ||
134 | if (empty($post['privacy']) || $post['privacy'] == 'default') { | ||
135 | // use value from the imported file | ||
136 | $private = $bkm['pub'] == '1' ? 0 : 1; | ||
137 | } else if ($post['privacy'] == 'private') { | ||
138 | // all imported links are private | ||
139 | $private = 1; | ||
140 | } else if ($post['privacy'] == 'public') { | ||
141 | // all imported links are public | ||
142 | $private = 0; | ||
143 | } | ||
144 | |||
145 | $newLink = array( | ||
146 | 'title' => $bkm['title'], | ||
147 | 'url' => $bkm['uri'], | ||
148 | 'description' => $bkm['note'], | ||
149 | 'private' => $private, | ||
150 | 'linkdate'=> '', | ||
151 | 'tags' => $bkm['tags'] | ||
152 | ); | ||
153 | |||
154 | $existingLink = $linkDb->getLinkFromUrl($bkm['uri']); | ||
155 | |||
156 | if ($existingLink !== false) { | ||
157 | if ($overwrite === false) { | ||
158 | // Do not overwrite an existing link | ||
159 | $skipCount++; | ||
160 | continue; | ||
161 | } | ||
162 | |||
163 | // Overwrite an existing link, keep its date | ||
164 | $newLink['linkdate'] = $existingLink['linkdate']; | ||
165 | $linkDb[$existingLink['linkdate']] = $newLink; | ||
166 | $importCount++; | ||
167 | $overwriteCount++; | ||
168 | continue; | ||
169 | } | ||
170 | |||
171 | // Add a new link | ||
172 | $newLinkDate = new DateTime('@'.strval($bkm['time'])); | ||
173 | while (!empty($linkDb[$newLinkDate->format(LinkDB::LINK_DATE_FORMAT)])) { | ||
174 | // Ensure the date/time is not already used | ||
175 | // - this hack is necessary as the date/time acts as a primary key | ||
176 | // - apply 1 second increments until an unused index is found | ||
177 | // See https://github.com/shaarli/Shaarli/issues/351 | ||
178 | $newLinkDate->add(new DateInterval('PT1S')); | ||
179 | } | ||
180 | $linkDbDate = $newLinkDate->format(LinkDB::LINK_DATE_FORMAT); | ||
181 | $newLink['linkdate'] = $linkDbDate; | ||
182 | $linkDb[$linkDbDate] = $newLink; | ||
183 | $importCount++; | ||
184 | } | ||
185 | |||
186 | $linkDb->savedb($pagecache); | ||
187 | return self::importStatus( | ||
188 | $filename, | ||
189 | $filesize, | ||
190 | $importCount, | ||
191 | $overwriteCount, | ||
192 | $skipCount | ||
193 | ); | ||
194 | } | ||
54 | } | 195 | } |
diff --git a/application/PageBuilder.php b/application/PageBuilder.php index 1ca0260a..42932f32 100644 --- a/application/PageBuilder.php +++ b/application/PageBuilder.php | |||
@@ -80,6 +80,7 @@ class PageBuilder | |||
80 | if (!empty($GLOBALS['plugin_errors'])) { | 80 | if (!empty($GLOBALS['plugin_errors'])) { |
81 | $this->tpl->assign('plugin_errors', $GLOBALS['plugin_errors']); | 81 | $this->tpl->assign('plugin_errors', $GLOBALS['plugin_errors']); |
82 | } | 82 | } |
83 | $this->tpl->assign('token', getToken($this->conf)); | ||
83 | // To be removed with a proper theme configuration. | 84 | // To be removed with a proper theme configuration. |
84 | $this->tpl->assign('conf', $this->conf); | 85 | $this->tpl->assign('conf', $this->conf); |
85 | } | 86 | } |
diff --git a/application/PluginManager.php b/application/PluginManager.php index dca7e63e..1e132a7f 100644 --- a/application/PluginManager.php +++ b/application/PluginManager.php | |||
@@ -185,7 +185,11 @@ class PluginManager | |||
185 | continue; | 185 | continue; |
186 | } | 186 | } |
187 | 187 | ||
188 | $metaData[$plugin]['parameters'][$param] = ''; | 188 | $metaData[$plugin]['parameters'][$param]['value'] = ''; |
189 | // Optional parameter description in parameter.PARAM_NAME= | ||
190 | if (isset($metaData[$plugin]['parameter.'. $param])) { | ||
191 | $metaData[$plugin]['parameters'][$param]['desc'] = $metaData[$plugin]['parameter.'. $param]; | ||
192 | } | ||
189 | } | 193 | } |
190 | } | 194 | } |
191 | 195 | ||
@@ -210,4 +214,4 @@ class PluginFileNotFoundException extends Exception | |||
210 | { | 214 | { |
211 | $this->message = 'Plugin "'. $pluginName .'" files not found.'; | 215 | $this->message = 'Plugin "'. $pluginName .'" files not found.'; |
212 | } | 216 | } |
213 | } \ No newline at end of file | 217 | } |
diff --git a/application/Router.php b/application/Router.php index 2c3934b0..caed4a28 100644 --- a/application/Router.php +++ b/application/Router.php | |||
@@ -138,4 +138,4 @@ class Router | |||
138 | 138 | ||
139 | return self::$PAGE_LINKLIST; | 139 | return self::$PAGE_LINKLIST; |
140 | } | 140 | } |
141 | } \ No newline at end of file | 141 | } |
diff --git a/application/config/ConfigPlugin.php b/application/config/ConfigPlugin.php index 047d2b03..cb0b6fce 100644 --- a/application/config/ConfigPlugin.php +++ b/application/config/ConfigPlugin.php | |||
@@ -80,9 +80,13 @@ function validate_plugin_order($formData) | |||
80 | } | 80 | } |
81 | 81 | ||
82 | /** | 82 | /** |
83 | * Affect plugin parameters values into plugins array. | 83 | * Affect plugin parameters values from the ConfigManager into plugins array. |
84 | * | 84 | * |
85 | * @param mixed $plugins Plugins array ($plugins[<plugin_name>]['parameters']['param_name'] = <value>. | 85 | * @param mixed $plugins Plugins array: |
86 | * $plugins[<plugin_name>]['parameters'][<param_name>] = [ | ||
87 | * 'value' => <value>, | ||
88 | * 'desc' => <description> | ||
89 | * ] | ||
86 | * @param mixed $conf Plugins configuration. | 90 | * @param mixed $conf Plugins configuration. |
87 | * | 91 | * |
88 | * @return mixed Updated $plugins array. | 92 | * @return mixed Updated $plugins array. |
@@ -97,7 +101,7 @@ function load_plugin_parameter_values($plugins, $conf) | |||
97 | 101 | ||
98 | foreach ($plugin['parameters'] as $key => $param) { | 102 | foreach ($plugin['parameters'] as $key => $param) { |
99 | if (!empty($conf[$key])) { | 103 | if (!empty($conf[$key])) { |
100 | $out[$name]['parameters'][$key] = $conf[$key]; | 104 | $out[$name]['parameters'][$key]['value'] = $conf[$key]; |
101 | } | 105 | } |
102 | } | 106 | } |
103 | } | 107 | } |
diff --git a/composer.json b/composer.json index dc1b509e..89a7e446 100644 --- a/composer.json +++ b/composer.json | |||
@@ -9,15 +9,9 @@ | |||
9 | "wiki": "https://github.com/shaarli/Shaarli/wiki" | 9 | "wiki": "https://github.com/shaarli/Shaarli/wiki" |
10 | }, | 10 | }, |
11 | "keywords": ["bookmark", "link", "share", "web"], | 11 | "keywords": ["bookmark", "link", "share", "web"], |
12 | "repositories": [ | ||
13 | { | ||
14 | "type": "vcs", | ||
15 | "url": "https://github.com/shaarli/netscape-bookmark-parser" | ||
16 | } | ||
17 | ], | ||
18 | "require": { | 12 | "require": { |
19 | "php": ">=5.3.4", | 13 | "php": ">=5.3.4", |
20 | "kafene/netscape-bookmark-parser": "dev-shaarli-stable" | 14 | "shaarli/netscape-bookmark-parser": "1.*" |
21 | }, | 15 | }, |
22 | "require-dev": { | 16 | "require-dev": { |
23 | "phpmd/phpmd" : "@stable", | 17 | "phpmd/phpmd" : "@stable", |
diff --git a/doc/3rd-party-libraries.html b/doc/3rd-party-libraries.html index f6ff4763..946ca037 100644 --- a/doc/3rd-party-libraries.html +++ b/doc/3rd-party-libraries.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
@@ -81,6 +79,7 @@ | |||
81 | </ul> | 79 | </ul> |
82 | <h2 id="php">PHP</h2> | 80 | <h2 id="php">PHP</h2> |
83 | <ul> | 81 | <ul> |
82 | <li><a href="https://github.com/shaarli/netscape-bookmark-parser">shaarli/netscape-bookmark-parser</a> - Netscape bookmark parser<a href=".html"></a></li> | ||
84 | <li><a href="https://github.com/rainphp/raintpl">RainTPL</a> - HTML templating for PHP<a href=".html"></a></li> | 83 | <li><a href="https://github.com/rainphp/raintpl">RainTPL</a> - HTML templating for PHP<a href=".html"></a></li> |
85 | </ul> | 84 | </ul> |
86 | </body> | 85 | </body> |
diff --git a/doc/3rd-party-libraries.md b/doc/3rd-party-libraries.md index 3101c90a..e6370549 100644 --- a/doc/3rd-party-libraries.md +++ b/doc/3rd-party-libraries.md | |||
@@ -10,4 +10,5 @@ | |||
10 | - [qr.js](http://neocotic.com/qr.js/) ([GitHub](https://github.com/neocotic/qr.js)) - QR code generation[](.html) | 10 | - [qr.js](http://neocotic.com/qr.js/) ([GitHub](https://github.com/neocotic/qr.js)) - QR code generation[](.html) |
11 | 11 | ||
12 | ## PHP | 12 | ## PHP |
13 | - [shaarli/netscape-bookmark-parser](https://github.com/shaarli/netscape-bookmark-parser) - Netscape bookmark parser[](.html) | ||
13 | - [RainTPL](https://github.com/rainphp/raintpl) - HTML templating for PHP[](.html) | 14 | - [RainTPL](https://github.com/rainphp/raintpl) - HTML templating for PHP[](.html) |
diff --git a/doc/Backup,-restore,-import-and-export.html b/doc/Backup,-restore,-import-and-export.html index 4d72728e..a4a48ad7 100644 --- a/doc/Backup,-restore,-import-and-export.html +++ b/doc/Backup,-restore,-import-and-export.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,15 +96,21 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="backup-restore-import-and-export">Backup, restore, import and export</h1> | 102 | <h1 id="backup-restore-import-and-export">Backup, restore, import and export</h1> |
103 | <ul> | ||
104 | <li><a href="#backup-and-restore-the-datastore-file">Backup and restore the datastore file</a><a href=".html"></a></li> | ||
105 | <li><a href="#export-links-as">Export links as...</a><a href=".html"></a></li> | ||
106 | <li><a href="#import-links-from">Import links from...</a><a href=".html"></a></li> | ||
107 | <li><a href="#import-shaarli-links-to-firefox">Import Shaarli links to Firefox</a><a href=".html"></a></li> | ||
108 | </ul> | ||
109 | <hr /> | ||
105 | <h2 id="backup-and-restore-the-datastore-file">Backup and restore the datastore file</h2> | 110 | <h2 id="backup-and-restore-the-datastore-file">Backup and restore the datastore file</h2> |
106 | <p>Backup the file <code>data/datastore.php</code> (by FTP or SSH). Restore by putting the file back in place.</p> | 111 | <p>Backup the file <code>data/datastore.php</code> (by FTP or SSH). Restore by putting the file back in place.</p> |
107 | <p>Example command:</p> | 112 | <p>Example command:</p> |
108 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">rsync</span> -avzP my.server.com:/var/www/shaarli/data/datastore.php datastore-<span class="ot">$(</span><span class="kw">date</span> +%Y-%m-%d_%H%M<span class="ot">)</span>.php</code></pre></div> | 113 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="fu">rsync</span> -avzP my.server.com:/var/www/shaarli/data/datastore.php datastore-<span class="va">$(</span><span class="fu">date</span> +%Y-%m-%d_%H%M<span class="va">)</span>.php</code></pre></div> |
109 | <h2 id="export-links-as...">Export links as...</h2> | 114 | <h2 id="export-links-as...">Export links as...</h2> |
110 | <p>To export links as an HTML file, under <em>Tools > Export</em>, choose:</p> | 115 | <p>To export links as an HTML file, under <em>Tools > Export</em>, choose:</p> |
111 | <ul> | 116 | <ul> |
@@ -118,7 +123,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
118 | <li>This can be done using the <a href="https://github.com/nodiscc/shaarchiver">shaarchiver</a> tool.<a href=".html"></a></li> | 123 | <li>This can be done using the <a href="https://github.com/nodiscc/shaarchiver">shaarchiver</a> tool.<a href=".html"></a></li> |
119 | </ul> | 124 | </ul> |
120 | <p>Example command:</p> | 125 | <p>Example command:</p> |
121 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">./export-bookmarks.py</span> --url=https://my.server.com/shaarli --username=myusername --password=mysupersecretpassword --download-dir=./ --type=all</code></pre></div> | 126 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="ex">./export-bookmarks.py</span> --url=https://my.server.com/shaarli --username=myusername --password=mysupersecretpassword --download-dir=./ --type=all</code></pre></div> |
122 | <h2 id="import-links-from...">Import links from...</h2> | 127 | <h2 id="import-links-from...">Import links from...</h2> |
123 | <h3 id="diigo">Diigo</h3> | 128 | <h3 id="diigo">Diigo</h3> |
124 | <p>If you export your bookmark from Diigo, make sure you use the Delicious export, not the Netscape export. (Their Netscape export is broken, and they don't seem to be interested in fixing it.)</p> | 129 | <p>If you export your bookmark from Diigo, make sure you use the Delicious export, not the Netscape export. (Their Netscape export is broken, and they don't seem to be interested in fixing it.)</p> |
@@ -126,5 +131,20 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
126 | <p>See <a href="https://github.com/sebsauvage/Shaarli/issues/146">this issue</a> for import tweaks.<a href=".html"></a></p> | 131 | <p>See <a href="https://github.com/sebsauvage/Shaarli/issues/146">this issue</a> for import tweaks.<a href=".html"></a></p> |
127 | <h3 id="semanticscuttle">SemanticScuttle</h3> | 132 | <h3 id="semanticscuttle">SemanticScuttle</h3> |
128 | <p>To correctly import the tags from a <a href="http://semanticscuttle.sourceforge.net/">SemanticScuttle</a> HTML export, edit the HTML file before importing and replace all occurences of <code>tags=</code> (lowercase) to <code>TAGS=</code> (uppercase).<a href=".html"></a></p> | 133 | <p>To correctly import the tags from a <a href="http://semanticscuttle.sourceforge.net/">SemanticScuttle</a> HTML export, edit the HTML file before importing and replace all occurences of <code>tags=</code> (lowercase) to <code>TAGS=</code> (uppercase).<a href=".html"></a></p> |
134 | <h3 id="scuttle">Scuttle</h3> | ||
135 | <p>Shaarli cannot import data directly from <a href="https://github.com/scronide/scuttle">Scuttle</a>. However, you can use this third party tool: <a href="https://github.com/q2apro/scuttle-to-shaarli" class="uri">https://github.com/q2apro/scuttle-to-shaarli</a> to export the Scuttle database to the Netscape HTML format compatible with the Shaarli importer.<a href=".html"></a></p> | ||
136 | <h2 id="import-shaarli-links-to-firefox">Import Shaarli links to Firefox</h2> | ||
137 | <ul> | ||
138 | <li>Export your Shaarli links as described above.</li> | ||
139 | <li>For compatibility reasons, check <code>Prepend note permalinks with this Shaarli instance's URL (useful to import bookmarks in a web browser)</code></li> | ||
140 | <li>In Firefox, open the bookmark manager (not the sidebar! <code>Bookmarks menu > Show all bookmarks</code> or <code>Ctrl+Shift+B</code>)</li> | ||
141 | <li>Select <code>Import and Backup > Import bookmarks in HTML format</code></li> | ||
142 | </ul> | ||
143 | <p>Your bookmarks will be imported in Firefox, ready to use, with tags and descriptions retained. "Self" (notes) shaares will still point to the Shaarli instance you exported them from, but the note text can be viewed directly in the bookmark properties inside your browser. Depending on the number of bookmarks, the import can take some time.</p> | ||
144 | <p>You may be interested in these Firefox addons to manage links imported from Shaarli</p> | ||
145 | <ul> | ||
146 | <li><a href="https://addons.mozilla.org/en-US/firefox/addon/bookmark-deduplicator/">Bookmark Deduplicator</a> - provides an easy way to deduplicate your bookmarks<a href=".html"></a></li> | ||
147 | <li><a href="https://addons.mozilla.org/en-US/firefox/addon/tagsieve/">TagSieve</a> - browse your bookmarks by their tags<a href=".html"></a></li> | ||
148 | </ul> | ||
129 | </body> | 149 | </body> |
130 | </html> | 150 | </html> |
diff --git a/doc/Backup,-restore,-import-and-export.md b/doc/Backup,-restore,-import-and-export.md index cf6b9f48..9f5598ef 100644 --- a/doc/Backup,-restore,-import-and-export.md +++ b/doc/Backup,-restore,-import-and-export.md | |||
@@ -1,4 +1,12 @@ | |||
1 | #Backup, restore, import and export | 1 | #Backup, restore, import and export |
2 | * [Backup and restore the datastore file](#backup-and-restore-the-datastore-file)[](.html) | ||
3 | * [Export links as...](#export-links-as)[](.html) | ||
4 | * [Import links from...](#import-links-from)[](.html) | ||
5 | * [Import Shaarli links to Firefox](#import-shaarli-links-to-firefox)[](.html) | ||
6 | |||
7 | |||
8 | ---------------------- | ||
9 | |||
2 | ## Backup and restore the datastore file | 10 | ## Backup and restore the datastore file |
3 | 11 | ||
4 | Backup the file `data/datastore.php` (by FTP or SSH). Restore by putting the file back in place. | 12 | Backup the file `data/datastore.php` (by FTP or SSH). Restore by putting the file back in place. |
@@ -9,6 +17,7 @@ rsync -avzP my.server.com:/var/www/shaarli/data/datastore.php datastore-$(date + | |||
9 | ``` | 17 | ``` |
10 | 18 | ||
11 | ## Export links as... | 19 | ## Export links as... |
20 | |||
12 | To export links as an HTML file, under _Tools > Export_, choose: | 21 | To export links as an HTML file, under _Tools > Export_, choose: |
13 | - _Export all_ to export both public and private links | 22 | - _Export all_ to export both public and private links |
14 | - _Export public_ to export public links only | 23 | - _Export public_ to export public links only |
@@ -23,13 +32,35 @@ Example command: | |||
23 | ``` | 32 | ``` |
24 | 33 | ||
25 | ## Import links from... | 34 | ## Import links from... |
35 | |||
36 | |||
26 | ### Diigo | 37 | ### Diigo |
27 | 38 | ||
28 | If you export your bookmark from Diigo, make sure you use the Delicious export, not the Netscape export. (Their Netscape export is broken, and they don't seem to be interested in fixing it.) | 39 | If you export your bookmark from Diigo, make sure you use the Delicious export, not the Netscape export. (Their Netscape export is broken, and they don't seem to be interested in fixing it.) |
29 | 40 | ||
41 | |||
30 | ### Mister Wong | 42 | ### Mister Wong |
43 | |||
31 | See [this issue](https://github.com/sebsauvage/Shaarli/issues/146) for import tweaks.[](.html) | 44 | See [this issue](https://github.com/sebsauvage/Shaarli/issues/146) for import tweaks.[](.html) |
32 | 45 | ||
33 | ### SemanticScuttle | 46 | ### SemanticScuttle |
34 | 47 | ||
35 | To correctly import the tags from a [SemanticScuttle](http://semanticscuttle.sourceforge.net/) HTML export, edit the HTML file before importing and replace all occurences of `tags=` (lowercase) to `TAGS=` (uppercase).[](.html) | 48 | To correctly import the tags from a [SemanticScuttle](http://semanticscuttle.sourceforge.net/) HTML export, edit the HTML file before importing and replace all occurences of `tags=` (lowercase) to `TAGS=` (uppercase).[](.html) |
49 | |||
50 | ### Scuttle | ||
51 | |||
52 | Shaarli cannot import data directly from [Scuttle](https://github.com/scronide/scuttle). However, you can use this third party tool: https://github.com/q2apro/scuttle-to-shaarli to export the Scuttle database to the Netscape HTML format compatible with the Shaarli importer.[](.html) | ||
53 | |||
54 | ## Import Shaarli links to Firefox | ||
55 | |||
56 | * Export your Shaarli links as described above. | ||
57 | * For compatibility reasons, check `Prepend note permalinks with this Shaarli instance's URL (useful to import bookmarks in a web browser)` | ||
58 | * In Firefox, open the bookmark manager (not the sidebar! `Bookmarks menu > Show all bookmarks` or `Ctrl+Shift+B`) | ||
59 | * Select `Import and Backup > Import bookmarks in HTML format` | ||
60 | |||
61 | Your bookmarks will be imported in Firefox, ready to use, with tags and descriptions retained. "Self" (notes) shaares will still point to the Shaarli instance you exported them from, but the note text can be viewed directly in the bookmark properties inside your browser. Depending on the number of bookmarks, the import can take some time. | ||
62 | |||
63 | You may be interested in these Firefox addons to manage links imported from Shaarli | ||
64 | |||
65 | * [Bookmark Deduplicator](https://addons.mozilla.org/en-US/firefox/addon/bookmark-deduplicator/) - provides an easy way to deduplicate your bookmarks[](.html) | ||
66 | * [TagSieve](https://addons.mozilla.org/en-US/firefox/addon/tagsieve/) - browse your bookmarks by their tags[](.html) | ||
diff --git a/doc/Browsing-and-searching.html b/doc/Browsing-and-searching.html index 39806128..23001bcb 100644 --- a/doc/Browsing-and-searching.html +++ b/doc/Browsing-and-searching.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Coding-guidelines.html b/doc/Coding-guidelines.html index add69631..1a2a9351 100644 --- a/doc/Coding-guidelines.html +++ b/doc/Coding-guidelines.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Community-&-Related-software.html b/doc/Community-&-Related-software.html index 77b9793f..accbacdc 100644 --- a/doc/Community-&-Related-software.html +++ b/doc/Community-&-Related-software.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
@@ -84,8 +82,9 @@ | |||
84 | <li><a href="https://github.com/kalvn/shaarli-plugin-autosave">autosave</a> by <a href="https://github.com/kalvn">@kalvn</a>: Automatically saves data when editing a link to avoid any loss in case of crash or unexpected shutdown.<a href=".html"></a></li> | 82 | <li><a href="https://github.com/kalvn/shaarli-plugin-autosave">autosave</a> by <a href="https://github.com/kalvn">@kalvn</a>: Automatically saves data when editing a link to avoid any loss in case of crash or unexpected shutdown.<a href=".html"></a></li> |
85 | <li><a href="https://github.com/ArthurHoaro/code-coloration">Code Coloration</a> by <a href="https://github.com/ArthurHoaro">@ArthurHoaro</a>: client side code syntax highlighter.<a href=".html"></a></li> | 83 | <li><a href="https://github.com/ArthurHoaro/code-coloration">Code Coloration</a> by <a href="https://github.com/ArthurHoaro">@ArthurHoaro</a>: client side code syntax highlighter.<a href=".html"></a></li> |
86 | <li><a href="https://github.com/alexisju/social">social</a> by <a href="https://github.com/alexisju">@alexisju</a>: share links to social networks.<a href=".html"></a></li> | 84 | <li><a href="https://github.com/alexisju/social">social</a> by <a href="https://github.com/alexisju">@alexisju</a>: share links to social networks.<a href=".html"></a></li> |
87 | <li><a href="https://github.com/NerosTie/emojione">emojione</a> by <a href="https://github.com/NerosTie/emojione">@NerosTie</a>: Add colorful emojis to your Shaarli.<a href=".html"></a></li> | 85 | <li><a href="https://github.com/NerosTie/emojione">emojione</a> by <a href="https://github.com/NerosTie">@NerosTie</a>: Add colorful emojis to your Shaarli.<a href=".html"></a></li> |
88 | <li><a href="https://github.com/ArthurHoaro/launch-plugin">launch</a> - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli.<a href=".html"></a></li> | 86 | <li><a href="https://github.com/ArthurHoaro/launch-plugin">launch</a> - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli.<a href=".html"></a></li> |
87 | <li><a href="https://github.com/kalvn/shaarli-plugin-disqus">Disqus</a> by <a href="https://github.com/kalvn">@kalvn</a>: Adds Disqus comment system to your Shaarli.<a href=".html"></a></li> | ||
89 | </ul> | 88 | </ul> |
90 | <h3 id="themes">Themes</h3> | 89 | <h3 id="themes">Themes</h3> |
91 | <p>See <a href="Theming.html">Theming</a> for the list of community-contributed themes, and an installation guide.</p> | 90 | <p>See <a href="Theming.html">Theming</a> for the list of community-contributed themes, and an installation guide.</p> |
diff --git a/doc/Community-&-Related-software.md b/doc/Community-&-Related-software.md index 03a3dea9..3945d005 100644 --- a/doc/Community-&-Related-software.md +++ b/doc/Community-&-Related-software.md | |||
@@ -21,8 +21,9 @@ _TODO: contact repos owners to see if they'd like to standardize their work with | |||
21 | * [autosave](https://github.com/kalvn/shaarli-plugin-autosave) by [@kalvn](https://github.com/kalvn): Automatically saves data when editing a link to avoid any loss in case of crash or unexpected shutdown.[](.html) | 21 | * [autosave](https://github.com/kalvn/shaarli-plugin-autosave) by [@kalvn](https://github.com/kalvn): Automatically saves data when editing a link to avoid any loss in case of crash or unexpected shutdown.[](.html) |
22 | * [Code Coloration](https://github.com/ArthurHoaro/code-coloration) by [@ArthurHoaro](https://github.com/ArthurHoaro): client side code syntax highlighter.[](.html) | 22 | * [Code Coloration](https://github.com/ArthurHoaro/code-coloration) by [@ArthurHoaro](https://github.com/ArthurHoaro): client side code syntax highlighter.[](.html) |
23 | * [social](https://github.com/alexisju/social) by [@alexisju](https://github.com/alexisju): share links to social networks.[](.html) | 23 | * [social](https://github.com/alexisju/social) by [@alexisju](https://github.com/alexisju): share links to social networks.[](.html) |
24 | * [emojione](https://github.com/NerosTie/emojione) by [@NerosTie](https://github.com/NerosTie/emojione): Add colorful emojis to your Shaarli.[](.html) | 24 | * [emojione](https://github.com/NerosTie/emojione) by [@NerosTie](https://github.com/NerosTie): Add colorful emojis to your Shaarli.[](.html) |
25 | * [launch](https://github.com/ArthurHoaro/launch-plugin) - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli.[](.html) | 25 | * [launch](https://github.com/ArthurHoaro/launch-plugin) - Launch Plugin is a plugin designed to enhance and customize Launch Theme for Shaarli.[](.html) |
26 | * [Disqus](https://github.com/kalvn/shaarli-plugin-disqus) by [@kalvn](https://github.com/kalvn): Adds Disqus comment system to your Shaarli.[](.html) | ||
26 | 27 | ||
27 | 28 | ||
28 | ### Themes | 29 | ### Themes |
diff --git a/doc/Copy-an-existing-installation-over-SSH-and-serve-it-locally.html b/doc/Copy-an-existing-installation-over-SSH-and-serve-it-locally.html index edb1555f..9efb1ad6 100644 --- a/doc/Copy-an-existing-installation-over-SSH-and-serve-it-locally.html +++ b/doc/Copy-an-existing-installation-over-SSH-and-serve-it-locally.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -111,55 +109,55 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
111 | <span class="co">#Usage: ./local-shaarli.sh</span> | 109 | <span class="co">#Usage: ./local-shaarli.sh</span> |
112 | <span class="co">#Author: nodiscc (nodiscc@gmail.com)</span> | 110 | <span class="co">#Author: nodiscc (nodiscc@gmail.com)</span> |
113 | <span class="co">#License: MIT (http://opensource.org/licenses/MIT)</span> | 111 | <span class="co">#License: MIT (http://opensource.org/licenses/MIT)</span> |
114 | <span class="kw">set</span> <span class="kw">-o</span> errexit | 112 | <span class="kw">set</span> <span class="ex">-o</span> errexit |
115 | <span class="kw">set</span> <span class="kw">-o</span> nounset | 113 | <span class="kw">set</span> <span class="ex">-o</span> nounset |
116 | 114 | ||
117 | <span class="co">##### CONFIG #################</span> | 115 | <span class="co">##### CONFIG #################</span> |
118 | <span class="co">#The port used by php's local server</span> | 116 | <span class="co">#The port used by php's local server</span> |
119 | <span class="ot">php_local_port=</span>7431 | 117 | <span class="va">php_local_port=</span>7431 |
120 | 118 | ||
121 | <span class="co">#Name of the SSH server and path where Shaarli is installed</span> | 119 | <span class="co">#Name of the SSH server and path where Shaarli is installed</span> |
122 | <span class="co">#TODO: pass these as command-line arguments</span> | 120 | <span class="co">#TODO: pass these as command-line arguments</span> |
123 | <span class="ot">remotehost=</span><span class="st">"my.ssh.server"</span> | 121 | <span class="va">remotehost=</span><span class="st">"my.ssh.server"</span> |
124 | <span class="ot">remote_shaarli_dir=</span><span class="st">"/var/www/shaarli"</span> | 122 | <span class="va">remote_shaarli_dir=</span><span class="st">"/var/www/shaarli"</span> |
125 | 123 | ||
126 | 124 | ||
127 | <span class="co">###### FUNCTIONS #############</span> | 125 | <span class="co">###### FUNCTIONS #############</span> |
128 | <span class="fu">_main()</span> <span class="kw">{</span> | 126 | <span class="fu">_main()</span> <span class="kw">{</span> |
129 | <span class="kw">_CBSyncShaarli</span> | 127 | <span class="ex">_CBSyncShaarli</span> |
130 | <span class="kw">_CBServeShaarli</span> | 128 | <span class="ex">_CBServeShaarli</span> |
131 | <span class="kw">}</span> | 129 | <span class="kw">}</span> |
132 | 130 | ||
133 | <span class="fu">_CBSyncShaarli()</span> <span class="kw">{</span> | 131 | <span class="fu">_CBSyncShaarli()</span> <span class="kw">{</span> |
134 | <span class="ot">remote_temp_dir=$(</span><span class="kw">ssh</span> <span class="ot">$remotehost</span> mktemp -d<span class="ot">)</span> | 132 | <span class="va">remote_temp_dir=$(</span><span class="fu">ssh</span> <span class="va">$remotehost</span> mktemp -d<span class="va">)</span> |
135 | <span class="ot">remote_ssh_user=$(</span><span class="kw">ssh</span> <span class="ot">$remotehost</span> whoami<span class="ot">)</span> | 133 | <span class="va">remote_ssh_user=$(</span><span class="fu">ssh</span> <span class="va">$remotehost</span> whoami<span class="va">)</span> |
136 | <span class="kw">ssh</span> -t <span class="st">"</span><span class="ot">$remotehost</span><span class="st">"</span> sudo cp -r <span class="st">"</span><span class="ot">$remote_shaarli_dir</span><span class="st">"</span> <span class="st">"</span><span class="ot">$remote_temp_dir</span><span class="st">"</span> | 134 | <span class="fu">ssh</span> -t <span class="st">"</span><span class="va">$remotehost</span><span class="st">"</span> sudo cp -r <span class="st">"</span><span class="va">$remote_shaarli_dir</span><span class="st">"</span> <span class="st">"</span><span class="va">$remote_temp_dir</span><span class="st">"</span> |
137 | <span class="kw">ssh</span> -t <span class="st">"</span><span class="ot">$remotehost</span><span class="st">"</span> sudo chown -R <span class="st">"</span><span class="ot">$remote_ssh_user</span><span class="st">"</span>:<span class="st">"</span><span class="ot">$remote_ssh_user</span><span class="st">"</span> <span class="st">"</span><span class="ot">$remote_temp_dir</span><span class="st">"</span> | 135 | <span class="fu">ssh</span> -t <span class="st">"</span><span class="va">$remotehost</span><span class="st">"</span> sudo chown -R <span class="st">"</span><span class="va">$remote_ssh_user</span><span class="st">"</span>:<span class="st">"</span><span class="va">$remote_ssh_user</span><span class="st">"</span> <span class="st">"</span><span class="va">$remote_temp_dir</span><span class="st">"</span> |
138 | <span class="kw">scp</span> -rq <span class="st">"</span><span class="ot">$remotehost</span><span class="st">"</span>:<span class="st">"</span><span class="ot">$remote_temp_dir</span><span class="st">"</span> local-shaarli | 136 | <span class="fu">scp</span> -rq <span class="st">"</span><span class="va">$remotehost</span><span class="st">"</span>:<span class="st">"</span><span class="va">$remote_temp_dir</span><span class="st">"</span> local-shaarli |
139 | <span class="kw">ssh</span> <span class="st">"</span><span class="ot">$remotehost</span><span class="st">"</span> rm -r <span class="st">"</span><span class="ot">$remote_temp_dir</span><span class="st">"</span> | 137 | <span class="fu">ssh</span> <span class="st">"</span><span class="va">$remotehost</span><span class="st">"</span> rm -r <span class="st">"</span><span class="va">$remote_temp_dir</span><span class="st">"</span> |
140 | <span class="kw">}</span> | 138 | <span class="kw">}</span> |
141 | 139 | ||
142 | <span class="fu">_CBServeShaarli()</span> <span class="kw">{</span> | 140 | <span class="fu">_CBServeShaarli()</span> <span class="kw">{</span> |
143 | <span class="co">#TODO: allow serving a previously downloaded Shaarli</span> | 141 | <span class="co">#TODO: allow serving a previously downloaded Shaarli</span> |
144 | <span class="co">#TODO: ask before overwriting local copy, if it exists</span> | 142 | <span class="co">#TODO: ask before overwriting local copy, if it exists</span> |
145 | <span class="kw">cd</span> local-shaarli/ | 143 | <span class="bu">cd</span> local-shaarli/ |
146 | <span class="kw">php</span> -S localhost:<span class="ot">${php_local_port}</span> | 144 | <span class="ex">php</span> -S localhost:<span class="va">${php_local_port}</span> |
147 | <span class="kw">echo</span> <span class="st">"Please go to http://localhost:</span><span class="ot">${php_local_port}</span><span class="st">"</span> | 145 | <span class="bu">echo</span> <span class="st">"Please go to http://localhost:</span><span class="va">${php_local_port}</span><span class="st">"</span> |
148 | <span class="kw">}</span> | 146 | <span class="kw">}</span> |
149 | 147 | ||
150 | 148 | ||
151 | <span class="co">##### MAIN #################</span> | 149 | <span class="co">##### MAIN #################</span> |
152 | 150 | ||
153 | <span class="kw">_main</span></code></pre></div> | 151 | <span class="ex">_main</span></code></pre></div> |
154 | <p>This outputs:</p> | 152 | <p>This outputs:</p> |
155 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">./local-shaarli.sh</span> | 153 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">./local-shaarli.sh</span> |
156 | <span class="kw">PHP</span> 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014 | 154 | <span class="ex">PHP</span> 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014 |
157 | <span class="kw">Listening</span> on http://localhost:7431 | 155 | <span class="ex">Listening</span> on http://localhost:7431 |
158 | <span class="kw">Document</span> root is /home/user/local-shaarli/shaarli | 156 | <span class="ex">Document</span> root is /home/user/local-shaarli/shaarli |
159 | <span class="kw">Press</span> Ctrl-C to quit. | 157 | <span class="ex">Press</span> Ctrl-C to quit. |
160 | 158 | ||
161 | [<span class="kw">Mon</span> Sep 1 21:56:27 2014] ::1:57868 [200]: /[](.html) | 159 | [<span class="ex">Mon</span> Sep 1 21:56:27 2014] ::1:57868 [200]: /[](.html) |
162 | [<span class="kw">Mon</span> Sep 1 21:56:27 2014] ::1:57869 [200]: /index.html[](.html) | 160 | [<span class="ex">Mon</span> Sep 1 21:56:27 2014] ::1:57869 [200]: /index.html[](.html) |
163 | [<span class="kw">Mon</span> Sep 1 21:56:37 2014] ::1:57881 [200]: /...[](.html)</code></pre></div> | 161 | [<span class="ex">Mon</span> Sep 1 21:56:37 2014] ::1:57881 [200]: /...[](.html)</code></pre></div> |
164 | </body> | 162 | </body> |
165 | </html> | 163 | </html> |
diff --git a/doc/Create-and-serve-multiple-Shaarlis-(farm).html b/doc/Create-and-serve-multiple-Shaarlis-(farm).html index 933144e4..672e4bf3 100644 --- a/doc/Create-and-serve-multiple-Shaarlis-(farm).html +++ b/doc/Create-and-serve-multiple-Shaarlis-(farm).html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,33 +96,32 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="create-and-serve-multiple-shaarlis-farm">Create and serve multiple Shaarlis (farm)</h1> | 102 | <h1 id="create-and-serve-multiple-shaarlis-farm">Create and serve multiple Shaarlis (farm)</h1> |
105 | <p>Example bash script (creates multiple shaarli instances and generates an HTML index of them)</p> | 103 | <p>Example bash script (creates multiple shaarli instances and generates an HTML index of them)</p> |
106 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co">#!/bin/bash</span> | 104 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co">#!/bin/bash</span> |
107 | <span class="kw">set</span> <span class="kw">-o</span> errexit | 105 | <span class="kw">set</span> <span class="ex">-o</span> errexit |
108 | <span class="kw">set</span> <span class="kw">-o</span> nounset | 106 | <span class="kw">set</span> <span class="ex">-o</span> nounset |
109 | 107 | ||
110 | <span class="co">#config</span> | 108 | <span class="co">#config</span> |
111 | <span class="ot">shaarli_base_dir=</span><span class="st">'/var/www/shaarli'</span> | 109 | <span class="va">shaarli_base_dir=</span><span class="st">'/var/www/shaarli'</span> |
112 | <span class="ot">accounts=</span><span class="st">'bob john whatever username'</span> | 110 | <span class="va">accounts=</span><span class="st">'bob john whatever username'</span> |
113 | <span class="ot">shaarli_repo_url=</span><span class="st">'https://github.com/shaarli/Shaarli'</span> | 111 | <span class="va">shaarli_repo_url=</span><span class="st">'https://github.com/shaarli/Shaarli'</span> |
114 | <span class="ot">ref=</span><span class="st">"master"</span> | 112 | <span class="va">ref=</span><span class="st">"master"</span> |
115 | 113 | ||
116 | <span class="co">#clone multiple shaarli instances</span> | 114 | <span class="co">#clone multiple shaarli instances</span> |
117 | <span class="kw">if [</span> <span class="ot">!</span> <span class="ot">-d</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">"</span><span class="kw"> ]</span>; <span class="kw">then</span> <span class="kw">mkdir</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">"</span><span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(.html)</span> | 115 | <span class="kw">if</span><span class="bu"> [</span> <span class="ot">!</span> <span class="ot">-d</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">"</span><span class="bu"> ]</span>; <span class="kw">then</span> <span class="fu">mkdir</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">"</span><span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(</span><span class="ex">.html</span><span class="kw">)</span> |
118 | 116 | ||
119 | <span class="kw">for</span> <span class="kw">account</span> in <span class="ot">$accounts</span><span class="kw">;</span> <span class="kw">do</span> | 117 | <span class="kw">for</span> <span class="ex">account</span> in <span class="va">$accounts</span><span class="kw">;</span> <span class="kw">do</span> |
120 | <span class="kw">if [</span> <span class="ot">-d</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">/</span><span class="ot">$account</span><span class="st">"</span><span class="kw"> ]</span>;[]<span class="kw">(.html)</span> | 118 | <span class="kw">if</span><span class="bu"> [</span> <span class="ot">-d</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">/</span><span class="va">$account</span><span class="st">"</span><span class="bu"> ]</span>;[]<span class="kw">(</span><span class="ex">.html</span><span class="kw">)</span> |
121 | <span class="kw">then</span> <span class="kw">echo</span> <span class="st">"[info] account </span><span class="ot">$account</span><span class="st"> already exists, skipping"</span><span class="kw">;</span>[]<span class="kw">(.html)</span> | 119 | <span class="kw">then</span> <span class="bu">echo</span> <span class="st">"[info] account </span><span class="va">$account</span><span class="st"> already exists, skipping"</span><span class="kw">;</span>[]<span class="kw">(</span><span class="ex">.html</span><span class="kw">)</span> |
122 | <span class="kw">else</span> <span class="kw">echo</span> <span class="st">"[info] creating new account </span><span class="ot">$account</span><span class="st"> ..."</span><span class="kw">;</span> <span class="kw">git</span> clone --quiet <span class="st">"</span><span class="ot">$shaarli_repo_url</span><span class="st">"</span> -b <span class="st">"</span><span class="ot">$ref</span><span class="st">"</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">/</span><span class="ot">$account</span><span class="st">"</span><span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(.html)</span> | 120 | <span class="kw">else</span> <span class="bu">echo</span> <span class="st">"[info] creating new account </span><span class="va">$account</span><span class="st"> ..."</span><span class="kw">;</span> <span class="fu">git</span> clone --quiet <span class="st">"</span><span class="va">$shaarli_repo_url</span><span class="st">"</span> -b <span class="st">"</span><span class="va">$ref</span><span class="st">"</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">/</span><span class="va">$account</span><span class="st">"</span><span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(</span><span class="ex">.html</span><span class="kw">)</span> |
123 | <span class="kw">done</span> | 121 | <span class="kw">done</span> |
124 | 122 | ||
125 | <span class="co">#generate html index of shaarlis</span> | 123 | <span class="co">#generate html index of shaarlis</span> |
126 | <span class="ot">htmlhead=</span><span class="st">'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"></span> | 124 | <span class="va">htmlhead=</span><span class="st">'<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"></span> |
127 | <span class="st"><!-- Minimal html template thanks to http://www.sitepoint.com/a-minimal-html-document/ --></span> | 125 | <span class="st"><!-- Minimal html template thanks to http://www.sitepoint.com/a-minimal-html-document/ --></span> |
128 | <span class="st"><html lang="en"></span> | 126 | <span class="st"><html lang="en"></span> |
129 | <span class="st"> <head></span> | 127 | <span class="st"> <head></span> |
@@ -136,9 +134,9 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
136 | <span class="st"> <h1>My Shaarli farm</h1></span> | 134 | <span class="st"> <h1>My Shaarli farm</h1></span> |
137 | <span class="st"> <ul style="list-style-type: none;">'</span> | 135 | <span class="st"> <ul style="list-style-type: none;">'</span> |
138 | 136 | ||
139 | <span class="ot">accountlinks=</span><span class="st">''</span> | 137 | <span class="va">accountlinks=</span><span class="st">''</span> |
140 | 138 | ||
141 | <span class="ot">htmlfooter=</span><span class="st">'</span> | 139 | <span class="va">htmlfooter=</span><span class="st">'</span> |
142 | <span class="st"> </ul></span> | 140 | <span class="st"> </ul></span> |
143 | <span class="st"> </div></span> | 141 | <span class="st"> </div></span> |
144 | <span class="st"> </body></span> | 142 | <span class="st"> </body></span> |
@@ -146,14 +144,14 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
146 | 144 | ||
147 | 145 | ||
148 | 146 | ||
149 | <span class="kw">for</span> <span class="kw">account</span> in <span class="ot">$accounts</span><span class="kw">;</span> <span class="kw">do</span> <span class="ot">accountlinks=</span><span class="st">"</span><span class="ot">$accountlinks</span><span class="st">\n<li><a href=</span><span class="dt">\"</span><span class="ot">$account</span><span class="dt">\"</span><span class="st">></span><span class="ot">$account</span><span class="st"></a></li>"</span>; <span class="kw">done</span> | 147 | <span class="kw">for</span> <span class="ex">account</span> in <span class="va">$accounts</span><span class="kw">;</span> <span class="kw">do</span> <span class="va">accountlinks=</span><span class="st">"</span><span class="va">$accountlinks</span><span class="st">\n<li><a href=</span><span class="dt">\"</span><span class="va">$account</span><span class="dt">\"</span><span class="st">></span><span class="va">$account</span><span class="st"></a></li>"</span>; <span class="kw">done</span> |
150 | <span class="kw">if [</span> <span class="ot">-d</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html"</span><span class="kw"> ]</span>; <span class="kw">then</span> <span class="kw">echo</span> <span class="st">"[removing old index.html]"</span><span class="kw">;</span> <span class="kw">rm</span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html"</span> ]<span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(.html)</span> | 148 | <span class="kw">if</span><span class="bu"> [</span> <span class="ot">-d</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html"</span><span class="bu"> ]</span>; <span class="kw">then</span> <span class="bu">echo</span> <span class="st">"[removing old index.html]"</span><span class="kw">;</span> <span class="fu">rm</span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html"</span> ]<span class="kw">;</span> <span class="kw">fi</span>[]<span class="kw">(</span><span class="ex">.html</span><span class="kw">)</span> |
151 | <span class="kw">echo</span> <span class="st">"[info] generating new index of shaarlis"</span>[](.html) | 149 | <span class="bu">echo</span> <span class="st">"[info] generating new index of shaarlis"</span>[](.html) |
152 | <span class="kw">echo</span> -e <span class="st">"</span><span class="ot">$htmlhead</span><span class="st"> </span><span class="ot">$accountlinks</span><span class="st"> </span><span class="ot">$htmlfooter</span><span class="st">"</span> <span class="kw">></span> <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html"</span> | 150 | <span class="bu">echo</span> -e <span class="st">"</span><span class="va">$htmlhead</span><span class="st"> </span><span class="va">$accountlinks</span><span class="st"> </span><span class="va">$htmlfooter</span><span class="st">"</span> <span class="op">></span> <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html"</span> |
153 | <span class="kw">echo</span> <span class="st">'[info] done.'</span>[](.html) | 151 | <span class="bu">echo</span> <span class="st">'[info] done.'</span>[](.html) |
154 | <span class="kw">echo</span> <span class="st">"[info] list of accounts: </span><span class="ot">$accounts</span><span class="st">"</span>[](.html) | 152 | <span class="bu">echo</span> <span class="st">"[info] list of accounts: </span><span class="va">$accounts</span><span class="st">"</span>[](.html) |
155 | <span class="kw">echo</span> <span class="st">"[info] contents of </span><span class="ot">$shaarli_base_dir</span><span class="st">:"</span>[](.html) | 153 | <span class="bu">echo</span> <span class="st">"[info] contents of </span><span class="va">$shaarli_base_dir</span><span class="st">:"</span>[](.html) |
156 | <span class="kw">tree</span> -a -L 1 <span class="st">"</span><span class="ot">$shaarli_base_dir</span><span class="st">"</span></code></pre></div> | 154 | <span class="ex">tree</span> -a -L 1 <span class="st">"</span><span class="va">$shaarli_base_dir</span><span class="st">"</span></code></pre></div> |
157 | <p>This script just serves as an example. More precise or complex (applying custom configuration, etc) automation is possible using configuration management software like <a href="https://www.ansible.com/">Ansible</a><a href=".html"></a></p> | 155 | <p>This script just serves as an example. More precise or complex (applying custom configuration, etc) automation is possible using configuration management software like <a href="https://www.ansible.com/">Ansible</a><a href=".html"></a></p> |
158 | </body> | 156 | </body> |
159 | </html> | 157 | </html> |
diff --git a/doc/Datastore-hacks.html b/doc/Datastore-hacks.html index 88639402..15da09d4 100644 --- a/doc/Datastore-hacks.html +++ b/doc/Datastore-hacks.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
diff --git a/doc/Development.html b/doc/Development.html index 2eacff94..c5776413 100644 --- a/doc/Development.html +++ b/doc/Development.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Directory-structure.html b/doc/Directory-structure.html index 003d4d94..404ff7c8 100644 --- a/doc/Directory-structure.html +++ b/doc/Directory-structure.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,39 +96,38 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="directory-structure">Directory structure</h1> | 102 | <h1 id="directory-structure">Directory structure</h1> |
105 | <p>Here is the directory structure of Shaarli and the purpose of the different files:</p> | 103 | <p>Here is the directory structure of Shaarli and the purpose of the different files:</p> |
106 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"> <span class="kw">index.php</span> <span class="co"># Main program</span> | 104 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"> <span class="ex">index.php</span> <span class="co"># Main program</span> |
107 | <span class="kw">application/</span> <span class="co"># Shaarli classes</span> | 105 | <span class="ex">application/</span> <span class="co"># Shaarli classes</span> |
108 | ├── <span class="kw">LinkDB.php</span> | 106 | ├── <span class="ex">LinkDB.php</span> |
109 | └── <span class="kw">Utils.php</span> | 107 | └── <span class="ex">Utils.php</span> |
110 | <span class="kw">tests/</span> <span class="co"># Shaarli unitary & functional tests</span> | 108 | <span class="ex">tests/</span> <span class="co"># Shaarli unitary & functional tests</span> |
111 | ├── <span class="kw">LinkDBTest.php</span> | 109 | ├── <span class="ex">LinkDBTest.php</span> |
112 | ├── <span class="kw">utils</span> <span class="co"># utilities to ease testing</span> | 110 | ├── <span class="ex">utils</span> <span class="co"># utilities to ease testing</span> |
113 | │ └── <span class="kw">ReferenceLinkDB.php</span> | 111 | │ └── <span class="ex">ReferenceLinkDB.php</span> |
114 | └── <span class="kw">UtilsTest.php</span> | 112 | └── <span class="ex">UtilsTest.php</span> |
115 | <span class="kw">COPYING</span> <span class="co"># Shaarli license</span> | 113 | <span class="ex">COPYING</span> <span class="co"># Shaarli license</span> |
116 | <span class="kw">inc/</span> <span class="co"># static assets and 3rd party libraries</span> | 114 | <span class="ex">inc/</span> <span class="co"># static assets and 3rd party libraries</span> |
117 | ├── <span class="kw">awesomplete.*</span> <span class="co"># tags autocompletion library</span> | 115 | ├── <span class="ex">awesomplete.*</span> <span class="co"># tags autocompletion library</span> |
118 | ├── <span class="kw">blazy.*</span> <span class="co"># picture wall lazy image loading library</span> | 116 | ├── <span class="ex">blazy.*</span> <span class="co"># picture wall lazy image loading library</span> |
119 | ├── <span class="kw">shaarli.css</span>, reset.css <span class="co"># Shaarli stylesheet.</span> | 117 | ├── <span class="ex">shaarli.css</span>, reset.css <span class="co"># Shaarli stylesheet.</span> |
120 | ├── <span class="kw">qr.*</span> <span class="co"># qr code generation library</span> | 118 | ├── <span class="ex">qr.*</span> <span class="co"># qr code generation library</span> |
121 | └──<span class="kw">rain.tpl.class.php</span> <span class="co"># RainTPL templating library</span> | 119 | └──<span class="ex">rain.tpl.class.php</span> <span class="co"># RainTPL templating library</span> |
122 | <span class="kw">tpl/</span> <span class="co"># RainTPL templates for Shaarli. They are used to build the pages.</span> | 120 | <span class="ex">tpl/</span> <span class="co"># RainTPL templates for Shaarli. They are used to build the pages.</span> |
123 | <span class="kw">images/</span> <span class="co"># Images and icons used in Shaarli</span> | 121 | <span class="ex">images/</span> <span class="co"># Images and icons used in Shaarli</span> |
124 | <span class="kw">data/</span> <span class="co"># data storage: bookmark database, configuration, logs, banlist…</span> | 122 | <span class="ex">data/</span> <span class="co"># data storage: bookmark database, configuration, logs, banlist…</span> |
125 | ├── <span class="kw">config.php</span> <span class="co"># Shaarli configuration (login, password, timezone, title…)</span> | 123 | ├── <span class="ex">config.php</span> <span class="co"># Shaarli configuration (login, password, timezone, title…)</span> |
126 | ├── <span class="kw">datastore.php</span> <span class="co"># Your link database (compressed).</span> | 124 | ├── <span class="ex">datastore.php</span> <span class="co"># Your link database (compressed).</span> |
127 | ├── <span class="kw">ipban.php</span> <span class="co"># IP address ban system data</span> | 125 | ├── <span class="ex">ipban.php</span> <span class="co"># IP address ban system data</span> |
128 | ├── <span class="kw">lastupdatecheck.txt</span> <span class="co"># Update check timestamp file</span> | 126 | ├── <span class="ex">lastupdatecheck.txt</span> <span class="co"># Update check timestamp file</span> |
129 | └──<span class="kw">log.txt</span> <span class="co"># login/IPban log.</span> | 127 | └──<span class="ex">log.txt</span> <span class="co"># login/IPban log.</span> |
130 | <span class="kw">cache/</span> <span class="co"># thumbnails cache</span> | 128 | <span class="ex">cache/</span> <span class="co"># thumbnails cache</span> |
131 | <span class="co"># This directory is automatically created. You can erase it anytime you want.</span> | 129 | <span class="co"># This directory is automatically created. You can erase it anytime you want.</span> |
132 | <span class="kw">tmp/</span> <span class="co"># Temporary directory for compiled RainTPL templates.</span> | 130 | <span class="ex">tmp/</span> <span class="co"># Temporary directory for compiled RainTPL templates.</span> |
133 | <span class="co"># This directory is automatically created. You can erase it anytime you want.</span></code></pre></div> | 131 | <span class="co"># This directory is automatically created. You can erase it anytime you want.</span></code></pre></div> |
134 | </body> | 132 | </body> |
135 | </html> | 133 | </html> |
diff --git a/doc/Docker.html b/doc/Docker.html index a443d100..e89c90fb 100644 --- a/doc/Docker.html +++ b/doc/Docker.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -112,18 +110,18 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
112 | <p>Install <a href="https://www.docker.com/">Docker</a>, by following the instructions relevant<a href=".html"></a><br /> | 110 | <p>Install <a href="https://www.docker.com/">Docker</a>, by following the instructions relevant<a href=".html"></a><br /> |
113 | to your OS / distribution, and start the service.</p> | 111 | to your OS / distribution, and start the service.</p> |
114 | <h4 id="search-an-image-on-dockerhub">Search an image on <a href="https://hub.docker.com/">DockerHub</a><a href=".html"></a></h4> | 112 | <h4 id="search-an-image-on-dockerhub">Search an image on <a href="https://hub.docker.com/">DockerHub</a><a href=".html"></a></h4> |
115 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">docker</span> search debian | 113 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">docker</span> search debian |
116 | 114 | ||
117 | <span class="kw">NAME</span> DESCRIPTION STARS OFFICIAL AUTOMATED | 115 | <span class="ex">NAME</span> DESCRIPTION STARS OFFICIAL AUTOMATED |
118 | <span class="kw">ubuntu</span> Ubuntu is a Debian-based Linux operating s... 2065 [OK][](.html) | 116 | <span class="ex">ubuntu</span> Ubuntu is a Debian-based Linux operating s... 2065 [OK][](.html) |
119 | <span class="kw">debian</span> Debian is a Linux distribution that<span class="st">'s comp... 603 [OK][](.html)</span> | 117 | <span class="ex">debian</span> Debian is a Linux distribution that<span class="st">'s comp... 603 [OK][](.html)</span> |
120 | <span class="st">google/debian 47 [OK][](.html)</span></code></pre></div> | 118 | <span class="st">google/debian 47 [OK][](.html)</span></code></pre></div> |
121 | <h4 id="show-available-tags-for-a-repository">Show available tags for a repository</h4> | 119 | <h4 id="show-available-tags-for-a-repository">Show available tags for a repository</h4> |
122 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">curl</span> https://index.docker.io/v1/repositories/debian/tags <span class="kw">|</span> <span class="kw">python</span> -m json.tool | 120 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">curl</span> https://index.docker.io/v1/repositories/debian/tags <span class="kw">|</span> <span class="ex">python</span> -m json.tool |
123 | 121 | ||
124 | <span class="kw">%</span> Total % Received % Xferd Average Speed Time Time Time Current | 122 | <span class="ex">%</span> Total % Received % Xferd Average Speed Time Time Time Current |
125 | <span class="kw">Dload</span> Upload Total Spent Left Speed | 123 | <span class="ex">Dload</span> Upload Total Spent Left Speed |
126 | <span class="kw">100</span> 1283 0 1283 0 0 433 0 --:--:-- 0:00:02 --:--:-- 433</code></pre></div> | 124 | <span class="ex">100</span> 1283 0 1283 0 0 433 0 --:--:-- 0:00:02 --:--:-- 433</code></pre></div> |
127 | <p>Sample output:</p> | 125 | <p>Sample output:</p> |
128 | <div class="sourceCode"><pre class="sourceCode json"><code class="sourceCode json"><span class="ot">[[]</span><span class="er">(.html)</span> | 126 | <div class="sourceCode"><pre class="sourceCode json"><code class="sourceCode json"><span class="ot">[[]</span><span class="er">(.html)</span> |
129 | <span class="fu">{</span> | 127 | <span class="fu">{</span> |
@@ -148,14 +146,14 @@ to your OS / distribution, and start the service.</p> | |||
148 | <span class="fu">}</span> | 146 | <span class="fu">}</span> |
149 | <span class="ot">]</span></code></pre></div> | 147 | <span class="ot">]</span></code></pre></div> |
150 | <h4 id="pull-an-image-from-dockerhub">Pull an image from DockerHub</h4> | 148 | <h4 id="pull-an-image-from-dockerhub">Pull an image from DockerHub</h4> |
151 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">docker</span> pull repository[:tag][](.html) | 149 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">docker</span> pull repository[:tag][](.html) |
152 | 150 | ||
153 | $ <span class="kw">docker</span> pull debian:wheezy | 151 | $ <span class="ex">docker</span> pull debian:wheezy |
154 | <span class="kw">wheezy</span>: Pulling from debian | 152 | <span class="ex">wheezy</span>: Pulling from debian |
155 | <span class="kw">4c8cbfd2973e</span>: Pull complete | 153 | <span class="ex">4c8cbfd2973e</span>: Pull complete |
156 | <span class="kw">60c52dbe9d91</span>: Pull complete | 154 | <span class="ex">60c52dbe9d91</span>: Pull complete |
157 | <span class="kw">Digest</span>: sha256:c584131da2ac1948aa3e66468a4424b6aea2f33acba7cec0b631bdb56254c4fe | 155 | <span class="ex">Digest</span>: sha256:c584131da2ac1948aa3e66468a4424b6aea2f33acba7cec0b631bdb56254c4fe |
158 | <span class="kw">Status</span>: Downloaded newer image for debian:wheezy</code></pre></div> | 156 | <span class="ex">Status</span>: Downloaded newer image for debian:wheezy</code></pre></div> |
159 | <h2 id="get-and-run-a-shaarli-image">Get and run a Shaarli image</h2> | 157 | <h2 id="get-and-run-a-shaarli-image">Get and run a Shaarli image</h2> |
160 | <h3 id="dockerhub-repository">DockerHub repository</h3> | 158 | <h3 id="dockerhub-repository">DockerHub repository</h3> |
161 | <p>The images can be found in the <a href="https://hub.docker.com/r/shaarli/shaarli/"><code>shaarli/shaarli</code></a><a href=".html"></a><br /> | 159 | <p>The images can be found in the <a href="https://hub.docker.com/r/shaarli/shaarli/"><code>shaarli/shaarli</code></a><a href=".html"></a><br /> |
@@ -173,53 +171,53 @@ repository.</p> | |||
173 | <li><a href="http://nginx.org/">Nginx</a><a href=".html"></a></li> | 171 | <li><a href="http://nginx.org/">Nginx</a><a href=".html"></a></li> |
174 | </ul> | 172 | </ul> |
175 | <h3 id="download-from-dockerhub">Download from DockerHub</h3> | 173 | <h3 id="download-from-dockerhub">Download from DockerHub</h3> |
176 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">docker</span> pull shaarli/shaarli | 174 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">docker</span> pull shaarli/shaarli |
177 | <span class="kw">latest</span>: Pulling from shaarli/shaarli | 175 | <span class="ex">latest</span>: Pulling from shaarli/shaarli |
178 | <span class="kw">32716d9fcddb</span>: Pull complete | 176 | <span class="ex">32716d9fcddb</span>: Pull complete |
179 | <span class="kw">84899d045435</span>: Pull complete | 177 | <span class="ex">84899d045435</span>: Pull complete |
180 | <span class="kw">4b6ad7444763</span>: Pull complete | 178 | <span class="ex">4b6ad7444763</span>: Pull complete |
181 | <span class="kw">e0345ef7a3e0</span>: Pull complete | 179 | <span class="ex">e0345ef7a3e0</span>: Pull complete |
182 | <span class="kw">5c1dd344094f</span>: Pull complete | 180 | <span class="ex">5c1dd344094f</span>: Pull complete |
183 | <span class="kw">6422305a200b</span>: Pull complete | 181 | <span class="ex">6422305a200b</span>: Pull complete |
184 | <span class="kw">7d63f861dbef</span>: Pull complete | 182 | <span class="ex">7d63f861dbef</span>: Pull complete |
185 | <span class="kw">3eb97210645c</span>: Pull complete | 183 | <span class="ex">3eb97210645c</span>: Pull complete |
186 | <span class="kw">869319d746ff</span>: Already exists | 184 | <span class="ex">869319d746ff</span>: Already exists |
187 | <span class="kw">869319d746ff</span>: Pulling fs layer | 185 | <span class="ex">869319d746ff</span>: Pulling fs layer |
188 | <span class="kw">902b87aaaec9</span>: Already exists | 186 | <span class="ex">902b87aaaec9</span>: Already exists |
189 | <span class="kw">Digest</span>: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98 | 187 | <span class="ex">Digest</span>: sha256:f836b4627b958b3f83f59c332f22f02fcd495ace3056f2be2c4912bd8704cc98 |
190 | <span class="kw">Status</span>: Downloaded newer image for shaarli/shaarli:latest</code></pre></div> | 188 | <span class="ex">Status</span>: Downloaded newer image for shaarli/shaarli:latest</code></pre></div> |
191 | <h3 id="create-and-start-a-new-container-from-the-image">Create and start a new container from the image</h3> | 189 | <h3 id="create-and-start-a-new-container-from-the-image">Create and start a new container from the image</h3> |
192 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># map the host's :8000 port to the container's :80 port</span> | 190 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># map the host's :8000 port to the container's :80 port</span> |
193 | $ <span class="kw">docker</span> create -p 8000:80 shaarli/shaarli | 191 | $ <span class="ex">docker</span> create -p 8000:80 shaarli/shaarli |
194 | <span class="kw">d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101</span> | 192 | <span class="ex">d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101</span> |
195 | 193 | ||
196 | <span class="co"># launch the container in the background</span> | 194 | <span class="co"># launch the container in the background</span> |
197 | $ <span class="kw">docker</span> start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101 | 195 | $ <span class="ex">docker</span> start d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101 |
198 | <span class="kw">d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101</span> | 196 | <span class="ex">d40b7af693d678958adedfb88f87d6ea0237186c23de5c4102a55a8fcb499101</span> |
199 | 197 | ||
200 | <span class="co"># list active containers</span> | 198 | <span class="co"># list active containers</span> |
201 | $ <span class="kw">docker</span> ps | 199 | $ <span class="ex">docker</span> ps |
202 | <span class="kw">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES | 200 | <span class="ex">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
203 | <span class="kw">d40b7af693d6</span> shaarli/shaarli /usr/bin/supervisor 15 seconds ago Up 4 seconds 0.0.0.0:8000-<span class="kw">></span>80/tcp backstabbing_galileo</code></pre></div> | 201 | <span class="ex">d40b7af693d6</span> shaarli/shaarli /usr/bin/supervisor 15 seconds ago Up 4 seconds 0.0.0.0:8000-<span class="op">></span>80/tcp backstabbing_galileo</code></pre></div> |
204 | <h3 id="stop-and-destroy-a-container">Stop and destroy a container</h3> | 202 | <h3 id="stop-and-destroy-a-container">Stop and destroy a container</h3> |
205 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">docker</span> stop backstabbing_galileo <span class="co"># those docker guys are really rude to physicists!</span> | 203 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">docker</span> stop backstabbing_galileo <span class="co"># those docker guys are really rude to physicists!</span> |
206 | <span class="kw">backstabbing_galileo</span> | 204 | <span class="ex">backstabbing_galileo</span> |
207 | 205 | ||
208 | <span class="co"># check the container is stopped</span> | 206 | <span class="co"># check the container is stopped</span> |
209 | $ <span class="kw">docker</span> ps | 207 | $ <span class="ex">docker</span> ps |
210 | <span class="kw">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES | 208 | <span class="ex">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
211 | 209 | ||
212 | <span class="co"># list ALL containers</span> | 210 | <span class="co"># list ALL containers</span> |
213 | $ <span class="kw">docker</span> ps -a | 211 | $ <span class="ex">docker</span> ps -a |
214 | <span class="kw">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES | 212 | <span class="ex">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES |
215 | <span class="kw">d40b7af693d6</span> shaarli/shaarli /usr/bin/supervisor 5 minutes ago Exited (0) <span class="kw">48</span> seconds ago backstabbing_galileo | 213 | <span class="ex">d40b7af693d6</span> shaarli/shaarli /usr/bin/supervisor 5 minutes ago Exited (0) <span class="ex">48</span> seconds ago backstabbing_galileo |
216 | 214 | ||
217 | <span class="co"># destroy the container</span> | 215 | <span class="co"># destroy the container</span> |
218 | $ <span class="kw">docker</span> rm backstabbing_galileo <span class="co"># let's put an end to these barbarian practices</span> | 216 | $ <span class="ex">docker</span> rm backstabbing_galileo <span class="co"># let's put an end to these barbarian practices</span> |
219 | <span class="kw">backstabbing_galileo</span> | 217 | <span class="ex">backstabbing_galileo</span> |
220 | 218 | ||
221 | $ <span class="kw">docker</span> ps -a | 219 | $ <span class="ex">docker</span> ps -a |
222 | <span class="kw">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES</code></pre></div> | 220 | <span class="ex">CONTAINER</span> ID IMAGE COMMAND CREATED STATUS PORTS NAMES</code></pre></div> |
223 | <h2 id="resources">Resources</h2> | 221 | <h2 id="resources">Resources</h2> |
224 | <h3 id="docker-1">Docker</h3> | 222 | <h3 id="docker-1">Docker</h3> |
225 | <ul> | 223 | <ul> |
diff --git a/doc/Download-CSS-styles-from-an-OPML-list.html b/doc/Download-CSS-styles-from-an-OPML-list.html index 22771502..a4f68ac6 100644 --- a/doc/Download-CSS-styles-from-an-OPML-list.html +++ b/doc/Download-CSS-styles-from-an-OPML-list.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -209,8 +207,8 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
209 | 207 | ||
210 | <span class="co">/**</span> | 208 | <span class="co">/**</span> |
211 | <span class="co"> * Reading directory list, courtesy of http://www.laughing-buddha.net/php/dirlist/</span> | 209 | <span class="co"> * Reading directory list, courtesy of http://www.laughing-buddha.net/php/dirlist/</span> |
212 | <span class="co"> * </span><span class="kw">@param</span><span class="co"> </span><span class="kw">directory</span><span class="co"> the directory we want to list files of</span> | 210 | <span class="co"> * </span><span class="an">@param</span><span class="co"> </span><span class="cv">directory</span><span class="co"> the directory we want to list files of</span> |
213 | <span class="co"> * </span><span class="kw">@return</span><span class="co"> a simple array containing the list of absolute file paths. Notice that current file (".") and parent one("..")</span> | 211 | <span class="co"> * </span><span class="an">@return</span><span class="co"> a simple array containing the list of absolute file paths. Notice that current file (".") and parent one("..")</span> |
214 | <span class="co"> * are not listed here</span> | 212 | <span class="co"> * are not listed here</span> |
215 | <span class="co"> */</span> | 213 | <span class="co"> */</span> |
216 | <span class="kw">function</span> getDirectoryList <span class="ot">(</span><span class="kw">$directory</span><span class="ot">)</span> { | 214 | <span class="kw">function</span> getDirectoryList <span class="ot">(</span><span class="kw">$directory</span><span class="ot">)</span> { |
diff --git a/doc/Download.html b/doc/Download-and-Installation.html index 9f9f5117..17c7b69e 100644 --- a/doc/Download.html +++ b/doc/Download-and-Installation.html | |||
@@ -4,7 +4,7 @@ | |||
4 | <meta charset="utf-8"> | 4 | <meta charset="utf-8"> |
5 | <meta name="generator" content="pandoc"> | 5 | <meta name="generator" content="pandoc"> |
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> |
7 | <title>Shaarli – Download</title> | 7 | <title>Shaarli – Download and Installation</title> |
8 | <style type="text/css">code{white-space: pre;}</style> | 8 | <style type="text/css">code{white-space: pre;}</style> |
9 | <style type="text/css"> | 9 | <style type="text/css"> |
10 | div.sourceCode { overflow-x: auto; } | 10 | div.sourceCode { overflow-x: auto; } |
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,27 +96,70 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="download">Download</h1> | 102 | <h1 id="download-and-installation">Download and Installation</h1> |
105 | <h2 id="get-shaarli">Get Shaarli!</h2> | 103 | <h1 id="get-shaarli">Get Shaarli!</h1> |
106 | <h3 id="latest-stable-revision">Latest stable revision</h3> | 104 | <p>To install Shaarli, simply place the files in a directory under your webserver's Document Root (or directly at the document root). Make sure your <a href="Server-requirements">server</a> is properly <a href="Server-configuration">configured</a>.<a href=".html"></a></p> |
107 | <p>This revision has been <a href="https://github.com/shaarli/Shaarli/releases">released</a> and tested.<a href=".html"></a></p> | 105 | <p>Several releases are available:</p> |
108 | <h4 id="clone-with-git-recommended">Clone with Git (recommended)</h4> | 106 | <hr /> |
109 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">git</span> clone https://github.com/shaarli/Shaarli.git -b stable shaarli</code></pre></div> | 107 | <h2 id="latest-release-recommended">Latest release (recommended)</h2> |
110 | <h4 id="download-as-an-archive">Download as an archive</h4> | 108 | <p>Get the latest released version from the <a href="https://github.com/shaarli/Shaarli/releases">releases</a> page.<a href=".html"></a></p> |
111 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">wget</span> https://github.com/shaarli/Shaarli/archive/stable.zip | 109 | <p>The current latest released version is <code>v0.7.0</code>.</p> |
112 | $ <span class="kw">unzip</span> stable.zip | 110 | <h3 id="download-as-an-archive">Download as an archive</h3> |
113 | $ <span class="kw">mv</span> Shaarli-stable shaarli</code></pre></div> | 111 | <p>As a .zip archive:</p> |
114 | <p>Tarballs are also available:</p> | 112 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">wget</span> https://github.com/shaarli/Shaarli/archive/v0.7.0.zip |
115 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">wget</span> https://github.com/shaarli/Shaarli/archive/stable.tar.gz | 113 | $ <span class="fu">unzip</span> Shaarli-v0.7.0.zip |
116 | $ <span class="kw">tar</span> xvf stable.tar.gz | 114 | $ <span class="fu">mv</span> Shaarli-v0.7.0 /path/to/shaarli/</code></pre></div> |
117 | $ <span class="kw">mv</span> Shaarli-stable shaarli</code></pre></div> | 115 | <table style="width:46%;"> |
118 | <h3 id="development-mainline">Development (mainline)</h3> | 116 | <colgroup> |
117 | <col style="width: 8%" /> | ||
118 | <col style="width: 37%" /> | ||
119 | </colgroup> | ||
120 | <thead> | ||
121 | <tr class="header"> | ||
122 | <th>!</th> | ||
123 | <th>In most cases, download Shaarli from the <a href="https://github.com/shaarli/Shaarli/releases">releases</a> page. Cloning using <code>git</code> or downloading Github branches as zip files requires additional steps (see below).</th> | ||
124 | </tr> | ||
125 | </thead> | ||
126 | <tbody> | ||
127 | </tbody> | ||
128 | </table> | ||
129 | <hr /> | ||
130 | <h2 id="stable-version">Stable version</h2> | ||
131 | <p>The stable version has been experienced by Shaarli users, and will receive security updates.</p> | ||
132 | <h3 id="download-as-an-archive-1">Download as an archive</h3> | ||
133 | <p>As a .zip archive:</p> | ||
134 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">wget</span> https://github.com/shaarli/Shaarli/archive/stable.zip | ||
135 | $ <span class="fu">unzip</span> stable.zip | ||
136 | $ <span class="fu">mv</span> Shaarli-stable /path/to/shaarli/</code></pre></div> | ||
137 | <p>As a .tar.gz archive :</p> | ||
138 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">wget</span> https://github.com/shaarli/Shaarli/archive/stable.tar.gz | ||
139 | $ <span class="fu">tar</span> xvf stable.tar.gz | ||
140 | $ <span class="fu">mv</span> Shaarli-stable /path/to/shaarli/</code></pre></div> | ||
141 | <h3 id="clone-with-git">Clone with Git</h3> | ||
142 | <p><a href="https://getcomposer.org/">Composer</a> is required to build a functional Shaarli installation when pulling from git.<a href=".html"></a></p> | ||
143 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">git</span> clone https://github.com/shaarli/Shaarli.git -b stable /path/to/shaarli/ | ||
144 | <span class="co"># install/update third-party dependencies</span> | ||
145 | $ <span class="bu">cd</span> /path/to/shaarli/ | ||
146 | $ <span class="ex">composer</span> update --no-dev</code></pre></div> | ||
147 | <hr /> | ||
148 | <h2 id="development-version-mainline">Development version (mainline)</h2> | ||
119 | <p><em>Use at your own risk!</em></p> | 149 | <p><em>Use at your own risk!</em></p> |
120 | <p>To get the latest changes:</p> | 150 | <p>To get the latest changes from the <code>master</code> branch:</p> |
121 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">git</span> clone https://github.com/shaarli/Shaarli.git shaarli</code></pre></div> | 151 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># clone the repository </span> |
152 | $ <span class="fu">git</span> clone https://github.com/shaarli/Shaarli.git master /path/to/shaarli/ | ||
153 | <span class="co"># install/update third-party dependencies</span> | ||
154 | $ <span class="bu">cd</span> /path/to/shaarli | ||
155 | $ <span class="ex">composer</span> update --no-dev</code></pre></div> | ||
156 | <hr /> | ||
157 | <h2 id="finish-installation">Finish Installation</h2> | ||
158 | <p>Once Shaarli is downloaded and files have been placed at the correct location, open it this location your favorite browser.</p> | ||
159 | <p><img src="http://i.imgur.com/wuMpDSN.png" alt="install screenshot" /><a href=".html"></a></p> | ||
160 | <p>Setup your Shaarli installation, and it's ready to use!</p> | ||
161 | <hr /> | ||
162 | <h2 id="updating-shaarli">Updating Shaarli</h2> | ||
163 | <p>See <a href="Upgrade-and-migration">Upgrade and Migration</a><a href=".html"></a></p> | ||
122 | </body> | 164 | </body> |
123 | </html> | 165 | </html> |
diff --git a/doc/Download-and-Installation.md b/doc/Download-and-Installation.md new file mode 100644 index 00000000..77af25eb --- /dev/null +++ b/doc/Download-and-Installation.md | |||
@@ -0,0 +1,97 @@ | |||
1 | #Download and Installation | ||
2 | # Get Shaarli! | ||
3 | |||
4 | To install Shaarli, simply place the files in a directory under your webserver's Document Root (or directly at the document root). Make sure your [server](Server-requirements) is properly [configured](Server-configuration).[](.html) | ||
5 | |||
6 | Several releases are available: | ||
7 | |||
8 | -------------------------------------------------------- | ||
9 | |||
10 | ## Latest release (recommended) | ||
11 | |||
12 | Get the latest released version from the [releases](https://github.com/shaarli/Shaarli/releases) page.[](.html) | ||
13 | |||
14 | The current latest released version is `v0.7.0`. | ||
15 | |||
16 | ### Download as an archive | ||
17 | |||
18 | As a .zip archive: | ||
19 | |||
20 | ```bash | ||
21 | $ wget https://github.com/shaarli/Shaarli/archive/v0.7.0.zip | ||
22 | $ unzip Shaarli-v0.7.0.zip | ||
23 | $ mv Shaarli-v0.7.0 /path/to/shaarli/ | ||
24 | ``` | ||
25 | |||
26 | |||
27 | | ! |In most cases, download Shaarli from the [releases](https://github.com/shaarli/Shaarli/releases) page. Cloning using `git` or downloading Github branches as zip files requires additional steps (see below).|[](.html) | ||
28 | |-----|--------------------------| | ||
29 | |||
30 | |||
31 | |||
32 | -------------------------------------------------------- | ||
33 | |||
34 | ## Stable version | ||
35 | |||
36 | The stable version has been experienced by Shaarli users, and will receive security updates. | ||
37 | |||
38 | ### Download as an archive | ||
39 | |||
40 | As a .zip archive: | ||
41 | |||
42 | ```bash | ||
43 | $ wget https://github.com/shaarli/Shaarli/archive/stable.zip | ||
44 | $ unzip stable.zip | ||
45 | $ mv Shaarli-stable /path/to/shaarli/ | ||
46 | ``` | ||
47 | |||
48 | As a .tar.gz archive : | ||
49 | |||
50 | ```bash | ||
51 | $ wget https://github.com/shaarli/Shaarli/archive/stable.tar.gz | ||
52 | $ tar xvf stable.tar.gz | ||
53 | $ mv Shaarli-stable /path/to/shaarli/ | ||
54 | ``` | ||
55 | |||
56 | ### Clone with Git | ||
57 | |||
58 | [Composer](https://getcomposer.org/) is required to build a functional Shaarli installation when pulling from git.[](.html) | ||
59 | |||
60 | ```bash | ||
61 | $ git clone https://github.com/shaarli/Shaarli.git -b stable /path/to/shaarli/ | ||
62 | # install/update third-party dependencies | ||
63 | $ cd /path/to/shaarli/ | ||
64 | $ composer update --no-dev | ||
65 | ``` | ||
66 | |||
67 | -------------------------------------------------------- | ||
68 | |||
69 | ## Development version (mainline) | ||
70 | |||
71 | _Use at your own risk!_ | ||
72 | |||
73 | To get the latest changes from the `master` branch: | ||
74 | |||
75 | ```bash | ||
76 | # clone the repository | ||
77 | $ git clone https://github.com/shaarli/Shaarli.git master /path/to/shaarli/ | ||
78 | # install/update third-party dependencies | ||
79 | $ cd /path/to/shaarli | ||
80 | $ composer update --no-dev | ||
81 | ``` | ||
82 | |||
83 | -------------------------------------------------------- | ||
84 | |||
85 | ## Finish Installation | ||
86 | |||
87 | Once Shaarli is downloaded and files have been placed at the correct location, open it this location your favorite browser. | ||
88 | |||
89 | ![install screenshot](http://i.imgur.com/wuMpDSN.png)[](.html) | ||
90 | |||
91 | Setup your Shaarli installation, and it's ready to use! | ||
92 | |||
93 | -------------------------------------------------------- | ||
94 | |||
95 | ## Updating Shaarli | ||
96 | |||
97 | See [Upgrade and Migration](Upgrade-and-migration)[](.html) | ||
diff --git a/doc/Download.md b/doc/Download.md deleted file mode 100644 index 7930f541..00000000 --- a/doc/Download.md +++ /dev/null | |||
@@ -1,31 +0,0 @@ | |||
1 | #Download | ||
2 | ## Get Shaarli! | ||
3 | ### Latest stable revision | ||
4 | This revision has been [released](https://github.com/shaarli/Shaarli/releases) and tested.[](.html) | ||
5 | |||
6 | #### Clone with Git (recommended) | ||
7 | ```bash | ||
8 | $ git clone https://github.com/shaarli/Shaarli.git -b stable shaarli | ||
9 | ``` | ||
10 | |||
11 | #### Download as an archive | ||
12 | ```bash | ||
13 | $ wget https://github.com/shaarli/Shaarli/archive/stable.zip | ||
14 | $ unzip stable.zip | ||
15 | $ mv Shaarli-stable shaarli | ||
16 | ``` | ||
17 | |||
18 | Tarballs are also available: | ||
19 | ```bash | ||
20 | $ wget https://github.com/shaarli/Shaarli/archive/stable.tar.gz | ||
21 | $ tar xvf stable.tar.gz | ||
22 | $ mv Shaarli-stable shaarli | ||
23 | ``` | ||
24 | |||
25 | ### Development (mainline) | ||
26 | _Use at your own risk!_ | ||
27 | |||
28 | To get the latest changes: | ||
29 | ```bash | ||
30 | $ git clone https://github.com/shaarli/Shaarli.git shaarli | ||
31 | ``` | ||
diff --git a/doc/Example-patch---add-new-via-field-for-links.html b/doc/Example-patch---add-new-via-field-for-links.html index 7db43107..133224e2 100644 --- a/doc/Example-patch---add-new-via-field-for-links.html +++ b/doc/Example-patch---add-new-via-field-for-links.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/FAQ.html b/doc/FAQ.html index 3b6b956d..61f3475f 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Firefox-share.html b/doc/Firefox-share.html index add6d4e8..d7dcc282 100644 --- a/doc/Firefox-share.html +++ b/doc/Firefox-share.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/GnuPG-signature.html b/doc/GnuPG-signature.html index c431f9ad..50b904d5 100644 --- a/doc/GnuPG-signature.html +++ b/doc/GnuPG-signature.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -129,26 +127,26 @@ Keys</a></li> | |||
129 | <li><a href="https://help.github.com/articles/generating-a-gpg-key/">Generating a GPG key</a> (GitHub)<a href=".html"></a></li> | 127 | <li><a href="https://help.github.com/articles/generating-a-gpg-key/">Generating a GPG key</a> (GitHub)<a href=".html"></a></li> |
130 | </ul> | 128 | </ul> |
131 | <h3 id="gpg---provide-identity-information">gpg - provide identity information</h3> | 129 | <h3 id="gpg---provide-identity-information">gpg - provide identity information</h3> |
132 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">gpg</span> --gen-key | 130 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">gpg</span> --gen-key |
133 | 131 | ||
134 | <span class="kw">gpg</span> (GnuPG) <span class="kw">2.1.6;</span> <span class="kw">Copyright</span> (C) <span class="kw">2015</span> Free Software Foundation, Inc. | 132 | <span class="ex">gpg</span> (GnuPG) <span class="ex">2.1.6</span><span class="kw">;</span> <span class="ex">Copyright</span> (C) <span class="ex">2015</span> Free Software Foundation, Inc. |
135 | <span class="kw">This</span> is free software: you are free to change and redistribute it. | 133 | <span class="ex">This</span> is free software: you are free to change and redistribute it. |
136 | <span class="kw">There</span> is NO WARRANTY, to the extent permitted by law. | 134 | <span class="ex">There</span> is NO WARRANTY, to the extent permitted by law. |
137 | 135 | ||
138 | <span class="kw">Note</span>: Use <span class="st">"gpg2 --full-gen-key"</span> for a full featured key generation dialog. | 136 | <span class="ex">Note</span>: Use <span class="st">"gpg2 --full-gen-key"</span> for a full featured key generation dialog. |
139 | 137 | ||
140 | <span class="kw">GnuPG</span> needs to construct a user ID to identify your key. | 138 | <span class="ex">GnuPG</span> needs to construct a user ID to identify your key. |
141 | 139 | ||
142 | <span class="kw">Real</span> name: Marvin the Paranoid Android | 140 | <span class="ex">Real</span> name: Marvin the Paranoid Android |
143 | <span class="kw">Email</span> address: marvin@h2g2.net | 141 | <span class="ex">Email</span> address: marvin@h2g2.net |
144 | <span class="kw">You</span> selected this USER-ID: | 142 | <span class="ex">You</span> selected this USER-ID: |
145 | <span class="st">"Marvin the Paranoid Android <marvin@h2g2.net>"</span> | 143 | <span class="st">"Marvin the Paranoid Android <marvin@h2g2.net>"</span> |
146 | 144 | ||
147 | <span class="kw">Change</span> (N)<span class="kw">ame</span>, (E)<span class="kw">mail</span>, or (O)<span class="kw">kay</span>/<span class="kw">(Q)uit?</span> o | 145 | <span class="ex">Change</span> (N)<span class="ex">ame</span>, (E)<span class="ex">mail</span>, or (O)<span class="ex">kay</span>/<span class="kw">(</span><span class="ex">Q</span><span class="kw">)</span><span class="ex">uit?</span> o |
148 | <span class="kw">We</span> need to generate a lot of random bytes. It is a good idea to perform | 146 | <span class="ex">We</span> need to generate a lot of random bytes. It is a good idea to perform |
149 | <span class="kw">some</span> other action (type on the keyboard, move the mouse, utilize the | 147 | <span class="ex">some</span> other action (type on the keyboard, move the mouse, utilize the |
150 | <span class="kw">disks</span>) <span class="kw">during</span> the prime generation<span class="kw">;</span> <span class="kw">this</span> gives the random number | 148 | <span class="ex">disks</span>) <span class="ex">during</span> the prime generation<span class="kw">;</span> <span class="ex">this</span> gives the random number |
151 | <span class="kw">generator</span> a better chance to gain enough entropy.</code></pre></div> | 149 | <span class="ex">generator</span> a better chance to gain enough entropy.</code></pre></div> |
152 | <h3 id="gpg---entropy-interlude">gpg - entropy interlude</h3> | 150 | <h3 id="gpg---entropy-interlude">gpg - entropy interlude</h3> |
153 | <p>At this point, you will:</p> | 151 | <p>At this point, you will:</p> |
154 | <ul> | 152 | <ul> |
@@ -156,19 +154,19 @@ Keys</a></li> | |||
156 | <li>be asked to use your machine's input devices (mouse, keyboard, etc.) to generate random entropy; this step <em>may take some time</em></li> | 154 | <li>be asked to use your machine's input devices (mouse, keyboard, etc.) to generate random entropy; this step <em>may take some time</em></li> |
157 | </ul> | 155 | </ul> |
158 | <h3 id="gpg---key-creation-confirmation">gpg - key creation confirmation</h3> | 156 | <h3 id="gpg---key-creation-confirmation">gpg - key creation confirmation</h3> |
159 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="kw">gpg</span>: key A9D53A3E marked as ultimately trusted | 157 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="ex">gpg</span>: key A9D53A3E marked as ultimately trusted |
160 | <span class="kw">public</span> and secret key created and signed. | 158 | <span class="ex">public</span> and secret key created and signed. |
161 | 159 | ||
162 | <span class="kw">gpg</span>: checking the trustdb | 160 | <span class="ex">gpg</span>: checking the trustdb |
163 | <span class="kw">gpg</span>: 3 marginal(s) <span class="kw">needed</span>, 1 complete(s) <span class="kw">needed</span>, PGP trust model | 161 | <span class="ex">gpg</span>: 3 marginal(s) <span class="ex">needed</span>, 1 complete(s) <span class="ex">needed</span>, PGP trust model |
164 | <span class="kw">gpg</span>: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u | 162 | <span class="ex">gpg</span>: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u |
165 | <span class="kw">pub</span> rsa2048/A9D53A3E 2015-07-31 | 163 | <span class="ex">pub</span> rsa2048/A9D53A3E 2015-07-31 |
166 | <span class="kw">Key</span> fingerprint = AF2A 5381 E54B 2FD2 14C4 A9A3 0E35 ACA4 A9D5 3A3E | 164 | <span class="ex">Key</span> fingerprint = AF2A 5381 E54B 2FD2 14C4 A9A3 0E35 ACA4 A9D5 3A3E |
167 | <span class="kw">uid</span> [ultimate] Marvin the Paranoid Android <span class="kw"><</span>marvin@h2g2.net<span class="kw">></span>[](.html) | 165 | <span class="ex">uid</span> [ultimate] Marvin the Paranoid Android <span class="op"><</span>marvin@h2g2.net<span class="op">></span>[](.html) |
168 | <span class="kw">sub</span> rsa2048/8C0EACF1 2015-07-31</code></pre></div> | 166 | <span class="ex">sub</span> rsa2048/8C0EACF1 2015-07-31</code></pre></div> |
169 | <h3 id="gpg---submit-your-public-key-to-a-pgp-server-optional">gpg - submit your public key to a PGP server (Optional)</h3> | 167 | <h3 id="gpg---submit-your-public-key-to-a-pgp-server-optional">gpg - submit your public key to a PGP server (Optional)</h3> |
170 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">gpg</span> --keyserver pgp.mit.edu --send-keys A9D53A3E | 168 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">gpg</span> --keyserver pgp.mit.edu --send-keys A9D53A3E |
171 | <span class="kw">gpg</span>: sending key A9D53A3E to hkp server pgp.mit.edu</code></pre></div> | 169 | <span class="ex">gpg</span>: sending key A9D53A3E to hkp server pgp.mit.edu</code></pre></div> |
172 | <h2 id="create-and-push-a-gpg-signed-tag">Create and push a GPG-signed tag</h2> | 170 | <h2 id="create-and-push-a-gpg-signed-tag">Create and push a GPG-signed tag</h2> |
173 | <p>See <a href="Release-Shaarli.html">Release Shaarli</a>.</p> | 171 | <p>See <a href="Release-Shaarli.html">Release Shaarli</a>.</p> |
174 | </body> | 172 | </body> |
diff --git a/doc/Home.html b/doc/Home.html index 442503c5..970f547e 100644 --- a/doc/Home.html +++ b/doc/Home.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Plugin-System.html b/doc/Plugin-System.html index 37b26152..655536c6 100644 --- a/doc/Plugin-System.html +++ b/doc/Plugin-System.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
diff --git a/doc/Plugins.html b/doc/Plugins.html index e7df6aed..435a836f 100644 --- a/doc/Plugins.html +++ b/doc/Plugins.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
diff --git a/doc/RSS-feeds.html b/doc/RSS-feeds.html index 1b38e4e8..0f332b3d 100644 --- a/doc/RSS-feeds.html +++ b/doc/RSS-feeds.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Release-Shaarli.html b/doc/Release-Shaarli.html index cfaa663b..cdefd3d6 100644 --- a/doc/Release-Shaarli.html +++ b/doc/Release-Shaarli.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,14 +96,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="release-shaarli">Release Shaarli</h1> | 102 | <h1 id="release-shaarli">Release Shaarli</h1> |
105 | <p>See <a href="http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases">Git - Maintaining a project - Tagging your [](.html)<br /> | 103 | <p>See <a href="http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases">Git - Maintaining a project - Tagging your [](.html)<br /> |
106 | releases</a>.</p> | 104 | releases</a>.</p> |
107 | <h3 id="prerequisites">Prerequisites</h3> | 105 | <h2 id="prerequisites">Prerequisites</h2> |
108 | <p>This guide assumes that you have:</p> | 106 | <p>This guide assumes that you have:</p> |
109 | <ul> | 107 | <ul> |
110 | <li>a GPG key matching your GitHub authentication credentials | 108 | <li>a GPG key matching your GitHub authentication credentials |
@@ -118,53 +116,70 @@ releases</a>.</p> | |||
118 | <li><code>upstream</code> pointing to the main Shaarli repository</li> | 116 | <li><code>upstream</code> pointing to the main Shaarli repository</li> |
119 | </ul></li> | 117 | </ul></li> |
120 | <li>maintainer permissions on the main Shaarli repository (to push the signed tag)</li> | 118 | <li>maintainer permissions on the main Shaarli repository (to push the signed tag)</li> |
121 | <li><a href="http://pandoc.org/">Pandoc</a> needs to be installed.<a href=".html"></a></li> | 119 | <li><a href="https://getcomposer.org/">Composer</a> and <a href="http://pandoc.org/">Pandoc</a> need to be installed<a href=".html"></a></li> |
122 | </ul> | 120 | </ul> |
121 | <h2 id="increment-the-version-code-create-and-push-a-signed-tag">Increment the version code, create and push a signed tag</h2> | ||
123 | <h3 id="bump-shaarlis-version">Bump Shaarli's version</h3> | 122 | <h3 id="bump-shaarlis-version">Bump Shaarli's version</h3> |
124 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">cd</span> /path/to/shaarli | 123 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli |
125 | 124 | ||
126 | <span class="co"># create a new branch</span> | 125 | <span class="co"># create a new branch</span> |
127 | $ <span class="kw">git</span> fetch upstream | 126 | $ <span class="fu">git</span> fetch upstream |
128 | $ <span class="kw">git</span> checkout upstream/master -b v0.5.0 | 127 | $ <span class="fu">git</span> checkout upstream/master -b v0.5.0 |
129 | 128 | ||
130 | <span class="co"># bump the version number</span> | 129 | <span class="co"># bump the version number</span> |
131 | $ <span class="kw">vim</span> index.php shaarli_version.php | 130 | $ <span class="ex">vim</span> index.php shaarli_version.php |
132 | 131 | ||
133 | <span class="co"># rebuild the documentation from the wiki</span> | 132 | <span class="co"># rebuild the documentation from the wiki</span> |
134 | $ <span class="kw">make</span> htmldoc | 133 | $ <span class="fu">make</span> htmldoc |
135 | 134 | ||
136 | <span class="co"># commit the changes</span> | 135 | <span class="co"># commit the changes</span> |
137 | $ <span class="kw">git</span> add index.php shaarli_version.php doc | 136 | $ <span class="fu">git</span> add index.php shaarli_version.php doc |
138 | $ <span class="kw">git</span> commit -s -m <span class="st">"Bump version to v0.5.0"</span> | 137 | $ <span class="fu">git</span> commit -s -m <span class="st">"Bump version to v0.5.0"</span> |
139 | 138 | ||
140 | <span class="co"># push the commit on your GitHub fork</span> | 139 | <span class="co"># push the commit on your GitHub fork</span> |
141 | $ <span class="kw">git</span> push origin v0.5.0</code></pre></div> | 140 | $ <span class="fu">git</span> push origin v0.5.0</code></pre></div> |
142 | <h3 id="create-and-merge-a-pull-request">Create and merge a Pull Request</h3> | 141 | <h3 id="create-and-merge-a-pull-request">Create and merge a Pull Request</h3> |
143 | <p>This one is pretty straightforward ;-)</p> | 142 | <p>This one is pretty straightforward ;-)</p> |
144 | <h3 id="create-and-push-a-signed-tag">Create and push a signed tag</h3> | 143 | <h3 id="create-and-push-a-signed-tag">Create and push a signed tag</h3> |
145 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># update your local copy</span> | 144 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># update your local copy</span> |
146 | $ <span class="kw">git</span> checkout master | 145 | $ <span class="fu">git</span> checkout master |
147 | $ <span class="kw">git</span> fetch upstream | 146 | $ <span class="fu">git</span> fetch upstream |
148 | $ <span class="kw">git</span> pull upstream master | 147 | $ <span class="fu">git</span> pull upstream master |
149 | 148 | ||
150 | <span class="co"># create a signed tag</span> | 149 | <span class="co"># create a signed tag</span> |
151 | $ <span class="kw">git</span> tag -s -m <span class="st">"Release v0.5.0"</span> v0.5.0 | 150 | $ <span class="fu">git</span> tag -s -m <span class="st">"Release v0.5.0"</span> v0.5.0 |
152 | 151 | ||
153 | <span class="co"># push it to "upstream"</span> | 152 | <span class="co"># push it to "upstream"</span> |
154 | $ <span class="kw">git</span> push --tags upstream</code></pre></div> | 153 | $ <span class="fu">git</span> push --tags upstream</code></pre></div> |
155 | <h3 id="verify-a-signed-tag">Verify a signed tag</h3> | 154 | <h3 id="verify-a-signed-tag">Verify a signed tag</h3> |
156 | <p><a href="https://github.com/shaarli/Shaarli/releases/tag/v0.5.0"><code>v0.5.0</code></a> is the first GPG-signed tag pushed on the Community Shaarli.<a href=".html"></a></p> | 155 | <p><a href="https://github.com/shaarli/Shaarli/releases/tag/v0.5.0"><code>v0.5.0</code></a> is the first GPG-signed tag pushed on the Community Shaarli.<a href=".html"></a></p> |
157 | <p>Let's have a look at its signature!</p> | 156 | <p>Let's have a look at its signature!</p> |
158 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">cd</span> /path/to/shaarli | 157 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli |
159 | $ <span class="kw">git</span> fetch upstream | 158 | $ <span class="fu">git</span> fetch upstream |
160 | 159 | ||
161 | <span class="co"># get the SHA1 reference of the tag</span> | 160 | <span class="co"># get the SHA1 reference of the tag</span> |
162 | $ <span class="kw">git</span> show-ref tags/v0.5.0 | 161 | $ <span class="fu">git</span> show-ref tags/v0.5.0 |
163 | <span class="kw">f7762cf803f03f5caf4b8078359a63783d0090c1</span> refs/tags/v0.5.0 | 162 | <span class="ex">f7762cf803f03f5caf4b8078359a63783d0090c1</span> refs/tags/v0.5.0 |
164 | 163 | ||
165 | <span class="co"># verify the tag signature information</span> | 164 | <span class="co"># verify the tag signature information</span> |
166 | $ <span class="kw">git</span> verify-tag f7762cf803f03f5caf4b8078359a63783d0090c1 | 165 | $ <span class="fu">git</span> verify-tag f7762cf803f03f5caf4b8078359a63783d0090c1 |
167 | <span class="kw">gpg</span>: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F | 166 | <span class="ex">gpg</span>: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F |
168 | <span class="kw">gpg</span>: Good signature from <span class="st">"VirtualTam <virtualtam@flibidi.net>"</span> [ultimate][](.html)</code></pre></div> | 167 | <span class="ex">gpg</span>: Good signature from <span class="st">"VirtualTam <virtualtam@flibidi.net>"</span> [ultimate][](.html)</code></pre></div> |
168 | <h2 id="generate-and-upload-all-in-one-release-archives">Generate and upload all-in-one release archives</h2> | ||
169 | <p>Users with a shared hosting may have:</p> | ||
170 | <ul> | ||
171 | <li>no SSH access</li> | ||
172 | <li>no possibility to install PHP packages or server extensions</li> | ||
173 | <li>no possibility to run scripts</li> | ||
174 | </ul> | ||
175 | <p>To ease Shaarli installations, it is possible to generate and upload additional release archives,<br /> | ||
176 | that will contain Shaarli code plus all required third-party libraries:</p> | ||
177 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">make</span> release_archive</code></pre></div> | ||
178 | <p>This will create the following archives:</p> | ||
179 | <ul> | ||
180 | <li><code>shaarli-vX.Y.Z-full.tar</code></li> | ||
181 | <li><code>shaarli-vX.Y.Z-full.zip</code></li> | ||
182 | </ul> | ||
183 | <p>The archives need to be manually uploaded on the previously created GitHub release.</p> | ||
169 | </body> | 184 | </body> |
170 | </html> | 185 | </html> |
diff --git a/doc/Release-Shaarli.md b/doc/Release-Shaarli.md index d5044fe9..5cbcd79a 100644 --- a/doc/Release-Shaarli.md +++ b/doc/Release-Shaarli.md | |||
@@ -2,7 +2,7 @@ | |||
2 | See [Git - Maintaining a project - Tagging your [](.html) | 2 | See [Git - Maintaining a project - Tagging your [](.html) |
3 | releases](http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases). | 3 | releases](http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases). |
4 | 4 | ||
5 | ### Prerequisites | 5 | ## Prerequisites |
6 | This guide assumes that you have: | 6 | This guide assumes that you have: |
7 | - a GPG key matching your GitHub authentication credentials | 7 | - a GPG key matching your GitHub authentication credentials |
8 | - i.e., the email address identified by the GPG key is the same as the one in your `~/.gitconfig` | 8 | - i.e., the email address identified by the GPG key is the same as the one in your `~/.gitconfig` |
@@ -11,8 +11,9 @@ This guide assumes that you have: | |||
11 | - `origin` pointing to your GitHub fork | 11 | - `origin` pointing to your GitHub fork |
12 | - `upstream` pointing to the main Shaarli repository | 12 | - `upstream` pointing to the main Shaarli repository |
13 | - maintainer permissions on the main Shaarli repository (to push the signed tag) | 13 | - maintainer permissions on the main Shaarli repository (to push the signed tag) |
14 | - [Pandoc](http://pandoc.org/) needs to be installed.[](.html) | 14 | - [Composer](https://getcomposer.org/) and [Pandoc](http://pandoc.org/) need to be installed[](.html) |
15 | 15 | ||
16 | ## Increment the version code, create and push a signed tag | ||
16 | ### Bump Shaarli's version | 17 | ### Bump Shaarli's version |
17 | ```bash | 18 | ```bash |
18 | $ cd /path/to/shaarli | 19 | $ cd /path/to/shaarli |
@@ -70,3 +71,22 @@ $ git verify-tag f7762cf803f03f5caf4b8078359a63783d0090c1 | |||
70 | gpg: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F | 71 | gpg: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F |
71 | gpg: Good signature from "VirtualTam <virtualtam@flibidi.net>" [ultimate][](.html) | 72 | gpg: Good signature from "VirtualTam <virtualtam@flibidi.net>" [ultimate][](.html) |
72 | ``` | 73 | ``` |
74 | |||
75 | ## Generate and upload all-in-one release archives | ||
76 | Users with a shared hosting may have: | ||
77 | - no SSH access | ||
78 | - no possibility to install PHP packages or server extensions | ||
79 | - no possibility to run scripts | ||
80 | |||
81 | To ease Shaarli installations, it is possible to generate and upload additional release archives, | ||
82 | that will contain Shaarli code plus all required third-party libraries: | ||
83 | |||
84 | ```bash | ||
85 | $ make release_archive | ||
86 | ``` | ||
87 | |||
88 | This will create the following archives: | ||
89 | - `shaarli-vX.Y.Z-full.tar` | ||
90 | - `shaarli-vX.Y.Z-full.zip` | ||
91 | |||
92 | The archives need to be manually uploaded on the previously created GitHub release. | ||
diff --git a/doc/Security.html b/doc/Security.html index b1969a4c..cec20590 100644 --- a/doc/Security.html +++ b/doc/Security.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
diff --git a/doc/Server-configuration.html b/doc/Server-configuration.html index 1d2276df..068900b8 100644 --- a/doc/Server-configuration.html +++ b/doc/Server-configuration.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -133,7 +131,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
133 | <p>See also <a href="https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+">proxy-related</a> issues.<a href=".html"></a></p> | 131 | <p>See also <a href="https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+">proxy-related</a> issues.<a href=".html"></a></p> |
134 | <h2 id="apache">Apache</h2> | 132 | <h2 id="apache">Apache</h2> |
135 | <h3 id="minimal">Minimal</h3> | 133 | <h3 id="minimal">Minimal</h3> |
136 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="ot"> *:80</span><span class="fu">></span> | 134 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span> |
137 | ServerName<span class="st"> shaarli.my-domain.org</span> | 135 | ServerName<span class="st"> shaarli.my-domain.org</span> |
138 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> | 136 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> |
139 | <span class="fu"></VirtualHost></span></code></pre></div> | 137 | <span class="fu"></VirtualHost></span></code></pre></div> |
@@ -144,11 +142,11 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
144 | <li><a href="http://stackoverflow.com/q/176">Apache/PHP - error log per VirtualHost</a> (StackOverflow)<a href=".html"></a></li> | 142 | <li><a href="http://stackoverflow.com/q/176">Apache/PHP - error log per VirtualHost</a> (StackOverflow)<a href=".html"></a></li> |
145 | <li><a href="https://ma.ttias.be/php-php_value-vs-php_admin_value-and-the-use-of-php_flag-explained/">PHP: php_value vs php_admin_value and the use of php_flag explained</a><a href=".html"></a></li> | 143 | <li><a href="https://ma.ttias.be/php-php_value-vs-php_admin_value-and-the-use-of-php_flag-explained/">PHP: php_value vs php_admin_value and the use of php_flag explained</a><a href=".html"></a></li> |
146 | </ul> | 144 | </ul> |
147 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="ot"> *:80</span><span class="fu">></span> | 145 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span> |
148 | ServerName<span class="st"> shaarli.my-domain.org</span> | 146 | ServerName<span class="st"> shaarli.my-domain.org</span> |
149 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> | 147 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> |
150 | 148 | ||
151 | <span class="ot">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> | 149 | <span class="ex">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> |
152 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> | 150 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> |
153 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> | 151 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> |
154 | 152 | ||
@@ -158,40 +156,40 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
158 | php_value error_log /var/log/apache2/shaarli-php-error.log | 156 | php_value error_log /var/log/apache2/shaarli-php-error.log |
159 | <span class="fu"></VirtualHost></span></code></pre></div> | 157 | <span class="fu"></VirtualHost></span></code></pre></div> |
160 | <h3 id="standard---keep-access-and-error-logs">Standard - Keep access and error logs</h3> | 158 | <h3 id="standard---keep-access-and-error-logs">Standard - Keep access and error logs</h3> |
161 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="ot"> *:80</span><span class="fu">></span> | 159 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span> |
162 | ServerName<span class="st"> shaarli.my-domain.org</span> | 160 | ServerName<span class="st"> shaarli.my-domain.org</span> |
163 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> | 161 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> |
164 | 162 | ||
165 | <span class="ot">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> | 163 | <span class="ex">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> |
166 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> | 164 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> |
167 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> | 165 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> |
168 | <span class="fu"></VirtualHost></span></code></pre></div> | 166 | <span class="fu"></VirtualHost></span></code></pre></div> |
169 | <h3 id="paranoid---redirect-http-80-to-https-443">Paranoid - Redirect HTTP (:80) to HTTPS (:443)</h3> | 167 | <h3 id="paranoid---redirect-http-80-to-https-443">Paranoid - Redirect HTTP (:80) to HTTPS (:443)</h3> |
170 | <p>See <a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Apache">Server-side TLS</a> (Mozilla).<a href=".html"></a></p> | 168 | <p>See <a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Apache">Server-side TLS</a> (Mozilla).<a href=".html"></a></p> |
171 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="ot"> *:443</span><span class="fu">></span> | 169 | <div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu"><VirtualHost</span><span class="at"> *:443</span><span class="fu">></span> |
172 | ServerName<span class="st"> shaarli.my-domain.org</span> | 170 | ServerName<span class="st"> shaarli.my-domain.org</span> |
173 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> | 171 | DocumentRoot<span class="st"> /absolute/path/to/shaarli/</span> |
174 | 172 | ||
175 | <span class="ot">SSLEngine</span><span class="ch"> </span><span class="kw">on</span> | 173 | <span class="ex">SSLEngine</span><span class="ch"> </span><span class="kw">on</span> |
176 | SSLCertificateFile<span class="st"> /absolute/path/to/the/website/certificate.pem</span> | 174 | SSLCertificateFile<span class="st"> /absolute/path/to/the/website/certificate.pem</span> |
177 | SSLCertificateKeyFile<span class="st"> /absolute/path/to/the/website/key.key</span> | 175 | SSLCertificateKeyFile<span class="st"> /absolute/path/to/the/website/key.key</span> |
178 | 176 | ||
179 | <span class="fu"><Directory</span><span class="ot"> /absolute/path/to/shaarli/</span><span class="fu">></span> | 177 | <span class="fu"><Directory</span><span class="at"> /absolute/path/to/shaarli/</span><span class="fu">></span> |
180 | <span class="ot">AllowOverride</span><span class="ch"> </span><span class="kw">All</span> | 178 | <span class="ex">AllowOverride</span><span class="ch"> </span><span class="kw">All</span> |
181 | <span class="ot">Options</span><span class="ch"> </span><span class="kw">Indexes</span><span class="ch"> </span><span class="kw">FollowSymLinks</span><span class="ch"> </span><span class="kw">MultiViews</span> | 179 | <span class="ex">Options</span><span class="ch"> </span><span class="kw">Indexes</span><span class="ch"> </span><span class="kw">FollowSymLinks</span><span class="ch"> </span><span class="kw">MultiViews</span> |
182 | <span class="ot">Order</span><span class="ch"> </span><span class="kw">allow,deny</span> | 180 | <span class="ex">Order</span><span class="ch"> </span><span class="kw">allow,deny</span> |
183 | allow<span class="st"> from all</span> | 181 | allow<span class="st"> from all</span> |
184 | <span class="fu"></Directory></span> | 182 | <span class="fu"></Directory></span> |
185 | 183 | ||
186 | <span class="ot">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> | 184 | <span class="ex">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> |
187 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> | 185 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> |
188 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> | 186 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> |
189 | <span class="fu"></VirtualHost></span> | 187 | <span class="fu"></VirtualHost></span> |
190 | <span class="fu"><VirtualHost</span><span class="ot"> *:80</span><span class="fu">></span> | 188 | <span class="fu"><VirtualHost</span><span class="at"> *:80</span><span class="fu">></span> |
191 | ServerName<span class="st"> shaarli.my-domain.org</span> | 189 | ServerName<span class="st"> shaarli.my-domain.org</span> |
192 | Redirect<span class="st"> 301 / https://shaarli.my-domain.org</span> | 190 | Redirect<span class="st"> 301 / https://shaarli.my-domain.org</span> |
193 | 191 | ||
194 | <span class="ot">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> | 192 | <span class="ex">LogLevel</span><span class="ch"> </span><span class="kw">warn</span> |
195 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> | 193 | ErrorLog<span class="st"> /var/log/apache2/shaarli-error.log</span> |
196 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> | 194 | CustomLog<span class="st"> /var/log/apache2/shaarli-access.log combined</span> |
197 | <span class="fu"></VirtualHost></span></code></pre></div> | 195 | <span class="fu"></VirtualHost></span></code></pre></div> |
@@ -410,10 +408,5 @@ http { | |||
410 | include php.conf; | 408 | include php.conf; |
411 | } | 409 | } |
412 | }</code></pre> | 410 | }</code></pre> |
413 | <h2 id="restricting-search-engines-and-web-crawler-traffic">Restricting search engines and web crawler traffic</h2> | ||
414 | <p>Creating a <code>robots.txt</code> witht he following contents at the root of your Shaarli installation will prevent "honest" web crawlers from indexing each and every link and Daily page from a Shaarli instance, thus getting rid of a certain amount of unsollicited network traffic.</p> | ||
415 | <pre><code>User-agent: * | ||
416 | Disallow: /</code></pre> | ||
417 | <p>See: <a href="http://www.robotstxt.org/" class="uri">http://www.robotstxt.org/</a>, <a href="http://www.robotstxt.org/robotstxt.html" class="uri">http://www.robotstxt.org/robotstxt.html</a>, <a href="http://www.robotstxt.org/meta.html" class="uri">http://www.robotstxt.org/meta.html</a></p> | ||
418 | </body> | 411 | </body> |
419 | </html> | 412 | </html> |
diff --git a/doc/Server-configuration.md b/doc/Server-configuration.md index fd98a608..1ab57a0a 100644 --- a/doc/Server-configuration.md +++ b/doc/Server-configuration.md | |||
@@ -334,15 +334,3 @@ http { | |||
334 | } | 334 | } |
335 | } | 335 | } |
336 | ``` | 336 | ``` |
337 | |||
338 | ## Restricting search engines and web crawler traffic | ||
339 | |||
340 | Creating a `robots.txt` witht he following contents at the root of your Shaarli installation will prevent "honest" web crawlers from indexing each and every link and Daily page from a Shaarli instance, thus getting rid of a certain amount of unsollicited network traffic. | ||
341 | |||
342 | ``` | ||
343 | User-agent: * | ||
344 | Disallow: / | ||
345 | ``` | ||
346 | |||
347 | See: http://www.robotstxt.org/, http://www.robotstxt.org/robotstxt.html, http://www.robotstxt.org/meta.html | ||
348 | |||
diff --git a/doc/Server-requirements.html b/doc/Server-requirements.html index 8e4deeb8..2c2545bb 100644 --- a/doc/Server-requirements.html +++ b/doc/Server-requirements.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
@@ -96,18 +94,18 @@ | |||
96 | </tr> | 94 | </tr> |
97 | <tr class="odd"> | 95 | <tr class="odd"> |
98 | <td style="text-align: center;">5.5</td> | 96 | <td style="text-align: center;">5.5</td> |
99 | <td style="text-align: center;">Supported</td> | 97 | <td style="text-align: center;">EOL: 2016-07-10</td> |
100 | <td style="text-align: center;">✅</td> | 98 | <td style="text-align: center;">✅</td> |
101 | </tr> | 99 | </tr> |
102 | <tr class="even"> | 100 | <tr class="even"> |
103 | <td style="text-align: center;">5.4</td> | 101 | <td style="text-align: center;">5.4</td> |
104 | <td style="text-align: center;">EOL: 2015-09-14</td> | 102 | <td style="text-align: center;">EOL: 2015-09-14</td> |
105 | <td style="text-align: center;">✅</td> | 103 | <td style="text-align: center;">✅ (up to Shaarli 0.8.x)</td> |
106 | </tr> | 104 | </tr> |
107 | <tr class="odd"> | 105 | <tr class="odd"> |
108 | <td style="text-align: center;">5.3</td> | 106 | <td style="text-align: center;">5.3</td> |
109 | <td style="text-align: center;">EOL: 2014-08-14</td> | 107 | <td style="text-align: center;">EOL: 2014-08-14</td> |
110 | <td style="text-align: center;">✅</td> | 108 | <td style="text-align: center;">✅ (up to Shaarli 0.8.x)</td> |
111 | </tr> | 109 | </tr> |
112 | </tbody> | 110 | </tbody> |
113 | </table> | 111 | </table> |
@@ -115,6 +113,25 @@ | |||
115 | <ul> | 113 | <ul> |
116 | <li><a href="https://github.com/shaarli/Shaarli/blob/master/.travis.yml">Travis configuration</a><a href=".html"></a></li> | 114 | <li><a href="https://github.com/shaarli/Shaarli/blob/master/.travis.yml">Travis configuration</a><a href=".html"></a></li> |
117 | </ul> | 115 | </ul> |
116 | <h3 id="dependency-management">Dependency management</h3> | ||
117 | <p>Starting with Shaarli <code>v0.8.x</code>, <a href="https://getcomposer.org/">Composer</a> is used to resolve,<a href=".html"></a><br /> | ||
118 | download and install third-party PHP dependencies.</p> | ||
119 | <table> | ||
120 | <thead> | ||
121 | <tr class="header"> | ||
122 | <th>Library</th> | ||
123 | <th style="text-align: center;">Required?</th> | ||
124 | <th>Usage</th> | ||
125 | </tr> | ||
126 | </thead> | ||
127 | <tbody> | ||
128 | <tr class="odd"> | ||
129 | <td><a href="https://packagist.org/packages/shaarli/netscape-bookmark-parser"><code>shaarli/netscape-bookmark-parser</code></a></td> | ||
130 | <td style="text-align: center;">All</td> | ||
131 | <td>Import bookmarks from Netscape files<a href=".html"></a></td> | ||
132 | </tr> | ||
133 | </tbody> | ||
134 | </table> | ||
118 | <h3 id="extensions">Extensions</h3> | 135 | <h3 id="extensions">Extensions</h3> |
119 | <table style="width:19%;"> | 136 | <table style="width:19%;"> |
120 | <colgroup> | 137 | <colgroup> |
@@ -142,13 +159,18 @@ | |||
142 | </tr> | 159 | </tr> |
143 | <tr class="odd"> | 160 | <tr class="odd"> |
144 | <td><a href="http://php.net/manual/en/book.image.php"><code>php-gd</code></a></td> | 161 | <td><a href="http://php.net/manual/en/book.image.php"><code>php-gd</code></a></td> |
145 | <td style="text-align: center;">-</td> | 162 | <td style="text-align: center;">optional</td> |
146 | <td>thumbnail resizing<a href=".html"></a></td> | 163 | <td>thumbnail resizing<a href=".html"></a></td> |
147 | </tr> | 164 | </tr> |
148 | <tr class="even"> | 165 | <tr class="even"> |
149 | <td><a href="http://php.net/manual/fr/book.intl.php"><code>php-intl</code></a></td> | 166 | <td><a href="http://php.net/manual/en/book.intl.php"><code>php-intl</code></a></td> |
150 | <td style="text-align: center;">Optional</td> | 167 | <td style="text-align: center;">optional</td> |
151 | <td>Tag cloud intelligent sorting (eg. <code>e->è->f</code>)<a href=".html"></a></td> | 168 | <td>localized text sorting (e.g. <code>e->è->f</code>)<a href=".html"></a></td> |
169 | </tr> | ||
170 | <tr class="odd"> | ||
171 | <td><a href="http://php.net/manual/en/book.curl.php"><code>php-curl</code></a></td> | ||
172 | <td style="text-align: center;">optional</td> | ||
173 | <td>using cURL for fetching webpages and thumbnails in a more robust way<a href=".html"></a></td> | ||
152 | </tr> | 174 | </tr> |
153 | </tbody> | 175 | </tbody> |
154 | </table> | 176 | </table> |
diff --git a/doc/Server-requirements.md b/doc/Server-requirements.md index 7955fddf..4962193e 100644 --- a/doc/Server-requirements.md +++ b/doc/Server-requirements.md | |||
@@ -12,17 +12,26 @@ Version | Status | Shaarli compatibility | |||
12 | :---:|:---:|:---: | 12 | :---:|:---:|:---: |
13 | 7.0 | Supported | :white_check_mark: | 13 | 7.0 | Supported | :white_check_mark: |
14 | 5.6 | Supported | :white_check_mark: | 14 | 5.6 | Supported | :white_check_mark: |
15 | 5.5 | Supported | :white_check_mark: | 15 | 5.5 | EOL: 2016-07-10 | :white_check_mark: |
16 | 5.4 | EOL: 2015-09-14 | :white_check_mark: | 16 | 5.4 | EOL: 2015-09-14 | :white_check_mark: (up to Shaarli 0.8.x) |
17 | 5.3 | EOL: 2014-08-14 | :white_check_mark: | 17 | 5.3 | EOL: 2014-08-14 | :white_check_mark: (up to Shaarli 0.8.x) |
18 | 18 | ||
19 | See also: | 19 | See also: |
20 | - [Travis configuration](https://github.com/shaarli/Shaarli/blob/master/.travis.yml)[](.html) | 20 | - [Travis configuration](https://github.com/shaarli/Shaarli/blob/master/.travis.yml)[](.html) |
21 | 21 | ||
22 | ### Dependency management | ||
23 | Starting with Shaarli `v0.8.x`, [Composer](https://getcomposer.org/) is used to resolve,[](.html) | ||
24 | download and install third-party PHP dependencies. | ||
25 | |||
26 | Library | Required? | Usage | ||
27 | ---|:---:|--- | ||
28 | [`shaarli/netscape-bookmark-parser`](https://packagist.org/packages/shaarli/netscape-bookmark-parser) | All | Import bookmarks from Netscape files[](.html) | ||
29 | |||
22 | ### Extensions | 30 | ### Extensions |
23 | Extension | Required? | Usage | 31 | Extension | Required? | Usage |
24 | ---|:---:|--- | 32 | ---|:---:|--- |
25 | [`openssl`](http://php.net/manual/en/book.openssl.php) | All | OpenSSL, HTTPS[](.html) | 33 | [`openssl`](http://php.net/manual/en/book.openssl.php) | All | OpenSSL, HTTPS[](.html) |
26 | [`php-mbstring`](http://php.net/manual/en/book.mbstring.php) | CentOS, Fedora, RHEL, Windows | multibyte (Unicode) string support[](.html) | 34 | [`php-mbstring`](http://php.net/manual/en/book.mbstring.php) | CentOS, Fedora, RHEL, Windows | multibyte (Unicode) string support[](.html) |
27 | [`php-gd`](http://php.net/manual/en/book.image.php) | - | thumbnail resizing[](.html) | 35 | [`php-gd`](http://php.net/manual/en/book.image.php) | optional | thumbnail resizing[](.html) |
28 | [`php-intl`](http://php.net/manual/fr/book.intl.php) | Optional | Tag cloud intelligent sorting (eg. `e->è->f`)[](.html) | 36 | [`php-intl`](http://php.net/manual/en/book.intl.php) | optional | localized text sorting (e.g. `e->è->f`)[](.html) |
37 | [`php-curl`](http://php.net/manual/en/book.curl.php) | optional | using cURL for fetching webpages and thumbnails in a more robust way[](.html) | ||
diff --git a/doc/Server-security.html b/doc/Server-security.html index 6b44a133..3551deff 100644 --- a/doc/Server-security.html +++ b/doc/Server-security.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -118,11 +116,11 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
118 | </ul> | 116 | </ul> |
119 | <h3 id="locate-.ini-files">Locate .ini files</h3> | 117 | <h3 id="locate-.ini-files">Locate .ini files</h3> |
120 | <h4 id="console-environment">Console environment</h4> | 118 | <h4 id="console-environment">Console environment</h4> |
121 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">php</span> --ini | 119 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">php</span> --ini |
122 | <span class="kw">Configuration</span> File (php.ini) <span class="kw">Path</span>: /etc/php | 120 | <span class="ex">Configuration</span> File (php.ini) <span class="ex">Path</span>: /etc/php |
123 | <span class="kw">Loaded</span> Configuration File: /etc/php/php.ini | 121 | <span class="ex">Loaded</span> Configuration File: /etc/php/php.ini |
124 | <span class="kw">Scan</span> for additional .ini files in: /etc/php/conf.d | 122 | <span class="ex">Scan</span> for additional .ini files in: /etc/php/conf.d |
125 | <span class="kw">Additional</span> .ini files parsed: /etc/php/conf.d/xdebug.ini</code></pre></div> | 123 | <span class="ex">Additional</span> .ini files parsed: /etc/php/conf.d/xdebug.ini</code></pre></div> |
126 | <h4 id="server-environment">Server environment</h4> | 124 | <h4 id="server-environment">Server environment</h4> |
127 | <ul> | 125 | <ul> |
128 | <li>create a <code>phpinfo.php</code> script located in a path supported by the web server, e.g. | 126 | <li>create a <code>phpinfo.php</code> script located in a path supported by the web server, e.g. |
@@ -161,5 +159,15 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
161 | <span class="kw">[Definition][]</span><span class="dt">(.html)</span> | 159 | <span class="kw">[Definition][]</span><span class="dt">(.html)</span> |
162 | <span class="dt">failregex </span><span class="ot">=</span><span class="st"> \s-\s<HOST>\s-\sLogin failed for user.*$</span> | 160 | <span class="dt">failregex </span><span class="ot">=</span><span class="st"> \s-\s<HOST>\s-\sLogin failed for user.*$</span> |
163 | <span class="dt">ignoreregex </span><span class="ot">=</span><span class="st"> </span></code></pre></div> | 161 | <span class="dt">ignoreregex </span><span class="ot">=</span><span class="st"> </span></code></pre></div> |
162 | <h2 id="robots---restricting-search-engines-and-web-crawler-traffic">Robots - Restricting search engines and web crawler traffic</h2> | ||
163 | <p>Creating a <code>robots.txt</code> with the following contents at the root of your Shaarli installation will prevent <em>honest</em> web crawlers from indexing each and every link and Daily page from a Shaarli instance, thus getting rid of a certain amount of unsollicited network traffic.</p> | ||
164 | <pre><code>User-agent: * | ||
165 | Disallow: /</code></pre> | ||
166 | <p>See:</p> | ||
167 | <ul> | ||
168 | <li><a href="http://www.robotstxt.org/" class="uri">http://www.robotstxt.org/</a></li> | ||
169 | <li><a href="http://www.robotstxt.org/robotstxt.html" class="uri">http://www.robotstxt.org/robotstxt.html</a></li> | ||
170 | <li><a href="http://www.robotstxt.org/meta.html" class="uri">http://www.robotstxt.org/meta.html</a></li> | ||
171 | </ul> | ||
164 | </body> | 172 | </body> |
165 | </html> | 173 | </html> |
diff --git a/doc/Server-security.md b/doc/Server-security.md index 0d16e284..50549a21 100644 --- a/doc/Server-security.md +++ b/doc/Server-security.md | |||
@@ -58,3 +58,17 @@ before = common.conf | |||
58 | failregex = \s-\s<HOST>\s-\sLogin failed for user.*$ | 58 | failregex = \s-\s<HOST>\s-\sLogin failed for user.*$ |
59 | ignoreregex = | 59 | ignoreregex = |
60 | ``` | 60 | ``` |
61 | |||
62 | ## Robots - Restricting search engines and web crawler traffic | ||
63 | |||
64 | Creating a `robots.txt` with the following contents at the root of your Shaarli installation will prevent _honest_ web crawlers from indexing each and every link and Daily page from a Shaarli instance, thus getting rid of a certain amount of unsollicited network traffic. | ||
65 | |||
66 | ``` | ||
67 | User-agent: * | ||
68 | Disallow: / | ||
69 | ``` | ||
70 | |||
71 | See: | ||
72 | - http://www.robotstxt.org/ | ||
73 | - http://www.robotstxt.org/robotstxt.html | ||
74 | - http://www.robotstxt.org/meta.html | ||
diff --git a/doc/Shaarli-configuration.html b/doc/Shaarli-configuration.html index 74947578..6d717c65 100644 --- a/doc/Shaarli-configuration.html +++ b/doc/Shaarli-configuration.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,18 +96,19 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
104 | <h1 id="shaarli-configuration">Shaarli configuration</h1> | 102 | <h1 id="shaarli-configuration">Shaarli configuration</h1> |
103 | <h1 id="shaarli-configuration-1">Shaarli configuration</h1> | ||
105 | <h2 id="foreword">Foreword</h2> | 104 | <h2 id="foreword">Foreword</h2> |
106 | <p><strong>Do not edit configuration options in index.php! Your changes would be lost.</strong></p> | 105 | <p><strong>Do not edit configuration options in index.php! Your changes would be lost.</strong></p> |
107 | <p>Once your Shaarli instance is installed, the file <code>data/config.php</code> is generated:</p> | 106 | <p>Once your Shaarli instance is installed, the file <code>data/config.json.php</code> is generated:</p> |
108 | <ul> | 107 | <ul> |
109 | <li>it contains all settings, and can be edited to customize values</li> | 108 | <li>it contains all settings in JSON format, and can be edited to customize values</li> |
110 | <li>it defines which <a href="Plugin-System">plugins</a> are enabled<a href=".html"></a></li> | 109 | <li>it defines which <a href="Plugin-System">plugins</a> are enabled<a href="(.html).html">(.html)</a></li> |
111 | <li>its values override those defined in <code>index.php</code></li> | 110 | <li>its values override those defined in <code>index.php</code></li> |
111 | <li>it is wrap in a PHP comment to prevent anyone accessing it, regardless of server configuration</li> | ||
112 | </ul> | 112 | </ul> |
113 | <h2 id="file-and-directory-permissions">File and directory permissions</h2> | 113 | <h2 id="file-and-directory-permissions">File and directory permissions</h2> |
114 | <p>The server process running Shaarli must have:</p> | 114 | <p>The server process running Shaarli must have:</p> |
@@ -141,120 +141,155 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
141 | <li>unzip Shaarli in the default web server location (usually <code>/var/www/</code>) and set the web server user as the owner</li> | 141 | <li>unzip Shaarli in the default web server location (usually <code>/var/www/</code>) and set the web server user as the owner</li> |
142 | <li>put users in the same group as the web server, and set the appropriate access rights</li> | 142 | <li>put users in the same group as the web server, and set the appropriate access rights</li> |
143 | </ul></li> | 143 | </ul></li> |
144 | <li>if you have a domain / subdomain to serve Shaarli, <a href="Server-configuration">configure the server</a> accordingly<a href=".html"></a></li> | 144 | <li>if you have a domain / subdomain to serve Shaarli, <a href="Server-configuration">configure the server</a> accordingly<a href="(.html).html">(.html)</a></li> |
145 | </ul> | 145 | </ul> |
146 | <h2 id="example-dataconfig.php">Example <code>data/config.php</code></h2> | 146 | <h2 id="configuration">Configuration</h2> |
147 | <p>See also <a href="Plugin-System.html">Plugin System</a>.</p> | 147 | <p>In <code>data/config.json.php</code>.</p> |
148 | <div class="sourceCode"><pre class="sourceCode php"><code class="sourceCode php"><span class="kw"><?php</span> | 148 | <p>See also <a href="Plugin-System.html">Plugin System</a>.<a href=".html"></a></p> |
149 | <span class="co">// User login</span> | 149 | <h3 id="credentials">Credentials</h3> |
150 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'login'</span><span class="ot">]</span> = <span class="st">'<login>'</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 150 | <blockquote> |
151 | 151 | <p>You shouldn't edit those.</p> | |
152 | <span class="co">// User password hash</span> | 152 | </blockquote> |
153 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'hash'</span><span class="ot">]</span> = <span class="st">'200c452da46c2f889e5e48c49ef044bcacdcb095'</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 153 | <p><strong>login</strong>: Login username.<br /> |
154 | 154 | <strong>hash</strong>: Generated password hash.<br /> | |
155 | <span class="co">// Password salt</span> | 155 | <strong>salt</strong>: Password salt.</p> |
156 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'salt'</span><span class="ot">]</span> = <span class="st">'13b654102321576033d8473b63a275a1bf94c0f0'</span><span class="ot">;</span> <span class="ot">[](</span>.html<span class="ot">)</span> | 156 | <h3 id="general">General</h3> |
157 | 157 | <p><strong>title</strong>: Shaarli's instance title.<br /> | |
158 | <span class="co">// Local timezone</span> | 158 | <strong>header_link</strong>: Link to the homepage.<br /> |
159 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'timezone'</span><span class="ot">]</span> = <span class="st">'Africa/Abidjan'</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 159 | <strong>links_per_page</strong>: Number of shaares displayed per page.<br /> |
160 | <span class="fu">date_default_timezone_set</span><span class="ot">(</span><span class="st">'Africa/Abidjan'</span><span class="ot">);</span> | 160 | <strong>timezone</strong>: See <a href="http://php.net/manual/en/timezones.php">the list of supported timezones</a>. <a href=".html"></a><br /> |
161 | 161 | <strong>enabled_plugins</strong>: List of enabled plugins.</p> | |
162 | <span class="co">// Shaarli title</span> | 162 | <h3 id="security">Security</h3> |
163 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'title'</span><span class="ot">]</span> = <span class="st">'My Little Shaarly'</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 163 | <p><strong>session_protection_disabled</strong>: Disable session cookie hijacking protection (not recommended).<br /> |
164 | 164 | It might be useful if your IP adress often changes.<br /> | |
165 | <span class="co">// Link the Shaarli title points to</span> | 165 | <strong>ban_after</strong>: Failed login attempts before being IP banned.<br /> |
166 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'titleLink'</span><span class="ot">]</span> = <span class="st">'?'</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 166 | <strong>ban_duration</strong>: IP ban duration in seconds.<br /> |
167 | 167 | <strong>open_shaarli</strong>: Anyone can add a new link while logged out if enabled.<br /> | |
168 | <span class="co">// HTTP referer redirector</span> | 168 | <strong>trusted_proxies</strong>: List of trusted IP which won't be banned after failed login attemps. Useful if Shaarli is behind a reverse proxy.</p> |
169 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'redirector'</span><span class="ot">]</span> = <span class="st">''</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 169 | <h3 id="resources">Resources</h3> |
170 | 170 | <p><strong>data_dir</strong>: Data directory.<br /> | |
171 | <span class="co">// Disable session hijacking</span> | 171 | <strong>datastore</strong>: Shaarli's links database file path.<br /> |
172 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'disablesessionprotection'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;</span> <span class="ot">[](</span>.html<span class="ot">)</span> | 172 | <strong>updates</strong>: File path for the ran updates file.<br /> |
173 | 173 | <strong>log</strong>: Log file path.<br /> | |
174 | <span class="co">// Whether new links are private by default</span> | 174 | <strong>update_check</strong>: Last update check file path.<br /> |
175 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'privateLinkByDefault'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;[](</span>.html<span class="ot">)</span> | 175 | <strong>raintpl_tpl</strong>: Templates directory.<br /> |
176 | 176 | <strong>raintpl_tmp</strong>: Template engine cache directory.<br /> | |
177 | <span class="co">// Enabled plugins</span> | 177 | <strong>thumbnails_cache</strong>: Thumbnails cache directory.<br /> |
178 | <span class="co">// Note: each plugin may provide further settings through its own "config.php"</span> | 178 | <strong>page_cache</strong>: Shaarli's internal cache directory.<br /> |
179 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ENABLED_PLUGINS'</span><span class="ot">]</span> = <span class="fu">array</span><span class="ot">(</span><span class="st">'addlink_toolbar'</span><span class="ot">,</span> <span class="st">'qrcode'</span><span class="ot">);](</span><span class="st">'ENABLED_PLUGINS'</span><span class="ot">]</span>-=-<span class="fu">array</span><span class="ot">(</span><span class="st">'addlink_toolbar'</span><span class="ot">,</span>-<span class="st">'qrcode'</span><span class="ot">);</span>.html<span class="ot">)</span> | 179 | <strong>ban_file</strong>: Banned IP file path.</p> |
180 | 180 | <h3 id="updates">Updates</h3> | |
181 | <span class="co">// Subdirectory where Shaarli stores its data files.</span> | 181 | <p><strong>check_updates</strong>: Enable or disable update check to the git repository.<br /> |
182 | <span class="co">// You can change it for better security.</span> | 182 | <strong>check_updates_branch</strong>: Git branch used to check updates (e.g. <code>stable</code> or <code>master</code>).<br /> |
183 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'DATADIR'</span><span class="ot">]</span> = <span class="st">'data'</span><span class="ot">;](</span><span class="st">'DATADIR'</span><span class="ot">]</span>-=-<span class="st">'data'</span><span class="ot">;</span>.html<span class="ot">)</span> | 183 | <strong>check_updates_interval</strong>: Look for new version every N seconds (default: every day).</p> |
184 | 184 | <h3 id="privacy">Privacy</h3> | |
185 | <span class="co">// File used to store settings</span> | 185 | <p><strong>default_private_links</strong>: Check the private checkbox by default for every new link.<br /> |
186 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'CONFIG_FILE'</span><span class="ot">]</span> = <span class="st">'data/config.php'</span><span class="ot">;](</span><span class="st">'CONFIG_FILE'</span><span class="ot">]</span>-=-<span class="st">'data/config.php'</span><span class="ot">;</span>.html<span class="ot">)</span> | 186 | <strong>hide_public_links</strong>: All links are hidden while logged out.<br /> |
187 | 187 | <strong>hide_timestamps</strong>: Timestamps are hidden.</p> | |
188 | <span class="co">// File containing the link database</span> | 188 | <h3 id="feed">Feed</h3> |
189 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'DATASTORE'</span><span class="ot">]</span> = <span class="st">'data/datastore.php'</span><span class="ot">;](</span><span class="st">'DATASTORE'</span><span class="ot">]</span>-=-<span class="st">'data/datastore.php'</span><span class="ot">;</span>.html<span class="ot">)</span> | 189 | <p><strong>rss_permalinks</strong>: Enable this to redirect RSS links to Shaarli's permalinks instead of shaared URL.<br /> |
190 | 190 | <strong>show_atom</strong>: Display ATOM feed button.</p> | |
191 | <span class="co">// Number of links displayed per page</span> | 191 | <h3 id="thumbnail">Thumbnail</h3> |
192 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'LINKS_PER_PAGE'</span><span class="ot">]</span> = <span class="dv">20</span><span class="ot">;](</span><span class="st">'LINKS_PER_PAGE'</span><span class="ot">]</span>-=-<span class="dv">20</span><span class="ot">;</span>.html<span class="ot">)</span> | 192 | <p><strong>enable_thumbnails</strong>: Enable or disable thumbnail display.<br /> |
193 | 193 | <strong>enable_localcache</strong>: Enable or disable local cache.</p> | |
194 | <span class="co">// File recording failed login attempts and IP bans</span> | 194 | <h3 id="redirector">Redirector</h3> |
195 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'IPBANS_FILENAME'</span><span class="ot">]</span> = <span class="st">'data/ipbans.php'</span><span class="ot">;](</span><span class="st">'IPBANS_FILENAME'</span><span class="ot">]</span>-=-<span class="st">'data/ipbans.php'</span><span class="ot">;</span>.html<span class="ot">)</span> | 195 | <p><strong>url</strong>: Redirector URL, such as <code>anonym.to</code>.<br /> |
196 | 196 | <strong>encode_url</strong>: Enable this if the redirector needs encoded URL to work properly.</p> | |
197 | <span class="co">// Failed login attempts before being banned</span> | 197 | <h2 id="configuration-file-example">Configuration file example</h2> |
198 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'BAN_AFTER'</span><span class="ot">]</span> = <span class="dv">4</span><span class="ot">;](</span><span class="st">'BAN_AFTER'</span><span class="ot">]</span>-=-<span class="dv">4</span><span class="ot">;</span>.html<span class="ot">)</span> | 198 | <div class="sourceCode"><pre class="sourceCode json"><code class="sourceCode json"><span class="er"><?php</span> <span class="er">/*</span> |
199 | 199 | <span class="fu">{</span> | |
200 | <span class="co">// Duration of an IP ban, in seconds (30 minutes)</span> | 200 | <span class="dt">"credentials"</span><span class="fu">:</span> <span class="fu">{</span> |
201 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'BAN_DURATION'</span><span class="ot">]</span> = <span class="dv">1800</span><span class="ot">;](</span><span class="st">'BAN_DURATION'</span><span class="ot">]</span>-=-<span class="dv">1800</span><span class="ot">;</span>.html<span class="ot">)</span> | 201 | <span class="dt">"login"</span><span class="fu">:</span> <span class="st">"<login>"</span><span class="fu">,</span> |
202 | 202 | <span class="dt">"hash"</span><span class="fu">:</span> <span class="st">"<password hash>"</span><span class="fu">,</span> | |
203 | <span class="co">// If set to true, everyone will be able to add, edit and remove links,</span> | 203 | <span class="dt">"salt"</span><span class="fu">:</span> <span class="st">"<password salt>"</span> |
204 | <span class="co">// as well as change configuration</span> | 204 | <span class="fu">},</span> |
205 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'OPEN_SHAARLI'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">'OPEN_SHAARLI'</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> | 205 | <span class="dt">"security"</span><span class="fu">:</span> <span class="fu">{</span> |
206 | 206 | <span class="dt">"ban_after"</span><span class="fu">:</span> <span class="dv">4</span><span class="fu">,</span> | |
207 | <span class="co">// Do not show link timestamps</span> | 207 | <span class="dt">"session_protection_disabled"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> |
208 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'HIDE_TIMESTAMPS'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">'HIDE_TIMESTAMPS'</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> | 208 | <span class="dt">"ban_duration"</span><span class="fu">:</span> <span class="dv">1800</span><span class="fu">,</span> |
209 | 209 | <span class="dt">"trusted_proxies"</span><span class="fu">:</span> <span class="ot">[[]</span><span class="er">(.html)</span> | |
210 | <span class="co">// Set to false to disable local thumbnail cache, e.g. due to limited disk quotas</span> | 210 | <span class="st">"1.2.3.4"</span><span class="ot">,</span> |
211 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ENABLE_THUMBNAILS'</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">'ENABLE_THUMBNAILS'</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> | 211 | <span class="st">"5.6.7.8"</span> |
212 | 212 | <span class="ot">]</span> | |
213 | <span class="co">// Thumbnail cache directory</span> | 213 | <span class="fu">},</span> |
214 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'CACHEDIR'</span><span class="ot">]</span> = <span class="st">'cache'</span><span class="ot">;](</span><span class="st">'CACHEDIR'</span><span class="ot">]</span>-=-<span class="st">'cache'</span><span class="ot">;</span>.html<span class="ot">)</span> | 214 | <span class="dt">"resources"</span><span class="fu">:</span> <span class="fu">{</span> |
215 | 215 | <span class="dt">"data_dir"</span><span class="fu">:</span> <span class="st">"data"</span><span class="fu">,</span> | |
216 | <span class="co">// Enable feed (rss, atom, dailyrss) cache</span> | 216 | <span class="dt">"config"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">config.php"</span><span class="fu">,</span> |
217 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ENABLE_LOCALCACHE'</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">'ENABLE_LOCALCACHE'</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> | 217 | <span class="dt">"datastore"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">datastore.php"</span><span class="fu">,</span> |
218 | 218 | <span class="dt">"ban_file"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">ipbans.php"</span><span class="fu">,</span> | |
219 | <span class="co">// Feed cache directory</span> | 219 | <span class="dt">"updates"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">updates.txt"</span><span class="fu">,</span> |
220 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'PAGECACHE'</span><span class="ot">]</span> = <span class="st">'pagecache'</span><span class="ot">;](</span><span class="st">'PAGECACHE'</span><span class="ot">]</span>-=-<span class="st">'pagecache'</span><span class="ot">;</span>.html<span class="ot">)</span> | 220 | <span class="dt">"log"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">log.txt"</span><span class="fu">,</span> |
221 | 221 | <span class="dt">"update_check"</span><span class="fu">:</span> <span class="st">"data</span><span class="ch">\/</span><span class="st">lastupdatecheck.txt"</span><span class="fu">,</span> | |
222 | <span class="co">// RainTPL cache directory (keep the trailing slash!)</span> | 222 | <span class="dt">"raintpl_tmp"</span><span class="fu">:</span> <span class="st">"tmp</span><span class="ch">\/</span><span class="st">"</span><span class="fu">,</span> |
223 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'RAINTPL_TMP'</span><span class="ot">]</span> = <span class="st">'tmp/'</span><span class="ot">;](</span><span class="st">'RAINTPL_TMP'</span><span class="ot">]</span>-=-<span class="st">'tmp/'</span><span class="ot">;</span>.html<span class="ot">)</span> | 223 | <span class="dt">"raintpl_tpl"</span><span class="fu">:</span> <span class="st">"tpl</span><span class="ch">\/</span><span class="st">"</span><span class="fu">,</span> |
224 | 224 | <span class="dt">"thumbnails_cache"</span><span class="fu">:</span> <span class="st">"cache"</span><span class="fu">,</span> | |
225 | <span class="co">// RainTPL template directory (keep the trailing slash!)</span> | 225 | <span class="dt">"page_cache"</span><span class="fu">:</span> <span class="st">"pagecache"</span> |
226 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'RAINTPL_TPL'</span><span class="ot">]</span> = <span class="st">'tpl/'</span><span class="ot">;](</span><span class="st">'RAINTPL_TPL'</span><span class="ot">]</span>-=-<span class="st">'tpl/'</span><span class="ot">;</span>.html<span class="ot">)</span> | 226 | <span class="fu">},</span> |
227 | 227 | <span class="dt">"general"</span><span class="fu">:</span> <span class="fu">{</span> | |
228 | <span class="co">// Whether Shaarli checks for new releases at https://github.com/shaarli/Shaarli</span> | 228 | <span class="dt">"check_updates"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> |
229 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ENABLE_UPDATECHECK'</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">'ENABLE_UPDATECHECK'</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> | 229 | <span class="dt">"rss_permalinks"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> |
230 | 230 | <span class="dt">"links_per_page"</span><span class="fu">:</span> <span class="dv">20</span><span class="fu">,</span> | |
231 | <span class="co">// File to store the latest Shaarli version</span> | 231 | <span class="dt">"default_private_links"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> |
232 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'UPDATECHECK_FILENAME'</span><span class="ot">]</span> = <span class="st">'data/lastupdatecheck.txt'</span><span class="ot">;](</span><span class="st">'UPDATECHECK_FILENAME'</span><span class="ot">]</span>-=-<span class="st">'data/lastupdatecheck.txt'</span><span class="ot">;</span>.html<span class="ot">)</span> | 232 | <span class="dt">"enable_thumbnails"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> |
233 | 233 | <span class="dt">"enable_localcache"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> | |
234 | <span class="co">// Delay between version checks (requires to be logged in) (24 hours)</span> | 234 | <span class="dt">"check_updates_branch"</span><span class="fu">:</span> <span class="st">"stable"</span><span class="fu">,</span> |
235 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'UPDATECHECK_INTERVAL'</span><span class="ot">]</span> = <span class="dv">86400</span><span class="ot">;](</span><span class="st">'UPDATECHECK_INTERVAL'</span><span class="ot">]</span>-=-<span class="dv">86400</span><span class="ot">;</span>.html<span class="ot">)</span> | 235 | <span class="dt">"check_updates_interval"</span><span class="fu">:</span> <span class="dv">86400</span><span class="fu">,</span> |
236 | 236 | <span class="dt">"enabled_plugins"</span><span class="fu">:</span> <span class="ot">[[]</span><span class="er">(.html)</span> | |
237 | <span class="co">// For each link, display a link to an archived version on archive.org</span> | 237 | <span class="st">"markdown"</span><span class="ot">,</span> |
238 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ARCHIVE_ORG'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">'ARCHIVE_ORG'</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> | 238 | <span class="st">"wallabag"</span><span class="ot">,</span> |
239 | 239 | <span class="st">"archiveorg"</span> | |
240 | <span class="co">// The RSS item links point:</span> | 240 | <span class="ot">]</span><span class="fu">,</span> |
241 | <span class="co">// true => directly to the link</span> | 241 | <span class="dt">"timezone"</span><span class="fu">:</span> <span class="st">"Europe</span><span class="ch">\/</span><span class="st">Paris"</span><span class="fu">,</span> |
242 | <span class="co">// false => to the entry on Shaarli (permalink)</span> | 242 | <span class="dt">"title"</span><span class="fu">:</span> <span class="st">"My Shaarli"</span><span class="fu">,</span> |
243 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'ENABLE_RSS_PERMALINKS'</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">'ENABLE_RSS_PERMALINKS'</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> | 243 | <span class="dt">"header_link"</span><span class="fu">:</span> <span class="st">"?"</span> |
244 | 244 | <span class="fu">},</span> | |
245 | <span class="co">// Hide all links to non-logged users</span> | 245 | <span class="dt">"extras"</span><span class="fu">:</span> <span class="fu">{</span> |
246 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'HIDE_PUBLIC_LINKS'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">'HIDE_PUBLIC_LINKS'</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> | 246 | <span class="dt">"show_atom"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> |
247 | 247 | <span class="dt">"hide_public_links"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> | |
248 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'PUBSUBHUB_URL'</span><span class="ot">]</span> = <span class="st">''</span><span class="ot">;](</span><span class="st">'PUBSUBHUB_URL'</span><span class="ot">]</span>-=-<span class="st">''</span><span class="ot">;</span>.html<span class="ot">)</span> | 248 | <span class="dt">"hide_timestamps"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> |
249 | 249 | <span class="dt">"open_shaarli"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> | |
250 | <span class="co">// Show an ATOM Feed button next to the Subscribe (RSS) button.</span> | 250 | <span class="dt">"redirector"</span><span class="fu">:</span> <span class="st">"http://anonym.to/?"</span><span class="fu">,</span> |
251 | <span class="co">// ATOM feeds are available at the address ?do=atom regardless of this option.</span> | 251 | <span class="dt">"redirector_encode_url"</span><span class="fu">:</span> <span class="kw">false</span> |
252 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'SHOW_ATOM'</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">'SHOW_ATOM'</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> | 252 | <span class="fu">},</span> |
253 | 253 | <span class="dt">"general"</span><span class="fu">:</span> <span class="fu">{</span> | |
254 | <span class="co">// Set this to true if the redirector requires encoded URL, false otherwise.</span> | 254 | <span class="dt">"header_link"</span><span class="fu">:</span> <span class="st">"?"</span><span class="fu">,</span> |
255 | <span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">'config'</span><span class="ot">[</span><span class="st">'REDIRECTOR_URLENCODE'</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">'REDIRECTOR_URLENCODE'</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> | 255 | <span class="dt">"links_per_page"</span><span class="fu">:</span> <span class="dv">20</span><span class="fu">,</span> |
256 | <span class="kw">?></span></code></pre></div> | 256 | <span class="dt">"enabled_plugins"</span><span class="fu">:</span> <span class="ot">[[]</span><span class="er">(.html)</span> |
257 | <span class="st">"markdown"</span><span class="ot">,</span> | ||
258 | <span class="st">"wallabag"</span> | ||
259 | <span class="ot">]</span><span class="fu">,</span> | ||
260 | <span class="dt">"timezone"</span><span class="fu">:</span> <span class="st">"Europe</span><span class="ch">\/</span><span class="st">Paris"</span><span class="fu">,</span> | ||
261 | <span class="dt">"title"</span><span class="fu">:</span> <span class="st">"My Shaarli"</span> | ||
262 | <span class="fu">},</span> | ||
263 | <span class="dt">"updates"</span><span class="fu">:</span> <span class="fu">{</span> | ||
264 | <span class="dt">"check_updates"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> | ||
265 | <span class="dt">"check_updates_branch"</span><span class="fu">:</span> <span class="st">"stable"</span><span class="fu">,</span> | ||
266 | <span class="dt">"check_updates_interval"</span><span class="fu">:</span> <span class="dv">86400</span> | ||
267 | <span class="fu">},</span> | ||
268 | <span class="dt">"feed"</span><span class="fu">:</span> <span class="fu">{</span> | ||
269 | <span class="dt">"rss_permalinks"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> | ||
270 | <span class="dt">"show_atom"</span><span class="fu">:</span> <span class="kw">false</span> | ||
271 | <span class="fu">},</span> | ||
272 | <span class="dt">"privacy"</span><span class="fu">:</span> <span class="fu">{</span> | ||
273 | <span class="dt">"default_private_links"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> | ||
274 | <span class="dt">"hide_public_links"</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span> | ||
275 | <span class="dt">"hide_timestamps"</span><span class="fu">:</span> <span class="kw">false</span> | ||
276 | <span class="fu">},</span> | ||
277 | <span class="dt">"thumbnail"</span><span class="fu">:</span> <span class="fu">{</span> | ||
278 | <span class="dt">"enable_thumbnails"</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span> | ||
279 | <span class="dt">"enable_localcache"</span><span class="fu">:</span> <span class="kw">true</span> | ||
280 | <span class="fu">},</span> | ||
281 | <span class="dt">"redirector"</span><span class="fu">:</span> <span class="fu">{</span> | ||
282 | <span class="dt">"url"</span><span class="fu">:</span> <span class="st">"http://anonym.to/?"</span><span class="fu">,</span> | ||
283 | <span class="dt">"encode_url"</span><span class="fu">:</span> <span class="kw">false</span> | ||
284 | <span class="fu">},</span> | ||
285 | <span class="dt">"plugins"</span><span class="fu">:</span> <span class="fu">{</span> | ||
286 | <span class="dt">"WALLABAG_URL"</span><span class="fu">:</span> <span class="st">"http://demo.wallabag.org"</span><span class="fu">,</span> | ||
287 | <span class="dt">"WALLABAG_VERSION"</span><span class="fu">:</span> <span class="st">"1"</span> | ||
288 | <span class="fu">}</span> | ||
289 | <span class="fu">}</span> <span class="er">?></span></code></pre></div> | ||
257 | <h2 id="additional-configuration">Additional configuration</h2> | 290 | <h2 id="additional-configuration">Additional configuration</h2> |
258 | <p>The playvideos plugin may require that you adapt your server's <a href="https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md#troubleshooting">Content Security Policy</a> configuration to work properly.<a href=".html"></a></p> | 291 | <p>The playvideos plugin may require that you adapt your server's<br /> |
292 | <a href="https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md#troubleshooting">Content Security Policy</a> <a href=".html"></a><br /> | ||
293 | configuration to work properly.<a href="(.html).html">(.html)</a></p> | ||
259 | </body> | 294 | </body> |
260 | </html> | 295 | </html> |
diff --git a/doc/Shaarli-configuration.md b/doc/Shaarli-configuration.md index d0560d79..4a783c0e 100644 --- a/doc/Shaarli-configuration.md +++ b/doc/Shaarli-configuration.md | |||
@@ -1,14 +1,18 @@ | |||
1 | #Shaarli configuration | 1 | #Shaarli configuration |
2 | # Shaarli configuration | ||
3 | |||
2 | ## Foreword | 4 | ## Foreword |
3 | 5 | ||
4 | **Do not edit configuration options in index.php! Your changes would be lost.** | 6 | **Do not edit configuration options in index.php! Your changes would be lost.** |
5 | 7 | ||
6 | Once your Shaarli instance is installed, the file `data/config.php` is generated: | 8 | Once your Shaarli instance is installed, the file `data/config.json.php` is generated: |
7 | * it contains all settings, and can be edited to customize values | 9 | * it contains all settings in JSON format, and can be edited to customize values |
8 | * it defines which [plugins](Plugin-System) are enabled[](.html) | 10 | * it defines which [plugins](Plugin-System) are enabled[(.html)]((.html).html) |
9 | * its values override those defined in `index.php` | 11 | * its values override those defined in `index.php` |
12 | * it is wrap in a PHP comment to prevent anyone accessing it, regardless of server configuration | ||
10 | 13 | ||
11 | ## File and directory permissions | 14 | ## File and directory permissions |
15 | |||
12 | The server process running Shaarli must have: | 16 | The server process running Shaarli must have: |
13 | - `read` access to the following resources: | 17 | - `read` access to the following resources: |
14 | - PHP scripts: `index.php`, `application/*.php`, `plugins/*.php` | 18 | - PHP scripts: `index.php`, `application/*.php`, `plugins/*.php` |
@@ -29,123 +33,179 @@ On a Linux distribution: | |||
29 | - to give it access to Shaarli, either: | 33 | - to give it access to Shaarli, either: |
30 | - unzip Shaarli in the default web server location (usually `/var/www/`) and set the web server user as the owner | 34 | - unzip Shaarli in the default web server location (usually `/var/www/`) and set the web server user as the owner |
31 | - put users in the same group as the web server, and set the appropriate access rights | 35 | - put users in the same group as the web server, and set the appropriate access rights |
32 | - if you have a domain / subdomain to serve Shaarli, [configure the server](Server-configuration) accordingly[](.html) | 36 | - if you have a domain / subdomain to serve Shaarli, [configure the server](Server-configuration) accordingly[(.html)]((.html).html) |
33 | 37 | ||
34 | ## Example `data/config.php` | 38 | ## Configuration |
35 | See also [Plugin System](Plugin-System.html). | 39 | |
36 | 40 | In `data/config.json.php`. | |
37 | ```php | 41 | |
38 | <?php | 42 | See also [Plugin System](Plugin-System.html).[](.html) |
39 | // User login | 43 | |
40 | $GLOBALS['login'] = '<login>';[](.html) | 44 | ### Credentials |
41 | 45 | ||
42 | // User password hash | 46 | > You shouldn't edit those. |
43 | $GLOBALS['hash'] = '200c452da46c2f889e5e48c49ef044bcacdcb095';[](.html) | 47 | |
44 | 48 | **login**: Login username. | |
45 | // Password salt | 49 | **hash**: Generated password hash. |
46 | $GLOBALS['salt'] = '13b654102321576033d8473b63a275a1bf94c0f0'; [](.html) | 50 | **salt**: Password salt. |
47 | 51 | ||
48 | // Local timezone | 52 | ### General |
49 | $GLOBALS['timezone'] = 'Africa/Abidjan';[](.html) | 53 | |
50 | date_default_timezone_set('Africa/Abidjan'); | 54 | **title**: Shaarli's instance title. |
51 | 55 | **header_link**: Link to the homepage. | |
52 | // Shaarli title | 56 | **links_per_page**: Number of shaares displayed per page. |
53 | $GLOBALS['title'] = 'My Little Shaarly';[](.html) | 57 | **timezone**: See [the list of supported timezones](http://php.net/manual/en/timezones.php). [](.html) |
54 | 58 | **enabled_plugins**: List of enabled plugins. | |
55 | // Link the Shaarli title points to | 59 | |
56 | $GLOBALS['titleLink'] = '?';[](.html) | 60 | ### Security |
57 | 61 | ||
58 | // HTTP referer redirector | 62 | **session_protection_disabled**: Disable session cookie hijacking protection (not recommended). |
59 | $GLOBALS['redirector'] = '';[](.html) | 63 | It might be useful if your IP adress often changes. |
60 | 64 | **ban_after**: Failed login attempts before being IP banned. | |
61 | // Disable session hijacking | 65 | **ban_duration**: IP ban duration in seconds. |
62 | $GLOBALS['disablesessionprotection'] = false; [](.html) | 66 | **open_shaarli**: Anyone can add a new link while logged out if enabled. |
63 | 67 | **trusted_proxies**: List of trusted IP which won't be banned after failed login attemps. Useful if Shaarli is behind a reverse proxy. | |
64 | // Whether new links are private by default | 68 | |
65 | $GLOBALS['privateLinkByDefault'] = false;[](.html) | 69 | ### Resources |
66 | 70 | ||
67 | // Enabled plugins | 71 | **data_dir**: Data directory. |
68 | // Note: each plugin may provide further settings through its own "config.php" | 72 | **datastore**: Shaarli's links database file path. |
69 | $GLOBALS['config'['ENABLED_PLUGINS'] = array('addlink_toolbar', 'qrcode');]('ENABLED_PLUGINS']-=-array('addlink_toolbar',-'qrcode');.html) | 73 | **updates**: File path for the ran updates file. |
70 | 74 | **log**: Log file path. | |
71 | // Subdirectory where Shaarli stores its data files. | 75 | **update_check**: Last update check file path. |
72 | // You can change it for better security. | 76 | **raintpl_tpl**: Templates directory. |
73 | $GLOBALS['config'['DATADIR'] = 'data';]('DATADIR']-=-'data';.html) | 77 | **raintpl_tmp**: Template engine cache directory. |
74 | 78 | **thumbnails_cache**: Thumbnails cache directory. | |
75 | // File used to store settings | 79 | **page_cache**: Shaarli's internal cache directory. |
76 | $GLOBALS['config'['CONFIG_FILE'] = 'data/config.php';]('CONFIG_FILE']-=-'data/config.php';.html) | 80 | **ban_file**: Banned IP file path. |
77 | 81 | ||
78 | // File containing the link database | 82 | ### Updates |
79 | $GLOBALS['config'['DATASTORE'] = 'data/datastore.php';]('DATASTORE']-=-'data/datastore.php';.html) | 83 | |
80 | 84 | **check_updates**: Enable or disable update check to the git repository. | |
81 | // Number of links displayed per page | 85 | **check_updates_branch**: Git branch used to check updates (e.g. `stable` or `master`). |
82 | $GLOBALS['config'['LINKS_PER_PAGE'] = 20;]('LINKS_PER_PAGE']-=-20;.html) | 86 | **check_updates_interval**: Look for new version every N seconds (default: every day). |
83 | 87 | ||
84 | // File recording failed login attempts and IP bans | 88 | ### Privacy |
85 | $GLOBALS['config'['IPBANS_FILENAME'] = 'data/ipbans.php';]('IPBANS_FILENAME']-=-'data/ipbans.php';.html) | 89 | |
86 | 90 | **default_private_links**: Check the private checkbox by default for every new link. | |
87 | // Failed login attempts before being banned | 91 | **hide_public_links**: All links are hidden while logged out. |
88 | $GLOBALS['config'['BAN_AFTER'] = 4;]('BAN_AFTER']-=-4;.html) | 92 | **hide_timestamps**: Timestamps are hidden. |
89 | 93 | ||
90 | // Duration of an IP ban, in seconds (30 minutes) | 94 | ### Feed |
91 | $GLOBALS['config'['BAN_DURATION'] = 1800;]('BAN_DURATION']-=-1800;.html) | 95 | |
92 | 96 | **rss_permalinks**: Enable this to redirect RSS links to Shaarli's permalinks instead of shaared URL. | |
93 | // If set to true, everyone will be able to add, edit and remove links, | 97 | **show_atom**: Display ATOM feed button. |
94 | // as well as change configuration | 98 | |
95 | $GLOBALS['config'['OPEN_SHAARLI'] = false;]('OPEN_SHAARLI']-=-false;.html) | 99 | ### Thumbnail |
96 | 100 | ||
97 | // Do not show link timestamps | 101 | **enable_thumbnails**: Enable or disable thumbnail display. |
98 | $GLOBALS['config'['HIDE_TIMESTAMPS'] = false;]('HIDE_TIMESTAMPS']-=-false;.html) | 102 | **enable_localcache**: Enable or disable local cache. |
99 | 103 | ||
100 | // Set to false to disable local thumbnail cache, e.g. due to limited disk quotas | 104 | ### Redirector |
101 | $GLOBALS['config'['ENABLE_THUMBNAILS'] = true;]('ENABLE_THUMBNAILS']-=-true;.html) | 105 | |
102 | 106 | **url**: Redirector URL, such as `anonym.to`. | |
103 | // Thumbnail cache directory | 107 | **encode_url**: Enable this if the redirector needs encoded URL to work properly. |
104 | $GLOBALS['config'['CACHEDIR'] = 'cache';]('CACHEDIR']-=-'cache';.html) | 108 | |
105 | 109 | ## Configuration file example | |
106 | // Enable feed (rss, atom, dailyrss) cache | 110 | |
107 | $GLOBALS['config'['ENABLE_LOCALCACHE'] = true;]('ENABLE_LOCALCACHE']-=-true;.html) | 111 | ```json |
108 | 112 | <?php /* | |
109 | // Feed cache directory | 113 | { |
110 | $GLOBALS['config'['PAGECACHE'] = 'pagecache';]('PAGECACHE']-=-'pagecache';.html) | 114 | "credentials": { |
111 | 115 | "login": "<login>", | |
112 | // RainTPL cache directory (keep the trailing slash!) | 116 | "hash": "<password hash>", |
113 | $GLOBALS['config'['RAINTPL_TMP'] = 'tmp/';]('RAINTPL_TMP']-=-'tmp/';.html) | 117 | "salt": "<password salt>" |
114 | 118 | }, | |
115 | // RainTPL template directory (keep the trailing slash!) | 119 | "security": { |
116 | $GLOBALS['config'['RAINTPL_TPL'] = 'tpl/';]('RAINTPL_TPL']-=-'tpl/';.html) | 120 | "ban_after": 4, |
117 | 121 | "session_protection_disabled": false, | |
118 | // Whether Shaarli checks for new releases at https://github.com/shaarli/Shaarli | 122 | "ban_duration": 1800, |
119 | $GLOBALS['config'['ENABLE_UPDATECHECK'] = true;]('ENABLE_UPDATECHECK']-=-true;.html) | 123 | "trusted_proxies": [[](.html) |
120 | 124 | "1.2.3.4", | |
121 | // File to store the latest Shaarli version | 125 | "5.6.7.8" |
122 | $GLOBALS['config'['UPDATECHECK_FILENAME'] = 'data/lastupdatecheck.txt';]('UPDATECHECK_FILENAME']-=-'data/lastupdatecheck.txt';.html) | 126 | ] |
123 | 127 | }, | |
124 | // Delay between version checks (requires to be logged in) (24 hours) | 128 | "resources": { |
125 | $GLOBALS['config'['UPDATECHECK_INTERVAL'] = 86400;]('UPDATECHECK_INTERVAL']-=-86400;.html) | 129 | "data_dir": "data", |
126 | 130 | "config": "data\/config.php", | |
127 | // For each link, display a link to an archived version on archive.org | 131 | "datastore": "data\/datastore.php", |
128 | $GLOBALS['config'['ARCHIVE_ORG'] = false;]('ARCHIVE_ORG']-=-false;.html) | 132 | "ban_file": "data\/ipbans.php", |
129 | 133 | "updates": "data\/updates.txt", | |
130 | // The RSS item links point: | 134 | "log": "data\/log.txt", |
131 | // true => directly to the link | 135 | "update_check": "data\/lastupdatecheck.txt", |
132 | // false => to the entry on Shaarli (permalink) | 136 | "raintpl_tmp": "tmp\/", |
133 | $GLOBALS['config'['ENABLE_RSS_PERMALINKS'] = true;]('ENABLE_RSS_PERMALINKS']-=-true;.html) | 137 | "raintpl_tpl": "tpl\/", |
134 | 138 | "thumbnails_cache": "cache", | |
135 | // Hide all links to non-logged users | 139 | "page_cache": "pagecache" |
136 | $GLOBALS['config'['HIDE_PUBLIC_LINKS'] = false;]('HIDE_PUBLIC_LINKS']-=-false;.html) | 140 | }, |
137 | 141 | "general": { | |
138 | $GLOBALS['config'['PUBSUBHUB_URL'] = '';]('PUBSUBHUB_URL']-=-'';.html) | 142 | "check_updates": true, |
139 | 143 | "rss_permalinks": true, | |
140 | // Show an ATOM Feed button next to the Subscribe (RSS) button. | 144 | "links_per_page": 20, |
141 | // ATOM feeds are available at the address ?do=atom regardless of this option. | 145 | "default_private_links": true, |
142 | $GLOBALS['config'['SHOW_ATOM'] = false;]('SHOW_ATOM']-=-false;.html) | 146 | "enable_thumbnails": true, |
143 | 147 | "enable_localcache": true, | |
144 | // Set this to true if the redirector requires encoded URL, false otherwise. | 148 | "check_updates_branch": "stable", |
145 | $GLOBALS['config'['REDIRECTOR_URLENCODE'] = true;]('REDIRECTOR_URLENCODE']-=-true;.html) | 149 | "check_updates_interval": 86400, |
146 | ?> | 150 | "enabled_plugins": [[](.html) |
151 | "markdown", | ||
152 | "wallabag", | ||
153 | "archiveorg" | ||
154 | ], | ||
155 | "timezone": "Europe\/Paris", | ||
156 | "title": "My Shaarli", | ||
157 | "header_link": "?" | ||
158 | }, | ||
159 | "extras": { | ||
160 | "show_atom": false, | ||
161 | "hide_public_links": false, | ||
162 | "hide_timestamps": false, | ||
163 | "open_shaarli": false, | ||
164 | "redirector": "http://anonym.to/?", | ||
165 | "redirector_encode_url": false | ||
166 | }, | ||
167 | "general": { | ||
168 | "header_link": "?", | ||
169 | "links_per_page": 20, | ||
170 | "enabled_plugins": [[](.html) | ||
171 | "markdown", | ||
172 | "wallabag" | ||
173 | ], | ||
174 | "timezone": "Europe\/Paris", | ||
175 | "title": "My Shaarli" | ||
176 | }, | ||
177 | "updates": { | ||
178 | "check_updates": true, | ||
179 | "check_updates_branch": "stable", | ||
180 | "check_updates_interval": 86400 | ||
181 | }, | ||
182 | "feed": { | ||
183 | "rss_permalinks": true, | ||
184 | "show_atom": false | ||
185 | }, | ||
186 | "privacy": { | ||
187 | "default_private_links": true, | ||
188 | "hide_public_links": false, | ||
189 | "hide_timestamps": false | ||
190 | }, | ||
191 | "thumbnail": { | ||
192 | "enable_thumbnails": true, | ||
193 | "enable_localcache": true | ||
194 | }, | ||
195 | "redirector": { | ||
196 | "url": "http://anonym.to/?", | ||
197 | "encode_url": false | ||
198 | }, | ||
199 | "plugins": { | ||
200 | "WALLABAG_URL": "http://demo.wallabag.org", | ||
201 | "WALLABAG_VERSION": "1" | ||
202 | } | ||
203 | } ?> | ||
147 | ``` | 204 | ``` |
148 | 205 | ||
149 | ## Additional configuration | 206 | ## Additional configuration |
150 | 207 | ||
151 | The playvideos plugin may require that you adapt your server's [Content Security Policy](https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md#troubleshooting) configuration to work properly.[](.html) | 208 | The playvideos plugin may require that you adapt your server's |
209 | [Content Security Policy](https://github.com/shaarli/Shaarli/blob/master/plugins/playvideos/README.md#troubleshooting) [](.html) | ||
210 | configuration to work properly.[(.html)]((.html).html) | ||
211 | |||
diff --git a/doc/Shaarli-installation.html b/doc/Shaarli-installation.html deleted file mode 100644 index 487ec1db..00000000 --- a/doc/Shaarli-installation.html +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="utf-8"> | ||
5 | <meta name="generator" content="pandoc"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
7 | <title>Shaarli – Shaarli installation</title> | ||
8 | <style type="text/css">code{white-space: pre;}</style> | ||
9 | <link rel="stylesheet" href="github-markdown.css"> | ||
10 | <!--[if lt IE 9]> | ||
11 | <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> | ||
12 | <![endif]--> | ||
13 | </head> | ||
14 | <body> | ||
15 | <div id="local-sidebar"> | ||
16 | <ul> | ||
17 | <li><a href="Home.html">Home</a></li> | ||
18 | <li>Installation | ||
19 | <ul> | ||
20 | <li><a href="Download.html">Download</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | ||
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | ||
23 | <li><a href="Server-security.html">Server security</a></li> | ||
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | ||
26 | <li><a href="Plugins.html">Plugins</a></li> | ||
27 | </ul></li> | ||
28 | <li><a href="Docker.html">Docker</a></li> | ||
29 | <li><a href="Usage.html">Usage</a> | ||
30 | <ul> | ||
31 | <li><a href="Sharing-button.html">Sharing button</a> (bookmarklet)</li> | ||
32 | <li><a href="Browsing-and-Searching.html">Browsing and Searching</a></li> | ||
33 | <li><a href="Firefox-share.html">Firefox share</a></li> | ||
34 | <li><a href="RSS-feeds.html">RSS feeds</a></li> | ||
35 | </ul></li> | ||
36 | <li>How To | ||
37 | <ul> | ||
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | ||
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | ||
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | ||
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | ||
43 | <li><a href="Datastore-hacks.html">Datastore hacks</a></li> | ||
44 | </ul></li> | ||
45 | <li><a href="Troubleshooting.html">Troubleshooting</a></li> | ||
46 | <li><a href="Development.html">Development</a> | ||
47 | <ul> | ||
48 | <li><a href="GnuPG-signature.html">GnuPG signature</a></li> | ||
49 | <li><a href="Coding-guidelines.html">Coding guidelines</a></li> | ||
50 | <li><a href="Directory-structure.html">Directory structure</a></li> | ||
51 | <li><a href="3rd-party-libraries.html">3rd party libraries</a></li> | ||
52 | <li><a href="Plugin-System.html">Plugin System</a></li> | ||
53 | <li><a href="Release-Shaarli.html">Release Shaarli</a></li> | ||
54 | <li><a href="Security.html">Security</a></li> | ||
55 | <li><a href="Static-analysis.html">Static analysis</a></li> | ||
56 | <li><a href="Theming.html">Theming</a></li> | ||
57 | <li><a href="Unit-tests.html">Unit tests</a></li> | ||
58 | </ul></li> | ||
59 | <li>About | ||
60 | <ul> | ||
61 | <li><a href="FAQ.html">FAQ</a></li> | ||
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | ||
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | ||
65 | </ul> | ||
66 | </div> | ||
67 | <h1 id="shaarli-installation">Shaarli installation</h1> | ||
68 | <p>Once Shaarli is downloaded and installed behind a web server, open it in your favorite browser.</p> | ||
69 | <p><img src="http://i.imgur.com/wuMpDSN.png" alt="install screenshot" /><a href=".html"></a></p> | ||
70 | <p>Setup your Shaarli installation, and it's ready to use!</p> | ||
71 | </body> | ||
72 | </html> | ||
diff --git a/doc/Shaarli-installation.md b/doc/Shaarli-installation.md deleted file mode 100644 index be9726e0..00000000 --- a/doc/Shaarli-installation.md +++ /dev/null | |||
@@ -1,6 +0,0 @@ | |||
1 | #Shaarli installation | ||
2 | Once Shaarli is downloaded and installed behind a web server, open it in your favorite browser. | ||
3 | |||
4 | ![install screenshot](http://i.imgur.com/wuMpDSN.png)[](.html) | ||
5 | |||
6 | Setup your Shaarli installation, and it's ready to use! | ||
diff --git a/doc/Sharing-button.html b/doc/Sharing-button.html index 3770d8ad..93710efe 100644 --- a/doc/Sharing-button.html +++ b/doc/Sharing-button.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/Static-analysis.html b/doc/Static-analysis.html index 86cb4696..d964e917 100644 --- a/doc/Static-analysis.html +++ b/doc/Static-analysis.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/TODO.html b/doc/TODO.html deleted file mode 100644 index 04224dbf..00000000 --- a/doc/TODO.html +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="utf-8"> | ||
5 | <meta name="generator" content="pandoc"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
7 | <title>Shaarli – TODO</title> | ||
8 | <style type="text/css">code{white-space: pre;}</style> | ||
9 | <link rel="stylesheet" href="github-markdown.css"> | ||
10 | <!--[if lt IE 9]> | ||
11 | <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> | ||
12 | <![endif]--> | ||
13 | </head> | ||
14 | <body> | ||
15 | <div id="local-sidebar"> | ||
16 | <ul> | ||
17 | <li><a href="Home.html">Home</a></li> | ||
18 | <li>Installation | ||
19 | <ul> | ||
20 | <li><a href="Download.html">Download</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | ||
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | ||
23 | <li><a href="Server-security.html">Server security</a></li> | ||
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | ||
26 | <li><a href="Plugins.html">Plugins</a></li> | ||
27 | </ul></li> | ||
28 | <li><a href="Docker.html">Docker</a></li> | ||
29 | <li><a href="Usage.html">Usage</a> | ||
30 | <ul> | ||
31 | <li><a href="Sharing-button.html">Sharing button</a> (bookmarklet)</li> | ||
32 | <li><a href="Browsing-and-Searching.html">Browsing and Searching</a></li> | ||
33 | <li><a href="Firefox-share.html">Firefox share</a></li> | ||
34 | <li><a href="RSS-feeds.html">RSS feeds</a></li> | ||
35 | </ul></li> | ||
36 | <li>How To | ||
37 | <ul> | ||
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | ||
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | ||
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | ||
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | ||
43 | <li><a href="Datastore-hacks.html">Datastore hacks</a></li> | ||
44 | </ul></li> | ||
45 | <li><a href="Troubleshooting.html">Troubleshooting</a></li> | ||
46 | <li><a href="Development.html">Development</a> | ||
47 | <ul> | ||
48 | <li><a href="GnuPG-signature.html">GnuPG signature</a></li> | ||
49 | <li><a href="Coding-guidelines.html">Coding guidelines</a></li> | ||
50 | <li><a href="Directory-structure.html">Directory structure</a></li> | ||
51 | <li><a href="3rd-party-libraries.html">3rd party libraries</a></li> | ||
52 | <li><a href="Plugin-System.html">Plugin System</a></li> | ||
53 | <li><a href="Release-Shaarli.html">Release Shaarli</a></li> | ||
54 | <li><a href="Security.html">Security</a></li> | ||
55 | <li><a href="Static-analysis.html">Static analysis</a></li> | ||
56 | <li><a href="Theming.html">Theming</a></li> | ||
57 | <li><a href="Unit-tests.html">Unit tests</a></li> | ||
58 | </ul></li> | ||
59 | <li>About | ||
60 | <ul> | ||
61 | <li><a href="FAQ.html">FAQ</a></li> | ||
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | ||
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | ||
65 | </ul> | ||
66 | </div> | ||
67 | <h1 id="todo">TODO</h1> | ||
68 | <ul> | ||
69 | <li>add more screenshots</li> | ||
70 | <li>improve developer documentation: storage architecture, classes and functions, security handling...</li> | ||
71 | <li>add server configuration examples: lighthttpd</li> | ||
72 | </ul> | ||
73 | </body> | ||
74 | </html> | ||
diff --git a/doc/TODO.md b/doc/TODO.md deleted file mode 100644 index fb72fd57..00000000 --- a/doc/TODO.md +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #TODO | ||
2 | * add more screenshots | ||
3 | * improve developer documentation: storage architecture, classes and functions, security handling... | ||
4 | * add server configuration examples: lighthttpd | ||
diff --git a/doc/Theming.html b/doc/Theming.html index 27c5d863..13e6acf0 100644 --- a/doc/Theming.html +++ b/doc/Theming.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -132,6 +130,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
132 | <li><a href="https://github.com/kalvn/shaarli-blocks">kalvn/shaarli-blocks</a> - A template/theme for Shaarli<a href=".html"></a></li> | 130 | <li><a href="https://github.com/kalvn/shaarli-blocks">kalvn/shaarli-blocks</a> - A template/theme for Shaarli<a href=".html"></a></li> |
133 | <li><a href="https://github.com/kalvn/Shaarli-Material">kalvn/Shaarli-Material</a> - A theme (template) based on Google's Material Design for Shaarli, the superfast delicious clone.<a href=".html"></a></li> | 131 | <li><a href="https://github.com/kalvn/Shaarli-Material">kalvn/Shaarli-Material</a> - A theme (template) based on Google's Material Design for Shaarli, the superfast delicious clone.<a href=".html"></a></li> |
134 | <li><a href="https://github.com/misterair/limonade">misterair/Limonade</a> - A fork of (legacy) Shaarli with a new template<a href=".html"></a></li> | 132 | <li><a href="https://github.com/misterair/limonade">misterair/Limonade</a> - A fork of (legacy) Shaarli with a new template<a href=".html"></a></li> |
133 | <li><a href="https://github.com/mrjovanovic/serious-theme-shaarli">mrjovanovic/serious-theme-shaarli</a> - A serious theme for SHaarli.<a href=".html"></a></li> | ||
135 | <li><a href="https://github.com/Vinm/Blue-theme-for-Shaarli">Vinm/Blue-theme-for Shaarli</a> - A template/theme for Shaarli (<a href="https://github.com/Vinm/Blue-theme-for-Shaarli/issues/2">unmaintained</a>, compatibility unknown)<a href=".html"></a></li> | 134 | <li><a href="https://github.com/Vinm/Blue-theme-for-Shaarli">Vinm/Blue-theme-for Shaarli</a> - A template/theme for Shaarli (<a href="https://github.com/Vinm/Blue-theme-for-Shaarli/issues/2">unmaintained</a>, compatibility unknown)<a href=".html"></a></li> |
136 | <li><a href="https://github.com/vivienhaese/shaarlitheme">vivienhaese/shaarlitheme</a> - A Shaarli fork meant to be run in an openshift instance<a href=".html"></a></li> | 135 | <li><a href="https://github.com/vivienhaese/shaarlitheme">vivienhaese/shaarlitheme</a> - A Shaarli fork meant to be run in an openshift instance<a href=".html"></a></li> |
137 | </ul> | 136 | </ul> |
@@ -142,17 +141,17 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
142 | <li>user sites are enabled, e.g. <code>/home/user/public_html/somedir</code> is served as <code>http://localhost/~user/somedir</code></li> | 141 | <li>user sites are enabled, e.g. <code>/home/user/public_html/somedir</code> is served as <code>http://localhost/~user/somedir</code></li> |
143 | <li><code>http</code> is the name of the Apache user</li> | 142 | <li><code>http</code> is the name of the Apache user</li> |
144 | </ul> | 143 | </ul> |
145 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">cd</span> ~/public_html | 144 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> ~/public_html |
146 | 145 | ||
147 | <span class="co"># clone repositories</span> | 146 | <span class="co"># clone repositories</span> |
148 | $ <span class="kw">git</span> clone https://github.com/shaarli/Shaarli.git shaarli | 147 | $ <span class="fu">git</span> clone https://github.com/shaarli/Shaarli.git shaarli |
149 | $ <span class="kw">pushd</span> shaarli/tpl | 148 | $ <span class="bu">pushd</span> shaarli/tpl |
150 | $ <span class="kw">git</span> clone https://github.com/alexisju/albinomouse-template.git | 149 | $ <span class="fu">git</span> clone https://github.com/alexisju/albinomouse-template.git |
151 | $ <span class="kw">popd</span> | 150 | $ <span class="bu">popd</span> |
152 | 151 | ||
153 | <span class="co"># set access rights for Apache</span> | 152 | <span class="co"># set access rights for Apache</span> |
154 | $ <span class="kw">chgrp</span> -R http shaarli | 153 | $ <span class="fu">chgrp</span> -R http shaarli |
155 | $ <span class="kw">chmod</span> g+rwx shaarli shaarli/cache shaarli/data shaarli/pagecache shaarli/tmp</code></pre></div> | 154 | $ <span class="fu">chmod</span> g+rwx shaarli shaarli/cache shaarli/data shaarli/pagecache shaarli/tmp</code></pre></div> |
156 | <p>Get config written:</p> | 155 | <p>Get config written:</p> |
157 | <ul> | 156 | <ul> |
158 | <li>go to the freshly installed site</li> | 157 | <li>go to the freshly installed site</li> |
@@ -161,6 +160,6 @@ $ <span class="kw">chmod</span> g+rwx shaarli shaarli/cache shaarli/data shaarli | |||
161 | </ul> | 160 | </ul> |
162 | <p>Edit Shaarli's <a href="configuration%7CShaarli-configuration.html">configuration|Shaarli configuration</a>:</p> | 161 | <p>Edit Shaarli's <a href="configuration%7CShaarli-configuration.html">configuration|Shaarli configuration</a>:</p> |
163 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># the file should be owned by Apache, thus not writeable => sudo</span> | 162 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># the file should be owned by Apache, thus not writeable => sudo</span> |
164 | $ <span class="kw">sudo</span> sed -i s=tpl=tpl/albinomouse-template=g shaarli/data/config.php</code></pre></div> | 163 | $ <span class="fu">sudo</span> sed -i s=tpl=tpl/albinomouse-template=g shaarli/data/config.php</code></pre></div> |
165 | </body> | 164 | </body> |
166 | </html> | 165 | </html> |
diff --git a/doc/Theming.md b/doc/Theming.md index 9dfdcf9f..7fb8d927 100644 --- a/doc/Theming.md +++ b/doc/Theming.md | |||
@@ -28,6 +28,7 @@ $GLOBALS['config'['RAINTPL_TPL'] = 'tpl/my-template/';]('RAINTPL_TPL']-=-'tpl/my | |||
28 | - [kalvn/shaarli-blocks](https://github.com/kalvn/shaarli-blocks) - A template/theme for Shaarli[](.html) | 28 | - [kalvn/shaarli-blocks](https://github.com/kalvn/shaarli-blocks) - A template/theme for Shaarli[](.html) |
29 | - [kalvn/Shaarli-Material](https://github.com/kalvn/Shaarli-Material) - A theme (template) based on Google's Material Design for Shaarli, the superfast delicious clone.[](.html) | 29 | - [kalvn/Shaarli-Material](https://github.com/kalvn/Shaarli-Material) - A theme (template) based on Google's Material Design for Shaarli, the superfast delicious clone.[](.html) |
30 | - [misterair/Limonade](https://github.com/misterair/limonade) - A fork of (legacy) Shaarli with a new template[](.html) | 30 | - [misterair/Limonade](https://github.com/misterair/limonade) - A fork of (legacy) Shaarli with a new template[](.html) |
31 | - [mrjovanovic/serious-theme-shaarli](https://github.com/mrjovanovic/serious-theme-shaarli) - A serious theme for SHaarli.[](.html) | ||
31 | - [Vinm/Blue-theme-for Shaarli](https://github.com/Vinm/Blue-theme-for-Shaarli) - A template/theme for Shaarli ([unmaintained](https://github.com/Vinm/Blue-theme-for-Shaarli/issues/2), compatibility unknown)[](.html) | 32 | - [Vinm/Blue-theme-for Shaarli](https://github.com/Vinm/Blue-theme-for-Shaarli) - A template/theme for Shaarli ([unmaintained](https://github.com/Vinm/Blue-theme-for-Shaarli/issues/2), compatibility unknown)[](.html) |
32 | - [vivienhaese/shaarlitheme](https://github.com/vivienhaese/shaarlitheme) - A Shaarli fork meant to be run in an openshift instance[](.html) | 33 | - [vivienhaese/shaarlitheme](https://github.com/vivienhaese/shaarlitheme) - A Shaarli fork meant to be run in an openshift instance[](.html) |
33 | 34 | ||
diff --git a/doc/Troubleshooting.html b/doc/Troubleshooting.html index 3de8ad1e..ed1c6f09 100644 --- a/doc/Troubleshooting.html +++ b/doc/Troubleshooting.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -132,6 +130,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
132 | <ul> | 130 | <ul> |
133 | <li>false (default): real referer</li> | 131 | <li>false (default): real referer</li> |
134 | <li>true: spoof referer (use target URI as referer)</li> | 132 | <li>true: spoof referer (use target URI as referer)</li> |
133 | <li>known to break some functionality in Shaarli</li> | ||
135 | </ul> | 134 | </ul> |
136 | <p><code>network.http.referer.trimmingPolicy</code> - trim the URI not to send a full Referer</p> | 135 | <p><code>network.http.referer.trimmingPolicy</code> - trim the URI not to send a full Referer</p> |
137 | <ul> | 136 | <ul> |
@@ -140,7 +139,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
140 | <li>2: scheme+host+port</li> | 139 | <li>2: scheme+host+port</li> |
141 | </ul> | 140 | </ul> |
142 | <h3 id="firefox-localhost-and-redirections">Firefox, localhost and redirections</h3> | 141 | <h3 id="firefox-localhost-and-redirections">Firefox, localhost and redirections</h3> |
143 | <p><code>localhost</code> is not a proper Fully Qualified Domain Name (FQDN); if Firefox has been set up to spoof referers, or anly accept requests from the same base domain/host, Shaarli redirections will not work properly.</p> | 142 | <p><code>localhost</code> is not a proper Fully Qualified Domain Name (FQDN); if Firefox has been set up to spoof referers, or only accept requests from the same base domain/host, Shaarli redirections will not work properly.</p> |
144 | <p>To solve this, assign a local domain to your host, e.g.</p> | 143 | <p>To solve this, assign a local domain to your host, e.g.</p> |
145 | <pre><code>127.0.0.1 localhost desktop localhost.lan | 144 | <pre><code>127.0.0.1 localhost desktop localhost.lan |
146 | ::1 localhost desktop localhost.lan</code></pre> | 145 | ::1 localhost desktop localhost.lan</code></pre> |
diff --git a/doc/Troubleshooting.md b/doc/Troubleshooting.md index e91fe846..8e30fce5 100644 --- a/doc/Troubleshooting.md +++ b/doc/Troubleshooting.md | |||
@@ -25,6 +25,7 @@ HTTP settings are available by browsing `about:config`, here are the available s | |||
25 | `network.http.referer.spoofSource` - Referer spoofing (~faking) | 25 | `network.http.referer.spoofSource` - Referer spoofing (~faking) |
26 | - false (default): real referer | 26 | - false (default): real referer |
27 | - true: spoof referer (use target URI as referer) | 27 | - true: spoof referer (use target URI as referer) |
28 | - known to break some functionality in Shaarli | ||
28 | 29 | ||
29 | `network.http.referer.trimmingPolicy` - trim the URI not to send a full Referer | 30 | `network.http.referer.trimmingPolicy` - trim the URI not to send a full Referer |
30 | - 0 (default): send full URI | 31 | - 0 (default): send full URI |
@@ -32,7 +33,7 @@ HTTP settings are available by browsing `about:config`, here are the available s | |||
32 | - 2: scheme+host+port | 33 | - 2: scheme+host+port |
33 | 34 | ||
34 | ### Firefox, localhost and redirections | 35 | ### Firefox, localhost and redirections |
35 | `localhost` is not a proper Fully Qualified Domain Name (FQDN); if Firefox has been set up to spoof referers, or anly accept requests from the same base domain/host, Shaarli redirections will not work properly. | 36 | `localhost` is not a proper Fully Qualified Domain Name (FQDN); if Firefox has been set up to spoof referers, or only accept requests from the same base domain/host, Shaarli redirections will not work properly. |
36 | 37 | ||
37 | To solve this, assign a local domain to your host, e.g. | 38 | To solve this, assign a local domain to your host, e.g. |
38 | ``` | 39 | ``` |
diff --git a/doc/Unit-tests.html b/doc/Unit-tests.html index 7934e346..266fd33a 100644 --- a/doc/Unit-tests.html +++ b/doc/Unit-tests.html | |||
@@ -52,13 +52,13 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
52 | <div id="local-sidebar"> | 52 | <div id="local-sidebar"> |
53 | <ul> | 53 | <ul> |
54 | <li><a href="Home.html">Home</a></li> | 54 | <li><a href="Home.html">Home</a></li> |
55 | <li>Installation | 55 | <li>Setup |
56 | <ul> | 56 | <ul> |
57 | <li><a href="Download.html">Download</a></li> | 57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
58 | <li><a href="Server-requirements.html">Server requirements</a></li> | 59 | <li><a href="Server-requirements.html">Server requirements</a></li> |
59 | <li><a href="Server-configuration.html">Server configuration</a></li> | 60 | <li><a href="Server-configuration.html">Server configuration</a></li> |
60 | <li><a href="Server-security.html">Server security</a></li> | 61 | <li><a href="Server-security.html">Server security</a></li> |
61 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
63 | <li><a href="Plugins.html">Plugins</a></li> | 63 | <li><a href="Plugins.html">Plugins</a></li> |
64 | </ul></li> | 64 | </ul></li> |
@@ -73,7 +73,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
73 | <li>How To | 73 | <li>How To |
74 | <ul> | 74 | <ul> |
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
76 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
77 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
78 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
79 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -97,7 +96,6 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
97 | <ul> | 96 | <ul> |
98 | <li><a href="FAQ.html">FAQ</a></li> | 97 | <li><a href="FAQ.html">FAQ</a></li> |
99 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
100 | <li><a href="TODO.html">TODO</a></li> | ||
101 | </ul></li> | 99 | </ul></li> |
102 | </ul> | 100 | </ul> |
103 | </div> | 101 | </div> |
@@ -111,87 +109,87 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf | |||
111 | </ul> | 109 | </ul> |
112 | <h4 id="sample-usage">Sample usage</h4> | 110 | <h4 id="sample-usage">Sample usage</h4> |
113 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># system-wide version</span> | 111 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># system-wide version</span> |
114 | $ <span class="kw">composer</span> install | 112 | $ <span class="ex">composer</span> install |
115 | $ <span class="kw">composer</span> update | 113 | $ <span class="ex">composer</span> update |
116 | 114 | ||
117 | <span class="co"># local version</span> | 115 | <span class="co"># local version</span> |
118 | $ <span class="kw">php</span> composer.phar self-update | 116 | $ <span class="ex">php</span> composer.phar self-update |
119 | $ <span class="kw">php</span> composer.phar install | 117 | $ <span class="ex">php</span> composer.phar install |
120 | $ <span class="kw">php</span> composer.phar update</code></pre></div> | 118 | $ <span class="ex">php</span> composer.phar update</code></pre></div> |
121 | <h4 id="install-shaarli-dev-dependencies">Install Shaarli dev dependencies</h4> | 119 | <h4 id="install-shaarli-dev-dependencies">Install Shaarli dev dependencies</h4> |
122 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">cd</span> /path/to/shaarli | 120 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli |
123 | $ <span class="kw">composer</span> update</code></pre></div> | 121 | $ <span class="ex">composer</span> update</code></pre></div> |
124 | <h4 id="install-and-enable-xdebug-to-generate-phpunit-coverage-reports">Install and enable Xdebug to generate PHPUnit coverage reports</h4> | 122 | <h4 id="install-and-enable-xdebug-to-generate-phpunit-coverage-reports">Install and enable Xdebug to generate PHPUnit coverage reports</h4> |
125 | <p>For Debian-based distros:</p> | 123 | <p>For Debian-based distros:</p> |
126 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">aptitude</span> install php5-xdebug</code></pre></div> | 124 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">aptitude</span> install php5-xdebug</code></pre></div> |
127 | <p>For ArchLinux:</p> | 125 | <p>For ArchLinux:</p> |
128 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">pacman</span> -S xdebug</code></pre></div> | 126 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">pacman</span> -S xdebug</code></pre></div> |
129 | <p>Then add the following line to <code>/etc/php/php.ini</code>:</p> | 127 | <p>Then add the following line to <code>/etc/php/php.ini</code>:</p> |
130 | <div class="sourceCode"><pre class="sourceCode ini"><code class="sourceCode ini"><span class="dt">zend_extension</span><span class="ot">=</span><span class="st">xdebug.so</span></code></pre></div> | 128 | <div class="sourceCode"><pre class="sourceCode ini"><code class="sourceCode ini"><span class="dt">zend_extension</span><span class="ot">=</span><span class="st">xdebug.so</span></code></pre></div> |
131 | <h4 id="run-unit-tests">Run unit tests</h4> | 129 | <h4 id="run-unit-tests">Run unit tests</h4> |
132 | <p>Successful test suite:</p> | 130 | <p>Successful test suite:</p> |
133 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">make</span> test | 131 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">make</span> test |
134 | 132 | ||
135 | <span class="kw">-------</span> | 133 | <span class="ex">-------</span> |
136 | <span class="kw">PHPUNIT</span> | 134 | <span class="ex">PHPUNIT</span> |
137 | <span class="kw">-------</span> | 135 | <span class="ex">-------</span> |
138 | <span class="kw">PHPUnit</span> 4.6.9 by Sebastian Bergmann and contributors. | 136 | <span class="ex">PHPUnit</span> 4.6.9 by Sebastian Bergmann and contributors. |
139 | 137 | ||
140 | <span class="kw">Configuration</span> read from /home/virtualtam/public_html/shaarli/phpunit.xml | 138 | <span class="ex">Configuration</span> read from /home/virtualtam/public_html/shaarli/phpunit.xml |
141 | 139 | ||
142 | <span class="kw">....................................</span> | 140 | <span class="ex">....................................</span> |
143 | 141 | ||
144 | <span class="kw">Time</span>: 759 ms, Memory: 8.25Mb | 142 | <span class="ex">Time</span>: 759 ms, Memory: 8.25Mb |
145 | 143 | ||
146 | <span class="kw">OK</span> (36 tests, 65 assertions)</code></pre></div> | 144 | <span class="ex">OK</span> (36 tests, 65 assertions)</code></pre></div> |
147 | <p>Test suite with failures and errors:</p> | 145 | <p>Test suite with failures and errors:</p> |
148 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">make</span> test | 146 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">make</span> test |
149 | <span class="kw">-------</span> | 147 | <span class="ex">-------</span> |
150 | <span class="kw">PHPUNIT</span> | 148 | <span class="ex">PHPUNIT</span> |
151 | <span class="kw">-------</span> | 149 | <span class="ex">-------</span> |
152 | <span class="kw">PHPUnit</span> 4.6.9 by Sebastian Bergmann and contributors. | 150 | <span class="ex">PHPUnit</span> 4.6.9 by Sebastian Bergmann and contributors. |
153 | 151 | ||
154 | <span class="kw">Configuration</span> read from /home/virtualtam/public_html/shaarli/phpunit.xml | 152 | <span class="ex">Configuration</span> read from /home/virtualtam/public_html/shaarli/phpunit.xml |
155 | 153 | ||
156 | <span class="kw">E..FF...............................</span> | 154 | <span class="ex">E..FF...............................</span> |
157 | 155 | ||
158 | <span class="kw">Time</span>: 802 ms, Memory: 8.25Mb | 156 | <span class="ex">Time</span>: 802 ms, Memory: 8.25Mb |
159 | 157 | ||
160 | <span class="kw">There</span> was 1 error: | 158 | <span class="ex">There</span> was 1 error: |
161 | 159 | ||
162 | <span class="kw">1</span>) <span class="kw">LinkDBTest</span>::testConstructLoggedIn | 160 | <span class="ex">1</span>) <span class="ex">LinkDBTest</span>::testConstructLoggedIn |
163 | <span class="kw">Missing</span> argument 2 for LinkDB::__construct(), <span class="kw">called</span> in /home/virtualtam/public_html/shaarli/tests/Link\ | 161 | <span class="ex">Missing</span> argument 2 for LinkDB::__construct(), <span class="ex">called</span> in /home/virtualtam/public_html/shaarli/tests/Link\ |
164 | DBTest.php on line 79 and defined | 162 | DBTest.php on line 79 and defined |
165 | 163 | ||
166 | <span class="kw">/home/virtualtam/public_html/shaarli/application</span>/LinkDB.php:<span class="kw">58</span> | 164 | <span class="ex">/home/virtualtam/public_html/shaarli/application</span>/LinkDB.php:<span class="ex">58</span> |
167 | <span class="kw">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="kw">79</span> | 165 | <span class="ex">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="ex">79</span> |
168 | 166 | ||
169 | <span class="kw">--</span> | 167 | <span class="ex">--</span> |
170 | 168 | ||
171 | <span class="kw">There</span> were 2 failures: | 169 | <span class="ex">There</span> were 2 failures: |
172 | 170 | ||
173 | <span class="kw">1</span>) <span class="kw">LinkDBTest</span>::testCheckDBNew | 171 | <span class="ex">1</span>) <span class="ex">LinkDBTest</span>::testCheckDBNew |
174 | <span class="kw">Failed</span> asserting that two strings are equal. | 172 | <span class="ex">Failed</span> asserting that two strings are equal. |
175 | <span class="kw">---</span> Expected | 173 | <span class="ex">---</span> Expected |
176 | <span class="kw">+++</span> Actual | 174 | <span class="ex">+++</span> Actual |
177 | <span class="kw">@@</span> @@ | 175 | <span class="ex">@@</span> @@ |
178 | <span class="kw">-</span><span class="st">'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'</span> | 176 | <span class="ex">-</span><span class="st">'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'</span> |
179 | <span class="kw">+</span><span class="st">'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'</span> | 177 | <span class="ex">+</span><span class="st">'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'</span> |
180 | 178 | ||
181 | <span class="kw">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="kw">121</span> | 179 | <span class="ex">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="ex">121</span> |
182 | 180 | ||
183 | <span class="kw">2</span>) <span class="kw">LinkDBTest</span>::testCheckDBLoad | 181 | <span class="ex">2</span>) <span class="ex">LinkDBTest</span>::testCheckDBLoad |
184 | <span class="kw">Failed</span> asserting that two strings are equal. | 182 | <span class="ex">Failed</span> asserting that two strings are equal. |
185 | <span class="kw">---</span> Expected | 183 | <span class="ex">---</span> Expected |
186 | <span class="kw">+++</span> Actual | 184 | <span class="ex">+++</span> Actual |
187 | <span class="kw">@@</span> @@ | 185 | <span class="ex">@@</span> @@ |
188 | <span class="kw">-</span><span class="st">'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'</span> | 186 | <span class="ex">-</span><span class="st">'e3edea8ea7bb50be4bcb404df53fbb4546a7156e'</span> |
189 | <span class="kw">+</span><span class="st">'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'</span> | 187 | <span class="ex">+</span><span class="st">'85eab0c610d4f68025f6ed6e6b6b5fabd4b55834'</span> |
190 | 188 | ||
191 | <span class="kw">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="kw">133</span> | 189 | <span class="ex">/home/virtualtam/public_html/shaarli/tests</span>/LinkDBTest.php:<span class="ex">133</span> |
192 | 190 | ||
193 | <span class="kw">FAILURES</span>! | 191 | <span class="ex">FAILURES</span>! |
194 | <span class="kw">Tests</span>: 36, Assertions: 63, Errors: 1, Failures: 2.</code></pre></div> | 192 | <span class="ex">Tests</span>: 36, Assertions: 63, Errors: 1, Failures: 2.</code></pre></div> |
195 | <h4 id="test-results-and-coverage">Test results and coverage</h4> | 193 | <h4 id="test-results-and-coverage">Test results and coverage</h4> |
196 | <p>By default, PHPUnit will run all suitable tests found under the <code>tests</code> directory.</p> | 194 | <p>By default, PHPUnit will run all suitable tests found under the <code>tests</code> directory.</p> |
197 | <p>Each test has 3 possible outcomes:</p> | 195 | <p>Each test has 3 possible outcomes:</p> |
diff --git a/doc/Upgrade-and-migration.html b/doc/Upgrade-and-migration.html new file mode 100644 index 00000000..a5b041d5 --- /dev/null +++ b/doc/Upgrade-and-migration.html | |||
@@ -0,0 +1,242 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="utf-8"> | ||
5 | <meta name="generator" content="pandoc"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
7 | <title>Shaarli – Upgrade and migration</title> | ||
8 | <style type="text/css">code{white-space: pre;}</style> | ||
9 | <style type="text/css"> | ||
10 | div.sourceCode { overflow-x: auto; } | ||
11 | table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode { | ||
12 | margin: 0; padding: 0; vertical-align: baseline; border: none; } | ||
13 | table.sourceCode { width: 100%; line-height: 100%; } | ||
14 | td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; } | ||
15 | td.sourceCode { padding-left: 5px; } | ||
16 | code > span.kw { color: #007020; font-weight: bold; } /* Keyword */ | ||
17 | code > span.dt { color: #902000; } /* DataType */ | ||
18 | code > span.dv { color: #40a070; } /* DecVal */ | ||
19 | code > span.bn { color: #40a070; } /* BaseN */ | ||
20 | code > span.fl { color: #40a070; } /* Float */ | ||
21 | code > span.ch { color: #4070a0; } /* Char */ | ||
22 | code > span.st { color: #4070a0; } /* String */ | ||
23 | code > span.co { color: #60a0b0; font-style: italic; } /* Comment */ | ||
24 | code > span.ot { color: #007020; } /* Other */ | ||
25 | code > span.al { color: #ff0000; font-weight: bold; } /* Alert */ | ||
26 | code > span.fu { color: #06287e; } /* Function */ | ||
27 | code > span.er { color: #ff0000; font-weight: bold; } /* Error */ | ||
28 | code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ | ||
29 | code > span.cn { color: #880000; } /* Constant */ | ||
30 | code > span.sc { color: #4070a0; } /* SpecialChar */ | ||
31 | code > span.vs { color: #4070a0; } /* VerbatimString */ | ||
32 | code > span.ss { color: #bb6688; } /* SpecialString */ | ||
33 | code > span.im { } /* Import */ | ||
34 | code > span.va { color: #19177c; } /* Variable */ | ||
35 | code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | ||
36 | code > span.op { color: #666666; } /* Operator */ | ||
37 | code > span.bu { } /* BuiltIn */ | ||
38 | code > span.ex { } /* Extension */ | ||
39 | code > span.pp { color: #bc7a00; } /* Preprocessor */ | ||
40 | code > span.at { color: #7d9029; } /* Attribute */ | ||
41 | code > span.do { color: #ba2121; font-style: italic; } /* Documentation */ | ||
42 | code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ | ||
43 | code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ | ||
44 | code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ | ||
45 | </style> | ||
46 | <link rel="stylesheet" href="github-markdown.css"> | ||
47 | <!--[if lt IE 9]> | ||
48 | <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> | ||
49 | <![endif]--> | ||
50 | </head> | ||
51 | <body> | ||
52 | <div id="local-sidebar"> | ||
53 | <ul> | ||
54 | <li><a href="Home.html">Home</a></li> | ||
55 | <li>Setup | ||
56 | <ul> | ||
57 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> | ||
58 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
59 | <li><a href="Server-requirements.html">Server requirements</a></li> | ||
60 | <li><a href="Server-configuration.html">Server configuration</a></li> | ||
61 | <li><a href="Server-security.html">Server security</a></li> | ||
62 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | ||
63 | <li><a href="Plugins.html">Plugins</a></li> | ||
64 | </ul></li> | ||
65 | <li><a href="Docker.html">Docker</a></li> | ||
66 | <li><a href="Usage.html">Usage</a> | ||
67 | <ul> | ||
68 | <li><a href="Sharing-button.html">Sharing button</a> (bookmarklet)</li> | ||
69 | <li><a href="Browsing-and-Searching.html">Browsing and Searching</a></li> | ||
70 | <li><a href="Firefox-share.html">Firefox share</a></li> | ||
71 | <li><a href="RSS-feeds.html">RSS feeds</a></li> | ||
72 | </ul></li> | ||
73 | <li>How To | ||
74 | <ul> | ||
75 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | ||
76 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | ||
77 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | ||
78 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | ||
79 | <li><a href="Datastore-hacks.html">Datastore hacks</a></li> | ||
80 | </ul></li> | ||
81 | <li><a href="Troubleshooting.html">Troubleshooting</a></li> | ||
82 | <li><a href="Development.html">Development</a> | ||
83 | <ul> | ||
84 | <li><a href="GnuPG-signature.html">GnuPG signature</a></li> | ||
85 | <li><a href="Coding-guidelines.html">Coding guidelines</a></li> | ||
86 | <li><a href="Directory-structure.html">Directory structure</a></li> | ||
87 | <li><a href="3rd-party-libraries.html">3rd party libraries</a></li> | ||
88 | <li><a href="Plugin-System.html">Plugin System</a></li> | ||
89 | <li><a href="Release-Shaarli.html">Release Shaarli</a></li> | ||
90 | <li><a href="Security.html">Security</a></li> | ||
91 | <li><a href="Static-analysis.html">Static analysis</a></li> | ||
92 | <li><a href="Theming.html">Theming</a></li> | ||
93 | <li><a href="Unit-tests.html">Unit tests</a></li> | ||
94 | </ul></li> | ||
95 | <li>About | ||
96 | <ul> | ||
97 | <li><a href="FAQ.html">FAQ</a></li> | ||
98 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | ||
99 | </ul></li> | ||
100 | </ul> | ||
101 | </div> | ||
102 | <h1 id="upgrade-and-migration">Upgrade and migration</h1> | ||
103 | <h2 id="preparation">Preparation</h2> | ||
104 | <h3 id="backup-your-data">Backup your data</h3> | ||
105 | <p>Shaarli stores all user data under the <code>data</code> directory:</p> | ||
106 | <ul> | ||
107 | <li><code>data/config.php</code> - main configuration file</li> | ||
108 | <li><code>data/datastore.php</code> - bookmarked links</li> | ||
109 | <li><code>data/ipbans.php</code> - banned IP addresses</li> | ||
110 | </ul> | ||
111 | <p>See <a href="Shaarli-configuration.html">Shaarli configuration</a> for more information about Shaarli resources.</p> | ||
112 | <p>It is recommended to backup this repository <em>before</em> starting updating/upgrading Shaarli:</p> | ||
113 | <ul> | ||
114 | <li>users with SSH access: copy or archive the directory to a temporary location</li> | ||
115 | <li>users with FTP access: download a local copy of your Shaarli installation using your favourite client</li> | ||
116 | </ul> | ||
117 | <h3 id="migrating-data-from-a-previous-installation">Migrating data from a previous installation</h3> | ||
118 | <p>As all user data is kept under <code>data</code>, this is the only directory you need to worry about when migrating to a new installation, which corresponds to the following steps:</p> | ||
119 | <ul> | ||
120 | <li>backup the <code>data</code> directory</li> | ||
121 | <li>install or update Shaarli: | ||
122 | <ul> | ||
123 | <li>fresh installation - see <a href="Download-and-installation.html">Download and installation</a></li> | ||
124 | <li>update - see the following sections</li> | ||
125 | </ul></li> | ||
126 | <li>check or restore the <code>data</code> directory</li> | ||
127 | </ul> | ||
128 | <h2 id="upgrading-from-release-archives">Upgrading from release archives</h2> | ||
129 | <p>All tagged revisions can be downloaded as tarballs or ZIP archives from the <a href="https://github.com/shaarli/Shaarli/releases">releases</a> page.<a href=".html"></a></p> | ||
130 | <p>We <em>recommend</em> using the releases from the <code>stable</code> branch, which are available as:</p> | ||
131 | <ul> | ||
132 | <li>gzipped tarball - <a href="https://github.com/shaarli/Shaarli/archive/stable.tar.gz" class="uri">https://github.com/shaarli/Shaarli/archive/stable.tar.gz</a></li> | ||
133 | <li>ZIP archive - <a href="https://github.com/shaarli/Shaarli/archive/stable.zip" class="uri">https://github.com/shaarli/Shaarli/archive/stable.zip</a></li> | ||
134 | </ul> | ||
135 | <p>Once downloaded, extract the archive locally and update your remote installation (e.g. via FTP) -be sure you keep the contents of the <code>data</code> directory!</p> | ||
136 | <p>After upgrading, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to <code>data/config.php</code> (see <a href="Shaarli-configuration.html">Shaarli configuration</a> for more details).</p> | ||
137 | <h2 id="upgrading-with-git">Upgrading with Git</h2> | ||
138 | <h3 id="updating-a-community-shaarli">Updating a community Shaarli</h3> | ||
139 | <p>If you have installed Shaarli from the <a href="Download#clone-with-git-recommended">community Git repository</a>, simply <a href="https://www.git-scm.com/docs/git-pull">pull new changes</a> from your local clone:<a href=".html"></a></p> | ||
140 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli | ||
141 | $ <span class="fu">git</span> pull | ||
142 | |||
143 | <span class="ex">From</span> github.com:shaarli/Shaarli | ||
144 | <span class="ex">*</span> branch master -<span class="op">></span> FETCH_HEAD | ||
145 | <span class="ex">Updating</span> ebd67c6..521f0e6 | ||
146 | <span class="ex">Fast-forward</span> | ||
147 | <span class="ex">application/Url.php</span> <span class="kw">|</span> <span class="ex">1</span> + | ||
148 | <span class="ex">shaarli_version.php</span> <span class="kw">|</span> <span class="ex">2</span> +- | ||
149 | <span class="ex">tests/Url/UrlTest.php</span> <span class="kw">|</span> <span class="ex">1</span> + | ||
150 | <span class="ex">3</span> files changed, 3 insertions(+), <span class="ex">1</span> deletion(-)</code></pre></div> | ||
151 | <p>Shaarli >= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:<a href=".html"></a></p> | ||
152 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">composer</span> update --no-dev | ||
153 | |||
154 | <span class="ex">Loading</span> composer repositories with package information | ||
155 | <span class="ex">Updating</span> dependencies | ||
156 | <span class="ex">-</span> Installing shaarli/netscape-bookmark-parser (v1.0.1) | ||
157 | <span class="ex">Downloading</span>: 100%</code></pre></div> | ||
158 | <h3 id="migrating-and-upgrading-from-sebsauvages-repository">Migrating and upgrading from Sebsauvage's repository</h3> | ||
159 | <p>If you have installed Shaarli from <a href="https://github.com/sebsauvage/Shaarli">Sebsauvage's original Git repository</a>, you can use <a href="https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes">Git remotes</a> to update your working copy.<a href=".html"></a></p> | ||
160 | <p>The following guide assumes that:</p> | ||
161 | <ul> | ||
162 | <li>you have a basic knowledge of Git <a href="https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell">branching</a> and <a href="https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes">remote repositories</a><a href=".html"></a></li> | ||
163 | <li>the default remote is named <code>origin</code> and points to Sebsauvage's repository</li> | ||
164 | <li>the current branch is <code>master</code> | ||
165 | <ul> | ||
166 | <li>if you have personal branches containing customizations, you will need to <a href="https://git-scm.com/book/en/v2/Git-Branching-Rebasing">rebase them</a> after the upgrade; beware though, a lot of changes have been made since the community fork has been created, so things are very likely to break<embed src=".html" /></li> | ||
167 | </ul></li> | ||
168 | <li>the working copy is clean: | ||
169 | <ul> | ||
170 | <li>no versioned file has been locally modified</li> | ||
171 | <li>no untracked files are present</li> | ||
172 | </ul></li> | ||
173 | </ul> | ||
174 | <h4 id="step-0-show-repository-information">Step 0: show repository information</h4> | ||
175 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli | ||
176 | |||
177 | $ <span class="fu">git</span> remote -v | ||
178 | <span class="ex">origin</span> https://github.com/sebsauvage/Shaarli (fetch) | ||
179 | <span class="ex">origin</span> https://github.com/sebsauvage/Shaarli (push) | ||
180 | |||
181 | $ <span class="fu">git</span> branch -vv | ||
182 | <span class="ex">*</span> master 029f75f [origin/master] Update README.md[](.html) | ||
183 | |||
184 | $ <span class="fu">git</span> status | ||
185 | <span class="ex">On</span> branch master | ||
186 | <span class="ex">Your</span> branch is up-to-date with <span class="st">'origin/master'</span>. | ||
187 | <span class="ex">nothing</span> to commit, working directory clean</code></pre></div> | ||
188 | <h4 id="step-1-update-git-remotes">Step 1: update Git remotes</h4> | ||
189 | <pre><code>$ git remote rename origin sebsauvage | ||
190 | $ git remote -v | ||
191 | sebsauvage https://github.com/sebsauvage/Shaarli (fetch) | ||
192 | sebsauvage https://github.com/sebsauvage/Shaarli (push) | ||
193 | |||
194 | $ git remote add origin https://github.com/shaarli/Shaarli | ||
195 | $ git fetch origin | ||
196 | |||
197 | remote: Counting objects: 3015, done. | ||
198 | remote: Compressing objects: 100% (19/19), done. | ||
199 | remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550 | ||
200 | Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done. | ||
201 | Resolving deltas: 100% (1899/1899), completed with 48 local objects. | ||
202 | From https://github.com/shaarli/Shaarli | ||
203 | * [new branch] master -> origin/master[](.html) | ||
204 | * [new branch] stable -> origin/stable[](.html) | ||
205 | [...][](.html) | ||
206 | * [new tag] v0.6.4 -> v0.6.4[](.html) | ||
207 | * [new tag] v0.7.0 -> v0.7.0[](.html)</code></pre> | ||
208 | <h4 id="step-2-use-the-stable-community-branch">Step 2: use the stable community branch</h4> | ||
209 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">git</span> checkout origin/stable -b stable | ||
210 | <span class="ex">Branch</span> stable set up to track remote branch stable from origin. | ||
211 | <span class="ex">Switched</span> to a new branch <span class="st">'stable'</span> | ||
212 | |||
213 | $ <span class="fu">git</span> branch -vv | ||
214 | <span class="ex">master</span> 029f75f [sebsauvage/master] Update README.md[](.html) | ||
215 | <span class="ex">*</span> stable 890afc3 [origin/stable] Merge pull request <span class="co">#509 from ArthurHoaro/v0.6.5[](.html)</span></code></pre></div> | ||
216 | <p>Shaarli >= <code>v0.8.x</code>: install/update third-party PHP dependencies using <a href="https://getcomposer.org/">Composer</a>:<a href=".html"></a></p> | ||
217 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="ex">composer</span> update --no-dev | ||
218 | |||
219 | <span class="ex">Loading</span> composer repositories with package information | ||
220 | <span class="ex">Updating</span> dependencies | ||
221 | <span class="ex">-</span> Installing shaarli/netscape-bookmark-parser (v1.0.1) | ||
222 | <span class="ex">Downloading</span>: 100%</code></pre></div> | ||
223 | <p>Optionally, you can delete information related to the legacy version:</p> | ||
224 | <div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">git</span> branch -D master | ||
225 | <span class="ex">Deleted</span> branch master (was 029f75f)<span class="ex">.</span> | ||
226 | |||
227 | $ <span class="fu">git</span> remote remove sebsauvage | ||
228 | |||
229 | $ <span class="fu">git</span> remote -v | ||
230 | <span class="ex">origin</span> https://github.com/shaarli/Shaarli (fetch) | ||
231 | <span class="ex">origin</span> https://github.com/shaarli/Shaarli (push) | ||
232 | |||
233 | $ <span class="fu">git</span> gc | ||
234 | <span class="ex">Counting</span> objects: 3317, done. | ||
235 | <span class="ex">Delta</span> compression using up to 8 threads. | ||
236 | <span class="ex">Compressing</span> objects: 100% (1237/1237), <span class="kw">done</span><span class="ex">.</span> | ||
237 | <span class="ex">Writing</span> objects: 100% (3317/3317), <span class="kw">done</span><span class="ex">.</span> | ||
238 | <span class="ex">Total</span> 3317 (delta 2050), <span class="ex">reused</span> 3301 (delta 2034)<span class="ex">to</span></code></pre></div> | ||
239 | <h4 id="step-3-configuration">Step 3: configuration</h4> | ||
240 | <p>After migrating, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to <code>data/config.php</code> (see <a href="Shaarli-configuration.html">Shaarli configuration</a> for more details).</p> | ||
241 | </body> | ||
242 | </html> | ||
diff --git a/doc/Upgrade-and-migration.md b/doc/Upgrade-and-migration.md new file mode 100644 index 00000000..0bc33824 --- /dev/null +++ b/doc/Upgrade-and-migration.md | |||
@@ -0,0 +1,161 @@ | |||
1 | #Upgrade and migration | ||
2 | ## Preparation | ||
3 | ### Backup your data | ||
4 | |||
5 | Shaarli stores all user data under the `data` directory: | ||
6 | - `data/config.php` - main configuration file | ||
7 | - `data/datastore.php` - bookmarked links | ||
8 | - `data/ipbans.php` - banned IP addresses | ||
9 | |||
10 | See [Shaarli configuration](Shaarli-configuration.html) for more information about Shaarli resources. | ||
11 | |||
12 | It is recommended to backup this repository _before_ starting updating/upgrading Shaarli: | ||
13 | - users with SSH access: copy or archive the directory to a temporary location | ||
14 | - users with FTP access: download a local copy of your Shaarli installation using your favourite client | ||
15 | |||
16 | ### Migrating data from a previous installation | ||
17 | As all user data is kept under `data`, this is the only directory you need to worry about when migrating to a new installation, which corresponds to the following steps: | ||
18 | |||
19 | - backup the `data` directory | ||
20 | - install or update Shaarli: | ||
21 | - fresh installation - see [Download and installation](Download-and-installation.html) | ||
22 | - update - see the following sections | ||
23 | - check or restore the `data` directory | ||
24 | |||
25 | ## Upgrading from release archives | ||
26 | All tagged revisions can be downloaded as tarballs or ZIP archives from the [releases](https://github.com/shaarli/Shaarli/releases) page.[](.html) | ||
27 | |||
28 | We _recommend_ using the releases from the `stable` branch, which are available as: | ||
29 | - gzipped tarball - https://github.com/shaarli/Shaarli/archive/stable.tar.gz | ||
30 | - ZIP archive - https://github.com/shaarli/Shaarli/archive/stable.zip | ||
31 | |||
32 | Once downloaded, extract the archive locally and update your remote installation (e.g. via FTP) -be sure you keep the contents of the `data` directory! | ||
33 | |||
34 | After upgrading, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to `data/config.php` (see [Shaarli configuration](Shaarli-configuration.html) for more details). | ||
35 | |||
36 | ## Upgrading with Git | ||
37 | ### Updating a community Shaarli | ||
38 | If you have installed Shaarli from the [community Git repository](Download#clone-with-git-recommended), simply [pull new changes](https://www.git-scm.com/docs/git-pull) from your local clone:[](.html) | ||
39 | |||
40 | ```bash | ||
41 | $ cd /path/to/shaarli | ||
42 | $ git pull | ||
43 | |||
44 | From github.com:shaarli/Shaarli | ||
45 | * branch master -> FETCH_HEAD | ||
46 | Updating ebd67c6..521f0e6 | ||
47 | Fast-forward | ||
48 | application/Url.php | 1 + | ||
49 | shaarli_version.php | 2 +- | ||
50 | tests/Url/UrlTest.php | 1 + | ||
51 | 3 files changed, 3 insertions(+), 1 deletion(-) | ||
52 | ``` | ||
53 | |||
54 | Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):[](.html) | ||
55 | |||
56 | ```bash | ||
57 | $ composer update --no-dev | ||
58 | |||
59 | Loading composer repositories with package information | ||
60 | Updating dependencies | ||
61 | - Installing shaarli/netscape-bookmark-parser (v1.0.1) | ||
62 | Downloading: 100% | ||
63 | ``` | ||
64 | |||
65 | ### Migrating and upgrading from Sebsauvage's repository | ||
66 | If you have installed Shaarli from [Sebsauvage's original Git repository](https://github.com/sebsauvage/Shaarli), you can use [Git remotes](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) to update your working copy.[](.html) | ||
67 | |||
68 | The following guide assumes that: | ||
69 | - you have a basic knowledge of Git [branching](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell) and [remote repositories](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes)[](.html) | ||
70 | - the default remote is named `origin` and points to Sebsauvage's repository | ||
71 | - the current branch is `master` | ||
72 | - if you have personal branches containing customizations, you will need to [rebase them](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) after the upgrade; beware though, a lot of changes have been made since the community fork has been created, so things are very likely to break![](.html) | ||
73 | - the working copy is clean: | ||
74 | - no versioned file has been locally modified | ||
75 | - no untracked files are present | ||
76 | |||
77 | #### Step 0: show repository information | ||
78 | ```bash | ||
79 | $ cd /path/to/shaarli | ||
80 | |||
81 | $ git remote -v | ||
82 | origin https://github.com/sebsauvage/Shaarli (fetch) | ||
83 | origin https://github.com/sebsauvage/Shaarli (push) | ||
84 | |||
85 | $ git branch -vv | ||
86 | * master 029f75f [origin/master] Update README.md[](.html) | ||
87 | |||
88 | $ git status | ||
89 | On branch master | ||
90 | Your branch is up-to-date with 'origin/master'. | ||
91 | nothing to commit, working directory clean | ||
92 | ``` | ||
93 | |||
94 | #### Step 1: update Git remotes | ||
95 | ``` | ||
96 | $ git remote rename origin sebsauvage | ||
97 | $ git remote -v | ||
98 | sebsauvage https://github.com/sebsauvage/Shaarli (fetch) | ||
99 | sebsauvage https://github.com/sebsauvage/Shaarli (push) | ||
100 | |||
101 | $ git remote add origin https://github.com/shaarli/Shaarli | ||
102 | $ git fetch origin | ||
103 | |||
104 | remote: Counting objects: 3015, done. | ||
105 | remote: Compressing objects: 100% (19/19), done. | ||
106 | remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550 | ||
107 | Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done. | ||
108 | Resolving deltas: 100% (1899/1899), completed with 48 local objects. | ||
109 | From https://github.com/shaarli/Shaarli | ||
110 | * [new branch] master -> origin/master[](.html) | ||
111 | * [new branch] stable -> origin/stable[](.html) | ||
112 | [...][](.html) | ||
113 | * [new tag] v0.6.4 -> v0.6.4[](.html) | ||
114 | * [new tag] v0.7.0 -> v0.7.0[](.html) | ||
115 | ``` | ||
116 | |||
117 | #### Step 2: use the stable community branch | ||
118 | |||
119 | ```bash | ||
120 | $ git checkout origin/stable -b stable | ||
121 | Branch stable set up to track remote branch stable from origin. | ||
122 | Switched to a new branch 'stable' | ||
123 | |||
124 | $ git branch -vv | ||
125 | master 029f75f [sebsauvage/master] Update README.md[](.html) | ||
126 | * stable 890afc3 [origin/stable] Merge pull request #509 from ArthurHoaro/v0.6.5[](.html) | ||
127 | ``` | ||
128 | |||
129 | Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):[](.html) | ||
130 | |||
131 | ```bash | ||
132 | $ composer update --no-dev | ||
133 | |||
134 | Loading composer repositories with package information | ||
135 | Updating dependencies | ||
136 | - Installing shaarli/netscape-bookmark-parser (v1.0.1) | ||
137 | Downloading: 100% | ||
138 | ``` | ||
139 | |||
140 | Optionally, you can delete information related to the legacy version: | ||
141 | |||
142 | ```bash | ||
143 | $ git branch -D master | ||
144 | Deleted branch master (was 029f75f). | ||
145 | |||
146 | $ git remote remove sebsauvage | ||
147 | |||
148 | $ git remote -v | ||
149 | origin https://github.com/shaarli/Shaarli (fetch) | ||
150 | origin https://github.com/shaarli/Shaarli (push) | ||
151 | |||
152 | $ git gc | ||
153 | Counting objects: 3317, done. | ||
154 | Delta compression using up to 8 threads. | ||
155 | Compressing objects: 100% (1237/1237), done. | ||
156 | Writing objects: 100% (3317/3317), done. | ||
157 | Total 3317 (delta 2050), reused 3301 (delta 2034)to | ||
158 | ``` | ||
159 | |||
160 | #### Step 3: configuration | ||
161 | After migrating, access your fresh Shaarli installation from a web browser; the configuration will then be automatically updated, and new settings added to `data/config.php` (see [Shaarli configuration](Shaarli-configuration.html) for more details). | ||
diff --git a/doc/Upgrade-from-original-sebsauvage-Shaarli.html b/doc/Upgrade-from-original-sebsauvage-Shaarli.html deleted file mode 100644 index db69a0ed..00000000 --- a/doc/Upgrade-from-original-sebsauvage-Shaarli.html +++ /dev/null | |||
@@ -1,74 +0,0 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <meta charset="utf-8"> | ||
5 | <meta name="generator" content="pandoc"> | ||
6 | <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> | ||
7 | <title>Shaarli – Upgrade from original sebsauvage Shaarli</title> | ||
8 | <style type="text/css">code{white-space: pre;}</style> | ||
9 | <link rel="stylesheet" href="github-markdown.css"> | ||
10 | <!--[if lt IE 9]> | ||
11 | <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script> | ||
12 | <![endif]--> | ||
13 | </head> | ||
14 | <body> | ||
15 | <div id="local-sidebar"> | ||
16 | <ul> | ||
17 | <li><a href="Home.html">Home</a></li> | ||
18 | <li>Installation | ||
19 | <ul> | ||
20 | <li><a href="Download.html">Download</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | ||
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | ||
23 | <li><a href="Server-security.html">Server security</a></li> | ||
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | ||
26 | <li><a href="Plugins.html">Plugins</a></li> | ||
27 | </ul></li> | ||
28 | <li><a href="Docker.html">Docker</a></li> | ||
29 | <li><a href="Usage.html">Usage</a> | ||
30 | <ul> | ||
31 | <li><a href="Sharing-button.html">Sharing button</a> (bookmarklet)</li> | ||
32 | <li><a href="Browsing-and-Searching.html">Browsing and Searching</a></li> | ||
33 | <li><a href="Firefox-share.html">Firefox share</a></li> | ||
34 | <li><a href="RSS-feeds.html">RSS feeds</a></li> | ||
35 | </ul></li> | ||
36 | <li>How To | ||
37 | <ul> | ||
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | ||
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | ||
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | ||
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | ||
43 | <li><a href="Datastore-hacks.html">Datastore hacks</a></li> | ||
44 | </ul></li> | ||
45 | <li><a href="Troubleshooting.html">Troubleshooting</a></li> | ||
46 | <li><a href="Development.html">Development</a> | ||
47 | <ul> | ||
48 | <li><a href="GnuPG-signature.html">GnuPG signature</a></li> | ||
49 | <li><a href="Coding-guidelines.html">Coding guidelines</a></li> | ||
50 | <li><a href="Directory-structure.html">Directory structure</a></li> | ||
51 | <li><a href="3rd-party-libraries.html">3rd party libraries</a></li> | ||
52 | <li><a href="Plugin-System.html">Plugin System</a></li> | ||
53 | <li><a href="Release-Shaarli.html">Release Shaarli</a></li> | ||
54 | <li><a href="Security.html">Security</a></li> | ||
55 | <li><a href="Static-analysis.html">Static analysis</a></li> | ||
56 | <li><a href="Theming.html">Theming</a></li> | ||
57 | <li><a href="Unit-tests.html">Unit tests</a></li> | ||
58 | </ul></li> | ||
59 | <li>About | ||
60 | <ul> | ||
61 | <li><a href="FAQ.html">FAQ</a></li> | ||
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | ||
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | ||
65 | </ul> | ||
66 | </div> | ||
67 | <h1 id="upgrade-from-original-sebsauvage-shaarli">Upgrade from original sebsauvage Shaarli</h1> | ||
68 | <ul> | ||
69 | <li>Backup your original <code>data/</code> directory.</li> | ||
70 | <li><a href="https://github.com/shaarli/Shaarli#installation--upgrade">Install</a> and setup the Shaarli community fork.<a href=".html"></a></li> | ||
71 | <li>Copy your original <code>data</code> directory over the new installation.</li> | ||
72 | </ul> | ||
73 | </body> | ||
74 | </html> | ||
diff --git a/doc/Upgrade-from-original-sebsauvage-Shaarli.md b/doc/Upgrade-from-original-sebsauvage-Shaarli.md deleted file mode 100644 index 6ae0c67b..00000000 --- a/doc/Upgrade-from-original-sebsauvage-Shaarli.md +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | #Upgrade from original sebsauvage Shaarli | ||
2 | * Backup your original `data/` directory. | ||
3 | * [Install](https://github.com/shaarli/Shaarli#installation--upgrade) and setup the Shaarli community fork.[](.html) | ||
4 | * Copy your original `data` directory over the new installation. | ||
diff --git a/doc/Usage.html b/doc/Usage.html index 2befaa02..63f21d93 100644 --- a/doc/Usage.html +++ b/doc/Usage.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,7 +59,6 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
diff --git a/doc/_Footer.html b/doc/_Footer.html index a054cc53..e8a62d2a 100644 --- a/doc/_Footer.html +++ b/doc/_Footer.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,11 +59,10 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
67 | <h1 id="footer-shaarli-the-personal-minimalist-super-fast-no-database-delicious-clone">_Footer<br /> | 65 | <h1 id="footer-shaarli-the-personal-minimalist-super-fast-database-free-bookmarking-service">_Footer<br /> |
68 | <em>Shaarli, the personal, minimalist, super-fast, no-database delicious clone</em></h1> | 66 | <em>Shaarli, the personal, minimalist, super-fast, database-free bookmarking service</em></h1> |
69 | </body> | 67 | </body> |
70 | </html> | 68 | </html> |
diff --git a/doc/_Footer.md b/doc/_Footer.md index 29c39bb6..50fa4f56 100644 --- a/doc/_Footer.md +++ b/doc/_Footer.md | |||
@@ -1,2 +1,2 @@ | |||
1 | #_Footer | 1 | #_Footer |
2 | _Shaarli, the personal, minimalist, super-fast, no-database delicious clone_ | 2 | _Shaarli, the personal, minimalist, super-fast, database-free bookmarking service_ |
diff --git a/doc/_Sidebar.html b/doc/_Sidebar.html index 89c2cf8a..bb6dad93 100644 --- a/doc/_Sidebar.html +++ b/doc/_Sidebar.html | |||
@@ -15,13 +15,13 @@ | |||
15 | <div id="local-sidebar"> | 15 | <div id="local-sidebar"> |
16 | <ul> | 16 | <ul> |
17 | <li><a href="Home.html">Home</a></li> | 17 | <li><a href="Home.html">Home</a></li> |
18 | <li>Installation | 18 | <li>Setup |
19 | <ul> | 19 | <ul> |
20 | <li><a href="Download.html">Download</a></li> | 20 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
21 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
21 | <li><a href="Server-requirements.html">Server requirements</a></li> | 22 | <li><a href="Server-requirements.html">Server requirements</a></li> |
22 | <li><a href="Server-configuration.html">Server configuration</a></li> | 23 | <li><a href="Server-configuration.html">Server configuration</a></li> |
23 | <li><a href="Server-security.html">Server security</a></li> | 24 | <li><a href="Server-security.html">Server security</a></li> |
24 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 25 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
26 | <li><a href="Plugins.html">Plugins</a></li> | 26 | <li><a href="Plugins.html">Plugins</a></li> |
27 | </ul></li> | 27 | </ul></li> |
@@ -36,7 +36,6 @@ | |||
36 | <li>How To | 36 | <li>How To |
37 | <ul> | 37 | <ul> |
38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 38 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
39 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
40 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 39 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
41 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 40 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
42 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 41 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -60,20 +59,19 @@ | |||
60 | <ul> | 59 | <ul> |
61 | <li><a href="FAQ.html">FAQ</a></li> | 60 | <li><a href="FAQ.html">FAQ</a></li> |
62 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 61 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
63 | <li><a href="TODO.html">TODO</a></li> | ||
64 | </ul></li> | 62 | </ul></li> |
65 | </ul> | 63 | </ul> |
66 | </div> | 64 | </div> |
67 | <h1 id="sidebar">_Sidebar</h1> | 65 | <h1 id="sidebar">_Sidebar</h1> |
68 | <ul> | 66 | <ul> |
69 | <li><a href="Home.html">Home</a></li> | 67 | <li><a href="Home.html">Home</a></li> |
70 | <li>Installation | 68 | <li>Setup |
71 | <ul> | 69 | <ul> |
72 | <li><a href="Download.html">Download</a></li> | 70 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
71 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
73 | <li><a href="Server-requirements.html">Server requirements</a></li> | 72 | <li><a href="Server-requirements.html">Server requirements</a></li> |
74 | <li><a href="Server-configuration.html">Server configuration</a></li> | 73 | <li><a href="Server-configuration.html">Server configuration</a></li> |
75 | <li><a href="Server-security.html">Server security</a></li> | 74 | <li><a href="Server-security.html">Server security</a></li> |
76 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
77 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 75 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
78 | <li><a href="Plugins.html">Plugins</a></li> | 76 | <li><a href="Plugins.html">Plugins</a></li> |
79 | </ul></li> | 77 | </ul></li> |
@@ -88,7 +86,6 @@ | |||
88 | <li>How To | 86 | <li>How To |
89 | <ul> | 87 | <ul> |
90 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 88 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
91 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
92 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 89 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
93 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 90 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
94 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 91 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -112,7 +109,6 @@ | |||
112 | <ul> | 109 | <ul> |
113 | <li><a href="FAQ.html">FAQ</a></li> | 110 | <li><a href="FAQ.html">FAQ</a></li> |
114 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 111 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
115 | <li><a href="TODO.html">TODO</a></li> | ||
116 | </ul></li> | 112 | </ul></li> |
117 | </ul> | 113 | </ul> |
118 | </body> | 114 | </body> |
diff --git a/doc/_Sidebar.md b/doc/_Sidebar.md index 7c71f462..1778e3a3 100644 --- a/doc/_Sidebar.md +++ b/doc/_Sidebar.md | |||
@@ -1,11 +1,11 @@ | |||
1 | #_Sidebar | 1 | #_Sidebar |
2 | - [Home](Home.html) | 2 | - [Home](Home.html) |
3 | - Installation | 3 | - Setup |
4 | - [Download](Download.html) | 4 | - [Download and Installation](Download-and-Installation.html) |
5 | - [Upgrade and migration](Upgrade-and-migration.html) | ||
5 | - [Server requirements](Server-requirements.html) | 6 | - [Server requirements](Server-requirements.html) |
6 | - [Server configuration](Server-configuration.html) | 7 | - [Server configuration](Server-configuration.html) |
7 | - [Server security](Server-security.html) | 8 | - [Server security](Server-security.html) |
8 | - [Shaarli installation](Shaarli-installation.html) | ||
9 | - [Shaarli configuration](Shaarli-configuration.html) | 9 | - [Shaarli configuration](Shaarli-configuration.html) |
10 | - [Plugins](Plugins.html) | 10 | - [Plugins](Plugins.html) |
11 | - [Docker](Docker.html) | 11 | - [Docker](Docker.html) |
@@ -16,7 +16,6 @@ | |||
16 | - [RSS feeds](RSS-feeds.html) | 16 | - [RSS feeds](RSS-feeds.html) |
17 | - How To | 17 | - How To |
18 | - [Backup, restore, import and export](Backup,-restore,-import-and-export.html) | 18 | - [Backup, restore, import and export](Backup,-restore,-import-and-export.html) |
19 | - [Upgrade from original sebsauvage/Shaarli](Upgrade-from-original-sebsauvage/Shaarli.html) | ||
20 | - [Copy an existing installation over SSH and serve it locally](Copy-an-existing-installation-over-SSH-and-serve-it-locally.html) | 19 | - [Copy an existing installation over SSH and serve it locally](Copy-an-existing-installation-over-SSH-and-serve-it-locally.html) |
21 | - [Create and serve multiple Shaarlis (farm)](Create-and-serve-multiple-Shaarlis-(farm).html) | 20 | - [Create and serve multiple Shaarlis (farm)](Create-and-serve-multiple-Shaarlis-(farm).html) |
22 | - [Download CSS styles from an OPML list](Download-CSS-styles-from-an-OPML-list.html) | 21 | - [Download CSS styles from an OPML list](Download-CSS-styles-from-an-OPML-list.html) |
@@ -36,4 +35,3 @@ | |||
36 | - About | 35 | - About |
37 | - [FAQ](FAQ.html) | 36 | - [FAQ](FAQ.html) |
38 | - [Community & Related software](Community-&-Related-software.html) | 37 | - [Community & Related software](Community-&-Related-software.html) |
39 | - [TODO](TODO.html) | ||
diff --git a/doc/sidebar.html b/doc/sidebar.html index 62844581..4dad0161 100644 --- a/doc/sidebar.html +++ b/doc/sidebar.html | |||
@@ -1,13 +1,13 @@ | |||
1 | <div id="local-sidebar"> | 1 | <div id="local-sidebar"> |
2 | <ul> | 2 | <ul> |
3 | <li><a href="Home.html">Home</a></li> | 3 | <li><a href="Home.html">Home</a></li> |
4 | <li>Installation | 4 | <li>Setup |
5 | <ul> | 5 | <ul> |
6 | <li><a href="Download.html">Download</a></li> | 6 | <li><a href="Download-and-Installation.html">Download and Installation</a></li> |
7 | <li><a href="Upgrade-and-migration.html">Upgrade and migration</a></li> | ||
7 | <li><a href="Server-requirements.html">Server requirements</a></li> | 8 | <li><a href="Server-requirements.html">Server requirements</a></li> |
8 | <li><a href="Server-configuration.html">Server configuration</a></li> | 9 | <li><a href="Server-configuration.html">Server configuration</a></li> |
9 | <li><a href="Server-security.html">Server security</a></li> | 10 | <li><a href="Server-security.html">Server security</a></li> |
10 | <li><a href="Shaarli-installation.html">Shaarli installation</a></li> | ||
11 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> | 11 | <li><a href="Shaarli-configuration.html">Shaarli configuration</a></li> |
12 | <li><a href="Plugins.html">Plugins</a></li> | 12 | <li><a href="Plugins.html">Plugins</a></li> |
13 | </ul></li> | 13 | </ul></li> |
@@ -22,7 +22,6 @@ | |||
22 | <li>How To | 22 | <li>How To |
23 | <ul> | 23 | <ul> |
24 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> | 24 | <li><a href="Backup,-restore,-import-and-export.html">Backup, restore, import and export</a></li> |
25 | <li><a href="Upgrade-from-original-sebsauvage/Shaarli.html">Upgrade from original sebsauvage/Shaarli</a></li> | ||
26 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> | 25 | <li><a href="Copy-an-existing-installation-over-SSH-and-serve-it-locally.html">Copy an existing installation over SSH and serve it locally</a></li> |
27 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> | 26 | <li><a href="Create-and-serve-multiple-Shaarlis-(farm).html">Create and serve multiple Shaarlis (farm)</a></li> |
28 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> | 27 | <li><a href="Download-CSS-styles-from-an-OPML-list.html">Download CSS styles from an OPML list</a></li> |
@@ -46,7 +45,6 @@ | |||
46 | <ul> | 45 | <ul> |
47 | <li><a href="FAQ.html">FAQ</a></li> | 46 | <li><a href="FAQ.html">FAQ</a></li> |
48 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> | 47 | <li><a href="Community-&-Related-software.html">Community & Related software</a></li> |
49 | <li><a href="TODO.html">TODO</a></li> | ||
50 | </ul></li> | 48 | </ul></li> |
51 | </ul> | 49 | </ul> |
52 | </div> | 50 | </div> |
diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile index 2ed59b89..0c19b085 100644 --- a/docker/development/Dockerfile +++ b/docker/development/Dockerfile | |||
@@ -1,26 +1,34 @@ | |||
1 | FROM debian:jessie | 1 | FROM debian:jessie |
2 | MAINTAINER Shaarli Community | 2 | MAINTAINER Shaarli Community |
3 | 3 | ||
4 | ENV TERM dumb | ||
4 | RUN apt-get update \ | 5 | RUN apt-get update \ |
5 | && apt-get install -y \ | 6 | && apt-get install --no-install-recommends -y \ |
6 | nginx-light php5-fpm php5-gd supervisor \ | 7 | ca-certificates \ |
7 | git nano | 8 | nginx-light \ |
8 | 9 | php5-curl \ | |
9 | ADD https://getcomposer.org/composer.phar /usr/local/bin/composer | 10 | php5-fpm \ |
10 | RUN chmod 755 /usr/local/bin/composer | 11 | php5-gd \ |
12 | php5-intl \ | ||
13 | supervisor \ | ||
14 | git \ | ||
15 | nano \ | ||
16 | && apt-get clean | ||
11 | 17 | ||
12 | COPY nginx.conf /etc/nginx/nginx.conf | 18 | COPY nginx.conf /etc/nginx/nginx.conf |
13 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 19 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
14 | RUN echo "<?php phpinfo(); ?>" > /var/www/index.php | 20 | |
21 | ADD https://getcomposer.org/composer.phar /usr/local/bin/composer | ||
22 | RUN chmod 755 /usr/local/bin/composer | ||
15 | 23 | ||
16 | WORKDIR /var/www | 24 | WORKDIR /var/www |
25 | RUN git clone https://github.com/shaarli/Shaarli.git shaarli \ | ||
26 | && cd shaarli \ | ||
27 | && composer --prefer-dist install | ||
17 | RUN rm -rf html \ | 28 | RUN rm -rf html \ |
18 | && git clone https://github.com/shaarli/Shaarli.git shaarli \ | 29 | && echo "<?php phpinfo(); ?>" > index.php \ |
19 | && chown -R www-data:www-data . | 30 | && chown -R www-data:www-data . |
20 | 31 | ||
21 | WORKDIR /var/www/shaarli | ||
22 | RUN composer install | ||
23 | |||
24 | VOLUME /var/www/shaarli/data | 32 | VOLUME /var/www/shaarli/data |
25 | 33 | ||
26 | EXPOSE 80 | 34 | EXPOSE 80 |
diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile index 3db4eb56..d93ed262 100644 --- a/docker/production/Dockerfile +++ b/docker/production/Dockerfile | |||
@@ -1,17 +1,32 @@ | |||
1 | FROM debian:jessie | 1 | FROM debian:jessie |
2 | MAINTAINER Shaarli Community | 2 | MAINTAINER Shaarli Community |
3 | 3 | ||
4 | ENV TERM dumb | ||
4 | RUN apt-get update \ | 5 | RUN apt-get update \ |
5 | && apt-get install -y curl nginx-light php5-fpm php5-gd supervisor | 6 | && apt-get install --no-install-recommends -y \ |
7 | ca-certificates \ | ||
8 | curl \ | ||
9 | nginx-light \ | ||
10 | php5-curl \ | ||
11 | php5-fpm \ | ||
12 | php5-gd \ | ||
13 | php5-intl \ | ||
14 | supervisor \ | ||
15 | && apt-get clean | ||
6 | 16 | ||
7 | COPY nginx.conf /etc/nginx/nginx.conf | 17 | COPY nginx.conf /etc/nginx/nginx.conf |
8 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 18 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
9 | 19 | ||
20 | ADD https://getcomposer.org/composer.phar /usr/local/bin/composer | ||
21 | RUN chmod 755 /usr/local/bin/composer | ||
22 | |||
10 | WORKDIR /var/www | 23 | WORKDIR /var/www |
11 | RUN rm -rf html \ | 24 | RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \ |
12 | && curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xvzf - \ | ||
13 | && mv Shaarli-master shaarli \ | 25 | && mv Shaarli-master shaarli \ |
14 | && chown -R www-data:www-data shaarli | 26 | && cd shaarli \ |
27 | && composer --prefer-dist --no-dev install | ||
28 | RUN rm -rf html \ | ||
29 | && chown -R www-data:www-data . | ||
15 | 30 | ||
16 | VOLUME /var/www/shaarli/data | 31 | VOLUME /var/www/shaarli/data |
17 | 32 | ||
diff --git a/docker/production/stable/Dockerfile b/docker/production/stable/Dockerfile index 2bb3948c..a509fda6 100644 --- a/docker/production/stable/Dockerfile +++ b/docker/production/stable/Dockerfile | |||
@@ -1,17 +1,32 @@ | |||
1 | FROM debian:jessie | 1 | FROM debian:jessie |
2 | MAINTAINER Shaarli Community | 2 | MAINTAINER Shaarli Community |
3 | 3 | ||
4 | ENV TERM dumb | ||
4 | RUN apt-get update \ | 5 | RUN apt-get update \ |
5 | && apt-get install -y curl nginx-light php5-fpm php5-gd supervisor | 6 | && apt-get install --no-install-recommends -y \ |
7 | ca-certificates \ | ||
8 | curl \ | ||
9 | nginx-light \ | ||
10 | php5-curl \ | ||
11 | php5-fpm \ | ||
12 | php5-gd \ | ||
13 | php5-intl \ | ||
14 | supervisor \ | ||
15 | && apt-get clean | ||
6 | 16 | ||
7 | COPY nginx.conf /etc/nginx/nginx.conf | 17 | COPY nginx.conf /etc/nginx/nginx.conf |
8 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf | 18 | COPY supervised.conf /etc/supervisor/conf.d/supervised.conf |
9 | 19 | ||
20 | ADD https://getcomposer.org/composer.phar /usr/local/bin/composer | ||
21 | RUN chmod 755 /usr/local/bin/composer | ||
22 | |||
10 | WORKDIR /var/www | 23 | WORKDIR /var/www |
11 | RUN rm -rf html \ | 24 | RUN curl -L https://github.com/shaarli/Shaarli/archive/stable.tar.gz | tar xzf - \ |
12 | && curl -L https://github.com/shaarli/Shaarli/archive/stable.tar.gz | tar xvzf - \ | ||
13 | && mv Shaarli-stable shaarli \ | 25 | && mv Shaarli-stable shaarli \ |
14 | && chown -R www-data:www-data shaarli | 26 | && cd shaarli \ |
27 | && composer --prefer-dist --no-dev install | ||
28 | RUN rm -rf html \ | ||
29 | && chown -R www-data:www-data . | ||
15 | 30 | ||
16 | VOLUME /var/www/shaarli/data | 31 | VOLUME /var/www/shaarli/data |
17 | 32 | ||
diff --git a/inc/shaarli.css b/inc/shaarli.css index 305afddc..5808320c 100644 --- a/inc/shaarli.css +++ b/inc/shaarli.css | |||
@@ -1156,7 +1156,7 @@ ul.errors { | |||
1156 | } | 1156 | } |
1157 | 1157 | ||
1158 | #pluginsadmin .plugin_parameter { | 1158 | #pluginsadmin .plugin_parameter { |
1159 | padding: 5px 0; | 1159 | padding: 10px 0; |
1160 | border-width: 1px 0; | 1160 | border-width: 1px 0; |
1161 | border-style: solid; | 1161 | border-style: solid; |
1162 | border-color: #c0c0c0; | 1162 | border-color: #c0c0c0; |
@@ -1164,7 +1164,7 @@ ul.errors { | |||
1164 | 1164 | ||
1165 | #pluginsadmin .float_label { | 1165 | #pluginsadmin .float_label { |
1166 | float: left; | 1166 | float: left; |
1167 | width: 20%; | 1167 | width: 40%; |
1168 | } | 1168 | } |
1169 | 1169 | ||
1170 | #pluginsadmin a { | 1170 | #pluginsadmin a { |
@@ -1,6 +1,6 @@ | |||
1 | <?php | 1 | <?php |
2 | /** | 2 | /** |
3 | * Shaarli v0.7.0 - Shaare your links... | 3 | * Shaarli v0.8.0 - Shaare your links... |
4 | * | 4 | * |
5 | * The personal, minimalist, super-fast, database free, bookmarking service. | 5 | * The personal, minimalist, super-fast, database free, bookmarking service. |
6 | * | 6 | * |
@@ -25,7 +25,7 @@ if (date_default_timezone_get() == '') { | |||
25 | /* | 25 | /* |
26 | * PHP configuration | 26 | * PHP configuration |
27 | */ | 27 | */ |
28 | define('shaarli_version', '0.7.0'); | 28 | define('shaarli_version', '0.8.0'); |
29 | 29 | ||
30 | // http://server.com/x/shaarli --> /shaarli/ | 30 | // http://server.com/x/shaarli --> /shaarli/ |
31 | define('WEB_PATH', substr($_SERVER['REQUEST_URI'], 0, 1+strrpos($_SERVER['REQUEST_URI'], '/', 0))); | 31 | define('WEB_PATH', substr($_SERVER['REQUEST_URI'], 0, 1+strrpos($_SERVER['REQUEST_URI'], '/', 0))); |
@@ -44,6 +44,20 @@ error_reporting(E_ALL^E_WARNING); | |||
44 | //error_reporting(-1); | 44 | //error_reporting(-1); |
45 | 45 | ||
46 | 46 | ||
47 | // 3rd-party libraries | ||
48 | if (! file_exists(__DIR__ . '/vendor/autoload.php')) { | ||
49 | header('Content-Type: text/plain; charset=utf-8'); | ||
50 | echo "Error: missing Composer configuration\n\n" | ||
51 | ."If you installed Shaarli through Git or using the development branch,\n" | ||
52 | ."please refer to the installation documentation to install PHP" | ||
53 | ." dependencies using Composer:\n" | ||
54 | ."- https://github.com/shaarli/Shaarli/wiki/Server-requirements\n" | ||
55 | ."- https://github.com/shaarli/Shaarli/wiki/Download-and-Installation"; | ||
56 | exit; | ||
57 | } | ||
58 | require_once 'inc/rain.tpl.class.php'; | ||
59 | require_once __DIR__ . '/vendor/autoload.php'; | ||
60 | |||
47 | // Shaarli library | 61 | // Shaarli library |
48 | require_once 'application/ApplicationUtils.php'; | 62 | require_once 'application/ApplicationUtils.php'; |
49 | require_once 'application/Cache.php'; | 63 | require_once 'application/Cache.php'; |
@@ -53,6 +67,7 @@ require_once 'application/config/ConfigPlugin.php'; | |||
53 | require_once 'application/FeedBuilder.php'; | 67 | require_once 'application/FeedBuilder.php'; |
54 | require_once 'application/FileUtils.php'; | 68 | require_once 'application/FileUtils.php'; |
55 | require_once 'application/HttpUtils.php'; | 69 | require_once 'application/HttpUtils.php'; |
70 | require_once 'application/Languages.php'; | ||
56 | require_once 'application/LinkDB.php'; | 71 | require_once 'application/LinkDB.php'; |
57 | require_once 'application/LinkFilter.php'; | 72 | require_once 'application/LinkFilter.php'; |
58 | require_once 'application/LinkUtils.php'; | 73 | require_once 'application/LinkUtils.php'; |
@@ -64,7 +79,6 @@ require_once 'application/Utils.php'; | |||
64 | require_once 'application/PluginManager.php'; | 79 | require_once 'application/PluginManager.php'; |
65 | require_once 'application/Router.php'; | 80 | require_once 'application/Router.php'; |
66 | require_once 'application/Updater.php'; | 81 | require_once 'application/Updater.php'; |
67 | require_once 'inc/rain.tpl.class.php'; | ||
68 | 82 | ||
69 | // Ensure the PHP version is supported | 83 | // Ensure the PHP version is supported |
70 | try { | 84 | try { |
@@ -318,8 +332,17 @@ include $conf->get('resource.ban_file', 'data/ipbans.php'); | |||
318 | function ban_loginFailed($conf) | 332 | function ban_loginFailed($conf) |
319 | { | 333 | { |
320 | $ip = $_SERVER['REMOTE_ADDR']; | 334 | $ip = $_SERVER['REMOTE_ADDR']; |
335 | $trusted = $conf->get('security.trusted_proxies', array()); | ||
336 | if (in_array($ip, $trusted)) { | ||
337 | $ip = getIpAddressFromProxy($_SERVER, $trusted); | ||
338 | if (!$ip) { | ||
339 | return; | ||
340 | } | ||
341 | } | ||
321 | $gb = $GLOBALS['IPBANS']; | 342 | $gb = $GLOBALS['IPBANS']; |
322 | if (!isset($gb['FAILURES'][$ip])) $gb['FAILURES'][$ip]=0; | 343 | if (! isset($gb['FAILURES'][$ip])) { |
344 | $gb['FAILURES'][$ip]=0; | ||
345 | } | ||
323 | $gb['FAILURES'][$ip]++; | 346 | $gb['FAILURES'][$ip]++; |
324 | if ($gb['FAILURES'][$ip] > ($conf->get('security.ban_after') - 1)) | 347 | if ($gb['FAILURES'][$ip] > ($conf->get('security.ban_after') - 1)) |
325 | { | 348 | { |
@@ -783,8 +806,6 @@ function renderPage($conf, $pluginManager) | |||
783 | if ($targetPage == Router::$PAGE_LOGIN) | 806 | if ($targetPage == Router::$PAGE_LOGIN) |
784 | { | 807 | { |
785 | if ($conf->get('security.open_shaarli')) { header('Location: ?'); exit; } // No need to login for open Shaarli | 808 | if ($conf->get('security.open_shaarli')) { header('Location: ?'); exit; } // No need to login for open Shaarli |
786 | $token=''; if (ban_canLogin($conf)) $token=getToken($conf); // Do not waste token generation if not useful. | ||
787 | $PAGE->assign('token',$token); | ||
788 | if (isset($_GET['username'])) { | 809 | if (isset($_GET['username'])) { |
789 | $PAGE->assign('username', escape($_GET['username'])); | 810 | $PAGE->assign('username', escape($_GET['username'])); |
790 | } | 811 | } |
@@ -1105,7 +1126,6 @@ function renderPage($conf, $pluginManager) | |||
1105 | } | 1126 | } |
1106 | else // show the change password form. | 1127 | else // show the change password form. |
1107 | { | 1128 | { |
1108 | $PAGE->assign('token',getToken($conf)); | ||
1109 | $PAGE->renderPage('changepassword'); | 1129 | $PAGE->renderPage('changepassword'); |
1110 | exit; | 1130 | exit; |
1111 | } | 1131 | } |
@@ -1152,7 +1172,6 @@ function renderPage($conf, $pluginManager) | |||
1152 | } | 1172 | } |
1153 | else // Show the configuration form. | 1173 | else // Show the configuration form. |
1154 | { | 1174 | { |
1155 | $PAGE->assign('token',getToken($conf)); | ||
1156 | $PAGE->assign('title', $conf->get('general.title')); | 1175 | $PAGE->assign('title', $conf->get('general.title')); |
1157 | $PAGE->assign('redirector', $conf->get('redirector.url')); | 1176 | $PAGE->assign('redirector', $conf->get('redirector.url')); |
1158 | list($timezone_form, $timezone_js) = generateTimeZoneForm($conf->get('general.timezone')); | 1177 | list($timezone_form, $timezone_js) = generateTimeZoneForm($conf->get('general.timezone')); |
@@ -1172,7 +1191,6 @@ function renderPage($conf, $pluginManager) | |||
1172 | if ($targetPage == Router::$PAGE_CHANGETAG) | 1191 | if ($targetPage == Router::$PAGE_CHANGETAG) |
1173 | { | 1192 | { |
1174 | if (empty($_POST['fromtag']) || (empty($_POST['totag']) && isset($_POST['renametag']))) { | 1193 | if (empty($_POST['fromtag']) || (empty($_POST['totag']) && isset($_POST['renametag']))) { |
1175 | $PAGE->assign('token', getToken($conf)); | ||
1176 | $PAGE->assign('tags', $LINKSDB->allTags()); | 1194 | $PAGE->assign('tags', $LINKSDB->allTags()); |
1177 | $PAGE->renderPage('changetag'); | 1195 | $PAGE->renderPage('changetag'); |
1178 | exit; | 1196 | exit; |
@@ -1351,7 +1369,6 @@ function renderPage($conf, $pluginManager) | |||
1351 | $data = array( | 1369 | $data = array( |
1352 | 'link' => $link, | 1370 | 'link' => $link, |
1353 | 'link_is_new' => false, | 1371 | 'link_is_new' => false, |
1354 | 'token' => getToken($conf), | ||
1355 | 'http_referer' => (isset($_SERVER['HTTP_REFERER']) ? escape($_SERVER['HTTP_REFERER']) : ''), | 1372 | 'http_referer' => (isset($_SERVER['HTTP_REFERER']) ? escape($_SERVER['HTTP_REFERER']) : ''), |
1356 | 'tags' => $LINKSDB->allTags(), | 1373 | 'tags' => $LINKSDB->allTags(), |
1357 | ); | 1374 | ); |
@@ -1418,11 +1435,10 @@ function renderPage($conf, $pluginManager) | |||
1418 | $data = array( | 1435 | $data = array( |
1419 | 'link' => $link, | 1436 | 'link' => $link, |
1420 | 'link_is_new' => $link_is_new, | 1437 | 'link_is_new' => $link_is_new, |
1421 | 'token' => getToken($conf), // XSRF protection. | ||
1422 | 'http_referer' => (isset($_SERVER['HTTP_REFERER']) ? escape($_SERVER['HTTP_REFERER']) : ''), | 1438 | 'http_referer' => (isset($_SERVER['HTTP_REFERER']) ? escape($_SERVER['HTTP_REFERER']) : ''), |
1423 | 'source' => (isset($_GET['source']) ? $_GET['source'] : ''), | 1439 | 'source' => (isset($_GET['source']) ? $_GET['source'] : ''), |
1424 | 'tags' => $LINKSDB->allTags(), | 1440 | 'tags' => $LINKSDB->allTags(), |
1425 | 'default_private_links' => $conf->get('default_private_links', false), | 1441 | 'default_private_links' => $conf->get('privacy.default_private_links', false), |
1426 | ); | 1442 | ); |
1427 | $pluginManager->executeHooks('render_editlink', $data); | 1443 | $pluginManager->executeHooks('render_editlink', $data); |
1428 | 1444 | ||
@@ -1478,27 +1494,37 @@ function renderPage($conf, $pluginManager) | |||
1478 | exit; | 1494 | exit; |
1479 | } | 1495 | } |
1480 | 1496 | ||
1481 | // -------- User is uploading a file for import | 1497 | if ($targetPage == Router::$PAGE_IMPORT) { |
1482 | if (isset($_SERVER['QUERY_STRING']) && startsWith($_SERVER['QUERY_STRING'], 'do=upload')) | 1498 | // Upload a Netscape bookmark dump to import its contents |
1483 | { | 1499 | |
1484 | // If file is too big, some form field may be missing. | 1500 | if (! isset($_POST['token']) || ! isset($_FILES['filetoupload'])) { |
1485 | if (!isset($_POST['token']) || (!isset($_FILES)) || (isset($_FILES['filetoupload']['size']) && $_FILES['filetoupload']['size']==0)) | 1501 | // Show import dialog |
1486 | { | 1502 | $PAGE->assign('maxfilesize', getMaxFileSize()); |
1487 | $returnurl = ( empty($_SERVER['HTTP_REFERER']) ? '?' : $_SERVER['HTTP_REFERER'] ); | 1503 | $PAGE->renderPage('import'); |
1488 | echo '<script>alert("The file you are trying to upload is probably bigger than what this webserver can accept ('.getMaxFileSize().' bytes). Please upload in smaller chunks.");document.location=\''.escape($returnurl).'\';</script>'; | ||
1489 | exit; | 1504 | exit; |
1490 | } | 1505 | } |
1491 | if (!tokenOk($_POST['token'])) die('Wrong token.'); | ||
1492 | importFile($LINKSDB); | ||
1493 | exit; | ||
1494 | } | ||
1495 | 1506 | ||
1496 | // -------- Show upload/import dialog: | 1507 | // Import bookmarks from an uploaded file |
1497 | if ($targetPage == Router::$PAGE_IMPORT) | 1508 | if (isset($_FILES['filetoupload']['size']) && $_FILES['filetoupload']['size'] == 0) { |
1498 | { | 1509 | // The file is too big or some form field may be missing. |
1499 | $PAGE->assign('token',getToken($conf)); | 1510 | echo '<script>alert("The file you are trying to upload is probably' |
1500 | $PAGE->assign('maxfilesize',getMaxFileSize()); | 1511 | .' bigger than what this webserver can accept (' |
1501 | $PAGE->renderPage('import'); | 1512 | .getMaxFileSize().' bytes).' |
1513 | .' Please upload in smaller chunks.");document.location=\'?do=' | ||
1514 | .Router::$PAGE_IMPORT .'\';</script>'; | ||
1515 | exit; | ||
1516 | } | ||
1517 | if (! tokenOk($_POST['token'])) { | ||
1518 | die('Wrong token.'); | ||
1519 | } | ||
1520 | $status = NetscapeBookmarkUtils::import( | ||
1521 | $_POST, | ||
1522 | $_FILES, | ||
1523 | $LINKSDB, | ||
1524 | $conf->get('resource.page_cache') | ||
1525 | ); | ||
1526 | echo '<script>alert("'.$status.'");document.location=\'?do=' | ||
1527 | .Router::$PAGE_IMPORT .'\';</script>'; | ||
1502 | exit; | 1528 | exit; |
1503 | } | 1529 | } |
1504 | 1530 | ||
@@ -1556,95 +1582,6 @@ function renderPage($conf, $pluginManager) | |||
1556 | } | 1582 | } |
1557 | 1583 | ||
1558 | /** | 1584 | /** |
1559 | * Process the import file form. | ||
1560 | * | ||
1561 | * @param LinkDB $LINKSDB Loaded LinkDB instance. | ||
1562 | * @param ConfigManager $conf Configuration Manager instance. | ||
1563 | */ | ||
1564 | function importFile($LINKSDB, $conf) | ||
1565 | { | ||
1566 | if (!isLoggedIn()) { die('Not allowed.'); } | ||
1567 | |||
1568 | $filename=$_FILES['filetoupload']['name']; | ||
1569 | $filesize=$_FILES['filetoupload']['size']; | ||
1570 | $data=file_get_contents($_FILES['filetoupload']['tmp_name']); | ||
1571 | $private = (empty($_POST['private']) ? 0 : 1); // Should the links be imported as private? | ||
1572 | $overwrite = !empty($_POST['overwrite']) ; // Should the imported links overwrite existing ones? | ||
1573 | $import_count=0; | ||
1574 | |||
1575 | // Sniff file type: | ||
1576 | $type='unknown'; | ||
1577 | if (startsWith($data,'<!DOCTYPE NETSCAPE-Bookmark-file-1>')) $type='netscape'; // Netscape bookmark file (aka Firefox). | ||
1578 | |||
1579 | // Then import the bookmarks. | ||
1580 | if ($type=='netscape') | ||
1581 | { | ||
1582 | // This is a standard Netscape-style bookmark file. | ||
1583 | // This format is supported by all browsers (except IE, of course), also Delicious, Diigo and others. | ||
1584 | foreach(explode('<DT>',$data) as $html) // explode is very fast | ||
1585 | { | ||
1586 | $link = array('linkdate'=>'','title'=>'','url'=>'','description'=>'','tags'=>'','private'=>0); | ||
1587 | $d = explode('<DD>',$html); | ||
1588 | if (startsWith($d[0], '<A ')) | ||
1589 | { | ||
1590 | $link['description'] = (isset($d[1]) ? html_entity_decode(trim($d[1]),ENT_QUOTES,'UTF-8') : ''); // Get description (optional) | ||
1591 | preg_match('!<A .*?>(.*?)</A>!i',$d[0],$matches); $link['title'] = (isset($matches[1]) ? trim($matches[1]) : ''); // Get title | ||
1592 | $link['title'] = html_entity_decode($link['title'],ENT_QUOTES,'UTF-8'); | ||
1593 | preg_match_all('! ([A-Z_]+)=\"(.*?)"!i',$html,$matches,PREG_SET_ORDER); // Get all other attributes | ||
1594 | $raw_add_date=0; | ||
1595 | foreach($matches as $m) | ||
1596 | { | ||
1597 | $attr=$m[1]; $value=$m[2]; | ||
1598 | if ($attr=='HREF') $link['url']=html_entity_decode($value,ENT_QUOTES,'UTF-8'); | ||
1599 | elseif ($attr=='ADD_DATE') | ||
1600 | { | ||
1601 | $raw_add_date=intval($value); | ||
1602 | if ($raw_add_date>30000000000) $raw_add_date/=1000; //If larger than year 2920, then was likely stored in milliseconds instead of seconds | ||
1603 | } | ||
1604 | elseif ($attr=='PRIVATE') $link['private']=($value=='0'?0:1); | ||
1605 | elseif ($attr=='TAGS') $link['tags']=html_entity_decode(str_replace(',',' ',$value),ENT_QUOTES,'UTF-8'); | ||
1606 | } | ||
1607 | if ($link['url']!='') | ||
1608 | { | ||
1609 | if ($private==1) $link['private']=1; | ||
1610 | $dblink = $LINKSDB->getLinkFromUrl($link['url']); // See if the link is already in database. | ||
1611 | if ($dblink==false) | ||
1612 | { // Link not in database, let's import it... | ||
1613 | if (empty($raw_add_date)) $raw_add_date=time(); // In case of shitty bookmark file with no ADD_DATE | ||
1614 | |||
1615 | // Make sure date/time is not already used by another link. | ||
1616 | // (Some bookmark files have several different links with the same ADD_DATE) | ||
1617 | // We increment date by 1 second until we find a date which is not used in DB. | ||
1618 | // (so that links that have the same date/time are more or less kept grouped by date, but do not conflict.) | ||
1619 | while (!empty($LINKSDB[date('Ymd_His',$raw_add_date)])) { $raw_add_date++; }// Yes, I know it's ugly. | ||
1620 | $link['linkdate']=date('Ymd_His',$raw_add_date); | ||
1621 | $LINKSDB[$link['linkdate']] = $link; | ||
1622 | $import_count++; | ||
1623 | } | ||
1624 | else // Link already present in database. | ||
1625 | { | ||
1626 | if ($overwrite) | ||
1627 | { // If overwrite is required, we import link data, except date/time. | ||
1628 | $link['linkdate']=$dblink['linkdate']; | ||
1629 | $LINKSDB[$link['linkdate']] = $link; | ||
1630 | $import_count++; | ||
1631 | } | ||
1632 | } | ||
1633 | |||
1634 | } | ||
1635 | } | ||
1636 | } | ||
1637 | $LINKSDB->savedb($conf->get('resource.page_cache')); | ||
1638 | |||
1639 | echo '<script>alert("File '.json_encode($filename).' ('.$filesize.' bytes) was successfully processed: '.$import_count.' links imported.");document.location=\'?\';</script>'; | ||
1640 | } | ||
1641 | else | ||
1642 | { | ||
1643 | echo '<script>alert("File '.json_encode($filename).' ('.$filesize.' bytes) has an unknown file format. Nothing was imported.");document.location=\'?\';</script>'; | ||
1644 | } | ||
1645 | } | ||
1646 | |||
1647 | /** | ||
1648 | * Template for the list of links (<div id="linklist">) | 1585 | * Template for the list of links (<div id="linklist">) |
1649 | * This function fills all the necessary fields in the $PAGE for the template 'linklist.html' | 1586 | * This function fills all the necessary fields in the $PAGE for the template 'linklist.html' |
1650 | * | 1587 | * |
@@ -1744,7 +1681,6 @@ function buildLinkList($PAGE,$LINKSDB, $conf, $pluginManager) | |||
1744 | 'search_term' => $searchterm, | 1681 | 'search_term' => $searchterm, |
1745 | 'search_tags' => $searchtags, | 1682 | 'search_tags' => $searchtags, |
1746 | 'redirector' => $conf->get('redirector.url'), // Optional redirector URL. | 1683 | 'redirector' => $conf->get('redirector.url'), // Optional redirector URL. |
1747 | 'token' => $token, | ||
1748 | 'links' => $linkDisp, | 1684 | 'links' => $linkDisp, |
1749 | 'tags' => $LINKSDB->allTags(), | 1685 | 'tags' => $LINKSDB->allTags(), |
1750 | ); | 1686 | ); |
diff --git a/plugins/addlink_toolbar/addlink_toolbar.php b/plugins/addlink_toolbar/addlink_toolbar.php index ba3849cf..cfd74207 100644 --- a/plugins/addlink_toolbar/addlink_toolbar.php +++ b/plugins/addlink_toolbar/addlink_toolbar.php | |||
@@ -35,4 +35,4 @@ function hook_addlink_toolbar_render_includes($data) | |||
35 | } | 35 | } |
36 | 36 | ||
37 | return $data; | 37 | return $data; |
38 | } \ No newline at end of file | 38 | } |
diff --git a/plugins/playvideos/playvideos.php b/plugins/playvideos/playvideos.php index 0a80aa58..7645b778 100644 --- a/plugins/playvideos/playvideos.php +++ b/plugins/playvideos/playvideos.php | |||
@@ -37,4 +37,4 @@ function hook_playvideos_render_footer($data) | |||
37 | } | 37 | } |
38 | 38 | ||
39 | return $data; | 39 | return $data; |
40 | } \ No newline at end of file | 40 | } |
diff --git a/plugins/wallabag/README.md b/plugins/wallabag/README.md index 3f930564..ea21a519 100644 --- a/plugins/wallabag/README.md +++ b/plugins/wallabag/README.md | |||
@@ -4,19 +4,19 @@ For each link in your Shaarli, adds a button to save the target page in your [wa | |||
4 | 4 | ||
5 | ### Installation | 5 | ### Installation |
6 | 6 | ||
7 | Clone this repository inside your `tpl/plugins/` directory, or download the archive and unpack it there. | 7 | Clone this repository inside your `tpl/plugins/` directory, or download the archive and unpack it there. |
8 | The directory structure should look like: | 8 | The directory structure should look like: |
9 | 9 | ||
10 | ``` | 10 | ```bash |
11 | └── tpl | 11 | └── tpl |
12 | └── plugins | 12 | └── plugins |
13 |   └── wallabag | 13 | └── wallabag |
14 |   ├── README.md | 14 | ├── README.md |
15 |   ├── wallabag.html | 15 | ├── wallabag.html |
16 |   ├── wallabag.meta | 16 | ├── wallabag.meta |
17 |   ├── wallabag.php | 17 | ├── wallabag.php |
18 |   ├── wallabag.php | 18 | ├── wallabag.php |
19 |   └── WallabagInstance.php | 19 | └── WallabagInstance.php |
20 | ``` | 20 | ``` |
21 | 21 | ||
22 | To enable the plugin, you can either: | 22 | To enable the plugin, you can either: |
@@ -28,10 +28,10 @@ To enable the plugin, you can either: | |||
28 | 28 | ||
29 | Go to the plugin administration page, and edit the following settings (with the plugin enabled). | 29 | Go to the plugin administration page, and edit the following settings (with the plugin enabled). |
30 | 30 | ||
31 | **WALLABAG_URL**: *Wallabag instance URL* | 31 | **WALLABAG_URL**: *Wallabag instance URL* |
32 | Example value: `http://v2.wallabag.org` | 32 | Example value: `http://v2.wallabag.org` |
33 | 33 | ||
34 | **WALLABAG_VERSION**: *Wallabag version* | 34 | **WALLABAG_VERSION**: *Wallabag version* |
35 | Value: either `1` (for 1.x) or `2` (for 2.x) | 35 | Value: either `1` (for 1.x) or `2` (for 2.x) |
36 | 36 | ||
37 | > Note: these settings can also be set in `data/config.json.php`, in the plugins section. \ No newline at end of file | 37 | > Note: these settings can also be set in `data/config.json.php`, in the plugins section. |
diff --git a/plugins/wallabag/wallabag.meta b/plugins/wallabag/wallabag.meta index 26e1ea63..9c93f81c 100644 --- a/plugins/wallabag/wallabag.meta +++ b/plugins/wallabag/wallabag.meta | |||
@@ -1,2 +1,4 @@ | |||
1 | description="For each link, add a Wallabag icon to save it in your instance." | 1 | description="For each link, add a Wallabag icon to save it in your instance." |
2 | parameters="WALLABAG_URL;WALLABAG_VERSION" \ No newline at end of file | 2 | parameters="WALLABAG_URL;WALLABAG_VERSION" |
3 | parameter.WALLABAG_URL="Wallabag API URL" | ||
4 | parameter.WALLABAG_VERSION="Wallabag API version (1 or 2)" \ No newline at end of file | ||
diff --git a/shaarli_version.php b/shaarli_version.php index 3c89e94f..eaab95c6 100644 --- a/shaarli_version.php +++ b/shaarli_version.php | |||
@@ -1 +1 @@ | |||
<?php /* 0.7.0 */ ?> | <?php /* 0.8.0 */ ?> | ||
diff --git a/tests/HttpUtils/GetIpAdressFromProxyTest.php b/tests/HttpUtils/GetIpAdressFromProxyTest.php new file mode 100644 index 00000000..6a74a45a --- /dev/null +++ b/tests/HttpUtils/GetIpAdressFromProxyTest.php | |||
@@ -0,0 +1,58 @@ | |||
1 | <?php | ||
2 | |||
3 | require_once 'application/HttpUtils.php'; | ||
4 | |||
5 | /** | ||
6 | * Unitary tests for getIpAddressFromProxy() | ||
7 | */ | ||
8 | class GetIpAdressFromProxyTest extends PHPUnit_Framework_TestCase { | ||
9 | |||
10 | /** | ||
11 | * Test without proxy | ||
12 | */ | ||
13 | public function testWithoutProxy() | ||
14 | { | ||
15 | $this->assertFalse(getIpAddressFromProxy(array(), array())); | ||
16 | } | ||
17 | |||
18 | /** | ||
19 | * Test with a single IP in proxy header. | ||
20 | */ | ||
21 | public function testWithOneForwardedIp() | ||
22 | { | ||
23 | $ip = '1.1.1.1'; | ||
24 | $server = array('HTTP_X_FORWARDED_FOR' => $ip); | ||
25 | $this->assertEquals($ip, getIpAddressFromProxy($server, array())); | ||
26 | } | ||
27 | |||
28 | /** | ||
29 | * Test with a multiple IPs in proxy header. | ||
30 | */ | ||
31 | public function testWithMultipleForwardedIp() | ||
32 | { | ||
33 | $ip = '1.1.1.1'; | ||
34 | $ip2 = '2.2.2.2'; | ||
35 | |||
36 | $server = array('HTTP_X_FORWARDED_FOR' => $ip .','. $ip2); | ||
37 | $this->assertEquals($ip2, getIpAddressFromProxy($server, array())); | ||
38 | |||
39 | $server = array('HTTP_X_FORWARDED_FOR' => $ip .' , '. $ip2); | ||
40 | $this->assertEquals($ip2, getIpAddressFromProxy($server, array())); | ||
41 | } | ||
42 | |||
43 | /** | ||
44 | * Test with a trusted IP address. | ||
45 | */ | ||
46 | public function testWithTrustedIp() | ||
47 | { | ||
48 | $ip = '1.1.1.1'; | ||
49 | $ip2 = '2.2.2.2'; | ||
50 | |||
51 | $server = array('HTTP_X_FORWARDED_FOR' => $ip); | ||
52 | $this->assertFalse(getIpAddressFromProxy($server, array($ip))); | ||
53 | |||
54 | $server = array('HTTP_X_FORWARDED_FOR' => $ip .','. $ip2); | ||
55 | $this->assertEquals($ip2, getIpAddressFromProxy($server, array($ip))); | ||
56 | $this->assertFalse(getIpAddressFromProxy($server, array($ip, $ip2))); | ||
57 | } | ||
58 | } | ||
diff --git a/tests/LanguagesTest.php b/tests/LanguagesTest.php new file mode 100644 index 00000000..79c136c8 --- /dev/null +++ b/tests/LanguagesTest.php | |||
@@ -0,0 +1,41 @@ | |||
1 | <?php | ||
2 | |||
3 | require_once 'application/Languages.php'; | ||
4 | |||
5 | /** | ||
6 | * Class LanguagesTest. | ||
7 | */ | ||
8 | class LanguagesTest extends PHPUnit_Framework_TestCase | ||
9 | { | ||
10 | /** | ||
11 | * Test t() with a simple non identified value. | ||
12 | */ | ||
13 | public function testTranslateSingleNotID() | ||
14 | { | ||
15 | $text = 'abcdé 564 fgK'; | ||
16 | $this->assertEquals($text, t($text)); | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * Test t() with a non identified plural form. | ||
21 | */ | ||
22 | public function testTranslatePluralNotID() | ||
23 | { | ||
24 | $text = '%s sandwich'; | ||
25 | $nText = '%s sandwiches'; | ||
26 | $this->assertEquals('0 sandwich', t($text, $nText)); | ||
27 | $this->assertEquals('1 sandwich', t($text, $nText, 1)); | ||
28 | $this->assertEquals('2 sandwiches', t($text, $nText, 2)); | ||
29 | } | ||
30 | |||
31 | /** | ||
32 | * Test t() with a non identified invalid plural form. | ||
33 | */ | ||
34 | public function testTranslatePluralNotIDInvalid() | ||
35 | { | ||
36 | $text = 'sandwich'; | ||
37 | $nText = 'sandwiches'; | ||
38 | $this->assertEquals('sandwich', t($text, $nText, 1)); | ||
39 | $this->assertEquals('sandwiches', t($text, $nText, 2)); | ||
40 | } | ||
41 | } | ||
diff --git a/tests/NetscapeBookmarkUtilsTest.php b/tests/NetscapeBookmarkUtils/BookmarkExportTest.php index 41e6d84c..cc54ab9f 100644 --- a/tests/NetscapeBookmarkUtilsTest.php +++ b/tests/NetscapeBookmarkUtils/BookmarkExportTest.php | |||
@@ -3,9 +3,9 @@ | |||
3 | require_once 'application/NetscapeBookmarkUtils.php'; | 3 | require_once 'application/NetscapeBookmarkUtils.php'; |
4 | 4 | ||
5 | /** | 5 | /** |
6 | * Netscape bookmark import and export | 6 | * Netscape bookmark export |
7 | */ | 7 | */ |
8 | class NetscapeBookmarkUtilsTest extends PHPUnit_Framework_TestCase | 8 | class BookmarkExportTest extends PHPUnit_Framework_TestCase |
9 | { | 9 | { |
10 | /** | 10 | /** |
11 | * @var string datastore to test write operations | 11 | * @var string datastore to test write operations |
diff --git a/tests/NetscapeBookmarkUtils/BookmarkImportTest.php b/tests/NetscapeBookmarkUtils/BookmarkImportTest.php new file mode 100644 index 00000000..f0ad500f --- /dev/null +++ b/tests/NetscapeBookmarkUtils/BookmarkImportTest.php | |||
@@ -0,0 +1,546 @@ | |||
1 | <?php | ||
2 | |||
3 | require_once 'application/NetscapeBookmarkUtils.php'; | ||
4 | |||
5 | |||
6 | /** | ||
7 | * Utility function to load a file's metadata in a $_FILES-like array | ||
8 | * | ||
9 | * @param string $filename Basename of the file | ||
10 | * | ||
11 | * @return array A $_FILES-like array | ||
12 | */ | ||
13 | function file2array($filename) | ||
14 | { | ||
15 | return array( | ||
16 | 'filetoupload' => array( | ||
17 | 'name' => $filename, | ||
18 | 'tmp_name' => __DIR__ . '/input/' . $filename, | ||
19 | 'size' => filesize(__DIR__ . '/input/' . $filename) | ||
20 | ) | ||
21 | ); | ||
22 | } | ||
23 | |||
24 | |||
25 | /** | ||
26 | * Netscape bookmark import | ||
27 | */ | ||
28 | class BookmarkImportTest extends PHPUnit_Framework_TestCase | ||
29 | { | ||
30 | /** | ||
31 | * @var string datastore to test write operations | ||
32 | */ | ||
33 | protected static $testDatastore = 'sandbox/datastore.php'; | ||
34 | |||
35 | /** | ||
36 | * @var LinkDB private LinkDB instance | ||
37 | */ | ||
38 | protected $linkDb = null; | ||
39 | |||
40 | /** | ||
41 | * @var string Dummy page cache | ||
42 | */ | ||
43 | protected $pagecache = 'tests'; | ||
44 | |||
45 | /** | ||
46 | * Resets test data before each test | ||
47 | */ | ||
48 | protected function setUp() | ||
49 | { | ||
50 | if (file_exists(self::$testDatastore)) { | ||
51 | unlink(self::$testDatastore); | ||
52 | } | ||
53 | // start with an empty datastore | ||
54 | file_put_contents(self::$testDatastore, '<?php /* S7QysKquBQA= */ ?>'); | ||
55 | $this->linkDb = new LinkDB(self::$testDatastore, true, false); | ||
56 | } | ||
57 | |||
58 | /** | ||
59 | * Attempt to import bookmarks from an empty file | ||
60 | */ | ||
61 | public function testImportEmptyData() | ||
62 | { | ||
63 | $files = file2array('empty.htm'); | ||
64 | $this->assertEquals( | ||
65 | 'File empty.htm (0 bytes) has an unknown file format.' | ||
66 | .' Nothing was imported.', | ||
67 | NetscapeBookmarkUtils::import(NULL, $files, NULL, NULL) | ||
68 | ); | ||
69 | $this->assertEquals(0, count($this->linkDb)); | ||
70 | } | ||
71 | |||
72 | /** | ||
73 | * Attempt to import bookmarks from a file with no Doctype | ||
74 | */ | ||
75 | public function testImportNoDoctype() | ||
76 | { | ||
77 | $files = file2array('no_doctype.htm'); | ||
78 | $this->assertEquals( | ||
79 | 'File no_doctype.htm (350 bytes) has an unknown file format. Nothing was imported.', | ||
80 | NetscapeBookmarkUtils::import(NULL, $files, NULL, NULL) | ||
81 | ); | ||
82 | $this->assertEquals(0, count($this->linkDb)); | ||
83 | } | ||
84 | |||
85 | /** | ||
86 | * Ensure IE dumps are supported | ||
87 | */ | ||
88 | public function testImportInternetExplorerEncoding() | ||
89 | { | ||
90 | $files = file2array('internet_explorer_encoding.htm'); | ||
91 | $this->assertEquals( | ||
92 | 'File internet_explorer_encoding.htm (356 bytes) was successfully processed:' | ||
93 | .' 1 links imported, 0 links overwritten, 0 links skipped.', | ||
94 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->pagecache) | ||
95 | ); | ||
96 | $this->assertEquals(1, count($this->linkDb)); | ||
97 | $this->assertEquals(0, count_private($this->linkDb)); | ||
98 | |||
99 | $this->assertEquals( | ||
100 | array( | ||
101 | 'linkdate' => '20160618_173944', | ||
102 | 'title' => 'Hg Init a Mercurial tutorial by Joel Spolsky', | ||
103 | 'url' => 'http://hginit.com/', | ||
104 | 'description' => '', | ||
105 | 'private' => 0, | ||
106 | 'tags' => '' | ||
107 | ), | ||
108 | $this->linkDb->getLinkFromUrl('http://hginit.com/') | ||
109 | ); | ||
110 | } | ||
111 | |||
112 | |||
113 | /** | ||
114 | * Import bookmarks nested in a folder hierarchy | ||
115 | */ | ||
116 | public function testImportNested() | ||
117 | { | ||
118 | $files = file2array('netscape_nested.htm'); | ||
119 | $this->assertEquals( | ||
120 | 'File netscape_nested.htm (1337 bytes) was successfully processed:' | ||
121 | .' 8 links imported, 0 links overwritten, 0 links skipped.', | ||
122 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->pagecache) | ||
123 | ); | ||
124 | $this->assertEquals(8, count($this->linkDb)); | ||
125 | $this->assertEquals(2, count_private($this->linkDb)); | ||
126 | |||
127 | $this->assertEquals( | ||
128 | array( | ||
129 | 'linkdate' => '20160225_205541', | ||
130 | 'title' => 'Nested 1', | ||
131 | 'url' => 'http://nest.ed/1', | ||
132 | 'description' => '', | ||
133 | 'private' => 0, | ||
134 | 'tags' => 'tag1 tag2' | ||
135 | ), | ||
136 | $this->linkDb->getLinkFromUrl('http://nest.ed/1') | ||
137 | ); | ||
138 | $this->assertEquals( | ||
139 | array( | ||
140 | 'linkdate' => '20160225_205542', | ||
141 | 'title' => 'Nested 1-1', | ||
142 | 'url' => 'http://nest.ed/1-1', | ||
143 | 'description' => '', | ||
144 | 'private' => 0, | ||
145 | 'tags' => 'folder1 tag1 tag2' | ||
146 | ), | ||
147 | $this->linkDb->getLinkFromUrl('http://nest.ed/1-1') | ||
148 | ); | ||
149 | $this->assertEquals( | ||
150 | array( | ||
151 | 'linkdate' => '20160225_205547', | ||
152 | 'title' => 'Nested 1-2', | ||
153 | 'url' => 'http://nest.ed/1-2', | ||
154 | 'description' => '', | ||
155 | 'private' => 0, | ||
156 | 'tags' => 'folder1 tag3 tag4' | ||
157 | ), | ||
158 | $this->linkDb->getLinkFromUrl('http://nest.ed/1-2') | ||
159 | ); | ||
160 | $this->assertEquals( | ||
161 | array( | ||
162 | 'linkdate' => '20160202_172222', | ||
163 | 'title' => 'Nested 2-1', | ||
164 | 'url' => 'http://nest.ed/2-1', | ||
165 | 'description' => 'First link of the second section', | ||
166 | 'private' => 1, | ||
167 | 'tags' => 'folder2' | ||
168 | ), | ||
169 | $this->linkDb->getLinkFromUrl('http://nest.ed/2-1') | ||
170 | ); | ||
171 | $this->assertEquals( | ||
172 | array( | ||
173 | 'linkdate' => '20160119_200227', | ||
174 | 'title' => 'Nested 2-2', | ||
175 | 'url' => 'http://nest.ed/2-2', | ||
176 | 'description' => 'Second link of the second section', | ||
177 | 'private' => 1, | ||
178 | 'tags' => 'folder2' | ||
179 | ), | ||
180 | $this->linkDb->getLinkFromUrl('http://nest.ed/2-2') | ||
181 | ); | ||
182 | $this->assertEquals( | ||
183 | array( | ||
184 | 'linkdate' => '20160202_172223', | ||
185 | 'title' => 'Nested 3-1', | ||
186 | 'url' => 'http://nest.ed/3-1', | ||
187 | 'description' => '', | ||
188 | 'private' => 0, | ||
189 | 'tags' => 'folder3 folder3-1 tag3' | ||
190 | ), | ||
191 | $this->linkDb->getLinkFromUrl('http://nest.ed/3-1') | ||
192 | ); | ||
193 | $this->assertEquals( | ||
194 | array( | ||
195 | 'linkdate' => '20160119_200228', | ||
196 | 'title' => 'Nested 3-2', | ||
197 | 'url' => 'http://nest.ed/3-2', | ||
198 | 'description' => '', | ||
199 | 'private' => 0, | ||
200 | 'tags' => 'folder3 folder3-1' | ||
201 | ), | ||
202 | $this->linkDb->getLinkFromUrl('http://nest.ed/3-2') | ||
203 | ); | ||
204 | $this->assertEquals( | ||
205 | array( | ||
206 | 'linkdate' => '20160229_081541', | ||
207 | 'title' => 'Nested 2', | ||
208 | 'url' => 'http://nest.ed/2', | ||
209 | 'description' => '', | ||
210 | 'private' => 0, | ||
211 | 'tags' => 'tag4' | ||
212 | ), | ||
213 | $this->linkDb->getLinkFromUrl('http://nest.ed/2') | ||
214 | ); | ||
215 | } | ||
216 | |||
217 | /** | ||
218 | * Import bookmarks with the default privacy setting (reuse from file) | ||
219 | * | ||
220 | * The $_POST array is not set. | ||
221 | */ | ||
222 | public function testImportDefaultPrivacyNoPost() | ||
223 | { | ||
224 | $files = file2array('netscape_basic.htm'); | ||
225 | $this->assertEquals( | ||
226 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
227 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
228 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->pagecache) | ||
229 | ); | ||
230 | $this->assertEquals(2, count($this->linkDb)); | ||
231 | $this->assertEquals(1, count_private($this->linkDb)); | ||
232 | |||
233 | $this->assertEquals( | ||
234 | array( | ||
235 | 'linkdate' => '20001010_105536', | ||
236 | 'title' => 'Secret stuff', | ||
237 | 'url' => 'https://private.tld', | ||
238 | 'description' => "Super-secret stuff you're not supposed to know about", | ||
239 | 'private' => 1, | ||
240 | 'tags' => 'private secret' | ||
241 | ), | ||
242 | $this->linkDb->getLinkFromUrl('https://private.tld') | ||
243 | ); | ||
244 | $this->assertEquals( | ||
245 | array( | ||
246 | 'linkdate' => '20160225_205548', | ||
247 | 'title' => 'Public stuff', | ||
248 | 'url' => 'http://public.tld', | ||
249 | 'description' => '', | ||
250 | 'private' => 0, | ||
251 | 'tags' => 'public hello world' | ||
252 | ), | ||
253 | $this->linkDb->getLinkFromUrl('http://public.tld') | ||
254 | ); | ||
255 | } | ||
256 | |||
257 | /** | ||
258 | * Import bookmarks with the default privacy setting (reuse from file) | ||
259 | */ | ||
260 | public function testImportKeepPrivacy() | ||
261 | { | ||
262 | $post = array('privacy' => 'default'); | ||
263 | $files = file2array('netscape_basic.htm'); | ||
264 | $this->assertEquals( | ||
265 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
266 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
267 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
268 | ); | ||
269 | $this->assertEquals(2, count($this->linkDb)); | ||
270 | $this->assertEquals(1, count_private($this->linkDb)); | ||
271 | |||
272 | $this->assertEquals( | ||
273 | array( | ||
274 | 'linkdate' => '20001010_105536', | ||
275 | 'title' => 'Secret stuff', | ||
276 | 'url' => 'https://private.tld', | ||
277 | 'description' => "Super-secret stuff you're not supposed to know about", | ||
278 | 'private' => 1, | ||
279 | 'tags' => 'private secret' | ||
280 | ), | ||
281 | $this->linkDb->getLinkFromUrl('https://private.tld') | ||
282 | ); | ||
283 | $this->assertEquals( | ||
284 | array( | ||
285 | 'linkdate' => '20160225_205548', | ||
286 | 'title' => 'Public stuff', | ||
287 | 'url' => 'http://public.tld', | ||
288 | 'description' => '', | ||
289 | 'private' => 0, | ||
290 | 'tags' => 'public hello world' | ||
291 | ), | ||
292 | $this->linkDb->getLinkFromUrl('http://public.tld') | ||
293 | ); | ||
294 | } | ||
295 | |||
296 | /** | ||
297 | * Import links as public | ||
298 | */ | ||
299 | public function testImportAsPublic() | ||
300 | { | ||
301 | $post = array('privacy' => 'public'); | ||
302 | $files = file2array('netscape_basic.htm'); | ||
303 | $this->assertEquals( | ||
304 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
305 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
306 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
307 | ); | ||
308 | $this->assertEquals(2, count($this->linkDb)); | ||
309 | $this->assertEquals(0, count_private($this->linkDb)); | ||
310 | $this->assertEquals( | ||
311 | 0, | ||
312 | $this->linkDb['20001010_105536']['private'] | ||
313 | ); | ||
314 | $this->assertEquals( | ||
315 | 0, | ||
316 | $this->linkDb['20160225_205548']['private'] | ||
317 | ); | ||
318 | } | ||
319 | |||
320 | /** | ||
321 | * Import links as private | ||
322 | */ | ||
323 | public function testImportAsPrivate() | ||
324 | { | ||
325 | $post = array('privacy' => 'private'); | ||
326 | $files = file2array('netscape_basic.htm'); | ||
327 | $this->assertEquals( | ||
328 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
329 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
330 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
331 | ); | ||
332 | $this->assertEquals(2, count($this->linkDb)); | ||
333 | $this->assertEquals(2, count_private($this->linkDb)); | ||
334 | $this->assertEquals( | ||
335 | 1, | ||
336 | $this->linkDb['20001010_105536']['private'] | ||
337 | ); | ||
338 | $this->assertEquals( | ||
339 | 1, | ||
340 | $this->linkDb['20160225_205548']['private'] | ||
341 | ); | ||
342 | } | ||
343 | |||
344 | /** | ||
345 | * Overwrite private links so they become public | ||
346 | */ | ||
347 | public function testOverwriteAsPublic() | ||
348 | { | ||
349 | $files = file2array('netscape_basic.htm'); | ||
350 | |||
351 | // import links as private | ||
352 | $post = array('privacy' => 'private'); | ||
353 | $this->assertEquals( | ||
354 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
355 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
356 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
357 | ); | ||
358 | $this->assertEquals(2, count($this->linkDb)); | ||
359 | $this->assertEquals(2, count_private($this->linkDb)); | ||
360 | $this->assertEquals( | ||
361 | 1, | ||
362 | $this->linkDb['20001010_105536']['private'] | ||
363 | ); | ||
364 | $this->assertEquals( | ||
365 | 1, | ||
366 | $this->linkDb['20160225_205548']['private'] | ||
367 | ); | ||
368 | |||
369 | // re-import as public, enable overwriting | ||
370 | $post = array( | ||
371 | 'privacy' => 'public', | ||
372 | 'overwrite' => 'true' | ||
373 | ); | ||
374 | $this->assertEquals( | ||
375 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
376 | .' 2 links imported, 2 links overwritten, 0 links skipped.', | ||
377 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
378 | ); | ||
379 | $this->assertEquals(2, count($this->linkDb)); | ||
380 | $this->assertEquals(0, count_private($this->linkDb)); | ||
381 | $this->assertEquals( | ||
382 | 0, | ||
383 | $this->linkDb['20001010_105536']['private'] | ||
384 | ); | ||
385 | $this->assertEquals( | ||
386 | 0, | ||
387 | $this->linkDb['20160225_205548']['private'] | ||
388 | ); | ||
389 | } | ||
390 | |||
391 | /** | ||
392 | * Overwrite public links so they become private | ||
393 | */ | ||
394 | public function testOverwriteAsPrivate() | ||
395 | { | ||
396 | $files = file2array('netscape_basic.htm'); | ||
397 | |||
398 | // import links as public | ||
399 | $post = array('privacy' => 'public'); | ||
400 | $this->assertEquals( | ||
401 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
402 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
403 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
404 | ); | ||
405 | $this->assertEquals(2, count($this->linkDb)); | ||
406 | $this->assertEquals(0, count_private($this->linkDb)); | ||
407 | $this->assertEquals( | ||
408 | 0, | ||
409 | $this->linkDb['20001010_105536']['private'] | ||
410 | ); | ||
411 | $this->assertEquals( | ||
412 | 0, | ||
413 | $this->linkDb['20160225_205548']['private'] | ||
414 | ); | ||
415 | |||
416 | // re-import as private, enable overwriting | ||
417 | $post = array( | ||
418 | 'privacy' => 'private', | ||
419 | 'overwrite' => 'true' | ||
420 | ); | ||
421 | $this->assertEquals( | ||
422 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
423 | .' 2 links imported, 2 links overwritten, 0 links skipped.', | ||
424 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
425 | ); | ||
426 | $this->assertEquals(2, count($this->linkDb)); | ||
427 | $this->assertEquals(2, count_private($this->linkDb)); | ||
428 | $this->assertEquals( | ||
429 | 1, | ||
430 | $this->linkDb['20001010_105536']['private'] | ||
431 | ); | ||
432 | $this->assertEquals( | ||
433 | 1, | ||
434 | $this->linkDb['20160225_205548']['private'] | ||
435 | ); | ||
436 | } | ||
437 | |||
438 | /** | ||
439 | * Attept to import the same links twice without enabling overwriting | ||
440 | */ | ||
441 | public function testSkipOverwrite() | ||
442 | { | ||
443 | $post = array('privacy' => 'public'); | ||
444 | $files = file2array('netscape_basic.htm'); | ||
445 | $this->assertEquals( | ||
446 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
447 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
448 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
449 | ); | ||
450 | $this->assertEquals(2, count($this->linkDb)); | ||
451 | $this->assertEquals(0, count_private($this->linkDb)); | ||
452 | |||
453 | // re-import as private, DO NOT enable overwriting | ||
454 | $post = array('privacy' => 'private'); | ||
455 | $this->assertEquals( | ||
456 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
457 | .' 0 links imported, 0 links overwritten, 2 links skipped.', | ||
458 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
459 | ); | ||
460 | $this->assertEquals(2, count($this->linkDb)); | ||
461 | $this->assertEquals(0, count_private($this->linkDb)); | ||
462 | } | ||
463 | |||
464 | /** | ||
465 | * Add user-specified tags to all imported bookmarks | ||
466 | */ | ||
467 | public function testSetDefaultTags() | ||
468 | { | ||
469 | $post = array( | ||
470 | 'privacy' => 'public', | ||
471 | 'default_tags' => 'tag1,tag2 tag3' | ||
472 | ); | ||
473 | $files = file2array('netscape_basic.htm'); | ||
474 | $this->assertEquals( | ||
475 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
476 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
477 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
478 | ); | ||
479 | $this->assertEquals(2, count($this->linkDb)); | ||
480 | $this->assertEquals(0, count_private($this->linkDb)); | ||
481 | $this->assertEquals( | ||
482 | 'tag1 tag2 tag3 private secret', | ||
483 | $this->linkDb['20001010_105536']['tags'] | ||
484 | ); | ||
485 | $this->assertEquals( | ||
486 | 'tag1 tag2 tag3 public hello world', | ||
487 | $this->linkDb['20160225_205548']['tags'] | ||
488 | ); | ||
489 | } | ||
490 | |||
491 | /** | ||
492 | * The user-specified tags contain characters to be escaped | ||
493 | */ | ||
494 | public function testSanitizeDefaultTags() | ||
495 | { | ||
496 | $post = array( | ||
497 | 'privacy' => 'public', | ||
498 | 'default_tags' => 'tag1&,tag2 "tag3"' | ||
499 | ); | ||
500 | $files = file2array('netscape_basic.htm'); | ||
501 | $this->assertEquals( | ||
502 | 'File netscape_basic.htm (482 bytes) was successfully processed:' | ||
503 | .' 2 links imported, 0 links overwritten, 0 links skipped.', | ||
504 | NetscapeBookmarkUtils::import($post, $files, $this->linkDb, $this->pagecache) | ||
505 | ); | ||
506 | $this->assertEquals(2, count($this->linkDb)); | ||
507 | $this->assertEquals(0, count_private($this->linkDb)); | ||
508 | $this->assertEquals( | ||
509 | 'tag1& tag2 "tag3" private secret', | ||
510 | $this->linkDb['20001010_105536']['tags'] | ||
511 | ); | ||
512 | $this->assertEquals( | ||
513 | 'tag1& tag2 "tag3" public hello world', | ||
514 | $this->linkDb['20160225_205548']['tags'] | ||
515 | ); | ||
516 | } | ||
517 | |||
518 | /** | ||
519 | * Ensure each imported bookmark has a unique linkdate | ||
520 | * | ||
521 | * See https://github.com/shaarli/Shaarli/issues/351 | ||
522 | */ | ||
523 | public function testImportSameDate() | ||
524 | { | ||
525 | $files = file2array('same_date.htm'); | ||
526 | $this->assertEquals( | ||
527 | 'File same_date.htm (453 bytes) was successfully processed:' | ||
528 | .' 3 links imported, 0 links overwritten, 0 links skipped.', | ||
529 | NetscapeBookmarkUtils::import(array(), $files, $this->linkDb, $this->pagecache) | ||
530 | ); | ||
531 | $this->assertEquals(3, count($this->linkDb)); | ||
532 | $this->assertEquals(0, count_private($this->linkDb)); | ||
533 | $this->assertEquals( | ||
534 | '20160225_205548', | ||
535 | $this->linkDb['20160225_205548']['linkdate'] | ||
536 | ); | ||
537 | $this->assertEquals( | ||
538 | '20160225_205549', | ||
539 | $this->linkDb['20160225_205549']['linkdate'] | ||
540 | ); | ||
541 | $this->assertEquals( | ||
542 | '20160225_205550', | ||
543 | $this->linkDb['20160225_205550']['linkdate'] | ||
544 | ); | ||
545 | } | ||
546 | } | ||
diff --git a/tests/NetscapeBookmarkUtils/input/empty.htm b/tests/NetscapeBookmarkUtils/input/empty.htm new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/empty.htm | |||
diff --git a/tests/NetscapeBookmarkUtils/input/internet_explorer_encoding.htm b/tests/NetscapeBookmarkUtils/input/internet_explorer_encoding.htm new file mode 100644 index 00000000..18703cf6 --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/internet_explorer_encoding.htm | |||
@@ -0,0 +1,9 @@ | |||
1 | <!DOCTYPE NETSCAPE-Bookmark-file-1> | ||
2 | <!-- This is an automatically generated file. | ||
3 | It will be read and overwritten. | ||
4 | Do Not Edit! --> | ||
5 | <TITLE>Bookmarks</TITLE> | ||
6 | <H1>Bookmarks</H1> | ||
7 | <DL><p> | ||
8 | <DT><A HREF="http://hginit.com/" ADD_DATE="1466271584" LAST_VISIT="1466271584" LAST_MODIFIED="1466271584" >Hg Init a Mercurial tutorial by Joel Spolsky</A> | ||
9 | </DL><p> | ||
diff --git a/tests/NetscapeBookmarkUtils/input/netscape_basic.htm b/tests/NetscapeBookmarkUtils/input/netscape_basic.htm new file mode 100644 index 00000000..affe0cf8 --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/netscape_basic.htm | |||
@@ -0,0 +1,11 @@ | |||
1 | <!DOCTYPE NETSCAPE-Bookmark-file-1> | ||
2 | <!-- This is an automatically generated file. | ||
3 | It will be read and overwritten. | ||
4 | Do Not Edit! --> | ||
5 | <TITLE>Bookmarks</TITLE> | ||
6 | <H1>Bookmarks</H1> | ||
7 | <DL><p> | ||
8 | <DT><A HREF="https://private.tld" ADD_DATE="10/Oct/2000:13:55:36 +0300" PRIVATE="1" TAGS="private secret">Secret stuff</A> | ||
9 | <DD>Super-secret stuff you're not supposed to know about | ||
10 | <DT><A HREF="http://public.tld" ADD_DATE="1456433748" PRIVATE="0" TAGS="public hello world">Public stuff</A> | ||
11 | </DL><p> | ||
diff --git a/tests/NetscapeBookmarkUtils/input/netscape_nested.htm b/tests/NetscapeBookmarkUtils/input/netscape_nested.htm new file mode 100644 index 00000000..b486fe18 --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/netscape_nested.htm | |||
@@ -0,0 +1,31 @@ | |||
1 | <!DOCTYPE NETSCAPE-Bookmark-file-1> | ||
2 | <!-- This is an automatically generated file. | ||
3 | It will be read and overwritten. | ||
4 | Do Not Edit! --> | ||
5 | <TITLE>Bookmarks</TITLE> | ||
6 | <H1>Bookmarks</H1> | ||
7 | <DL><p> | ||
8 | <DT><A HREF="http://nest.ed/1" ADD_DATE="1456433741" PRIVATE="0" TAGS="tag1,tag2">Nested 1</A> | ||
9 | <DT><H3 ADD_DATE="1456433722" LAST_MODIFIED="1456433739">Folder1</H3> | ||
10 | <DL><p> | ||
11 | <DT><A HREF="http://nest.ed/1-1" ADD_DATE="1456433742" PRIVATE="0" TAGS="tag1,tag2">Nested 1-1</A> | ||
12 | <DT><A HREF="http://nest.ed/1-2" ADD_DATE="1456433747" PRIVATE="0" TAGS="tag3,tag4">Nested 1-2</A> | ||
13 | </DL><p> | ||
14 | <DT><H3 ADD_DATE="1456433722">Folder2</H3> | ||
15 | <DD>This second folder contains wonderful links! | ||
16 | <DL><p> | ||
17 | <DT><A HREF="http://nest.ed/2-1" ADD_DATE="1454433742" PRIVATE="1">Nested 2-1</A> | ||
18 | <DD>First link of the second section | ||
19 | <DT><A HREF="http://nest.ed/2-2" ADD_DATE="1453233747" PRIVATE="1">Nested 2-2</A> | ||
20 | <DD>Second link of the second section | ||
21 | </DL><p> | ||
22 | <DT><H3>Folder3</H3> | ||
23 | <DL><p> | ||
24 | <DT><H3>Folder3-1</H3> | ||
25 | <DL><p> | ||
26 | <DT><A HREF="http://nest.ed/3-1" ADD_DATE="1454433742" PRIVATE="0" TAGS="tag3">Nested 3-1</A> | ||
27 | <DT><A HREF="http://nest.ed/3-2" ADD_DATE="1453233747" PRIVATE="0">Nested 3-2</A> | ||
28 | </DL><p> | ||
29 | </DL><p> | ||
30 | <DT><A HREF="http://nest.ed/2" ADD_DATE="1456733741" PRIVATE="0" TAGS="tag4">Nested 2</A> | ||
31 | </DL><p> | ||
diff --git a/tests/NetscapeBookmarkUtils/input/no_doctype.htm b/tests/NetscapeBookmarkUtils/input/no_doctype.htm new file mode 100644 index 00000000..766d398b --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/no_doctype.htm | |||
@@ -0,0 +1,7 @@ | |||
1 | <TITLE>Bookmarks</TITLE> | ||
2 | <H1>Bookmarks</H1> | ||
3 | <DL><p> | ||
4 | <DT><A HREF="https://private.tld" ADD_DATE="10/Oct/2000:13:55:36 +0300" PRIVATE="1" TAGS="private secret">Secret stuff</A> | ||
5 | <DD>Super-secret stuff you're not supposed to know about | ||
6 | <DT><A HREF="http://public.tld" ADD_DATE="1456433748" PRIVATE="0" TAGS="public hello world">Public stuff</A> | ||
7 | </DL><p> | ||
diff --git a/tests/NetscapeBookmarkUtils/input/same_date.htm b/tests/NetscapeBookmarkUtils/input/same_date.htm new file mode 100644 index 00000000..9d58a582 --- /dev/null +++ b/tests/NetscapeBookmarkUtils/input/same_date.htm | |||
@@ -0,0 +1,11 @@ | |||
1 | <!DOCTYPE NETSCAPE-Bookmark-file-1> | ||
2 | <!-- This is an automatically generated file. | ||
3 | It will be read and overwritten. | ||
4 | Do Not Edit! --> | ||
5 | <TITLE>Bookmarks</TITLE> | ||
6 | <H1>Bookmarks</H1> | ||
7 | <DL><p> | ||
8 | <DT><A HREF="https://fir.st" ADD_DATE="1456433748" PRIVATE="0">Today's first link</A> | ||
9 | <DT><A HREF="https://seco.nd" ADD_DATE="1456433748" PRIVATE="0">Today's second link</A> | ||
10 | <DT><A HREF="https://thi.rd" ADD_DATE="1456433748" PRIVATE="0">Today's third link</A> | ||
11 | </DL><p> | ||
diff --git a/tests/PluginManagerTest.php b/tests/PluginManagerTest.php index 61efce68..ddf48185 100644 --- a/tests/PluginManagerTest.php +++ b/tests/PluginManagerTest.php | |||
@@ -79,11 +79,17 @@ class PluginManagerTest extends PHPUnit_Framework_TestCase | |||
79 | $this->pluginManager->load(array(self::$pluginName)); | 79 | $this->pluginManager->load(array(self::$pluginName)); |
80 | 80 | ||
81 | $expectedParameters = array( | 81 | $expectedParameters = array( |
82 | 'pop' => '', | 82 | 'pop' => array( |
83 | 'hip' => '', | 83 | 'value' => '', |
84 | 'desc' => 'pop description', | ||
85 | ), | ||
86 | 'hip' => array( | ||
87 | 'value' => '', | ||
88 | 'desc' => '', | ||
89 | ), | ||
84 | ); | 90 | ); |
85 | $meta = $this->pluginManager->getPluginsMeta(); | 91 | $meta = $this->pluginManager->getPluginsMeta(); |
86 | $this->assertEquals('test plugin', $meta[self::$pluginName]['description']); | 92 | $this->assertEquals('test plugin', $meta[self::$pluginName]['description']); |
87 | $this->assertEquals($expectedParameters, $meta[self::$pluginName]['parameters']); | 93 | $this->assertEquals($expectedParameters, $meta[self::$pluginName]['parameters']); |
88 | } | 94 | } |
89 | } \ No newline at end of file | 95 | } |
diff --git a/tests/config/ConfigPluginTest.php b/tests/config/ConfigPluginTest.php index 716631b0..3b37cd79 100644 --- a/tests/config/ConfigPluginTest.php +++ b/tests/config/ConfigPluginTest.php | |||
@@ -101,9 +101,9 @@ class ConfigPluginTest extends PHPUnit_Framework_TestCase | |||
101 | $plugins = array( | 101 | $plugins = array( |
102 | 'plugin_name' => array( | 102 | 'plugin_name' => array( |
103 | 'parameters' => array( | 103 | 'parameters' => array( |
104 | 'param1' => true, | 104 | 'param1' => array('value' => true), |
105 | 'param2' => false, | 105 | 'param2' => array('value' => false), |
106 | 'param3' => '', | 106 | 'param3' => array('value' => ''), |
107 | ) | 107 | ) |
108 | ) | 108 | ) |
109 | ); | 109 | ); |
@@ -114,8 +114,8 @@ class ConfigPluginTest extends PHPUnit_Framework_TestCase | |||
114 | ); | 114 | ); |
115 | 115 | ||
116 | $result = load_plugin_parameter_values($plugins, $parameters); | 116 | $result = load_plugin_parameter_values($plugins, $parameters); |
117 | $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']); | 117 | $this->assertEquals('value1', $result['plugin_name']['parameters']['param1']['value']); |
118 | $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']); | 118 | $this->assertEquals('value2', $result['plugin_name']['parameters']['param2']['value']); |
119 | $this->assertEquals('', $result['plugin_name']['parameters']['param3']); | 119 | $this->assertEquals('', $result['plugin_name']['parameters']['param3']['value']); |
120 | } | 120 | } |
121 | } | 121 | } |
diff --git a/tests/plugins/test/test.meta b/tests/plugins/test/test.meta index ab999ed4..26f243f0 100644 --- a/tests/plugins/test/test.meta +++ b/tests/plugins/test/test.meta | |||
@@ -1,2 +1,4 @@ | |||
1 | description="test plugin" | 1 | description="test plugin" |
2 | parameters="pop;hip" \ No newline at end of file | 2 | parameters="pop;hip" |
3 | parameter.pop="pop description" | ||
4 | parameter.hip= \ No newline at end of file | ||
diff --git a/tests/utils/config/configInvalid.json.php b/tests/utils/config/configInvalid.json.php index 167f2168..e39d640a 100644 --- a/tests/utils/config/configInvalid.json.php +++ b/tests/utils/config/configInvalid.json.php | |||
@@ -2,4 +2,4 @@ | |||
2 | { | 2 | { |
3 | bad: bad, | 3 | bad: bad, |
4 | } | 4 | } |
5 | */ ?> \ No newline at end of file | 5 | */ ?> |
diff --git a/tpl/import.html b/tpl/import.html index 6c4f9421..071e1160 100644 --- a/tpl/import.html +++ b/tpl/import.html | |||
@@ -3,19 +3,31 @@ | |||
3 | <head>{include="includes"}</head> | 3 | <head>{include="includes"}</head> |
4 | <body onload="document.uploadform.filetoupload.focus();"> | 4 | <body onload="document.uploadform.filetoupload.focus();"> |
5 | <div id="pageheader"> | 5 | <div id="pageheader"> |
6 | {include="page.header"} | 6 | {include="page.header"} |
7 | <div id="uploaddiv"> | 7 | <div id="uploaddiv"> |
8 | Import Netscape HTML bookmarks (as exported from Firefox/Chrome/Opera/Delicious/Diigo...) (Max: {$maxfilesize} bytes). | 8 | Import Netscape HTML bookmarks (as exported from Firefox/Chrome/Opera/Delicious/Diigo...) (Max: {$maxfilesize} bytes). |
9 | <form method="POST" action="?do=upload" enctype="multipart/form-data" name="uploadform" id="uploadform"> | 9 | <form method="POST" action="?do=import" enctype="multipart/form-data" |
10 | <input type="hidden" name="token" value="{$token}"> | 10 | name="uploadform" id="uploadform"> |
11 | <input type="file" name="filetoupload"> | 11 | <input type="hidden" name="token" value="{$token}"> |
12 | <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}"> | 12 | <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}"> |
13 | <input type="submit" name="import_file" value="Import" class="bigbutton"><br> | 13 | <input type="file" name="filetoupload"> |
14 | <input type="checkbox" name="private" id="private"><label for="private"> Import all links as private</label><br> | 14 | <input type="submit" name="import_file" value="Import" class="bigbutton"><br> |
15 | <input type="checkbox" name="overwrite" id="overwrite"><label for="overwrite"> Overwrite existing links</label> | 15 | |
16 | </form> | 16 | <label for="privacy"> Visibility:</label><br> |
17 | </div> | 17 | <input type="radio" name="privacy" value="default" checked="true"> |
18 | Use values from the imported file, default to public<br> | ||
19 | <input type="radio" name="privacy" value="private"> | ||
20 | Import all bookmarks as private<br> | ||
21 | <input type="radio" name="privacy" value="public"> | ||
22 | Import all bookmarks as public<br> | ||
23 | |||
24 | <input type="checkbox" name="overwrite" id="overwrite"> | ||
25 | <label for="overwrite"> Overwrite existing bookmarks</label><br> | ||
26 | <label for="default_tags"> Add default tags</label> | ||
27 | <input type="text" name="default_tags" id="default_tags"> | ||
28 | </form> | ||
29 | </div> | ||
18 | </div> | 30 | </div> |
19 | {include="page.footer"} | 31 | {include="page.footer"} |
20 | </body> | 32 | </body> |
21 | </html> \ No newline at end of file | 33 | </html> |
diff --git a/tpl/pluginsadmin.html b/tpl/pluginsadmin.html index 5ddcf061..966360ea 100644 --- a/tpl/pluginsadmin.html +++ b/tpl/pluginsadmin.html | |||
@@ -104,11 +104,12 @@ | |||
104 | <div class="plugin_parameter"> | 104 | <div class="plugin_parameter"> |
105 | <div class="float_label"> | 105 | <div class="float_label"> |
106 | <label for="{$key}"> | 106 | <label for="{$key}"> |
107 | <code>{$key}</code> | 107 | <code>{$key}</code><br> |
108 | {$value.desc} | ||
108 | </label> | 109 | </label> |
109 | </div> | 110 | </div> |
110 | <div class="float_input"> | 111 | <div class="float_input"> |
111 | <input name="{$key}" value="{$value}" id="{$key}"/> | 112 | <input name="{$key}" value="{$value.value}" id="{$key}"/> |
112 | </div> | 113 | </div> |
113 | </div> | 114 | </div> |
114 | {/loop} | 115 | {/loop} |
diff --git a/tpl/tools.html b/tpl/tools.html index 9e45caad..8e285f44 100644 --- a/tpl/tools.html +++ b/tpl/tools.html | |||
@@ -9,7 +9,7 @@ | |||
9 | <br><br> | 9 | <br><br> |
10 | <a href="?do=pluginadmin"><b>Plugin administration</b><span>: Enable, disable and configure plugins.</span></a> | 10 | <a href="?do=pluginadmin"><b>Plugin administration</b><span>: Enable, disable and configure plugins.</span></a> |
11 | <br><br> | 11 | <br><br> |
12 | {if="$openshaarli"}<a href="?do=changepasswd"><b>Change password</b><span>: Change your password.</span></a> | 12 | {if="!$openshaarli"}<a href="?do=changepasswd"><b>Change password</b><span>: Change your password.</span></a> |
13 | <br><br>{/if} | 13 | <br><br>{/if} |
14 | <a href="?do=changetag"><b>Rename/delete tags</b><span>: Rename or delete a tag in all links</span></a> | 14 | <a href="?do=changetag"><b>Rename/delete tags</b><span>: Rename or delete a tag in all links</span></a> |
15 | <br><br> | 15 | <br><br> |