aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc
diff options
context:
space:
mode:
authorArthurHoaro <arthur@hoa.ro>2017-05-07 19:17:33 +0200
committerArthurHoaro <arthur@hoa.ro>2017-05-07 19:17:33 +0200
commit01e942d44c7194607649817216aeb5d65c6acad6 (patch)
tree15777aa1005251f119e6dd680291147117766b5b /doc
parentbc22c9a0acb095970e9494cbe8954f0612e05dc0 (diff)
parent8868f3ca461011a8fb6dd9f90b60ed697ab52fc5 (diff)
downloadShaarli-01e942d44c7194607649817216aeb5d65c6acad6.tar.gz
Shaarli-01e942d44c7194607649817216aeb5d65c6acad6.tar.zst
Shaarli-01e942d44c7194607649817216aeb5d65c6acad6.zip
Merge tag 'v0.8.4' into stable
Release v0.8.4
Diffstat (limited to 'doc')
-rw-r--r--doc/3rd-party-libraries.html9
-rw-r--r--doc/3rd-party-libraries.md1
-rw-r--r--doc/Backup,-restore,-import-and-export.html34
-rw-r--r--doc/Backup,-restore,-import-and-export.md31
-rw-r--r--doc/Browsing-and-searching.html8
-rw-r--r--doc/Coding-guidelines.html8
-rw-r--r--doc/Community-&-Related-software.html17
-rw-r--r--doc/Community-&-Related-software.md9
-rw-r--r--doc/Copy-an-existing-installation-over-SSH-and-serve-it-locally.html58
-rw-r--r--doc/Create-and-serve-multiple-Shaarlis-(farm).html52
-rw-r--r--doc/Datastore-hacks.html8
-rw-r--r--doc/Development.html8
-rw-r--r--doc/Directory-structure.html60
-rw-r--r--doc/Docker.html104
-rw-r--r--doc/Download-CSS-styles-from-an-OPML-list.html12
-rw-r--r--doc/Download-and-Installation.html (renamed from doc/Download.html)93
-rw-r--r--doc/Download-and-Installation.md102
-rw-r--r--doc/Download.md31
-rw-r--r--doc/Example-patch---add-new-via-field-for-links.html8
-rw-r--r--doc/FAQ.html8
-rw-r--r--doc/Firefox-share.html8
-rw-r--r--doc/GnuPG-signature.html58
-rw-r--r--doc/Home.html8
-rw-r--r--doc/Plugin-System.html8
-rw-r--r--doc/Plugins.html8
-rw-r--r--doc/RSS-feeds.html8
-rw-r--r--doc/Release-Shaarli.html106
-rw-r--r--doc/Release-Shaarli.md64
-rw-r--r--doc/Security.html8
-rw-r--r--doc/Server-configuration.html74
-rw-r--r--doc/Server-configuration.md56
-rw-r--r--doc/Server-requirements.html46
-rw-r--r--doc/Server-requirements.md19
-rw-r--r--doc/Server-security.html28
-rw-r--r--doc/Server-security.md14
-rw-r--r--doc/Shaarli-configuration.html277
-rw-r--r--doc/Shaarli-configuration.md298
-rw-r--r--doc/Shaarli-installation.html72
-rw-r--r--doc/Shaarli-installation.md6
-rw-r--r--doc/Sharing-button.html8
-rw-r--r--doc/Static-analysis.html8
-rw-r--r--doc/TODO.html74
-rw-r--r--doc/TODO.md4
-rw-r--r--doc/Theming.html32
-rw-r--r--doc/Theming.md10
-rw-r--r--doc/Troubleshooting.html11
-rw-r--r--doc/Troubleshooting.md3
-rw-r--r--doc/Unit-tests.html110
-rw-r--r--doc/Upgrade-and-migration.html242
-rw-r--r--doc/Upgrade-and-migration.md161
-rw-r--r--doc/Upgrade-from-original-sebsauvage-Shaarli.html74
-rw-r--r--doc/Upgrade-from-original-sebsauvage-Shaarli.md4
-rw-r--r--doc/Usage.html8
-rw-r--r--doc/_Footer.html12
-rw-r--r--doc/_Footer.md2
-rw-r--r--doc/_Sidebar.html16
-rw-r--r--doc/_Sidebar.md8
-rw-r--r--doc/sidebar.html8
58 files changed, 1611 insertions, 1011 deletions
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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 &gt; Export</em>, choose:</p> 115<p>To export links as an HTML file, under <em>Tools &gt; 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 &gt; Show all bookmarks</code> or <code>Ctrl+Shift+B</code>)</li>
141<li>Select <code>Import and Backup &gt; 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. &quot;Self&quot; (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
4Backup the file `data/datastore.php` (by FTP or SSH). Restore by putting the file back in place. 12Backup 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
12To export links as an HTML file, under _Tools > Export_, choose: 21To 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
28If 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.) 39If 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
31See [this issue](https://github.com/sebsauvage/Shaarli/issues/146) for import tweaks.[](.html) 44See [this issue](https://github.com/sebsauvage/Shaarli/issues/146) for import tweaks.[](.html)
32 45
33### SemanticScuttle 46### SemanticScuttle
34 47
35To 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) 48To 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
52Shaarli 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
61Your 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
63You 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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..cbc73d54 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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>
@@ -83,9 +81,11 @@
83<ul> 81<ul>
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/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>
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/alexisju/social">social</a> by <a href="https://github.com/alexisju">@alexisju</a>: share links to social networks.<a href=".html"></a></li>
88<li><a href="https://github.com/ArthurHoaro/shaarli2twitter">shaarli2twitter</a> by <a href="https://github.com/ArthurHoaro">@ArthurHoaro</a> - Automatically tweet your shared links from Shaarli<a href=".html"></a></li>
89</ul> 89</ul>
90<h3 id="themes">Themes</h3> 90<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> 91<p>See <a href="Theming.html">Theming</a> for the list of community-contributed themes, and an installation guide.</p>
@@ -96,7 +96,7 @@
96<li><a href="https://github.com/DMeloni/shaarlo">Shaarlo</a> - An aggregator for shaarlis with many features (a very popular running instance among french shaarliers: <a href="http://shaarli.fr/">shaarli.fr</a>)<a href=".html"></a></li> 96<li><a href="https://github.com/DMeloni/shaarlo">Shaarlo</a> - An aggregator for shaarlis with many features (a very popular running instance among french shaarliers: <a href="http://shaarli.fr/">shaarli.fr</a>)<a href=".html"></a></li>
97<li><a href="https://github.com/BoboTiG/shaarlimages">Shaarlimages</a> - An image-oriented aggregator for Shaarlis<a href=".html"></a></li> 97<li><a href="https://github.com/BoboTiG/shaarlimages">Shaarlimages</a> - An image-oriented aggregator for Shaarlis<a href=".html"></a></li>
98<li><a href="https://github.com/mknexen/shaarli-api">mknexen/shaarli-api</a> - A REST API for Shaarli<a href=".html"></a></li> 98<li><a href="https://github.com/mknexen/shaarli-api">mknexen/shaarli-api</a> - A REST API for Shaarli<a href=".html"></a></li>
99<li><a href="https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php">Self dead link</a> - Detect dead links on shaarli. This version use the database of shaarli. An <a href="https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php">another version</a>, can be used for others shaarli (but use most ressources).<a href=".html"></a></li> 99<li><a href="https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php">Self dead link</a> - Detect dead links on shaarli. This version use the database of shaarli. <a href="https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php">Another version</a>, can be used for other shaarli instances (but is more resource consuming).<a href=".html"></a></li>
100</ul> 100</ul>
101<h3 id="mobile-apps">Mobile Apps</h3> 101<h3 id="mobile-apps">Mobile Apps</h3>
102<ul> 102<ul>
@@ -108,6 +108,7 @@
108<ul> 108<ul>
109<li><a href="https://github.com/jcsaaddupuy/tt-rss-shaarli">tt-rss-shaarli</a> - <a href="http://tt-rss.org/">TinyTiny RSS</a> plugin that adds support for sharing articles with Shaarli<a href=".html"></a></li> 109<li><a href="https://github.com/jcsaaddupuy/tt-rss-shaarli">tt-rss-shaarli</a> - <a href="http://tt-rss.org/">TinyTiny RSS</a> plugin that adds support for sharing articles with Shaarli<a href=".html"></a></li>
110<li><a href="https://github.com/ahmet2mir/octopress-shaarli">octopress-shaarli</a> - Octopress plugin to retrieve Shaarli links on the sidebar<a href=".html"></a></li> 110<li><a href="https://github.com/ahmet2mir/octopress-shaarli">octopress-shaarli</a> - Octopress plugin to retrieve Shaarli links on the sidebar<a href=".html"></a></li>
111<li><a href="https://github.com/q2apro/scuttle-to-shaarli">Scuttle to Shaarli</a> - Import bookmarks from Scuttle<a href=".html"></a></li>
111</ul> 112</ul>
112<h2 id="alternatives-to-shaarli">Alternatives to Shaarli</h2> 113<h2 id="alternatives-to-shaarli">Alternatives to Shaarli</h2>
113<ul> 114<ul>
diff --git a/doc/Community-&-Related-software.md b/doc/Community-&-Related-software.md
index 03a3dea9..291bf643 100644
--- a/doc/Community-&-Related-software.md
+++ b/doc/Community-&-Related-software.md
@@ -20,9 +20,11 @@ _TODO: contact repos owners to see if they'd like to standardize their work with
20 20
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 * [Disqus](https://github.com/kalvn/shaarli-plugin-disqus) by [@kalvn](https://github.com/kalvn): Adds Disqus comment system to your Shaarli.[](.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 * [social](https://github.com/alexisju/social) by [@alexisju](https://github.com/alexisju): share links to social networks.[](.html)
27 * [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli[](.html)
26 28
27 29
28### Themes 30### Themes
@@ -34,7 +36,7 @@ See [Theming](Theming.html) for the list of community-contributed themes, and an
34- [Shaarlo](https://github.com/DMeloni/shaarlo) - An aggregator for shaarlis with many features (a very popular running instance among french shaarliers: [shaarli.fr](http://shaarli.fr/))[](.html) 36- [Shaarlo](https://github.com/DMeloni/shaarlo) - An aggregator for shaarlis with many features (a very popular running instance among french shaarliers: [shaarli.fr](http://shaarli.fr/))[](.html)
35- [Shaarlimages](https://github.com/BoboTiG/shaarlimages) - An image-oriented aggregator for Shaarlis[](.html) 37- [Shaarlimages](https://github.com/BoboTiG/shaarlimages) - An image-oriented aggregator for Shaarlis[](.html)
36- [mknexen/shaarli-api](https://github.com/mknexen/shaarli-api) - A REST API for Shaarli[](.html) 38- [mknexen/shaarli-api](https://github.com/mknexen/shaarli-api) - A REST API for Shaarli[](.html)
37- [Self dead link](https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php) - Detect dead links on shaarli. This version use the database of shaarli. An [another version](https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php), can be used for others shaarli (but use most ressources).[](.html) 39- [Self dead link](https://github.com/qwertygc/shaarli-dev-code/blob/master/self-dead-link.php) - Detect dead links on shaarli. This version use the database of shaarli. [Another version](https://github.com/qwertygc/shaarli-dev-code/blob/master/dead-link.php), can be used for other shaarli instances (but is more resource consuming).[](.html)
38 40
39### Mobile Apps 41### Mobile Apps
40- [Shaarli💫](http://app.mro.name/Shaarli💫) iOS share extension - see [#308](https://github.com/shaarli/Shaarli/issues/308#issuecomment-184592070) for some promo codes,[](.html) 42- [Shaarli💫](http://app.mro.name/Shaarli💫) iOS share extension - see [#308](https://github.com/shaarli/Shaarli/issues/308#issuecomment-184592070) for some promo codes,[](.html)
@@ -44,6 +46,7 @@ See [Theming](Theming.html) for the list of community-contributed themes, and an
44## Integration with other platforms 46## Integration with other platforms
45- [tt-rss-shaarli](https://github.com/jcsaaddupuy/tt-rss-shaarli) - [TinyTiny RSS](http://tt-rss.org/) plugin that adds support for sharing articles with Shaarli[](.html) 47- [tt-rss-shaarli](https://github.com/jcsaaddupuy/tt-rss-shaarli) - [TinyTiny RSS](http://tt-rss.org/) plugin that adds support for sharing articles with Shaarli[](.html)
46- [octopress-shaarli](https://github.com/ahmet2mir/octopress-shaarli) - Octopress plugin to retrieve Shaarli links on the sidebar[](.html) 48- [octopress-shaarli](https://github.com/ahmet2mir/octopress-shaarli) - Octopress plugin to retrieve Shaarli links on the sidebar[](.html)
49- [Scuttle to Shaarli](https://github.com/q2apro/scuttle-to-shaarli) - Import bookmarks from Scuttle[](.html)
47 50
48## Alternatives to Shaarli 51## Alternatives to Shaarli
49- [Shaarli alternatives](http://alternativeto.net/software/shaarli/) (alternativeto.net)[](.html) 52- [Shaarli alternatives](http://alternativeto.net/software/shaarli/) (alternativeto.net)[](.html)
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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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&#39;s local server</span> 116<span class="co">#The port used by php&#39;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">&quot;my.ssh.server&quot;</span> 121<span class="va">remotehost=</span><span class="st">&quot;my.ssh.server&quot;</span>
124<span class="ot">remote_shaarli_dir=</span><span class="st">&quot;/var/www/shaarli&quot;</span> 122<span class="va">remote_shaarli_dir=</span><span class="st">&quot;/var/www/shaarli&quot;</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">&quot;</span><span class="ot">$remotehost</span><span class="st">&quot;</span> sudo cp -r <span class="st">&quot;</span><span class="ot">$remote_shaarli_dir</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="ot">$remote_temp_dir</span><span class="st">&quot;</span> 134 <span class="fu">ssh</span> -t <span class="st">&quot;</span><span class="va">$remotehost</span><span class="st">&quot;</span> sudo cp -r <span class="st">&quot;</span><span class="va">$remote_shaarli_dir</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="va">$remote_temp_dir</span><span class="st">&quot;</span>
137 <span class="kw">ssh</span> -t <span class="st">&quot;</span><span class="ot">$remotehost</span><span class="st">&quot;</span> sudo chown -R <span class="st">&quot;</span><span class="ot">$remote_ssh_user</span><span class="st">&quot;</span>:<span class="st">&quot;</span><span class="ot">$remote_ssh_user</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="ot">$remote_temp_dir</span><span class="st">&quot;</span> 135 <span class="fu">ssh</span> -t <span class="st">&quot;</span><span class="va">$remotehost</span><span class="st">&quot;</span> sudo chown -R <span class="st">&quot;</span><span class="va">$remote_ssh_user</span><span class="st">&quot;</span>:<span class="st">&quot;</span><span class="va">$remote_ssh_user</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="va">$remote_temp_dir</span><span class="st">&quot;</span>
138 <span class="kw">scp</span> -rq <span class="st">&quot;</span><span class="ot">$remotehost</span><span class="st">&quot;</span>:<span class="st">&quot;</span><span class="ot">$remote_temp_dir</span><span class="st">&quot;</span> local-shaarli 136 <span class="fu">scp</span> -rq <span class="st">&quot;</span><span class="va">$remotehost</span><span class="st">&quot;</span>:<span class="st">&quot;</span><span class="va">$remote_temp_dir</span><span class="st">&quot;</span> local-shaarli
139 <span class="kw">ssh</span> <span class="st">&quot;</span><span class="ot">$remotehost</span><span class="st">&quot;</span> rm -r <span class="st">&quot;</span><span class="ot">$remote_temp_dir</span><span class="st">&quot;</span> 137 <span class="fu">ssh</span> <span class="st">&quot;</span><span class="va">$remotehost</span><span class="st">&quot;</span> rm -r <span class="st">&quot;</span><span class="va">$remote_temp_dir</span><span class="st">&quot;</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">&quot;Please go to http://localhost:</span><span class="ot">${php_local_port}</span><span class="st">&quot;</span> 145 <span class="bu">echo</span> <span class="st">&quot;Please go to http://localhost:</span><span class="va">${php_local_port}</span><span class="st">&quot;</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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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">&#39;/var/www/shaarli&#39;</span> 109<span class="va">shaarli_base_dir=</span><span class="st">&#39;/var/www/shaarli&#39;</span>
112<span class="ot">accounts=</span><span class="st">&#39;bob john whatever username&#39;</span> 110<span class="va">accounts=</span><span class="st">&#39;bob john whatever username&#39;</span>
113<span class="ot">shaarli_repo_url=</span><span class="st">&#39;https://github.com/shaarli/Shaarli&#39;</span> 111<span class="va">shaarli_repo_url=</span><span class="st">&#39;https://github.com/shaarli/Shaarli&#39;</span>
114<span class="ot">ref=</span><span class="st">&quot;master&quot;</span> 112<span class="va">ref=</span><span class="st">&quot;master&quot;</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">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">&quot;</span><span class="kw"> ]</span>; <span class="kw">then</span> <span class="kw">mkdir</span> <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">&quot;</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">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">&quot;</span><span class="bu"> ]</span>; <span class="kw">then</span> <span class="fu">mkdir</span> <span class="st">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">&quot;</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">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">/</span><span class="ot">$account</span><span class="st">&quot;</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">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">/</span><span class="va">$account</span><span class="st">&quot;</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">&quot;[info] account </span><span class="ot">$account</span><span class="st"> already exists, skipping&quot;</span><span class="kw">;</span>[]<span class="kw">(.html)</span> 119 <span class="kw">then</span> <span class="bu">echo</span> <span class="st">&quot;[info] account </span><span class="va">$account</span><span class="st"> already exists, skipping&quot;</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">&quot;[info] creating new account </span><span class="ot">$account</span><span class="st"> ...&quot;</span><span class="kw">;</span> <span class="kw">git</span> clone --quiet <span class="st">&quot;</span><span class="ot">$shaarli_repo_url</span><span class="st">&quot;</span> -b <span class="st">&quot;</span><span class="ot">$ref</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">/</span><span class="ot">$account</span><span class="st">&quot;</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">&quot;[info] creating new account </span><span class="va">$account</span><span class="st"> ...&quot;</span><span class="kw">;</span> <span class="fu">git</span> clone --quiet <span class="st">&quot;</span><span class="va">$shaarli_repo_url</span><span class="st">&quot;</span> -b <span class="st">&quot;</span><span class="va">$ref</span><span class="st">&quot;</span> <span class="st">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">/</span><span class="va">$account</span><span class="st">&quot;</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">&#39;&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;</span> 124<span class="va">htmlhead=</span><span class="st">&#39;&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;</span>
127<span class="st">&lt;!-- Minimal html template thanks to http://www.sitepoint.com/a-minimal-html-document/ --&gt;</span> 125<span class="st">&lt;!-- Minimal html template thanks to http://www.sitepoint.com/a-minimal-html-document/ --&gt;</span>
128<span class="st">&lt;html lang=&quot;en&quot;&gt;</span> 126<span class="st">&lt;html lang=&quot;en&quot;&gt;</span>
129<span class="st"> &lt;head&gt;</span> 127<span class="st"> &lt;head&gt;</span>
@@ -136,9 +134,9 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
136<span class="st"> &lt;h1&gt;My Shaarli farm&lt;/h1&gt;</span> 134<span class="st"> &lt;h1&gt;My Shaarli farm&lt;/h1&gt;</span>
137<span class="st"> &lt;ul style=&quot;list-style-type: none;&quot;&gt;&#39;</span> 135<span class="st"> &lt;ul style=&quot;list-style-type: none;&quot;&gt;&#39;</span>
138 136
139<span class="ot">accountlinks=</span><span class="st">&#39;&#39;</span> 137<span class="va">accountlinks=</span><span class="st">&#39;&#39;</span>
140 138
141<span class="ot">htmlfooter=</span><span class="st">&#39;</span> 139<span class="va">htmlfooter=</span><span class="st">&#39;</span>
142<span class="st"> &lt;/ul&gt;</span> 140<span class="st"> &lt;/ul&gt;</span>
143<span class="st"> &lt;/div&gt;</span> 141<span class="st"> &lt;/div&gt;</span>
144<span class="st"> &lt;/body&gt;</span> 142<span class="st"> &lt;/body&gt;</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">&quot;</span><span class="ot">$accountlinks</span><span class="st">\n&lt;li&gt;&lt;a href=</span><span class="dt">\&quot;</span><span class="ot">$account</span><span class="dt">\&quot;</span><span class="st">&gt;</span><span class="ot">$account</span><span class="st">&lt;/a&gt;&lt;/li&gt;&quot;</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">&quot;</span><span class="va">$accountlinks</span><span class="st">\n&lt;li&gt;&lt;a href=</span><span class="dt">\&quot;</span><span class="va">$account</span><span class="dt">\&quot;</span><span class="st">&gt;</span><span class="va">$account</span><span class="st">&lt;/a&gt;&lt;/li&gt;&quot;</span>; <span class="kw">done</span>
150<span class="kw">if [</span> <span class="ot">-d</span> <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html&quot;</span><span class="kw"> ]</span>; <span class="kw">then</span> <span class="kw">echo</span> <span class="st">&quot;[removing old index.html]&quot;</span><span class="kw">;</span> <span class="kw">rm</span> <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html&quot;</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">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html&quot;</span><span class="bu"> ]</span>; <span class="kw">then</span> <span class="bu">echo</span> <span class="st">&quot;[removing old index.html]&quot;</span><span class="kw">;</span> <span class="fu">rm</span> <span class="st">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html&quot;</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">&quot;[info] generating new index of shaarlis&quot;</span>[](.html) 149<span class="bu">echo</span> <span class="st">&quot;[info] generating new index of shaarlis&quot;</span>[](.html)
152<span class="kw">echo</span> -e <span class="st">&quot;</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">&quot;</span> <span class="kw">&gt;</span> <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">/index.html&quot;</span> 150<span class="bu">echo</span> -e <span class="st">&quot;</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">&quot;</span> <span class="op">&gt;</span> <span class="st">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">/index.html&quot;</span>
153<span class="kw">echo</span> <span class="st">&#39;[info] done.&#39;</span>[](.html) 151<span class="bu">echo</span> <span class="st">&#39;[info] done.&#39;</span>[](.html)
154<span class="kw">echo</span> <span class="st">&quot;[info] list of accounts: </span><span class="ot">$accounts</span><span class="st">&quot;</span>[](.html) 152<span class="bu">echo</span> <span class="st">&quot;[info] list of accounts: </span><span class="va">$accounts</span><span class="st">&quot;</span>[](.html)
155<span class="kw">echo</span> <span class="st">&quot;[info] contents of </span><span class="ot">$shaarli_base_dir</span><span class="st">:&quot;</span>[](.html) 153<span class="bu">echo</span> <span class="st">&quot;[info] contents of </span><span class="va">$shaarli_base_dir</span><span class="st">:&quot;</span>[](.html)
156<span class="kw">tree</span> -a -L 1 <span class="st">&quot;</span><span class="ot">$shaarli_base_dir</span><span class="st">&quot;</span></code></pre></div> 154<span class="ex">tree</span> -a -L 1 <span class="st">&quot;</span><span class="va">$shaarli_base_dir</span><span class="st">&quot;</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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 &amp; functional tests</span> 108 <span class="ex">tests/</span> <span class="co"># Shaarli unitary &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 />
113to your OS / distribution, and start the service.</p> 111to 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">&#39;s comp... 603 [OK][](.html)</span> 117<span class="ex">debian</span> Debian is a Linux distribution that<span class="st">&#39;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&#39;s :8000 port to the container&#39;s :80 port</span> 190<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># map the host&#39;s :8000 port to the container&#39;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">&gt;</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">&gt;</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&#39;s put an end to these barbarian practices</span> 216$ <span class="ex">docker</span> rm backstabbing_galileo <span class="co"># let&#39;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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 (&quot;.&quot;) and parent one(&quot;..&quot;)</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 (&quot;.&quot;) and parent one(&quot;..&quot;)</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..b9cac360 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">
10div.sourceCode { overflow-x: auto; } 10div.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,75 @@ 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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<h3 id="download-as-an-archive">Download as an archive</h3>
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>Get the latest released version from the <a href="https://github.com/shaarli/Shaarli/releases">releases</a> page.<a href=".html"></a></p>
112$ <span class="kw">unzip</span> stable.zip 110<p><strong>Download our <em>shaarli-full</em> archive</strong> to include dependencies.</p>
113$ <span class="kw">mv</span> Shaarli-stable shaarli</code></pre></div> 111<p>The current latest released version is <code>v0.8.0</code></p>
114<p>Tarballs are also available:</p> 112<p>Or in command lines:</p>
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<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">wget</span> https://github.com/shaarli/Shaarli/releases/download/v0.8.0/shaarli-v0.8.0-full.zip
116$ <span class="kw">tar</span> xvf stable.tar.gz 114$ <span class="fu">unzip</span> shaarli-v0.8.0-full.zip
117$ <span class="kw">mv</span> Shaarli-stable shaarli</code></pre></div> 115$ <span class="fu">mv</span> Shaarli /path/to/shaarli/</code></pre></div>
118<h3 id="development-mainline">Development (mainline)</h3> 116<table style="width:46%;">
117<colgroup>
118<col style="width: 8%" />
119<col style="width: 37%" />
120</colgroup>
121<thead>
122<tr class="header">
123<th>!</th>
124<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>
125</tr>
126</thead>
127<tbody>
128</tbody>
129</table>
130<h3 id="using-git">Using git</h3>
131<pre><code>mkdir -p /path/to/shaarli &amp;&amp; cd /path/to/shaarli/
132git clone -b v0.8.0 https://github.com/shaarli/Shaarli.git .
133composer update --no-dev</code></pre>
134<hr />
135<h2 id="stable-version">Stable version</h2>
136<p>The stable version has been experienced by Shaarli users, and will receive security updates.</p>
137<h3 id="download-as-an-archive-1">Download as an archive</h3>
138<p>As a .zip archive:</p>
139<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">wget</span> https://github.com/shaarli/Shaarli/archive/stable.zip
140$ <span class="fu">unzip</span> stable.zip
141$ <span class="fu">mv</span> Shaarli-stable /path/to/shaarli/</code></pre></div>
142<p>As a .tar.gz archive :</p>
143<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
144$ <span class="fu">tar</span> xvf stable.tar.gz
145$ <span class="fu">mv</span> Shaarli-stable /path/to/shaarli/</code></pre></div>
146<h3 id="clone-with-git">Clone with Git</h3>
147<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>
148<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/
149<span class="co"># install/update third-party dependencies</span>
150$ <span class="bu">cd</span> /path/to/shaarli/
151$ <span class="ex">composer</span> update --no-dev</code></pre></div>
152<hr />
153<h2 id="development-version-mainline">Development version (mainline)</h2>
119<p><em>Use at your own risk!</em></p> 154<p><em>Use at your own risk!</em></p>
120<p>To get the latest changes:</p> 155<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> 156<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash"><span class="co"># clone the repository </span>
157$ <span class="fu">git</span> clone https://github.com/shaarli/Shaarli.git master /path/to/shaarli/
158<span class="co"># install/update third-party dependencies</span>
159$ <span class="bu">cd</span> /path/to/shaarli
160$ <span class="ex">composer</span> update --no-dev</code></pre></div>
161<hr />
162<h2 id="finish-installation">Finish Installation</h2>
163<p>Once Shaarli is downloaded and files have been placed at the correct location, open it this location your favorite browser.</p>
164<p><img src="http://i.imgur.com/wuMpDSN.png" alt="install screenshot" /><a href=".html"></a></p>
165<p>Setup your Shaarli installation, and it's ready to use!</p>
166<hr />
167<h2 id="updating-shaarli">Updating Shaarli</h2>
168<p>See <a href="Upgrade-and-migration">Upgrade and Migration</a><a href=".html"></a></p>
122</body> 169</body>
123</html> 170</html>
diff --git a/doc/Download-and-Installation.md b/doc/Download-and-Installation.md
new file mode 100644
index 00000000..32df8984
--- /dev/null
+++ b/doc/Download-and-Installation.md
@@ -0,0 +1,102 @@
1#Download and Installation
2# Get Shaarli!
3
4To 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
6Several releases are available:
7
8--------------------------------------------------------
9
10## Latest release (recommended)
11### Download as an archive
12Get the latest released version from the [releases](https://github.com/shaarli/Shaarli/releases) page.[](.html)
13
14**Download our *shaarli-full* archive** to include dependencies.
15
16The current latest released version is `v0.8.0`
17
18Or in command lines:
19
20```bash
21$ wget https://github.com/shaarli/Shaarli/releases/download/v0.8.0/shaarli-v0.8.0-full.zip
22$ unzip shaarli-v0.8.0-full.zip
23$ mv Shaarli /path/to/shaarli/
24```
25
26| ! |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)
27|-----|--------------------------|
28
29### Using git
30
31```
32mkdir -p /path/to/shaarli && cd /path/to/shaarli/
33git clone -b v0.8.0 https://github.com/shaarli/Shaarli.git .
34composer update --no-dev
35```
36
37--------------------------------------------------------
38
39## Stable version
40
41The stable version has been experienced by Shaarli users, and will receive security updates.
42
43### Download as an archive
44
45As a .zip archive:
46
47```bash
48$ wget https://github.com/shaarli/Shaarli/archive/stable.zip
49$ unzip stable.zip
50$ mv Shaarli-stable /path/to/shaarli/
51```
52
53As a .tar.gz archive :
54
55```bash
56$ wget https://github.com/shaarli/Shaarli/archive/stable.tar.gz
57$ tar xvf stable.tar.gz
58$ mv Shaarli-stable /path/to/shaarli/
59```
60
61### Clone with Git
62
63[Composer](https://getcomposer.org/) is required to build a functional Shaarli installation when pulling from git.[](.html)
64
65```bash
66$ git clone https://github.com/shaarli/Shaarli.git -b stable /path/to/shaarli/
67# install/update third-party dependencies
68$ cd /path/to/shaarli/
69$ composer update --no-dev
70```
71
72--------------------------------------------------------
73
74## Development version (mainline)
75
76_Use at your own risk!_
77
78To get the latest changes from the `master` branch:
79
80```bash
81# clone the repository
82$ git clone https://github.com/shaarli/Shaarli.git master /path/to/shaarli/
83# install/update third-party dependencies
84$ cd /path/to/shaarli
85$ composer update --no-dev
86```
87
88--------------------------------------------------------
89
90## Finish Installation
91
92Once Shaarli is downloaded and files have been placed at the correct location, open it this location your favorite browser.
93
94![install screenshot](http://i.imgur.com/wuMpDSN.png)[](.html)
95
96Setup your Shaarli installation, and it's ready to use!
97
98--------------------------------------------------------
99
100## Updating Shaarli
101
102See [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
4This 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
18Tarballs 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
28To 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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">&quot;gpg2 --full-gen-key&quot;</span> for a full featured key generation dialog. 136<span class="ex">Note</span>: Use <span class="st">&quot;gpg2 --full-gen-key&quot;</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">&quot;Marvin the Paranoid Android &lt;marvin@h2g2.net&gt;&quot;</span> 143 <span class="st">&quot;Marvin the Paranoid Android &lt;marvin@h2g2.net&gt;&quot;</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">&lt;</span>marvin@h2g2.net<span class="kw">&gt;</span>[](.html) 165<span class="ex">uid</span> [ultimate] Marvin the Paranoid Android <span class="op">&lt;</span>marvin@h2g2.net<span class="op">&gt;</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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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..0d9fa3e1 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 />
106releases</a>.</p> 104releases</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
@@ -117,54 +115,106 @@ releases</a>.</p>
117<li><code>origin</code> pointing to your GitHub fork</li> 115<li><code>origin</code> pointing to your GitHub fork</li>
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:
121<li><a href="http://pandoc.org/">Pandoc</a> needs to be installed.<a href=".html"></a></li> 119<ul>
120<li>push the signed tag</li>
121<li>create a new release</li>
122</ul></li>
123<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>
124</ul>
125<h2 id="github-release-draft-and-changelog.md">GitHub release draft and <code>CHANGELOG.md</code></h2>
126<p>See <a href="http://keepachangelog.com/en/0.3.0/" class="uri">http://keepachangelog.com/en/0.3.0/</a> for changelog formatting.</p>
127<h3 id="github-release-draft">GitHub release draft</h3>
128<p>GitHub allows drafting the release note for the upcoming release, from the <a href="https://github.com/shaarli/Shaarli/releases">Releases</a> page. This way, the release note can be drafted while contributions are merged to <code>master</code>.<a href=".html"></a></p>
129<h3 id="changelog.md"><code>CHANGELOG.md</code></h3>
130<p>This file should contain the same information as the release note draft for the upcoming version.</p>
131<p>Update it to:</p>
132<ul>
133<li>add new entries (additions, fixes, etc.)</li>
134<li>mark the current version as released by setting its date and link</li>
135<li>add a new section for the future unreleased version</li>
122</ul> 136</ul>
137<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli
138
139$ <span class="fu">nano</span> CHANGELOG.md
140
141[<span class="ex">...</span>][](.html)
142<span class="co">## vA.B.C - UNRELEASED</span>
143<span class="ex">TBA</span>
144
145<span class="co">## [vX.Y.Z](https://github.com/shaarli/Shaarli/releases/tag/vX.Y.Z) - YYYY-MM-DD[](.html)</span>
146[<span class="ex">...</span>][](.html)</code></pre></div>
147<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> 148<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 149<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> /path/to/shaarli
125 150
126<span class="co"># create a new branch</span> 151<span class="co"># create a new branch</span>
127$ <span class="kw">git</span> fetch upstream 152$ <span class="fu">git</span> fetch upstream
128$ <span class="kw">git</span> checkout upstream/master -b v0.5.0 153$ <span class="fu">git</span> checkout upstream/master -b v0.5.0
129 154
130<span class="co"># bump the version number</span> 155<span class="co"># bump the version number</span>
131$ <span class="kw">vim</span> index.php shaarli_version.php 156$ <span class="ex">vim</span> index.php shaarli_version.php
132 157
133<span class="co"># rebuild the documentation from the wiki</span> 158<span class="co"># rebuild the documentation from the wiki</span>
134$ <span class="kw">make</span> htmldoc 159$ <span class="fu">make</span> htmldoc
135 160
136<span class="co"># commit the changes</span> 161<span class="co"># commit the changes</span>
137$ <span class="kw">git</span> add index.php shaarli_version.php doc 162$ <span class="fu">git</span> add index.php shaarli_version.php doc
138$ <span class="kw">git</span> commit -s -m <span class="st">&quot;Bump version to v0.5.0&quot;</span> 163$ <span class="fu">git</span> commit -s -m <span class="st">&quot;Bump version to v0.5.0&quot;</span>
139 164
140<span class="co"># push the commit on your GitHub fork</span> 165<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> 166$ <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> 167<h3 id="create-and-merge-a-pull-request">Create and merge a Pull Request</h3>
143<p>This one is pretty straightforward ;-)</p> 168<p>This one is pretty straightforward ;-)</p>
144<h3 id="create-and-push-a-signed-tag">Create and push a signed tag</h3> 169<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> 170<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 171$ <span class="fu">git</span> checkout master
147$ <span class="kw">git</span> fetch upstream 172$ <span class="fu">git</span> fetch upstream
148$ <span class="kw">git</span> pull upstream master 173$ <span class="fu">git</span> pull upstream master
149 174
150<span class="co"># create a signed tag</span> 175<span class="co"># create a signed tag</span>
151$ <span class="kw">git</span> tag -s -m <span class="st">&quot;Release v0.5.0&quot;</span> v0.5.0 176$ <span class="fu">git</span> tag -s -m <span class="st">&quot;Release v0.5.0&quot;</span> v0.5.0
152 177
153<span class="co"># push it to &quot;upstream&quot;</span> 178<span class="co"># push it to &quot;upstream&quot;</span>
154$ <span class="kw">git</span> push --tags upstream</code></pre></div> 179$ <span class="fu">git</span> push --tags upstream</code></pre></div>
155<h3 id="verify-a-signed-tag">Verify a signed tag</h3> 180<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> 181<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> 182<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 183<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 184$ <span class="fu">git</span> fetch upstream
160 185
161<span class="co"># get the SHA1 reference of the tag</span> 186<span class="co"># get the SHA1 reference of the tag</span>
162$ <span class="kw">git</span> show-ref tags/v0.5.0 187$ <span class="fu">git</span> show-ref tags/v0.5.0
163<span class="kw">f7762cf803f03f5caf4b8078359a63783d0090c1</span> refs/tags/v0.5.0 188<span class="ex">f7762cf803f03f5caf4b8078359a63783d0090c1</span> refs/tags/v0.5.0
164 189
165<span class="co"># verify the tag signature information</span> 190<span class="co"># verify the tag signature information</span>
166$ <span class="kw">git</span> verify-tag f7762cf803f03f5caf4b8078359a63783d0090c1 191$ <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 192<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">&quot;VirtualTam &lt;virtualtam@flibidi.net&gt;&quot;</span> [ultimate][](.html)</code></pre></div> 193<span class="ex">gpg</span>: Good signature from <span class="st">&quot;VirtualTam &lt;virtualtam@flibidi.net&gt;&quot;</span> [ultimate][](.html)</code></pre></div>
194<h2 id="publish-the-github-release">Publish the GitHub release</h2>
195<h3 id="create-a-github-release-from-a-git-tag">Create a GitHub release from a Git tag</h3>
196<p>From the previously drafted release:</p>
197<ul>
198<li>edit the release notes (if needed)</li>
199<li>specify the appropriate Git tag</li>
200<li>publish the release</li>
201<li>profit!</li>
202</ul>
203<h3 id="generate-and-upload-all-in-one-release-archives">Generate and upload all-in-one release archives</h3>
204<p>Users with a shared hosting may have:</p>
205<ul>
206<li>no SSH access</li>
207<li>no possibility to install PHP packages or server extensions</li>
208<li>no possibility to run scripts</li>
209</ul>
210<p>To ease Shaarli installations, it is possible to generate and upload additional release archives,<br />
211that will contain Shaarli code plus all required third-party libraries:</p>
212<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="fu">make</span> release_archive</code></pre></div>
213<p>This will create the following archives:</p>
214<ul>
215<li><code>shaarli-vX.Y.Z-full.tar</code></li>
216<li><code>shaarli-vX.Y.Z-full.zip</code></li>
217</ul>
218<p>The archives need to be manually uploaded on the previously created GitHub release.</p>
169</body> 219</body>
170</html> 220</html>
diff --git a/doc/Release-Shaarli.md b/doc/Release-Shaarli.md
index d5044fe9..556a96ee 100644
--- a/doc/Release-Shaarli.md
+++ b/doc/Release-Shaarli.md
@@ -2,7 +2,7 @@
2See [Git - Maintaining a project - Tagging your [](.html) 2See [Git - Maintaining a project - Tagging your [](.html)
3releases](http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases). 3releases](http://git-scm.com/book/en/v2/Distributed-Git-Maintaining-a-Project#Tagging-Your-Releases).
4 4
5### Prerequisites 5## Prerequisites
6This guide assumes that you have: 6This 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`
@@ -10,9 +10,40 @@ This guide assumes that you have:
10- a local clone of your Shaarli fork, with the following remotes: 10- a local clone of your Shaarli fork, with the following remotes:
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:
14- [Pandoc](http://pandoc.org/) needs to be installed.[](.html) 14 - push the signed tag
15 - create a new release
16- [Composer](https://getcomposer.org/) and [Pandoc](http://pandoc.org/) need to be installed[](.html)
15 17
18## GitHub release draft and `CHANGELOG.md`
19See http://keepachangelog.com/en/0.3.0/ for changelog formatting.
20
21### GitHub release draft
22GitHub allows drafting the release note for the upcoming release, from the [Releases](https://github.com/shaarli/Shaarli/releases) page. This way, the release note can be drafted while contributions are merged to `master`.[](.html)
23
24### `CHANGELOG.md`
25This file should contain the same information as the release note draft for the upcoming version.
26
27Update it to:
28- add new entries (additions, fixes, etc.)
29- mark the current version as released by setting its date and link
30- add a new section for the future unreleased version
31
32```bash
33$ cd /path/to/shaarli
34
35$ nano CHANGELOG.md
36
37[...][](.html)
38## vA.B.C - UNRELEASED
39TBA
40
41## [vX.Y.Z](https://github.com/shaarli/Shaarli/releases/tag/vX.Y.Z) - YYYY-MM-DD[](.html)
42[...][](.html)
43```
44
45
46## Increment the version code, create and push a signed tag
16### Bump Shaarli's version 47### Bump Shaarli's version
17```bash 48```bash
18$ cd /path/to/shaarli 49$ cd /path/to/shaarli
@@ -70,3 +101,30 @@ $ git verify-tag f7762cf803f03f5caf4b8078359a63783d0090c1
70gpg: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F 101gpg: Signature made Thu 30 Jul 2015 11:46:34 CEST using RSA key ID 4100DF6F
71gpg: Good signature from "VirtualTam <virtualtam@flibidi.net>" [ultimate][](.html) 102gpg: Good signature from "VirtualTam <virtualtam@flibidi.net>" [ultimate][](.html)
72``` 103```
104
105## Publish the GitHub release
106### Create a GitHub release from a Git tag
107From the previously drafted release:
108- edit the release notes (if needed)
109- specify the appropriate Git tag
110- publish the release
111- profit!
112
113### Generate and upload all-in-one release archives
114Users with a shared hosting may have:
115- no SSH access
116- no possibility to install PHP packages or server extensions
117- no possibility to run scripts
118
119To ease Shaarli installations, it is possible to generate and upload additional release archives,
120that will contain Shaarli code plus all required third-party libraries:
121
122```bash
123$ make release_archive
124```
125
126This will create the following archives:
127- `shaarli-vX.Y.Z-full.tar`
128- `shaarli-vX.Y.Z-full.zip`
129
130The 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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..2f1c25b5 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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&amp;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&amp;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">&lt;VirtualHost</span><span class="ot"> *:80</span><span class="fu">&gt;</span> 134<div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu">&lt;VirtualHost</span><span class="at"> *:80</span><span class="fu">&gt;</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">&lt;/VirtualHost&gt;</span></code></pre></div> 137<span class="fu">&lt;/VirtualHost&gt;</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">&lt;VirtualHost</span><span class="ot"> *:80</span><span class="fu">&gt;</span> 145<div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu">&lt;VirtualHost</span><span class="at"> *:80</span><span class="fu">&gt;</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,43 +156,46 @@ 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">&lt;/VirtualHost&gt;</span></code></pre></div> 157<span class="fu">&lt;/VirtualHost&gt;</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">&lt;VirtualHost</span><span class="ot"> *:80</span><span class="fu">&gt;</span> 159<div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu">&lt;VirtualHost</span><span class="at"> *:80</span><span class="fu">&gt;</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">&lt;/VirtualHost&gt;</span></code></pre></div> 166<span class="fu">&lt;/VirtualHost&gt;</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">&lt;VirtualHost</span><span class="ot"> *:443</span><span class="fu">&gt;</span> 169<div class="sourceCode"><pre class="sourceCode apache"><code class="sourceCode apache"><span class="fu">&lt;VirtualHost</span><span class="at"> *:443</span><span class="fu">&gt;</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">&lt;Directory</span><span class="ot"> /absolute/path/to/shaarli/</span><span class="fu">&gt;</span> 177 <span class="fu">&lt;Directory</span><span class="at"> /absolute/path/to/shaarli/</span><span class="fu">&gt;</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">&lt;/Directory&gt;</span> 182 <span class="fu">&lt;/Directory&gt;</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">&lt;/VirtualHost&gt;</span> 187<span class="fu">&lt;/VirtualHost&gt;</span>
190<span class="fu">&lt;VirtualHost</span><span class="ot"> *:80</span><span class="fu">&gt;</span> 188<span class="fu">&lt;VirtualHost</span><span class="at"> *:80</span><span class="fu">&gt;</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">&lt;/VirtualHost&gt;</span></code></pre></div> 195<span class="fu">&lt;/VirtualHost&gt;</span></code></pre></div>
196<h3 id="htaccess">.htaccess</h3>
197<p>Shaarli use <code>.htaccess</code> Apache files to deny access to files that shouldn't be directly accessed (datastore, config, etc.). You need the directive <code>AllowOverride All</code> in your virtual host configuration for them to work.</p>
198<p><strong>Warning</strong>: If you use Apache 2.2 or lower, you need <a href="https://httpd.apache.org/docs/current/mod/mod_version.html">mod_version</a> to be installed and enabled.<a href=".html"></a></p>
198<h2 id="lighthttpd">LightHttpd</h2> 199<h2 id="lighthttpd">LightHttpd</h2>
199<h2 id="nginx">Nginx</h2> 200<h2 id="nginx">Nginx</h2>
200<h3 id="foreword">Foreword</h3> 201<h3 id="foreword">Foreword</h3>
@@ -235,7 +236,7 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
235<li>files may be located in a user's home directory</li> 236<li>files may be located in a user's home directory</li>
236<li>in this case, make sure both Nginx and PHP-FPM are running as the local user/group!</li> 237<li>in this case, make sure both Nginx and PHP-FPM are running as the local user/group!</li>
237</ul> 238</ul>
238<p>For all following examples, a development configuration will be used:</p> 239<p>For all following configuration examples, this user/group pair will be used:</p>
239<ul> 240<ul>
240<li><code>user:group = john:users</code>,</li> 241<li><code>user:group = john:users</code>,</li>
241</ul> 242</ul>
@@ -253,6 +254,24 @@ user john users;
253http { 254http {
254 [...][](.html) 255 [...][](.html)
255}</code></pre> 256}</code></pre>
257<h3 id="optional-increase-the-maximum-file-upload-size">(Optional) Increase the maximum file upload size</h3>
258<p>Some bookmark dumps generated by web browsers can be <em>huge</em> due to the presence of Base64-encoded images and favicons, as well as extra verbosity when nesting links in (sub-)folders.</p>
259<p>To increase upload size, you will need to modify both nginx and PHP configuration:</p>
260<pre class="nginx"><code># /etc/nginx/nginx.conf
261
262http {
263 [...][](.html)
264
265 client_max_body_size 10m;
266
267 [...][](.html)
268}</code></pre>
269<div class="sourceCode"><pre class="sourceCode ini"><code class="sourceCode ini"><span class="co"># /etc/php5/fpm/php.ini</span>
270
271<span class="kw">[...][]</span><span class="dt">(.html)</span>
272<span class="dt">post_max_size </span><span class="ot">=</span><span class="st"> 10M</span>
273<span class="kw">[...][]</span><span class="dt">(.html)</span>
274<span class="dt">upload_max_filesize </span><span class="ot">=</span><span class="st"> 10M</span></code></pre></div>
256<h3 id="minimal-1">Minimal</h3> 275<h3 id="minimal-1">Minimal</h3>
257<p><em>WARNING: Use for development only!</em></p> 276<p><em>WARNING: Use for development only!</em></p>
258<pre class="nginx"><code>user john users; 277<pre class="nginx"><code>user john users;
@@ -352,6 +371,11 @@ http {
352 error_log /var/log/nginx/shaarli.error.log; 371 error_log /var/log/nginx/shaarli.error.log;
353 } 372 }
354 373
374 location = /shaarli/favicon.ico {
375 # serve the Shaarli favicon from its custom location
376 alias /var/www/shaarli/images/favicon.ico;
377 }
378
355 include deny.conf; 379 include deny.conf;
356 include static_assets.conf; 380 include static_assets.conf;
357 include php.conf; 381 include php.conf;
@@ -405,15 +429,15 @@ http {
405 error_log /var/log/nginx/shaarli.error.log; 429 error_log /var/log/nginx/shaarli.error.log;
406 } 430 }
407 431
432 location = /shaarli/favicon.ico {
433 # serve the Shaarli favicon from its custom location
434 alias /var/www/shaarli/images/favicon.ico;
435 }
436
408 include deny.conf; 437 include deny.conf;
409 include static_assets.conf; 438 include static_assets.conf;
410 include php.conf; 439 include php.conf;
411 } 440 }
412}</code></pre> 441}</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 &quot;honest&quot; 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: *
416Disallow: /</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> 442</body>
419</html> 443</html>
diff --git a/doc/Server-configuration.md b/doc/Server-configuration.md
index fd98a608..df10feb2 100644
--- a/doc/Server-configuration.md
+++ b/doc/Server-configuration.md
@@ -102,6 +102,12 @@ See [Server-side TLS](https://wiki.mozilla.org/Security/Server_Side_TLS#Apache)
102</VirtualHost> 102</VirtualHost>
103``` 103```
104 104
105### .htaccess
106
107Shaarli use `.htaccess` Apache files to deny access to files that shouldn't be directly accessed (datastore, config, etc.). You need the directive `AllowOverride All` in your virtual host configuration for them to work.
108
109**Warning**: If you use Apache 2.2 or lower, you need [mod_version](https://httpd.apache.org/docs/current/mod/mod_version.html) to be installed and enabled.[](.html)
110
105## LightHttpd 111## LightHttpd
106 112
107## Nginx 113## Nginx
@@ -136,7 +142,7 @@ On a development server:
136- files may be located in a user's home directory 142- files may be located in a user's home directory
137- in this case, make sure both Nginx and PHP-FPM are running as the local user/group! 143- in this case, make sure both Nginx and PHP-FPM are running as the local user/group!
138 144
139For all following examples, a development configuration will be used: 145For all following configuration examples, this user/group pair will be used:
140- `user:group = john:users`, 146- `user:group = john:users`,
141 147
142which corresponds to the following service configuration: 148which corresponds to the following service configuration:
@@ -160,6 +166,32 @@ http {
160} 166}
161``` 167```
162 168
169### (Optional) Increase the maximum file upload size
170Some bookmark dumps generated by web browsers can be _huge_ due to the presence of Base64-encoded images and favicons, as well as extra verbosity when nesting links in (sub-)folders.
171
172To increase upload size, you will need to modify both nginx and PHP configuration:
173
174```nginx
175# /etc/nginx/nginx.conf
176
177http {
178 [...][](.html)
179
180 client_max_body_size 10m;
181
182 [...][](.html)
183}
184```
185
186```ini
187# /etc/php5/fpm/php.ini
188
189[...][](.html)
190post_max_size = 10M
191[...][](.html)
192upload_max_filesize = 10M
193```
194
163### Minimal 195### Minimal
164_WARNING: Use for development only!_ 196_WARNING: Use for development only!_
165 197
@@ -271,6 +303,11 @@ http {
271 error_log /var/log/nginx/shaarli.error.log; 303 error_log /var/log/nginx/shaarli.error.log;
272 } 304 }
273 305
306 location = /shaarli/favicon.ico {
307 # serve the Shaarli favicon from its custom location
308 alias /var/www/shaarli/images/favicon.ico;
309 }
310
274 include deny.conf; 311 include deny.conf;
275 include static_assets.conf; 312 include static_assets.conf;
276 include php.conf; 313 include php.conf;
@@ -328,21 +365,14 @@ http {
328 error_log /var/log/nginx/shaarli.error.log; 365 error_log /var/log/nginx/shaarli.error.log;
329 } 366 }
330 367
368 location = /shaarli/favicon.ico {
369 # serve the Shaarli favicon from its custom location
370 alias /var/www/shaarli/images/favicon.ico;
371 }
372
331 include deny.conf; 373 include deny.conf;
332 include static_assets.conf; 374 include static_assets.conf;
333 include php.conf; 375 include php.conf;
334 } 376 }
335} 377}
336``` 378```
337
338## Restricting search engines and web crawler traffic
339
340Creating 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```
343User-agent: *
344Disallow: /
345```
346
347See: 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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 />
118download 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-&gt;è-&gt;f</code>)<a href=".html"></a></td> 168<td>localized text sorting (e.g. <code>e-&gt;è-&gt;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:---:|:---:|:---:
137.0 | Supported | :white_check_mark: 137.0 | Supported | :white_check_mark:
145.6 | Supported | :white_check_mark: 145.6 | Supported | :white_check_mark:
155.5 | Supported | :white_check_mark: 155.5 | EOL: 2016-07-10 | :white_check_mark:
165.4 | EOL: 2015-09-14 | :white_check_mark: 165.4 | EOL: 2015-09-14 | :white_check_mark: (up to Shaarli 0.8.x)
175.3 | EOL: 2014-08-14 | :white_check_mark: 175.3 | EOL: 2014-08-14 | :white_check_mark: (up to Shaarli 0.8.x)
18 18
19See also: 19See 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
23Starting with Shaarli `v0.8.x`, [Composer](https://getcomposer.org/) is used to resolve,[](.html)
24download and install third-party PHP dependencies.
25
26Library | 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
23Extension | Required? | Usage 31Extension | 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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&lt;HOST&gt;\s-\sLogin failed for user.*$</span> 160<span class="dt">failregex </span><span class="ot">=</span><span class="st"> \s-\s&lt;HOST&gt;\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: *
165Disallow: /</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
58failregex = \s-\s<HOST>\s-\sLogin failed for user.*$ 58failregex = \s-\s<HOST>\s-\sLogin failed for user.*$
59ignoreregex = 59ignoreregex =
60``` 60```
61
62## Robots - Restricting search engines and web crawler traffic
63
64Creating 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```
67User-agent: *
68Disallow: /
69```
70
71See:
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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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">&lt;?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">&#39;login&#39;</span><span class="ot">]</span> = <span class="st">&#39;&lt;login&gt;&#39;</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">&#39;hash&#39;</span><span class="ot">]</span> = <span class="st">&#39;200c452da46c2f889e5e48c49ef044bcacdcb095&#39;</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">&#39;salt&#39;</span><span class="ot">]</span> = <span class="st">&#39;13b654102321576033d8473b63a275a1bf94c0f0&#39;</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">&#39;timezone&#39;</span><span class="ot">]</span> = <span class="st">&#39;Africa/Abidjan&#39;</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">&#39;Africa/Abidjan&#39;</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">&#39;title&#39;</span><span class="ot">]</span> = <span class="st">&#39;My Little Shaarly&#39;</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 164It 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">&#39;titleLink&#39;</span><span class="ot">]</span> = <span class="st">&#39;?&#39;</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">&#39;redirector&#39;</span><span class="ot">]</span> = <span class="st">&#39;&#39;</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">&#39;disablesessionprotection&#39;</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">&#39;privateLinkByDefault&#39;</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 &quot;config.php&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ENABLED_PLUGINS&#39;</span><span class="ot">]</span> = <span class="fu">array</span><span class="ot">(</span><span class="st">&#39;addlink_toolbar&#39;</span><span class="ot">,</span> <span class="st">&#39;qrcode&#39;</span><span class="ot">);](</span><span class="st">&#39;ENABLED_PLUGINS&#39;</span><span class="ot">]</span>-=-<span class="fu">array</span><span class="ot">(</span><span class="st">&#39;addlink_toolbar&#39;</span><span class="ot">,</span>-<span class="st">&#39;qrcode&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;DATADIR&#39;</span><span class="ot">]</span> = <span class="st">&#39;data&#39;</span><span class="ot">;](</span><span class="st">&#39;DATADIR&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;data&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;CONFIG_FILE&#39;</span><span class="ot">]</span> = <span class="st">&#39;data/config.php&#39;</span><span class="ot">;](</span><span class="st">&#39;CONFIG_FILE&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;data/config.php&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;DATASTORE&#39;</span><span class="ot">]</span> = <span class="st">&#39;data/datastore.php&#39;</span><span class="ot">;](</span><span class="st">&#39;DATASTORE&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;data/datastore.php&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;LINKS_PER_PAGE&#39;</span><span class="ot">]</span> = <span class="dv">20</span><span class="ot">;](</span><span class="st">&#39;LINKS_PER_PAGE&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;IPBANS_FILENAME&#39;</span><span class="ot">]</span> = <span class="st">&#39;data/ipbans.php&#39;</span><span class="ot">;](</span><span class="st">&#39;IPBANS_FILENAME&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;data/ipbans.php&#39;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;BAN_AFTER&#39;</span><span class="ot">]</span> = <span class="dv">4</span><span class="ot">;](</span><span class="st">&#39;BAN_AFTER&#39;</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">&lt;?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">&quot;credentials&quot;</span><span class="fu">:</span> <span class="fu">{</span>
201<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;BAN_DURATION&#39;</span><span class="ot">]</span> = <span class="dv">1800</span><span class="ot">;](</span><span class="st">&#39;BAN_DURATION&#39;</span><span class="ot">]</span>-=-<span class="dv">1800</span><span class="ot">;</span>.html<span class="ot">)</span> 201 <span class="dt">&quot;login&quot;</span><span class="fu">:</span> <span class="st">&quot;&lt;login&gt;&quot;</span><span class="fu">,</span>
202 202 <span class="dt">&quot;hash&quot;</span><span class="fu">:</span> <span class="st">&quot;&lt;password hash&gt;&quot;</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">&quot;salt&quot;</span><span class="fu">:</span> <span class="st">&quot;&lt;password salt&gt;&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;OPEN_SHAARLI&#39;</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">&#39;OPEN_SHAARLI&#39;</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> 205 <span class="dt">&quot;security&quot;</span><span class="fu">:</span> <span class="fu">{</span>
206 206 <span class="dt">&quot;ban_after&quot;</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">&quot;session_protection_disabled&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;HIDE_TIMESTAMPS&#39;</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">&#39;HIDE_TIMESTAMPS&#39;</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> 208 <span class="dt">&quot;ban_duration&quot;</span><span class="fu">:</span> <span class="dv">1800</span><span class="fu">,</span>
209 209 <span class="dt">&quot;trusted_proxies&quot;</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">&quot;1.2.3.4&quot;</span><span class="ot">,</span>
211<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ENABLE_THUMBNAILS&#39;</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">&#39;ENABLE_THUMBNAILS&#39;</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> 211 <span class="st">&quot;5.6.7.8&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;CACHEDIR&#39;</span><span class="ot">]</span> = <span class="st">&#39;cache&#39;</span><span class="ot">;](</span><span class="st">&#39;CACHEDIR&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;cache&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 214 <span class="dt">&quot;resources&quot;</span><span class="fu">:</span> <span class="fu">{</span>
215 215 <span class="dt">&quot;data_dir&quot;</span><span class="fu">:</span> <span class="st">&quot;data&quot;</span><span class="fu">,</span>
216<span class="co">// Enable feed (rss, atom, dailyrss) cache</span> 216 <span class="dt">&quot;config&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">config.php&quot;</span><span class="fu">,</span>
217<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ENABLE_LOCALCACHE&#39;</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">&#39;ENABLE_LOCALCACHE&#39;</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> 217 <span class="dt">&quot;datastore&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">datastore.php&quot;</span><span class="fu">,</span>
218 218 <span class="dt">&quot;ban_file&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">ipbans.php&quot;</span><span class="fu">,</span>
219<span class="co">// Feed cache directory</span> 219 <span class="dt">&quot;updates&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">updates.txt&quot;</span><span class="fu">,</span>
220<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;PAGECACHE&#39;</span><span class="ot">]</span> = <span class="st">&#39;pagecache&#39;</span><span class="ot">;](</span><span class="st">&#39;PAGECACHE&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;pagecache&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 220 <span class="dt">&quot;log&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">log.txt&quot;</span><span class="fu">,</span>
221 221 <span class="dt">&quot;update_check&quot;</span><span class="fu">:</span> <span class="st">&quot;data</span><span class="ch">\/</span><span class="st">lastupdatecheck.txt&quot;</span><span class="fu">,</span>
222<span class="co">// RainTPL cache directory (keep the trailing slash!)</span> 222 <span class="dt">&quot;raintpl_tmp&quot;</span><span class="fu">:</span> <span class="st">&quot;tmp</span><span class="ch">\/</span><span class="st">&quot;</span><span class="fu">,</span>
223<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;RAINTPL_TMP&#39;</span><span class="ot">]</span> = <span class="st">&#39;tmp/&#39;</span><span class="ot">;](</span><span class="st">&#39;RAINTPL_TMP&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;tmp/&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 223 <span class="dt">&quot;raintpl_tpl&quot;</span><span class="fu">:</span> <span class="st">&quot;tpl</span><span class="ch">\/</span><span class="st">&quot;</span><span class="fu">,</span>
224 224 <span class="dt">&quot;thumbnails_cache&quot;</span><span class="fu">:</span> <span class="st">&quot;cache&quot;</span><span class="fu">,</span>
225<span class="co">// RainTPL template directory (keep the trailing slash!)</span> 225 <span class="dt">&quot;page_cache&quot;</span><span class="fu">:</span> <span class="st">&quot;pagecache&quot;</span>
226<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;RAINTPL_TPL&#39;</span><span class="ot">]</span> = <span class="st">&#39;tpl/&#39;</span><span class="ot">;](</span><span class="st">&#39;RAINTPL_TPL&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;tpl/&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 226 <span class="fu">},</span>
227 227 <span class="dt">&quot;general&quot;</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">&quot;check_updates&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ENABLE_UPDATECHECK&#39;</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">&#39;ENABLE_UPDATECHECK&#39;</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> 229 <span class="dt">&quot;rss_permalinks&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
230 230 <span class="dt">&quot;links_per_page&quot;</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">&quot;default_private_links&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;UPDATECHECK_FILENAME&#39;</span><span class="ot">]</span> = <span class="st">&#39;data/lastupdatecheck.txt&#39;</span><span class="ot">;](</span><span class="st">&#39;UPDATECHECK_FILENAME&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;data/lastupdatecheck.txt&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 232 <span class="dt">&quot;enable_thumbnails&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
233 233 <span class="dt">&quot;enable_localcache&quot;</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">&quot;check_updates_branch&quot;</span><span class="fu">:</span> <span class="st">&quot;stable&quot;</span><span class="fu">,</span>
235<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;UPDATECHECK_INTERVAL&#39;</span><span class="ot">]</span> = <span class="dv">86400</span><span class="ot">;](</span><span class="st">&#39;UPDATECHECK_INTERVAL&#39;</span><span class="ot">]</span>-=-<span class="dv">86400</span><span class="ot">;</span>.html<span class="ot">)</span> 235 <span class="dt">&quot;check_updates_interval&quot;</span><span class="fu">:</span> <span class="dv">86400</span><span class="fu">,</span>
236 236 <span class="dt">&quot;enabled_plugins&quot;</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">&quot;markdown&quot;</span><span class="ot">,</span>
238<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ARCHIVE_ORG&#39;</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">&#39;ARCHIVE_ORG&#39;</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> 238 <span class="st">&quot;wallabag&quot;</span><span class="ot">,</span>
239 239 <span class="st">&quot;archiveorg&quot;</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 =&gt; directly to the link</span> 241 <span class="dt">&quot;timezone&quot;</span><span class="fu">:</span> <span class="st">&quot;Europe</span><span class="ch">\/</span><span class="st">Paris&quot;</span><span class="fu">,</span>
242<span class="co">// false =&gt; to the entry on Shaarli (permalink)</span> 242 <span class="dt">&quot;title&quot;</span><span class="fu">:</span> <span class="st">&quot;My Shaarli&quot;</span><span class="fu">,</span>
243<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;ENABLE_RSS_PERMALINKS&#39;</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">&#39;ENABLE_RSS_PERMALINKS&#39;</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> 243 <span class="dt">&quot;header_link&quot;</span><span class="fu">:</span> <span class="st">&quot;?&quot;</span>
244 244 <span class="fu">},</span>
245<span class="co">// Hide all links to non-logged users</span> 245 <span class="dt">&quot;extras&quot;</span><span class="fu">:</span> <span class="fu">{</span>
246<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;HIDE_PUBLIC_LINKS&#39;</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">&#39;HIDE_PUBLIC_LINKS&#39;</span><span class="ot">]</span>-=-<span class="kw">false</span><span class="ot">;</span>.html<span class="ot">)</span> 246 <span class="dt">&quot;show_atom&quot;</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span>
247 247 <span class="dt">&quot;hide_public_links&quot;</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">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;PUBSUBHUB_URL&#39;</span><span class="ot">]</span> = <span class="st">&#39;&#39;</span><span class="ot">;](</span><span class="st">&#39;PUBSUBHUB_URL&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;&#39;</span><span class="ot">;</span>.html<span class="ot">)</span> 248 <span class="dt">&quot;hide_timestamps&quot;</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span>
249 249 <span class="dt">&quot;open_shaarli&quot;</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">&quot;redirector&quot;</span><span class="fu">:</span> <span class="st">&quot;http://anonym.to/?&quot;</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">&quot;redirector_encode_url&quot;</span><span class="fu">:</span> <span class="kw">false</span>
252<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;SHOW_ATOM&#39;</span><span class="ot">]</span> = <span class="kw">false</span><span class="ot">;](</span><span class="st">&#39;SHOW_ATOM&#39;</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">&quot;general&quot;</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">&quot;header_link&quot;</span><span class="fu">:</span> <span class="st">&quot;?&quot;</span><span class="fu">,</span>
255<span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;REDIRECTOR_URLENCODE&#39;</span><span class="ot">]</span> = <span class="kw">true</span><span class="ot">;](</span><span class="st">&#39;REDIRECTOR_URLENCODE&#39;</span><span class="ot">]</span>-=-<span class="kw">true</span><span class="ot">;</span>.html<span class="ot">)</span> 255 <span class="dt">&quot;links_per_page&quot;</span><span class="fu">:</span> <span class="dv">20</span><span class="fu">,</span>
256<span class="kw">?&gt;</span></code></pre></div> 256 <span class="dt">&quot;enabled_plugins&quot;</span><span class="fu">:</span> <span class="ot">[[]</span><span class="er">(.html)</span>
257 <span class="st">&quot;markdown&quot;</span><span class="ot">,</span>
258 <span class="st">&quot;wallabag&quot;</span>
259 <span class="ot">]</span><span class="fu">,</span>
260 <span class="dt">&quot;timezone&quot;</span><span class="fu">:</span> <span class="st">&quot;Europe</span><span class="ch">\/</span><span class="st">Paris&quot;</span><span class="fu">,</span>
261 <span class="dt">&quot;title&quot;</span><span class="fu">:</span> <span class="st">&quot;My Shaarli&quot;</span>
262 <span class="fu">},</span>
263 <span class="dt">&quot;updates&quot;</span><span class="fu">:</span> <span class="fu">{</span>
264 <span class="dt">&quot;check_updates&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
265 <span class="dt">&quot;check_updates_branch&quot;</span><span class="fu">:</span> <span class="st">&quot;stable&quot;</span><span class="fu">,</span>
266 <span class="dt">&quot;check_updates_interval&quot;</span><span class="fu">:</span> <span class="dv">86400</span>
267 <span class="fu">},</span>
268 <span class="dt">&quot;feed&quot;</span><span class="fu">:</span> <span class="fu">{</span>
269 <span class="dt">&quot;rss_permalinks&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
270 <span class="dt">&quot;show_atom&quot;</span><span class="fu">:</span> <span class="kw">false</span>
271 <span class="fu">},</span>
272 <span class="dt">&quot;privacy&quot;</span><span class="fu">:</span> <span class="fu">{</span>
273 <span class="dt">&quot;default_private_links&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
274 <span class="dt">&quot;hide_public_links&quot;</span><span class="fu">:</span> <span class="kw">false</span><span class="fu">,</span>
275 <span class="dt">&quot;hide_timestamps&quot;</span><span class="fu">:</span> <span class="kw">false</span>
276 <span class="fu">},</span>
277 <span class="dt">&quot;thumbnail&quot;</span><span class="fu">:</span> <span class="fu">{</span>
278 <span class="dt">&quot;enable_thumbnails&quot;</span><span class="fu">:</span> <span class="kw">true</span><span class="fu">,</span>
279 <span class="dt">&quot;enable_localcache&quot;</span><span class="fu">:</span> <span class="kw">true</span>
280 <span class="fu">},</span>
281 <span class="dt">&quot;redirector&quot;</span><span class="fu">:</span> <span class="fu">{</span>
282 <span class="dt">&quot;url&quot;</span><span class="fu">:</span> <span class="st">&quot;http://anonym.to/?&quot;</span><span class="fu">,</span>
283 <span class="dt">&quot;encode_url&quot;</span><span class="fu">:</span> <span class="kw">false</span>
284 <span class="fu">},</span>
285 <span class="dt">&quot;plugins&quot;</span><span class="fu">:</span> <span class="fu">{</span>
286 <span class="dt">&quot;WALLABAG_URL&quot;</span><span class="fu">:</span> <span class="st">&quot;http://demo.wallabag.org&quot;</span><span class="fu">,</span>
287 <span class="dt">&quot;WALLABAG_VERSION&quot;</span><span class="fu">:</span> <span class="st">&quot;1&quot;</span>
288 <span class="fu">}</span>
289<span class="fu">}</span> <span class="er">?&gt;</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 />
293configuration 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
6Once your Shaarli instance is installed, the file `data/config.php` is generated: 8Once 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
12The server process running Shaarli must have: 16The 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
35See also [Plugin System](Plugin-System.html). 39
36 40In `data/config.json.php`.
37```php 41
38<?php 42See 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
50date_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) 63It 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
151The 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) 208The 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)
210configuration 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-&amp;-Related-software.html">Community &amp; 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
2Once 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
6Setup 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; 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..7cbf7aef 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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>
@@ -121,18 +119,20 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
121<ul> 119<ul>
122<li>There should now be a <code>my-template/</code> directory under the <code>tpl/</code> dir, containing directly all the template files.</li> 120<li>There should now be a <code>my-template/</code> directory under the <code>tpl/</code> dir, containing directly all the template files.</li>
123</ul></li> 121</ul></li>
124<li><p>Edit <code>data/config.php</code> to have Shaarli use this template, e.g.</p> 122<li><p>Edit <code>data/config.json.php</code> to have Shaarli use this template, in <code>&quot;resource&quot;</code> e.g.</p>
125<div class="sourceCode"><pre class="sourceCode php"><code class="sourceCode php"><span class="kw">$GLOBALS</span><span class="ot">[</span><span class="st">&#39;config&#39;</span><span class="ot">[</span><span class="st">&#39;RAINTPL_TPL&#39;</span><span class="ot">]</span> = <span class="st">&#39;tpl/my-template/&#39;</span><span class="ot">;](</span><span class="st">&#39;RAINTPL_TPL&#39;</span><span class="ot">]</span>-=-<span class="st">&#39;tpl/my-template/&#39;</span><span class="ot">;</span>.html<span class="ot">)</span></code></pre></div></li> 123<div class="sourceCode"><pre class="sourceCode json"><code class="sourceCode json"><span class="er">&quot;raintpl_tpl&quot;:</span> <span class="er">&quot;tpl\/my-template\/&quot;,</span></code></pre></div></li>
126</ul> 124</ul>
127<h2 id="community-themes-templates">Community themes &amp; templates</h2> 125<h2 id="community-themes-templates">Community themes &amp; templates</h2>
128<ul> 126<ul>
129<li><a href="https://github.com/AkibaTech/Shaarli---SuperHero-Theme">AkibaTech/Shaarli Superhero Theme</a> - A template/theme for Shaarli<a href=".html"></a></li> 127<li><a href="https://github.com/AkibaTech/Shaarli---SuperHero-Theme">AkibaTech/Shaarli Superhero Theme</a> - A template/theme for Shaarli<a href=".html"></a></li>
130<li><a href="https://github.com/alexisju/albinomouse-template">alexisju/albinomouse-template</a> - A full template for Shaarli<a href=".html"></a></li> 128<li><a href="https://github.com/alexisju/albinomouse-template">alexisju/albinomouse-template</a> - A full template for Shaarli<a href=".html"></a></li>
129<li><a href="https://github.com/ArthurHoaro/shaarli-launch">ArthurHoaro/shaarli-launch</a> - Customizable Shaarli theme.<a href=".html"></a></li>
131<li><a href="https://github.com/dhoko/ShaarliTemplate">dhoko/ShaarliTemplate</a> - A template/theme for Shaarli<a href=".html"></a></li> 130<li><a href="https://github.com/dhoko/ShaarliTemplate">dhoko/ShaarliTemplate</a> - A template/theme for Shaarli<a href=".html"></a></li>
132<li><a href="https://github.com/kalvn/shaarli-blocks">kalvn/shaarli-blocks</a> - A template/theme for Shaarli<a href=".html"></a></li> 131<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> 132<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>
133<li><a href="https://github.com/ManufacturaInd/shaarli-2004licious-theme">ManufacturaInd/shaarli-2004licious-theme</a> - A template/theme as a humble homage to the early looks of the del.icio.us site.<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> 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>
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> 135<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>
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> 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>
137</ul> 137</ul>
138<h3 id="example-installation-albinomouse-template">Example installation: AlbinoMouse template</h3> 138<h3 id="example-installation-albinomouse-template">Example installation: AlbinoMouse template</h3>
@@ -142,17 +142,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> 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>
143<li><code>http</code> is the name of the Apache user</li> 143<li><code>http</code> is the name of the Apache user</li>
144</ul> 144</ul>
145<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="kw">cd</span> ~/public_html 145<div class="sourceCode"><pre class="sourceCode bash"><code class="sourceCode bash">$ <span class="bu">cd</span> ~/public_html
146 146
147<span class="co"># clone repositories</span> 147<span class="co"># clone repositories</span>
148$ <span class="kw">git</span> clone https://github.com/shaarli/Shaarli.git shaarli 148$ <span class="fu">git</span> clone https://github.com/shaarli/Shaarli.git shaarli
149$ <span class="kw">pushd</span> shaarli/tpl 149$ <span class="bu">pushd</span> shaarli/tpl
150$ <span class="kw">git</span> clone https://github.com/alexisju/albinomouse-template.git 150$ <span class="fu">git</span> clone https://github.com/alexisju/albinomouse-template.git
151$ <span class="kw">popd</span> 151$ <span class="bu">popd</span>
152 152
153<span class="co"># set access rights for Apache</span> 153<span class="co"># set access rights for Apache</span>
154$ <span class="kw">chgrp</span> -R http shaarli 154$ <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> 155$ <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> 156<p>Get config written:</p>
157<ul> 157<ul>
158<li>go to the freshly installed site</li> 158<li>go to the freshly installed site</li>
@@ -161,6 +161,6 @@ $ <span class="kw">chmod</span> g+rwx shaarli shaarli/cache shaarli/data shaarli
161</ul> 161</ul>
162<p>Edit Shaarli's <a href="configuration%7CShaarli-configuration.html">configuration|Shaarli configuration</a>:</p> 162<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 =&gt; sudo</span> 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 =&gt; sudo</span>
164$ <span class="kw">sudo</span> sed -i s=tpl=tpl/albinomouse-template=g shaarli/data/config.php</code></pre></div> 164$ <span class="fu">sudo</span> sed -i s=tpl=tpl/albinomouse-template=g shaarli/data/config.php</code></pre></div>
165</body> 165</body>
166</html> 166</html>
diff --git a/doc/Theming.md b/doc/Theming.md
index 9dfdcf9f..a21899c2 100644
--- a/doc/Theming.md
+++ b/doc/Theming.md
@@ -16,19 +16,21 @@ _WARNING - This feature is currently being worked on and will be improved in the
16- Find it's git clone URL or download the zip archive for the template. 16- Find it's git clone URL or download the zip archive for the template.
17- In your Shaarli `tpl/` directory, run `git clone https://url/of/my-template/` or unpack the zip archive. 17- In your Shaarli `tpl/` directory, run `git clone https://url/of/my-template/` or unpack the zip archive.
18 - There should now be a `my-template/` directory under the `tpl/` dir, containing directly all the template files. 18 - There should now be a `my-template/` directory under the `tpl/` dir, containing directly all the template files.
19- Edit `data/config.php` to have Shaarli use this template, e.g. 19- Edit `data/config.json.php` to have Shaarli use this template, in `"resource"` e.g.
20```php 20```json
21$GLOBALS['config'['RAINTPL_TPL'] = 'tpl/my-template/';]('RAINTPL_TPL']-=-'tpl/my-template/';.html) 21"raintpl_tpl": "tpl\/my-template\/",
22``` 22```
23 23
24## Community themes & templates 24## Community themes & templates
25- [AkibaTech/Shaarli Superhero Theme](https://github.com/AkibaTech/Shaarli---SuperHero-Theme) - A template/theme for Shaarli[](.html) 25- [AkibaTech/Shaarli Superhero Theme](https://github.com/AkibaTech/Shaarli---SuperHero-Theme) - A template/theme for Shaarli[](.html)
26- [alexisju/albinomouse-template](https://github.com/alexisju/albinomouse-template) - A full template for Shaarli[](.html) 26- [alexisju/albinomouse-template](https://github.com/alexisju/albinomouse-template) - A full template for Shaarli[](.html)
27- [ArthurHoaro/shaarli-launch](https://github.com/ArthurHoaro/shaarli-launch) - Customizable Shaarli theme.[](.html)
27- [dhoko/ShaarliTemplate](https://github.com/dhoko/ShaarliTemplate) - A template/theme for Shaarli[](.html) 28- [dhoko/ShaarliTemplate](https://github.com/dhoko/ShaarliTemplate) - 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-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) 30- [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)
31- [ManufacturaInd/shaarli-2004licious-theme](https://github.com/ManufacturaInd/shaarli-2004licious-theme) - A template/theme as a humble homage to the early looks of the del.icio.us site.[](.html)
30- [misterair/Limonade](https://github.com/misterair/limonade) - A fork of (legacy) Shaarli with a new template[](.html) 32- [misterair/Limonade](https://github.com/misterair/limonade) - A fork of (legacy) Shaarli with a new template[](.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) 33- [mrjovanovic/serious-theme-shaarli](https://github.com/mrjovanovic/serious-theme-shaarli) - A serious theme for SHaarli.[](.html)
32- [vivienhaese/shaarlitheme](https://github.com/vivienhaese/shaarlitheme) - A Shaarli fork meant to be run in an openshift instance[](.html) 34- [vivienhaese/shaarlitheme](https://github.com/vivienhaese/shaarlitheme) - A Shaarli fork meant to be run in an openshift instance[](.html)
33 35
34### Example installation: AlbinoMouse template 36### Example installation: AlbinoMouse template
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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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
37To solve this, assign a local domain to your host, e.g. 38To 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 98<li><a href="Community-&amp;-Related-software.html">Community &amp; 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\
164DBTest.php on line 79 and defined 162DBTest.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">&#39;e3edea8ea7bb50be4bcb404df53fbb4546a7156e&#39;</span> 176<span class="ex">-</span><span class="st">&#39;e3edea8ea7bb50be4bcb404df53fbb4546a7156e&#39;</span>
179<span class="kw">+</span><span class="st">&#39;85eab0c610d4f68025f6ed6e6b6b5fabd4b55834&#39;</span> 177<span class="ex">+</span><span class="st">&#39;85eab0c610d4f68025f6ed6e6b6b5fabd4b55834&#39;</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">&#39;e3edea8ea7bb50be4bcb404df53fbb4546a7156e&#39;</span> 186<span class="ex">-</span><span class="st">&#39;e3edea8ea7bb50be4bcb404df53fbb4546a7156e&#39;</span>
189<span class="kw">+</span><span class="st">&#39;85eab0c610d4f68025f6ed6e6b6b5fabd4b55834&#39;</span> 187<span class="ex">+</span><span class="st">&#39;85eab0c610d4f68025f6ed6e6b6b5fabd4b55834&#39;</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">
10div.sourceCode { overflow-x: auto; }
11table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode {
12 margin: 0; padding: 0; vertical-align: baseline; border: none; }
13table.sourceCode { width: 100%; line-height: 100%; }
14td.lineNumbers { text-align: right; padding-right: 4px; padding-left: 4px; color: #aaaaaa; border-right: 1px solid #aaaaaa; }
15td.sourceCode { padding-left: 5px; }
16code > span.kw { color: #007020; font-weight: bold; } /* Keyword */
17code > span.dt { color: #902000; } /* DataType */
18code > span.dv { color: #40a070; } /* DecVal */
19code > span.bn { color: #40a070; } /* BaseN */
20code > span.fl { color: #40a070; } /* Float */
21code > span.ch { color: #4070a0; } /* Char */
22code > span.st { color: #4070a0; } /* String */
23code > span.co { color: #60a0b0; font-style: italic; } /* Comment */
24code > span.ot { color: #007020; } /* Other */
25code > span.al { color: #ff0000; font-weight: bold; } /* Alert */
26code > span.fu { color: #06287e; } /* Function */
27code > span.er { color: #ff0000; font-weight: bold; } /* Error */
28code > span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
29code > span.cn { color: #880000; } /* Constant */
30code > span.sc { color: #4070a0; } /* SpecialChar */
31code > span.vs { color: #4070a0; } /* VerbatimString */
32code > span.ss { color: #bb6688; } /* SpecialString */
33code > span.im { } /* Import */
34code > span.va { color: #19177c; } /* Variable */
35code > span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
36code > span.op { color: #666666; } /* Operator */
37code > span.bu { } /* BuiltIn */
38code > span.ex { } /* Extension */
39code > span.pp { color: #bc7a00; } /* Preprocessor */
40code > span.at { color: #7d9029; } /* Attribute */
41code > span.do { color: #ba2121; font-style: italic; } /* Documentation */
42code > span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
43code > span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
44code > 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-&amp;-Related-software.html">Community &amp; 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">&gt;</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 &gt;= <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">&#39;origin/master&#39;</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
191sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
192sebsauvage https://github.com/sebsauvage/Shaarli (push)
193
194$ git remote add origin https://github.com/shaarli/Shaarli
195$ git fetch origin
196
197remote: Counting objects: 3015, done.
198remote: Compressing objects: 100% (19/19), done.
199remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
200Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
201Resolving deltas: 100% (1899/1899), completed with 48 local objects.
202From https://github.com/shaarli/Shaarli
203 * [new branch] master -&gt; origin/master[](.html)
204 * [new branch] stable -&gt; origin/stable[](.html)
205[...][](.html)
206 * [new tag] v0.6.4 -&gt; v0.6.4[](.html)
207 * [new tag] v0.7.0 -&gt; 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">&#39;stable&#39;</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 &gt;= <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
5Shaarli 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
10See [Shaarli configuration](Shaarli-configuration.html) for more information about Shaarli resources.
11
12It 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
17As 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
26All tagged revisions can be downloaded as tarballs or ZIP archives from the [releases](https://github.com/shaarli/Shaarli/releases) page.[](.html)
27
28We _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
32Once 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
34After 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
38If 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
44From github.com:shaarli/Shaarli
45 * branch master -> FETCH_HEAD
46Updating ebd67c6..521f0e6
47Fast-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
54Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):[](.html)
55
56```bash
57$ composer update --no-dev
58
59Loading composer repositories with package information
60Updating dependencies
61 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
62 Downloading: 100%
63```
64
65### Migrating and upgrading from Sebsauvage's repository
66If 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
68The 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
82origin https://github.com/sebsauvage/Shaarli (fetch)
83origin https://github.com/sebsauvage/Shaarli (push)
84
85$ git branch -vv
86* master 029f75f [origin/master] Update README.md[](.html)
87
88$ git status
89On branch master
90Your branch is up-to-date with 'origin/master'.
91nothing to commit, working directory clean
92```
93
94#### Step 1: update Git remotes
95```
96$ git remote rename origin sebsauvage
97$ git remote -v
98sebsauvage https://github.com/sebsauvage/Shaarli (fetch)
99sebsauvage https://github.com/sebsauvage/Shaarli (push)
100
101$ git remote add origin https://github.com/shaarli/Shaarli
102$ git fetch origin
103
104remote: Counting objects: 3015, done.
105remote: Compressing objects: 100% (19/19), done.
106remote: Total 3015 (delta 446), reused 457 (delta 446), pack-reused 2550
107Receiving objects: 100% (3015/3015), 2.59 MiB | 918.00 KiB/s, done.
108Resolving deltas: 100% (1899/1899), completed with 48 local objects.
109From 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
121Branch stable set up to track remote branch stable from origin.
122Switched 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
129Shaarli >= `v0.8.x`: install/update third-party PHP dependencies using [Composer](https://getcomposer.org/):[](.html)
130
131```bash
132$ composer update --no-dev
133
134Loading composer repositories with package information
135Updating dependencies
136 - Installing shaarli/netscape-bookmark-parser (v1.0.1)
137 Downloading: 100%
138```
139
140Optionally, you can delete information related to the legacy version:
141
142```bash
143$ git branch -D master
144Deleted branch master (was 029f75f).
145
146$ git remote remove sebsauvage
147
148$ git remote -v
149origin https://github.com/shaarli/Shaarli (fetch)
150origin https://github.com/shaarli/Shaarli (push)
151
152$ git gc
153Counting objects: 3317, done.
154Delta compression using up to 8 threads.
155Compressing objects: 100% (1237/1237), done.
156Writing objects: 100% (3317/3317), done.
157Total 3317 (delta 2050), reused 3301 (delta 2034)to
158```
159
160#### Step 3: configuration
161After 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-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 61<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 111<li><a href="Community-&amp;-Related-software.html">Community &amp; 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-&amp;-Related-software.html">Community &amp; Related software</a></li> 47<li><a href="Community-&amp;-Related-software.html">Community &amp; 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>