diff options
Diffstat (limited to 'doc')
18 files changed, 377 insertions, 93 deletions
diff --git a/doc/custom_theme/main.html b/doc/custom_theme/main.html new file mode 100644 index 00000000..cc2a703e --- /dev/null +++ b/doc/custom_theme/main.html | |||
@@ -0,0 +1,23 @@ | |||
1 | {% extends "base.html" %} | ||
2 | |||
3 | {# | ||
4 | The entry point for the ReadTheDocs Theme. | ||
5 | |||
6 | Any theme customisations should override this file to redefine blocks defined in | ||
7 | the various templates. The custom theme should only need to define a main.html | ||
8 | which `{% extends "base.html" %}` and defines various blocks which will replace | ||
9 | the blocks defined in base.html and its included child templates. | ||
10 | #} | ||
11 | |||
12 | {%- block site_meta %} | ||
13 | <meta charset="utf-8"> | ||
14 | <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
15 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
16 | |||
17 | {%- if 'media.readthedocs.org' not in config.extra_css[0] %} | ||
18 | <meta name="robots" content="noindex, nofollow"> | ||
19 | {%- endif %} | ||
20 | |||
21 | {% if page and page.is_homepage %}<meta name="description" content="{{ config.site_description }}">{% endif %} | ||
22 | {% if config.site_author %}<meta name="author" content="{{ config.site_author }}">{% endif %} | ||
23 | {%- endblock %} | ||
diff --git a/doc/md/Community-&-Related-software.md b/doc/md/Community-&-Related-software.md index 49c20c9c..c66d1c70 100644 --- a/doc/md/Community-&-Related-software.md +++ b/doc/md/Community-&-Related-software.md | |||
@@ -22,7 +22,8 @@ See [REST API](REST-API) for a list of official and community clients. | |||
22 | - [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli | 22 | - [shaarli2twitter](https://github.com/ArthurHoaro/shaarli2twitter) by [@ArthurHoaro](https://github.com/ArthurHoaro) - Automatically tweet your shared links from Shaarli |
23 | - [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline. | 23 | - [shaarli2mastodon](https://github.com/kalvn/shaarli2mastodon) by [@kalvn](https://github.com/kalvn) - This Shaarli plugin allows you to automatically publish links you post on your Mastodon timeline. |
24 | - [shaarli-descriptor](https://github.com/immanuelfodor/shaarli-descriptor) by [@immanuelfodor](https://github.com/immanuelfodor) - Customize the default height/number of rows of the Description field when editing a link. | 24 | - [shaarli-descriptor](https://github.com/immanuelfodor/shaarli-descriptor) by [@immanuelfodor](https://github.com/immanuelfodor) - Customize the default height/number of rows of the Description field when editing a link. |
25 | 25 | - [urlextern](https://github.com/trailjeep/shaarli-urlextern) by [@trailjeep](https://github.com/trailjeep) - Shaarli plugin to open external links in a new tab/window. | |
26 | - [favicons](https://github.com/trailjeep/shaarli-favicons) by [@trailjeep](https://github.com/trailjeep) - Shaarli plugin to add favicon/filetype icons to links. | ||
26 | 27 | ||
27 | ### Third-party themes | 28 | ### Third-party themes |
28 | See [Theming](Theming) for a list of community-contributed themes, and an installation guide. | 29 | See [Theming](Theming) for a list of community-contributed themes, and an installation guide. |
@@ -51,7 +52,7 @@ See [Theming](Theming) for a list of community-contributed themes, and an instal | |||
51 | - [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/)) | 52 | - [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/)) |
52 | - [Shaarlimages](https://github.com/BoboTiG/shaarlimages) - An image-oriented aggregator for Shaarlis | 53 | - [Shaarlimages](https://github.com/BoboTiG/shaarlimages) - An image-oriented aggregator for Shaarlis |
53 | - [mknexen/shaarli-api](https://github.com/mknexen/shaarli-api) - A REST API for Shaarli | 54 | - [mknexen/shaarli-api](https://github.com/mknexen/shaarli-api) - A REST API for Shaarli |
54 | - [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). | 55 | - [Self dead link](https://framagit.org/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://framagit.org/qwertygc/shaarli-dev-code/blob/master/dead-link.php), can be used for other shaarli instances (but is more resource consuming). |
55 | - [Bookmark Archiver](https://github.com/pirate/bookmark-archiver) - Save an archived copy of all websites starred using browser bookmarks/Shaarli/Delicious/Instapaper/Unmark.it/Pocket/Pinboard. Outputs browseable html. | 56 | - [Bookmark Archiver](https://github.com/pirate/bookmark-archiver) - Save an archived copy of all websites starred using browser bookmarks/Shaarli/Delicious/Instapaper/Unmark.it/Pocket/Pinboard. Outputs browseable html. |
56 | 57 | ||
57 | ## Alternatives to Shaarli | 58 | ## Alternatives to Shaarli |
diff --git a/doc/md/Link-structure.md b/doc/md/Link-structure.md new file mode 100644 index 00000000..0a2d0f88 --- /dev/null +++ b/doc/md/Link-structure.md | |||
@@ -0,0 +1,18 @@ | |||
1 | ## Link structure | ||
2 | |||
3 | Every link available through the `LinkDB` object is represented as an array | ||
4 | containing the following fields: | ||
5 | |||
6 | * `id` (integer): Unique identifier. | ||
7 | * `title` (string): Title of the link. | ||
8 | * `url` (string): URL of the link. Used for displayable links (without redirector, url encoding, etc.). | ||
9 | Can be absolute or relative for Notes. | ||
10 | * `real_url` (string): Real destination URL, can be redirected, encoded, etc. | ||
11 | * `shorturl` (string): Permalink small hash. | ||
12 | * `description` (string): Link text description. | ||
13 | * `private` (boolean): whether the link is private or not. | ||
14 | * `tags` (string): all link tags separated by a single space | ||
15 | * `thumbnail` (string|boolean): relative path of the thumbnail cache file, or false if there isn't any. | ||
16 | * `created` (DateTime): link creation date time. | ||
17 | * `updated` (DateTime): last modification date time. | ||
18 | \ No newline at end of file | ||
diff --git a/doc/md/REST-API.md b/doc/md/REST-API.md index c016de56..11bd1cd2 100644 --- a/doc/md/REST-API.md +++ b/doc/md/REST-API.md | |||
@@ -152,3 +152,22 @@ See the reference API client: | |||
152 | 152 | ||
153 | - [Documentation](http://python-shaarli-client.readthedocs.io/en/latest/) on ReadTheDocs | 153 | - [Documentation](http://python-shaarli-client.readthedocs.io/en/latest/) on ReadTheDocs |
154 | - [python-shaarli-client](https://github.com/shaarli/python-shaarli-client) on Github | 154 | - [python-shaarli-client](https://github.com/shaarli/python-shaarli-client) on Github |
155 | |||
156 | ## Troubleshooting | ||
157 | |||
158 | ### Debug mode | ||
159 | |||
160 | > This should never be used in a production environment. | ||
161 | |||
162 | For security reasons, authentication issues will always return an `HTTP 401` error code without any detail. | ||
163 | |||
164 | It is possible to enable the debug mode in `config.json.php` | ||
165 | to get the actual error message in the HTTP response body with: | ||
166 | |||
167 | ```json | ||
168 | { | ||
169 | "dev": { | ||
170 | "debug": true | ||
171 | } | ||
172 | } | ||
173 | ``` | ||
diff --git a/doc/md/Server-configuration.md b/doc/md/Server-configuration.md index ca82b2ec..78083a46 100644 --- a/doc/md/Server-configuration.md +++ b/doc/md/Server-configuration.md | |||
@@ -18,7 +18,7 @@ Version | Status | Shaarli compatibility | |||
18 | 7.2 | Supported | Yes | 18 | 7.2 | Supported | Yes |
19 | 7.1 | Supported | Yes | 19 | 7.1 | Supported | Yes |
20 | 7.0 | Supported | Yes | 20 | 7.0 | Supported | Yes |
21 | 5.6 | Supported | Yes | 21 | 5.6 | EOL: 2018-12-31 | Yes (up to Shaarli 0.10.x) |
22 | 5.5 | EOL: 2016-07-10 | Yes | 22 | 5.5 | EOL: 2016-07-10 | Yes |
23 | 5.4 | EOL: 2015-09-14 | Yes (up to Shaarli 0.8.x) | 23 | 5.4 | EOL: 2015-09-14 | Yes (up to Shaarli 0.8.x) |
24 | 5.3 | EOL: 2014-08-14 | Yes (up to Shaarli 0.8.x) | 24 | 5.3 | EOL: 2014-08-14 | Yes (up to Shaarli 0.8.x) |
@@ -29,7 +29,7 @@ Extension | Required? | Usage | |||
29 | ---|:---:|--- | 29 | ---|:---:|--- |
30 | [`openssl`](http://php.net/manual/en/book.openssl.php) | All | OpenSSL, HTTPS | 30 | [`openssl`](http://php.net/manual/en/book.openssl.php) | All | OpenSSL, HTTPS |
31 | [`php-mbstring`](http://php.net/manual/en/book.mbstring.php) | CentOS, Fedora, RHEL, Windows, some hosting providers | multibyte (Unicode) string support | 31 | [`php-mbstring`](http://php.net/manual/en/book.mbstring.php) | CentOS, Fedora, RHEL, Windows, some hosting providers | multibyte (Unicode) string support |
32 | [`php-gd`](http://php.net/manual/en/book.image.php) | optional | thumbnail resizing | 32 | [`php-gd`](http://php.net/manual/en/book.image.php) | optional | required to use thumbnails |
33 | [`php-intl`](http://php.net/manual/en/book.intl.php) | optional | localized text sorting (e.g. `e->è->f`) | 33 | [`php-intl`](http://php.net/manual/en/book.intl.php) | optional | localized text sorting (e.g. `e->è->f`) |
34 | [`php-curl`](http://php.net/manual/en/book.curl.php) | optional | using cURL for fetching webpages and thumbnails in a more robust way | 34 | [`php-curl`](http://php.net/manual/en/book.curl.php) | optional | using cURL for fetching webpages and thumbnails in a more robust way |
35 | [`php-gettext`](http://php.net/manual/en/book.gettext.php) | optional | Use the translation system in gettext mode (faster) | 35 | [`php-gettext`](http://php.net/manual/en/book.gettext.php) | optional | Use the translation system in gettext mode (faster) |
@@ -397,6 +397,7 @@ http { | |||
397 | ``` | 397 | ``` |
398 | 398 | ||
399 | ## Proxies | 399 | ## Proxies |
400 | |||
400 | If Shaarli is served behind a proxy (i.e. there is a proxy server between clients and the web server hosting Shaarli), please refer to the proxy server documentation for proper configuration. In particular, you have to ensure that the following server variables are properly set: | 401 | If Shaarli is served behind a proxy (i.e. there is a proxy server between clients and the web server hosting Shaarli), please refer to the proxy server documentation for proper configuration. In particular, you have to ensure that the following server variables are properly set: |
401 | 402 | ||
402 | - `X-Forwarded-Proto` | 403 | - `X-Forwarded-Proto` |
@@ -405,6 +406,12 @@ If Shaarli is served behind a proxy (i.e. there is a proxy server between client | |||
405 | 406 | ||
406 | See also [proxy-related](https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+) issues. | 407 | See also [proxy-related](https://github.com/shaarli/Shaarli/issues?utf8=%E2%9C%93&q=label%3Aproxy+) issues. |
407 | 408 | ||
409 | ## Robots and crawlers | ||
410 | |||
411 | Shaarli disallows indexing and crawling of your local documentation pages by search engines, using `<meta name="robots">` HTML tags. | ||
412 | Your Shaarli instance and other pages you host may still be indexed by various robots on the public Internet. | ||
413 | You may want to setup a robots.txt file or other crawler control mechanism on your server. | ||
414 | See [[1]](https://en.wikipedia.org/wiki/Robots_exclusion_standard), [[2]](https://support.google.com/webmasters/answer/6062608?hl=en) and [[3]](https://developers.google.com/search/reference/robots_meta_tag) | ||
408 | 415 | ||
409 | ## See also | 416 | ## See also |
410 | 417 | ||
diff --git a/doc/md/Sharing-content.md b/doc/md/Sharing-content.md index 4910ff6c..9a16fc62 100644 --- a/doc/md/Sharing-content.md +++ b/doc/md/Sharing-content.md | |||
@@ -15,7 +15,6 @@ While logged in to your Shaarli, you can add new Shaares in several ways: | |||
15 | 15 | ||
16 | * [+Shaare button](#shaare-button) | 16 | * [+Shaare button](#shaare-button) |
17 | * [Bookmarklet](#bookmarklet) | 17 | * [Bookmarklet](#bookmarklet) |
18 | * [Firefox Share](#firefox-share) | ||
19 | * Third-party [apps and browser addons](Community-&-Related-software.md#mobile-apps) | 18 | * Third-party [apps and browser addons](Community-&-Related-software.md#mobile-apps) |
20 | * [REST API](https://shaarli.github.io/api-documentation/) | 19 | * [REST API](https://shaarli.github.io/api-documentation/) |
21 | 20 | ||
@@ -52,22 +51,6 @@ bookmarklet in your browser! The same `New Shaare` dialog as above is displayed. | |||
52 | ![](images/bookmarklet.png) | 51 | ![](images/bookmarklet.png) |
53 | 52 | ||
54 | 53 | ||
55 | ### Firefox Share | ||
56 | |||
57 | Before using Firefox Share, you must first add Shaarli as a sharing provider: | ||
58 | |||
59 | - Click the `Tools` button in the top bar | ||
60 | - Click the `✚Add to Firefox social` button and accept the activation. | ||
61 | |||
62 | Once this is done, you can share any URL you are visiting by clicking the Firefox | ||
63 | _Share_ button ![images/firefoxshare.png](images/firefoxshare.png) | ||
64 | |||
65 | | Note | Firefox Share is no longer available for Firefox 57 and later versions. | | ||
66 | |---------|---------| | ||
67 | |||
68 | | Note | Your Shaarli instance must be hosted on an HTTPS (SSL/TLS secure connection) enabled server for Firefox Share to work. Firefox Share will not work over plaintext HTTP connections. | | ||
69 | |---------|---------| | ||
70 | |||
71 | -------------------------------------------------------------------------------- | 54 | -------------------------------------------------------------------------------- |
72 | 55 | ||
73 | ## Editing Shaares | 56 | ## Editing Shaares |
diff --git a/doc/md/Backup,-restore,-import-and-export.md b/doc/md/guides/backup-restore-import-export.md index bb790074..bb790074 100644 --- a/doc/md/Backup,-restore,-import-and-export.md +++ b/doc/md/guides/backup-restore-import-export.md | |||
diff --git a/doc/md/guides/images/01-create-droplet-distro.jpg b/doc/md/guides/images/01-create-droplet-distro.jpg new file mode 100644 index 00000000..63682ba8 --- /dev/null +++ b/doc/md/guides/images/01-create-droplet-distro.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/02-create-droplet-region.jpg b/doc/md/guides/images/02-create-droplet-region.jpg new file mode 100644 index 00000000..135a78be --- /dev/null +++ b/doc/md/guides/images/02-create-droplet-region.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/03-create-droplet-size.jpg b/doc/md/guides/images/03-create-droplet-size.jpg new file mode 100644 index 00000000..aa5b2fd2 --- /dev/null +++ b/doc/md/guides/images/03-create-droplet-size.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/04-finalize.jpg b/doc/md/guides/images/04-finalize.jpg new file mode 100644 index 00000000..68ec0dc5 --- /dev/null +++ b/doc/md/guides/images/04-finalize.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/05-droplet.jpg b/doc/md/guides/images/05-droplet.jpg new file mode 100644 index 00000000..44e93a1e --- /dev/null +++ b/doc/md/guides/images/05-droplet.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/06-domain.jpg b/doc/md/guides/images/06-domain.jpg new file mode 100644 index 00000000..5827dd93 --- /dev/null +++ b/doc/md/guides/images/06-domain.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/images/07-installation.jpg b/doc/md/guides/images/07-installation.jpg new file mode 100644 index 00000000..42cc9f10 --- /dev/null +++ b/doc/md/guides/images/07-installation.jpg | |||
Binary files differ | |||
diff --git a/doc/md/guides/install-shaarli-with-debian9-and-docker.md b/doc/md/guides/install-shaarli-with-debian9-and-docker.md new file mode 100644 index 00000000..f1b26d47 --- /dev/null +++ b/doc/md/guides/install-shaarli-with-debian9-and-docker.md | |||
@@ -0,0 +1,257 @@ | |||
1 | _Last updated on 2018-07-01._ | ||
2 | |||
3 | ## Goals | ||
4 | - Getting a Virtual Private Server (VPS) | ||
5 | - Running Shaarli: | ||
6 | - as a Docker container, | ||
7 | - using the Træfik reverse proxy, | ||
8 | - securized with TLS certificates from Let's Encrypt. | ||
9 | |||
10 | |||
11 | The following components and tools will be used: | ||
12 | |||
13 | - [Debian](https://www.debian.org/), a GNU/Linux distribution widely used in | ||
14 | server environments; | ||
15 | - [Docker](https://docs.docker.com/engine/docker-overview/), an open platform | ||
16 | for developing, shipping, and running applications; | ||
17 | - [Docker Compose](https://docs.docker.com/compose/), a tool for defining and | ||
18 | running multi-container Docker applications. | ||
19 | |||
20 | |||
21 | More information can be found in the [Resources](#resources) section at the | ||
22 | bottom of the guide. | ||
23 | |||
24 | ## Getting a Virtual Private Server | ||
25 | For this guide, I went for the smallest VPS available from DigitalOcean, | ||
26 | a Droplet with 1 CPU, 1 GiB RAM and 25 GiB SSD storage, which costs | ||
27 | $5/month ($0.007/hour): | ||
28 | |||
29 | - [Droplets Overview](https://www.digitalocean.com/docs/droplets/overview/) | ||
30 | - [Pricing](https://www.digitalocean.com/pricing/) | ||
31 | - [How to Create a Droplet from the DigitalOcean Control Panel](https://www.digitalocean.com/docs/droplets/how-to/create/) | ||
32 | - [How to Add SSH Keys to Droplets](https://www.digitalocean.com/docs/droplets/how-to/add-ssh-keys/) | ||
33 | - [Initial Server Setup with Debian 8](https://www.digitalocean.com/community/tutorials/initial-server-setup-with-debian-8) (also applies to Debian 9) | ||
34 | - [An Introduction to Securing your Linux VPS](https://www.digitalocean.com/community/tutorials/an-introduction-to-securing-your-linux-vps) | ||
35 | |||
36 | ### Creating a Droplet | ||
37 | Select `Debian 9` as the Droplet distribution: | ||
38 | |||
39 | <img src="../images/01-create-droplet-distro.jpg" | ||
40 | width="500px" | ||
41 | alt="Droplet distribution" /> | ||
42 | |||
43 | Choose a region that is geographically close to you: | ||
44 | |||
45 | <img src="../images/02-create-droplet-region.jpg" | ||
46 | width="500px" | ||
47 | alt="Droplet region" /> | ||
48 | |||
49 | Choose a Droplet size that corresponds to your usage and budget: | ||
50 | |||
51 | <img src="../images/03-create-droplet-size.jpg" | ||
52 | width="500px" | ||
53 | alt="Droplet size" /> | ||
54 | |||
55 | Finalize the Droplet creation: | ||
56 | |||
57 | <img src="../images/04-finalize.jpg" | ||
58 | width="500px" | ||
59 | alt="Droplet finalization" /> | ||
60 | |||
61 | Droplet information is displayed on the Control Panel: | ||
62 | |||
63 | <img src="../images/05-droplet.jpg" | ||
64 | width="500px" | ||
65 | alt="Droplet summary" /> | ||
66 | |||
67 | Once your VPS has been created, you will receive an e-mail with connection | ||
68 | instructions. | ||
69 | |||
70 | ## Obtaining a domain name | ||
71 | After creating your VPS, it will be reachable using its IP address; some hosting | ||
72 | providers also create a DNS record, e.g. `ns4853142.ip-01-47-127.eu`. | ||
73 | |||
74 | A domain name (DNS record) is required to obtain a certificate and setup HTTPS | ||
75 | (HTTP with TLS encryption). | ||
76 | |||
77 | Domain names can be obtained from registrars through hosting providers such as | ||
78 | [Gandi](https://www.gandi.net/en/domain). | ||
79 | |||
80 | Once you have your own domain, you need to create a new DNS record that points | ||
81 | to your VPS' IP address: | ||
82 | |||
83 | <img src="../images/06-domain.jpg" | ||
84 | width="650px" | ||
85 | alt="Domain configuration" /> | ||
86 | |||
87 | ## Host setup | ||
88 | Now's the time to connect to your freshly created VPS! | ||
89 | |||
90 | ```shell | ||
91 | $ ssh root@188.166.85.8 | ||
92 | |||
93 | Linux stretch-shaarli-02 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 | ||
94 | |||
95 | The programs included with the Debian GNU/Linux system are free software; | ||
96 | the exact distribution terms for each program are described in the | ||
97 | individual files in /usr/share/doc/*/copyright. | ||
98 | |||
99 | Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent | ||
100 | permitted by applicable law. | ||
101 | Last login: Sun Jul 1 11:20:18 2018 from <REDACTED> | ||
102 | |||
103 | root@stretch-shaarli-02:~$ | ||
104 | ``` | ||
105 | |||
106 | ### Updating the system | ||
107 | ```shell | ||
108 | root@stretch-shaarli-02:~$ apt update && apt upgrade -y | ||
109 | ``` | ||
110 | |||
111 | ### Setting up Docker | ||
112 | _The following instructions are from the | ||
113 | [Get Docker CE for Debian](https://docs.docker.com/install/linux/docker-ce/debian/) | ||
114 | guide._ | ||
115 | |||
116 | Install package dependencies: | ||
117 | |||
118 | ```shell | ||
119 | root@stretch-shaarli-02:~$ apt install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common | ||
120 | ``` | ||
121 | |||
122 | Add Docker's package repository GPG key: | ||
123 | |||
124 | ```shell | ||
125 | root@stretch-shaarli-02:~$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - | ||
126 | ``` | ||
127 | |||
128 | Add Docker's package repository: | ||
129 | |||
130 | ```shell | ||
131 | root@stretch-shaarli-02:~$ add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable" | ||
132 | ``` | ||
133 | |||
134 | Update package lists and install Docker: | ||
135 | |||
136 | ```shell | ||
137 | root@stretch-shaarli-02:~$ apt update && apt install -y docker-ce | ||
138 | ``` | ||
139 | |||
140 | Verify Docker is properly configured by running the `hello-world` image: | ||
141 | |||
142 | ```shell | ||
143 | root@stretch-shaarli-02:~$ docker run hello-world | ||
144 | ``` | ||
145 | |||
146 | ### Setting up Docker Compose | ||
147 | _The following instructions are from the | ||
148 | [Install Docker Compose](https://docs.docker.com/compose/install/) | ||
149 | guide._ | ||
150 | |||
151 | Download the current version from the release page: | ||
152 | |||
153 | ```shell | ||
154 | root@stretch-shaarli-02:~$ curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose | ||
155 | root@stretch-shaarli-02:~$ chmod +x /usr/local/bin/docker-compose | ||
156 | ``` | ||
157 | |||
158 | ## Running Shaarli | ||
159 | Shaarli comes with a configuration file for Docker Compose, that will setup: | ||
160 | |||
161 | - a local Docker network | ||
162 | - a Docker [volume](https://docs.docker.com/storage/volumes/) to store Shaarli data | ||
163 | - a Docker [volume](https://docs.docker.com/storage/volumes/) to store Træfik TLS configuration and certificates | ||
164 | - a [Shaarli](https://hub.docker.com/r/shaarli/shaarli/) instance | ||
165 | - a [Træfik](https://hub.docker.com/_/traefik/) instance | ||
166 | |||
167 | [Træfik](https://docs.traefik.io/) is a modern HTTP reverse proxy, with native | ||
168 | support for Docker and [Let's Encrypt](https://letsencrypt.org/). | ||
169 | |||
170 | ### Compose configuration | ||
171 | Create a new directory to store the configuration: | ||
172 | |||
173 | ```shell | ||
174 | root@stretch-shaarli-02:~$ mkdir shaarli && cd shaarli | ||
175 | root@stretch-shaarli-02:~/shaarli$ | ||
176 | ``` | ||
177 | |||
178 | Download the current version of Shaarli's `docker-compose.yml`: | ||
179 | |||
180 | ```shell | ||
181 | root@stretch-shaarli-02:~/shaarli$ curl -L https://raw.githubusercontent.com/shaarli/Shaarli/master/docker-compose.yml -o docker-compose.yml | ||
182 | ``` | ||
183 | |||
184 | Create the `.env` file and fill in your VPS and domain information (replace | ||
185 | `<MY_SHAARLI_DOMAIN>` and `<MY_CONTACT_EMAIL>` with your actual information): | ||
186 | |||
187 | ```shell | ||
188 | root@stretch-shaarli-02:~/shaarli$ vim .env | ||
189 | ``` | ||
190 | |||
191 | ```shell | ||
192 | SHAARLI_VIRTUAL_HOST=<MY_SHAARLI_DOMAIN> | ||
193 | SHAARLI_LETSENCRYPT_EMAIL=<MY_CONTACT_EMAIL> | ||
194 | ``` | ||
195 | |||
196 | ### Pull the Docker images | ||
197 | ```shell | ||
198 | root@stretch-shaarli-02:~/shaarli$ docker-compose pull | ||
199 | Pulling shaarli ... done | ||
200 | Pulling traefik ... done | ||
201 | ``` | ||
202 | |||
203 | ### Run! | ||
204 | ```shell | ||
205 | root@stretch-shaarli-02:~/shaarli$ docker-compose up -d | ||
206 | Creating network "shaarli_http-proxy" with the default driver | ||
207 | Creating volume "shaarli_traefik-acme" with default driver | ||
208 | Creating volume "shaarli_shaarli-data" with default driver | ||
209 | Creating shaarli_shaarli_1 ... done | ||
210 | Creating shaarli_traefik_1 ... done | ||
211 | ``` | ||
212 | |||
213 | ## Conclusion | ||
214 | Congratulations! Your Shaarli instance should be up and running, and available | ||
215 | at `https://<MY_SHAARLI_DOMAIN>`. | ||
216 | |||
217 | <img src="../images/07-installation.jpg" | ||
218 | width="500px" | ||
219 | alt="Shaarli installation page" /> | ||
220 | |||
221 | ## Resources | ||
222 | ### Related Shaarli documentation | ||
223 | - [Docker 101](../docker/docker-101.md) | ||
224 | - [Shaarli images](../docker/shaarli-images.md) | ||
225 | |||
226 | ### Hosting providers | ||
227 | - [DigitalOcean](https://www.digitalocean.com/) | ||
228 | - [Gandi](https://www.gandi.net/en) | ||
229 | - [OVH](https://www.ovh.co.uk/) | ||
230 | - [RackSpace](https://www.rackspace.com/) | ||
231 | - etc. | ||
232 | |||
233 | ### Domain Names and Registrars | ||
234 | - [Introduction to the Domain Name System (DNS)](https://opensource.com/article/17/4/introduction-domain-name-system-dns) | ||
235 | - [ICANN](https://www.icann.org/) | ||
236 | - [Domain name registrar](https://en.wikipedia.org/wiki/Domain_name_registrar) | ||
237 | - [OVH Domain Registration](https://www.ovh.co.uk/domains/) | ||
238 | - [Gandi Domain Registration](https://www.gandi.net/en/domain) | ||
239 | |||
240 | ### HTTPS and Security | ||
241 | - [Transport Layer Security](https://en.wikipedia.org/wiki/Transport_Layer_Security) | ||
242 | - [Let's Encrypt](https://letsencrypt.org/) | ||
243 | |||
244 | ### Docker | ||
245 | - [Docker Overview](https://docs.docker.com/engine/docker-overview/) | ||
246 | - [Docker Documentation](https://docs.docker.com/) | ||
247 | - [Get Docker CE for Debian](https://docs.docker.com/install/linux/docker-ce/debian/) | ||
248 | - [docker logs](https://docs.docker.com/engine/reference/commandline/logs/) | ||
249 | - [Volumes](https://docs.docker.com/storage/volumes/) | ||
250 | - [Install Docker Compose](https://docs.docker.com/compose/install/) | ||
251 | - [docker-compose logs](https://docs.docker.com/compose/reference/logs/) | ||
252 | |||
253 | ### Træfik | ||
254 | - [Getting Started](https://docs.traefik.io/) | ||
255 | - [Docker backend](https://docs.traefik.io/configuration/backends/docker/) | ||
256 | - [Let's Encrypt and Docker](https://docs.traefik.io/user-guide/docker-and-lets-encrypt/) | ||
257 | - [traefik](https://hub.docker.com/_/traefik/) Docker image | ||
diff --git a/doc/md/Various-hacks.md b/doc/md/guides/various-hacks.md index 0074ae9f..0074ae9f 100644 --- a/doc/md/Various-hacks.md +++ b/doc/md/guides/various-hacks.md | |||
diff --git a/doc/md/images/icon.png b/doc/md/images/icon.png new file mode 100644 index 00000000..530d7469 --- /dev/null +++ b/doc/md/images/icon.png | |||
Binary files differ | |||
diff --git a/doc/md/index.md b/doc/md/index.md index c18332b4..220eeec1 100644 --- a/doc/md/index.md +++ b/doc/md/index.md | |||
@@ -1,25 +1,19 @@ | |||
1 | # [Shaarli](https://github.com/shaarli/Shaarli/) documentation | 1 | # <img src="images/icon.png" width="20px" height="20px"> Shaarli |
2 | 2 | ||
3 | The personal, minimalist, super-fast, database free, bookmarking service. | 3 | The personal, minimalist, super-fast, database free, bookmarking service. |
4 | 4 | ||
5 | Do you want to share the links you discover? | 5 | Do you want to share the links you discover? |
6 | Shaarli is a minimalist link sharing service that you can install on your own server. | 6 | Shaarli is a minimalist bookmark manager and link sharing service that you can install on your own server. |
7 | It is designed to be personal (single-user), fast and handy. | 7 | It is designed to be personal (single-user), fast and handy. |
8 | 8 | ||
9 | <!-- TODO screenshots --> | 9 | <!-- TODO screenshots --> |
10 | 10 | ||
11 | Here you can find some info on how to use, configure, tweak and solve problems with your Shaarli. | 11 | Visit the pages in the sidebar to find information on how to setup, use, configure, tweak and troubleshoot Shaarli. |
12 | For general information, read the [README](https://github.com/shaarli/Shaarli/blob/master/README.md). | ||
13 | 12 | ||
14 | If you have any questions or ideas, please join the [chat](https://gitter.im/shaarli/Shaarli) (also reachable via [IRC](https://irc.gitter.im/)), post them in our [general discussion](https://github.com/shaarli/Shaarli/issues/308) or read the current [issues](https://github.com/shaarli/Shaarli/issues). | ||
15 | |||
16 | If you've found a bug, please create a [new issue](https://github.com/shaarli/Shaarli/issues/new). | ||
17 | |||
18 | If you would like a feature added to Shaarli, check the issues labeled [`feature`](https://github.com/shaarli/Shaarli/labels/feature), [`enhancement`](https://github.com/shaarli/Shaarli/labels/enhancement), and [`plugin`](https://github.com/shaarli/Shaarli/labels/plugin). | ||
19 | 13 | ||
20 | * [GitHub project page](https://github.com/shaarli/Shaarli) | 14 | * [GitHub project page](https://github.com/shaarli/Shaarli) |
21 | * [Online documentation](https://shaarli.readthedocs.io/) (this page) | 15 | * [Online documentation](https://shaarli.readthedocs.io/) |
22 | * [Latest Shaarli releases](https://github.com/shaarli/Shaarli/releases) | 16 | * [Latest releases](https://github.com/shaarli/Shaarli/releases) |
23 | * [Changelog](https://github.com/shaarli/Shaarli/blob/master/CHANGELOG.md) | 17 | * [Changelog](https://github.com/shaarli/Shaarli/blob/master/CHANGELOG.md) |
24 | 18 | ||
25 | 19 | ||
@@ -30,87 +24,70 @@ It runs the latest development version of Shaarli and is updated/reset daily. | |||
30 | 24 | ||
31 | Login: `demo`; Password: `demo` | 25 | Login: `demo`; Password: `demo` |
32 | 26 | ||
33 | <!-- TODO review everything below this point --> | ||
34 | |||
35 | |||
36 | ## Features | 27 | ## Features |
37 | 28 | ||
38 | Shaarli can be used: | 29 | Shaarli can be used: |
39 | 30 | ||
40 | - to share, comment and save interesting links and news. | 31 | - to share, comment and save interesting links and news |
41 | - to bookmark useful/frequent personal links (as private links) and share them between computers. | 32 | - to bookmark useful/frequent links and share them between computers |
42 | - as a minimal blog/microblog/writing platform (no character limit). | 33 | - as a minimal blog/microblog/writing platform |
43 | - as a read-it-later list (for example items tagged `readlater`). | 34 | - as a read-it-later list |
44 | - to draft and save articles/posts/ideas. | 35 | - to draft and save articles/posts/ideas |
45 | - to keep code snippets. | 36 | - to keep notes, documentation and code snippets |
46 | - to keep notes and documentation. | 37 | - as a shared clipboard/notepad/pastebin between machines |
47 | - as a shared clipboard/notepad/pastebin between machines. | 38 | - as a todo list |
48 | - as a todo list. | 39 | - to store media playlists |
49 | - to store playlists (e.g. with the `music` or `video` tags). | ||
50 | - to keep extracts/comments from webpages that may disappear. | 40 | - to keep extracts/comments from webpages that may disappear. |
51 | - to keep track of ongoing discussions (for example items tagged `discussion`). | 41 | - to keep track of ongoing discussions |
52 | - [to feed RSS aggregators](http://shaarli.chassegnouf.net/?9Efeiw) (planets) with specific tags. | 42 | - to feed other blogs, aggregators, social networks... using RSS feeds |
53 | - to feed other social networks, blogs... using RSS feeds and external services (dlvr.it, ifttt.com ...). | ||
54 | 43 | ||
55 | ### Interface | 44 | ### Edit, view and search your links |
56 | 45 | ||
57 | - minimalist design (simple is beautiful) | 46 | - Minimalist design |
58 | - FAST | 47 | - FAST |
59 | - ATOM and RSS feeds | 48 | - Customizable link titles and descriptions |
60 | - views: | 49 | - Tags to organize your links (features tag autocompletion, renaming, merging and deletion) |
61 | - paginated link list (with image and video thumbnails) | 50 | - Search by tag or using the full-text search |
62 | - tag cloud | 51 | - Public and private links (visible only to logged-in users) |
63 | - picture wall: image and video thumbnails (with lazy loading) | 52 | - Unique permalinks for easy reference |
64 | - daily: newspaper-like daily digest | 53 | - Paginated link list (with image and video thumbnails) |
65 | - daily RSS feed | 54 | - Tag cloud and list views |
66 | - permalinks for easy reference | 55 | - Picture wall: image and video thumbnails view (with lazy loading) |
67 | - links can be public or private | 56 | - ATOM and RSS feeds (can also be filtered using tags or text search) |
68 | - thumbnail generation for images and video services | 57 | - Daily: newspaper-like daily digest (and daily RSS feed) |
69 | - URL cleanup: automatic removal of `?utm_source=...`, `fb=...` | 58 | - URL cleanup: automatic removal of `?utm_source=...`, `fb=...` |
70 | - extensible through [plugins](https://shaarli.readthedocs.io/en/master/Plugins/#plugin-usage) | 59 | - Extensible through [plugins](https://shaarli.readthedocs.io/en/master/Plugins/#plugin-usage) |
71 | |||
72 | ### Tag, view and search your links | ||
73 | |||
74 | - add a custom title and description to archived links | ||
75 | - add tags to classify and search links | ||
76 | - features tag autocompletion, renaming, merging and deletion | ||
77 | - full-text and tag search | ||
78 | 60 | ||
79 | ### Easy setup | 61 | ### Easy setup |
80 | 62 | ||
81 | - dead-simple installation: drop the files, open the page | 63 | - Dead-simple installation: drop the files, open the page |
82 | - links are stored in a file | 64 | - Links are stored in a file (no database required, easy backup: simply copy the datastore file) |
83 | - compact storage | 65 | - Import and export links as Netscape bookmarks compatible with most Web browsers |
84 | - no database required | ||
85 | - easy backup: simply copy the datastore file | ||
86 | - import and export links as Netscape bookmarks | ||
87 | 66 | ||
88 | ### Accessibility | 67 | ### Accessibility |
89 | 68 | ||
90 | - bookmarlet to share links in one click | 69 | - Bookmarklet and other tools to share links in one click |
91 | - support for mobile browsers | 70 | - Support for mobile browsers |
92 | - degrades gracefully with Javascript disabled | 71 | - Degrades gracefully with Javascript disabled |
93 | - easy page customization through HTML/CSS/RainTPL | 72 | - Easy page customization through HTML/CSS/RainTPL |
94 | 73 | ||
95 | ### Security | 74 | ### Security |
96 | 75 | ||
97 | - discreet pop-up notification when a new release is available | 76 | - Discreet pop-up notification when a new release is available |
98 | - bruteforce protection on the login form | 77 | - Bruteforce protection on the login form |
99 | - protected against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) and session cookie hijacking | 78 | - Protected against [XSRF](http://en.wikipedia.org/wiki/Cross-site_request_forgery) and session cookie hijacking |
100 | 79 | ||
101 | <!-- TODO Limitations --> | 80 | <!-- TODO Limitations --> |
102 | 81 | ||
103 | ### REST API | 82 | ### REST API |
104 | 83 | ||
105 | Easily extensible by any client using the REST API exposed by Shaarli. | 84 | - Easily extensible by any client using the REST API exposed by Shaarli ([API documentation](http://shaarli.github.io/api-documentation/)). |
106 | |||
107 | See the [API documentation](http://shaarli.github.io/api-documentation/). | ||
108 | 85 | ||
109 | ## About | 86 | ## About |
110 | 87 | ||
111 | ### Shaarli community fork | 88 | ### Shaarli community fork |
112 | 89 | ||
113 | This friendly fork is maintained by the Shaarli community at https://github.com/shaarli/Shaarli | 90 | This friendly fork is maintained by the Shaarli community at <https://github.com/shaarli/Shaarli> |
114 | 91 | ||
115 | This is a community fork of the original [Shaarli](https://github.com/sebsauvage/Shaarli/) project by [Sébastien Sauvage](http://sebsauvage.net/). | 92 | This is a community fork of the original [Shaarli](https://github.com/sebsauvage/Shaarli/) project by [Sébastien Sauvage](http://sebsauvage.net/). |
116 | 93 | ||
@@ -123,16 +100,15 @@ in this repository, and will keep maintaining the project for the foreseeable | |||
123 | future, while keeping Shaarli simple and efficient. | 100 | future, while keeping Shaarli simple and efficient. |
124 | 101 | ||
125 | 102 | ||
126 | ### Contributing | 103 | ### Contributing and getting help |
127 | 104 | ||
128 | If you'd like to help, please: | 105 | Feedback is very appreciated! |
129 | 106 | ||
130 | - have a look at the open [issues](https://github.com/shaarli/Shaarli/issues) | 107 | - If you have any questions or ideas, please join the [chat](https://gitter.im/shaarli/Shaarli) (also reachable via [IRC](https://irc.gitter.im/)), post them in our [general discussion](https://github.com/shaarli/Shaarli/issues/308) or read the current [issues](https://github.com/shaarli/Shaarli/issues). |
131 | and [pull requests](https://github.com/shaarli/Shaarli/pulls) | 108 | - Have a look at the open [issues](https://github.com/shaarli/Shaarli/issues) and [pull requests](https://github.com/shaarli/Shaarli/pulls) |
132 | - feel free to report bugs (feedback is much appreciated) | 109 | - If you would like a feature added to Shaarli, check the issues labeled [`feature`](https://github.com/shaarli/Shaarli/labels/feature), [`enhancement`](https://github.com/shaarli/Shaarli/labels/enhancement), and [`plugin`](https://github.com/shaarli/Shaarli/labels/plugin). |
133 | - suggest new features and improvements to both code and [documentation](https://github.com/shaarli/Shaarli/tree/master/doc/md/) | 110 | - If you've found a bug, please create a [new issue](https://github.com/shaarli/Shaarli/issues/new). |
134 | - propose solutions to existing problems | 111 | - Feel free to propose solutions to existing problems, help us improve the documentation and translations, and submit pull requests :-) |
135 | - submit pull requests :-) | ||
136 | 112 | ||
137 | 113 | ||
138 | ### License | 114 | ### License |