diff options
Diffstat (limited to 'docs/en')
27 files changed, 0 insertions, 3127 deletions
diff --git a/docs/en/conf.py b/docs/en/conf.py deleted file mode 100644 index 5926f8c9..00000000 --- a/docs/en/conf.py +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | # -*- coding: utf-8 -*- | ||
2 | # | ||
3 | # wallabag documentation build configuration file, created by | ||
4 | # sphinx-quickstart on Fri Oct 16 06:47:23 2015. | ||
5 | |||
6 | import sys | ||
7 | import os | ||
8 | |||
9 | extensions = [] | ||
10 | templates_path = ['_templates'] | ||
11 | source_suffix = '.rst' | ||
12 | master_doc = 'index' | ||
13 | project = u'wallabag' | ||
14 | copyright = u'2013-2017, Nicolas Lœuillet - MIT Licence' | ||
15 | version = '2.3.0' | ||
16 | release = version | ||
17 | exclude_patterns = ['_build'] | ||
18 | pygments_style = 'sphinx' | ||
19 | html_theme = 'default' | ||
20 | html_static_path = ['_static'] | ||
21 | htmlhelp_basename = 'wallabagdoc' | ||
22 | latex_elements = { | ||
23 | |||
24 | } | ||
25 | |||
26 | latex_documents = [ | ||
27 | ('index', 'wallabag.tex', u'wallabag Documentation', | ||
28 | u'Nicolas Lœuillet', 'manual'), | ||
29 | ] | ||
30 | |||
31 | man_pages = [ | ||
32 | ('index', 'wallabag', u'wallabag Documentation', | ||
33 | [u'Nicolas Lœuillet'], 1) | ||
34 | ] | ||
35 | |||
36 | texinfo_documents = [ | ||
37 | ('index', 'wallabag', u'wallabag Documentation', | ||
38 | u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.', | ||
39 | 'Miscellaneous'), | ||
40 | ] | ||
41 | |||
42 | ##### Guzzle sphinx theme | ||
43 | |||
44 | import guzzle_sphinx_theme | ||
45 | html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator' | ||
46 | html_theme_path = guzzle_sphinx_theme.html_theme_path() | ||
47 | html_theme = 'guzzle_sphinx_theme' | ||
48 | |||
49 | # Custom sidebar templates, maps document names to template names. | ||
50 | html_sidebars = { | ||
51 | '**': ['logo-text.html', 'globaltoc.html', 'searchbox.html'] | ||
52 | } | ||
53 | |||
54 | # Register the theme as an extension to generate a sitemap.xml | ||
55 | extensions.append("guzzle_sphinx_theme") | ||
diff --git a/docs/en/developer/api.rst b/docs/en/developer/api.rst deleted file mode 100644 index 80c96025..00000000 --- a/docs/en/developer/api.rst +++ /dev/null | |||
@@ -1,271 +0,0 @@ | |||
1 | API documentation | ||
2 | ================= | ||
3 | |||
4 | Thanks to this documentation, we'll see how to interact with the wallabag API. | ||
5 | |||
6 | Requirements | ||
7 | ------------ | ||
8 | |||
9 | * wallabag freshly (or not) installed on http://localhost:8000 | ||
10 | * ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget. | ||
11 | * all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_ | ||
12 | |||
13 | Creating a new API client | ||
14 | ------------------------- | ||
15 | |||
16 | In your wallabag account, you can create a new API client at this URL http://localhost:8000/developer/client/create. | ||
17 | |||
18 | Just give the redirect URL of your application and create your client. If your application is a desktop one, put whatever URL suits you the most. | ||
19 | |||
20 | You get information like this: | ||
21 | |||
22 | :: | ||
23 | |||
24 | Client ID: | ||
25 | |||
26 | 1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc | ||
27 | |||
28 | Client secret: | ||
29 | |||
30 | 636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 | ||
31 | |||
32 | |||
33 | Obtaining a refresh token | ||
34 | ------------------------- | ||
35 | |||
36 | For each API call, you'll need a token. Let's create it with this command (replace ``client_id``, ``client_secret``, ``username`` and ``password`` with their values): | ||
37 | |||
38 | :: | ||
39 | |||
40 | http POST http://localhost:8000/oauth/v2/token \ | ||
41 | grant_type=password \ | ||
42 | client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \ | ||
43 | client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \ | ||
44 | username=wallabag \ | ||
45 | password=wallabag | ||
46 | |||
47 | You'll have this in return: | ||
48 | |||
49 | :: | ||
50 | |||
51 | HTTP/1.1 200 OK | ||
52 | Cache-Control: no-store, private | ||
53 | Connection: close | ||
54 | Content-Type: application/json | ||
55 | Date: Tue, 05 Apr 2016 08:44:33 GMT | ||
56 | Host: localhost:8000 | ||
57 | Pragma: no-cache | ||
58 | X-Debug-Token: 19c8e0 | ||
59 | X-Debug-Token-Link: /_profiler/19c8e0 | ||
60 | X-Powered-By: PHP/7.0.4 | ||
61 | |||
62 | { | ||
63 | "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA", | ||
64 | "expires_in": 3600, | ||
65 | "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ", | ||
66 | "scope": null, | ||
67 | "token_type": "bearer" | ||
68 | } | ||
69 | |||
70 | We'll work with the ``access_token`` value in our next calls. | ||
71 | |||
72 | cURL example: | ||
73 | |||
74 | :: | ||
75 | |||
76 | curl -s "https://localhost:8000/oauth/v2/token?grant_type=password&client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc&client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4&username=wallabag&password=wallabag" | ||
77 | |||
78 | Getting existing entries | ||
79 | ------------------------ | ||
80 | |||
81 | Documentation for this method: http://localhost:8000/api/doc#get--api-entries.{_format} | ||
82 | |||
83 | As we work on a fresh wallabag installation, we'll have no result with this command: | ||
84 | |||
85 | :: | ||
86 | |||
87 | http GET http://localhost:8000/api/entries.json \ | ||
88 | "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" | ||
89 | |||
90 | returns: | ||
91 | |||
92 | :: | ||
93 | |||
94 | HTTP/1.1 200 OK | ||
95 | 0: application/json | ||
96 | Cache-Control: no-cache | ||
97 | Connection: close | ||
98 | Content-Type: application/json | ||
99 | Date: Tue, 05 Apr 2016 08:51:32 GMT | ||
100 | Host: localhost:8000 | ||
101 | Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly | ||
102 | X-Debug-Token: 4fbbc4 | ||
103 | X-Debug-Token-Link: /_profiler/4fbbc4 | ||
104 | X-Powered-By: PHP/7.0.4 | ||
105 | |||
106 | { | ||
107 | "_embedded": { | ||
108 | "items": [] | ||
109 | }, | ||
110 | "_links": { | ||
111 | "first": { | ||
112 | "href": "http://localhost:8000/api/entries?page=1&perPage=30" | ||
113 | }, | ||
114 | "last": { | ||
115 | "href": "http://localhost:8000/api/entries?page=1&perPage=30" | ||
116 | }, | ||
117 | "self": { | ||
118 | "href": "http://localhost:8000/api/entries?page=1&perPage=30" | ||
119 | } | ||
120 | }, | ||
121 | "limit": 30, | ||
122 | "page": 1, | ||
123 | "pages": 1, | ||
124 | "total": 0 | ||
125 | } | ||
126 | |||
127 | The ``items`` array is empty. | ||
128 | |||
129 | cURL example: | ||
130 | |||
131 | :: | ||
132 | |||
133 | curl --get "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" | ||
134 | |||
135 | Adding your first entry | ||
136 | ----------------------- | ||
137 | |||
138 | Documentation for this method: http://localhost:8000/api/doc#post--api-entries.{_format} | ||
139 | |||
140 | :: | ||
141 | |||
142 | http POST http://localhost:8000/api/entries.json \ | ||
143 | "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \ | ||
144 | url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html" | ||
145 | |||
146 | returns | ||
147 | |||
148 | :: | ||
149 | |||
150 | HTTP/1.1 200 OK | ||
151 | 0: application/json | ||
152 | Cache-Control: no-cache | ||
153 | Connection: close | ||
154 | Content-Type: application/json | ||
155 | Date: Tue, 05 Apr 2016 09:07:54 GMT | ||
156 | Host: localhost:8000 | ||
157 | Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly | ||
158 | X-Debug-Token: e01c51 | ||
159 | X-Debug-Token-Link: /_profiler/e01c51 | ||
160 | X-Powered-By: PHP/7.0.4 | ||
161 | |||
162 | { | ||
163 | "_links": { | ||
164 | "self": { | ||
165 | "href": "/api/entries/1" | ||
166 | } | ||
167 | }, | ||
168 | "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n", | ||
169 | "created_at": "2016-04-05T09:07:54+0000", | ||
170 | "domain_name": "www.numerama.com", | ||
171 | "id": 1, | ||
172 | "is_archived": 0, | ||
173 | "is_starred": 0, | ||
174 | "language": "fr-FR", | ||
175 | "mimetype": "text/html", | ||
176 | "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg", | ||
177 | "reading_time": 2, | ||
178 | "tags": [], | ||
179 | "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama", | ||
180 | "updated_at": "2016-04-05T09:07:54+0000", | ||
181 | "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html", | ||
182 | "user_email": "", | ||
183 | "user_id": 1, | ||
184 | "user_name": "wallabag" | ||
185 | } | ||
186 | |||
187 | Now, if you execute the previous command (see **Get existing entries**), you'll have data. | ||
188 | |||
189 | cURL example: | ||
190 | |||
191 | :: | ||
192 | |||
193 | curl "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA&url=http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html" | ||
194 | |||
195 | Deleting an entry | ||
196 | ----------------- | ||
197 | |||
198 | Documentation for this method: http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format} | ||
199 | |||
200 | :: | ||
201 | |||
202 | http DELETE http://localhost:8000/api/entries/1.json \ | ||
203 | "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" | ||
204 | |||
205 | returns | ||
206 | |||
207 | :: | ||
208 | |||
209 | HTTP/1.1 200 OK | ||
210 | 0: application/json | ||
211 | Cache-Control: no-cache | ||
212 | Connection: close | ||
213 | Content-Type: application/json | ||
214 | Date: Tue, 05 Apr 2016 09:19:07 GMT | ||
215 | Host: localhost:8000 | ||
216 | Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly | ||
217 | X-Debug-Token: 887cef | ||
218 | X-Debug-Token-Link: /_profiler/887cef | ||
219 | X-Powered-By: PHP/7.0.4 | ||
220 | |||
221 | { | ||
222 | "_links": { | ||
223 | "self": { | ||
224 | "href": "/api/entries/" | ||
225 | } | ||
226 | }, | ||
227 | "annotations": [], | ||
228 | "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\" //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w, //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\" //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w, //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\" //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w, //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w, \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n", | ||
229 | "created_at": "2016-04-05T09:07:54+0000", | ||
230 | "domain_name": "www.numerama.com", | ||
231 | "is_archived": 0, | ||
232 | "is_starred": 0, | ||
233 | "language": "fr-FR", | ||
234 | "mimetype": "text/html", | ||
235 | "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg", | ||
236 | "reading_time": 2, | ||
237 | "tags": [], | ||
238 | "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama", | ||
239 | "updated_at": "2016-04-05T09:07:54+0000", | ||
240 | "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html", | ||
241 | "user_email": "", | ||
242 | "user_id": 1, | ||
243 | "user_name": "wallabag" | ||
244 | } | ||
245 | |||
246 | And if you want to list the existing entries (see **Get existing entries**), the array is empty. | ||
247 | |||
248 | cURL example: | ||
249 | |||
250 | :: | ||
251 | |||
252 | curl --request DELETE "https://localhost:8000/api/entries/1.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" | ||
253 | |||
254 | Other methods | ||
255 | ------------- | ||
256 | |||
257 | We won't write samples for each API method. | ||
258 | |||
259 | Have a look on the listing here: http://localhost:8000/api/doc to know each method. | ||
260 | |||
261 | Third party resources | ||
262 | --------------- | ||
263 | |||
264 | Some applications or libraries use our API. Here is a non-exhaustive list of them: | ||
265 | |||
266 | - `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ by Dmitriy Bogdanov. | ||
267 | - `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ by Julian Oster. | ||
268 | - `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ by FoxMaSk, for his project `Trigger Happy <https://blog.trigger-happy.eu/>`_. | ||
269 | - `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ designed for `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ that makes use of the wallabag v2 API. By Josh Panter. | ||
270 | - `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his projects `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_ and the command line tool `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_. | ||
271 | - Tool to automatically download Wallabag articles into your local computer or Kobo ebook reader `wallabako <https://gitlab.com/anarcat/wallabako>`_ by anarcat. | ||
diff --git a/docs/en/developer/asynchronous.rst b/docs/en/developer/asynchronous.rst deleted file mode 100644 index 2e409e4a..00000000 --- a/docs/en/developer/asynchronous.rst +++ /dev/null | |||
@@ -1,160 +0,0 @@ | |||
1 | Asynchronous tasks | ||
2 | ================== | ||
3 | |||
4 | In order to launch asynchronous tasks (useful for huge imports for example), we can use RabbitMQ or Redis. | ||
5 | |||
6 | Install RabbitMQ for asynchronous tasks | ||
7 | --------------------------------------- | ||
8 | |||
9 | Requirements | ||
10 | ^^^^^^^^^^^^ | ||
11 | |||
12 | You need to have RabbitMQ installed on your server. | ||
13 | |||
14 | Installation | ||
15 | ^^^^^^^^^^^^ | ||
16 | |||
17 | .. code:: bash | ||
18 | |||
19 | wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc | ||
20 | apt-key add rabbitmq-signing-key-public.asc | ||
21 | apt-get update | ||
22 | apt-get install rabbitmq-server | ||
23 | |||
24 | Configuration and launch | ||
25 | ^^^^^^^^^^^^^^^^^^^^^^^^ | ||
26 | |||
27 | .. code:: bash | ||
28 | |||
29 | rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest) | ||
30 | rabbitmq-server -detached | ||
31 | |||
32 | Stop RabbitMQ | ||
33 | ^^^^^^^^^^^^^ | ||
34 | |||
35 | .. code:: bash | ||
36 | |||
37 | rabbitmqctl stop | ||
38 | |||
39 | |||
40 | Configure RabbitMQ in wallabag | ||
41 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
42 | |||
43 | Edit your ``app/config/parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok: | ||
44 | |||
45 | .. code:: yaml | ||
46 | |||
47 | rabbitmq_host: localhost | ||
48 | rabbitmq_port: 5672 | ||
49 | rabbitmq_user: guest | ||
50 | rabbitmq_password: guest | ||
51 | rabbitmq_prefetch_count: 10 # read http://www.rabbitmq.com/consumer-prefetch.html | ||
52 | |||
53 | Enable RabbitMQ in wallabag | ||
54 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
55 | |||
56 | In internal settings, in the **Import** section, enable RabbitMQ (with the value 1). | ||
57 | |||
58 | Launch RabbitMQ consumer | ||
59 | ^^^^^^^^^^^^^^^^^^^^^^^^ | ||
60 | |||
61 | Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job: | ||
62 | |||
63 | .. code:: bash | ||
64 | |||
65 | # for Pocket import | ||
66 | bin/console rabbitmq:consumer -e=prod import_pocket -w | ||
67 | |||
68 | # for Readability import | ||
69 | bin/console rabbitmq:consumer -e=prod import_readability -w | ||
70 | |||
71 | # for Instapaper import | ||
72 | bin/console rabbitmq:consumer -e=prod import_instapaper -w | ||
73 | |||
74 | # for wallabag v1 import | ||
75 | bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w | ||
76 | |||
77 | # for wallabag v2 import | ||
78 | bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w | ||
79 | |||
80 | # for Firefox import | ||
81 | bin/console rabbitmq:consumer -e=prod import_firefox -w | ||
82 | |||
83 | # for Chrome import | ||
84 | bin/console rabbitmq:consumer -e=prod import_chrome -w | ||
85 | |||
86 | Install Redis for asynchronous tasks | ||
87 | ------------------------------------ | ||
88 | |||
89 | In order to launch asynchronous tasks (useful for huge imports for example), we can use Redis. | ||
90 | |||
91 | Requirements | ||
92 | ^^^^^^^^^^^^ | ||
93 | |||
94 | You need to have Redis installed on your server. | ||
95 | |||
96 | Installation | ||
97 | ^^^^^^^^^^^^ | ||
98 | |||
99 | .. code:: bash | ||
100 | |||
101 | apt-get install redis-server | ||
102 | |||
103 | Launch | ||
104 | ^^^^^^ | ||
105 | |||
106 | The server might be already running after installing, if not you can launch it using: | ||
107 | |||
108 | .. code:: bash | ||
109 | |||
110 | redis-server | ||
111 | |||
112 | |||
113 | Configure Redis in wallabag | ||
114 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
115 | |||
116 | Edit your ``app/config/parameters.yml`` file to edit Redis configuration. The default one should be ok: | ||
117 | |||
118 | .. code:: yaml | ||
119 | |||
120 | redis_host: localhost | ||
121 | redis_port: 6379 | ||
122 | |||
123 | Enable Redis in wallabag | ||
124 | ^^^^^^^^^^^^^^^^^^^^^^^^ | ||
125 | |||
126 | In internal settings, in the **Import** section, enable Redis (with the value 1). | ||
127 | |||
128 | Launch Redis consumer | ||
129 | ^^^^^^^^^^^^^^^^^^^^^ | ||
130 | |||
131 | Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job: | ||
132 | |||
133 | .. code:: bash | ||
134 | |||
135 | # for Pocket import | ||
136 | bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log | ||
137 | |||
138 | # for Readability import | ||
139 | bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log | ||
140 | |||
141 | # for Instapaper import | ||
142 | bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log | ||
143 | |||
144 | # for wallabag v1 import | ||
145 | bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log | ||
146 | |||
147 | # for wallabag v2 import | ||
148 | bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log | ||
149 | |||
150 | # for Firefox import | ||
151 | bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log | ||
152 | |||
153 | # for Chrome import | ||
154 | bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log | ||
155 | |||
156 | If you want to launch the import only for some messages and not all, you can specify this number (here 12) and the worker will stop right after the 12th message : | ||
157 | |||
158 | .. code:: bash | ||
159 | |||
160 | bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12 | ||
diff --git a/docs/en/developer/console_commands.rst b/docs/en/developer/console_commands.rst deleted file mode 100644 index 85a8a092..00000000 --- a/docs/en/developer/console_commands.rst +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | Console Commands | ||
2 | ================ | ||
3 | |||
4 | wallabag has a number of CLI commands to manage a number of tasks. You can list all the commands by executing `bin/console` in the wallabag folder. | ||
5 | |||
6 | Each command has a help accessible through `bin/console help %command%`. | ||
7 | |||
8 | .. note:: | ||
9 | |||
10 | If you're in a production environment, remember to add `-e prod` to each command. | ||
11 | |||
12 | Notable commands | ||
13 | ---------------- | ||
14 | |||
15 | * `assets:install`: May be helpful if assets are missing. | ||
16 | * `cache:clear`: should be run after each update (included in `make update`). | ||
17 | * `doctrine:migrations:status`: Output the status of your database migrations. | ||
18 | * `fos:user:activate`: Manually activate an user. | ||
19 | * `fos:user:change-password`: Change a password for an user. | ||
20 | * `fos:user:create`: Create an user. | ||
21 | * `fos:user:deactivate`: Deactivate an user (not deleted). | ||
22 | * `fos:user:demote`: Removes a role from an user, typically admin rights. | ||
23 | * `fos:user:promote`: Adds a role to an user, typically admin rights. | ||
24 | * `rabbitmq:*`: May be useful if you're using RabbitMQ. | ||
25 | * `wallabag:clean-duplicates`: Removes all entry duplicates for one user or all users | ||
26 | * `wallabag:export`: Exports all entries for an user. You can choose the output path of the file. | ||
27 | * `wallabag:import`: Import entries to different formats to an user account. | ||
28 | * `wallabag:import:redis-worker`: Useful if you use Redis. | ||
29 | * `wallabag:install`: (re)Install wallabag | ||
30 | * `wallabag:tag:all`: Tag all entries for an user using his/her tagging rules. | ||
diff --git a/docs/en/developer/docker.rst b/docs/en/developer/docker.rst deleted file mode 100644 index 5e4f2ce6..00000000 --- a/docs/en/developer/docker.rst +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | Run wallabag in docker-compose | ||
2 | ============================== | ||
3 | |||
4 | In order to run your own development instance of wallabag, you may | ||
5 | want to use the pre-configured docker compose files. | ||
6 | |||
7 | Requirements | ||
8 | ------------ | ||
9 | |||
10 | Make sure to have `Docker | ||
11 | <https://docs.docker.com/installation/ubuntulinux/>`__ and `Docker | ||
12 | Compose <https://docs.docker.com/compose/install/>`__ availables on | ||
13 | your system and up to date. | ||
14 | |||
15 | Switch DBMS | ||
16 | ----------- | ||
17 | |||
18 | By default, wallabag will start with a SQLite database. | ||
19 | Since wallabag provides support for Postgresql and MySQL, docker | ||
20 | containers are also available for these ones. | ||
21 | |||
22 | In ``docker-compose.yml``, for the chosen DBMS uncomment: | ||
23 | |||
24 | - the container definition (``postgres`` or ``mariadb`` root level | ||
25 | block) | ||
26 | - the container link in the ``php`` container | ||
27 | - the container env file in the ``php`` container | ||
28 | |||
29 | In order to keep running Symfony commands on your host (such as | ||
30 | ``wallabag:install``), you also should: | ||
31 | |||
32 | - source the proper env files on your command line, so variables | ||
33 | like ``SYMFONY__ENV__DATABASE_HOST`` will exist. | ||
34 | - create a ``127.0.0.1 rdbms`` on your system ``hosts`` file | ||
35 | |||
36 | Run wallabag | ||
37 | ------------ | ||
38 | |||
39 | #. Fork and clone the project | ||
40 | #. Edit ``app/config/parameters.yml`` to replace ``database_*`` | ||
41 | properties with commented ones (with values prefixed by ``env.``) | ||
42 | #. ``composer install`` the project dependencies | ||
43 | #. ``php bin/console wallabag:install`` to create the schema | ||
44 | #. ``docker-compose up`` to run the containers | ||
45 | #. Finally, browse to http://localhost:8080/ to find your freshly | ||
46 | installed wallabag. | ||
47 | |||
48 | At various step, you'll probably run into UNIX permission problems, | ||
49 | bad paths in generated cache, etc… | ||
50 | Operations like removing cache files or changing files owners might | ||
51 | be frequently required, so don't be afraid ! | ||
diff --git a/docs/en/developer/documentation.rst b/docs/en/developer/documentation.rst deleted file mode 100644 index ab206479..00000000 --- a/docs/en/developer/documentation.rst +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
1 | Contribute to this documentation | ||
2 | ================================ | ||
3 | |||
4 | Sources of our documentation are here https://github.com/wallabag/wallabag/tree/master/docs | ||
5 | |||
6 | We use `ReadTheDocs | ||
7 | <https://readthedocs.org>`__ to generate it. | ||
8 | |||
9 | Pages are written in `Restructured Text | ||
10 | <https://en.wikipedia.org/wiki/ReStructuredText>`__ format. You can use online tools like http://rst.aaroniles.net/ or http://rst.ninjs.org/ to preview your articles. | ||
11 | |||
12 | If you create a new page, don't forget to edit the `index.rst <https://raw.githubusercontent.com/wallabag/wallabag/master/docs/en/index.rst>`__ file to add a link in the sidebar. \ No newline at end of file | ||
diff --git a/docs/en/developer/front_end.rst b/docs/en/developer/front_end.rst deleted file mode 100644 index 40f18a42..00000000 --- a/docs/en/developer/front_end.rst +++ /dev/null | |||
@@ -1,33 +0,0 @@ | |||
1 | Tips for front-end developers | ||
2 | ============================= | ||
3 | |||
4 | Starting from version 2.3, wallabag uses webpack to bundle its assets. | ||
5 | |||
6 | Dev mode | ||
7 | -------- | ||
8 | |||
9 | If the server runs in dev mode, you need to run ``yarn run build:dev`` to generate the outputted javascript files for each theme. These are named ``%theme%.dev.js`` and are ignored by git. You need to relaunch ``yarn run build:dev`` for each change made to one of the assets files (js, css, pictures, fonts,...). | ||
10 | |||
11 | Live reload | ||
12 | ----------- | ||
13 | |||
14 | Webpack brings support for live reload, which means you don't need to regenerate the assets file for each change neither reload the page manually. Changes are applied automatically in the web page. Just set the ``use_webpack_dev_server`` setting to ``true`` in ``app/config/config.yml`` and run ``yarn run watch`` and you're good to go. | ||
15 | |||
16 | .. note:: | ||
17 | |||
18 | Don't forget to put back ``use_webpack_dev_server`` to ``false`` when not using the live reload feature. | ||
19 | |||
20 | Production builds | ||
21 | ----------------- | ||
22 | |||
23 | When you want to commit your changes, build them in production environment by using ``yarn run build:prod``. This will build all the assets needed for wallabag. To test that it properly works, you'll need to have a server in production mode, for instance with ``bin/console server:run -e=prod``. | ||
24 | |||
25 | .. note:: | ||
26 | |||
27 | Don't forget to generate production builds before committing ! | ||
28 | |||
29 | |||
30 | Code style | ||
31 | ---------- | ||
32 | |||
33 | Code style is checked by two tools : stylelint for (S)CSS and eslint for JS. ESlint config is based on the Airbnb base preset. | ||
diff --git a/docs/en/developer/paywall.rst b/docs/en/developer/paywall.rst deleted file mode 100644 index 153afa6f..00000000 --- a/docs/en/developer/paywall.rst +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | Articles behind a paywall | ||
2 | ========================= | ||
3 | |||
4 | wallabag can fetch articles from websites which use a paywall system. | ||
5 | |||
6 | Enable paywall authentication | ||
7 | ----------------------------- | ||
8 | |||
9 | In internal settings, as a wallabag administrator, in the **Article** section, enable authentication for websites with paywall (with the value 1). | ||
10 | |||
11 | Configure credentials in wallabag | ||
12 | --------------------------------- | ||
13 | |||
14 | Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. For example, under Ubuntu: | ||
15 | |||
16 | ``sudo -u www-data nano /var/www/html/wallabag/app/config/parameters.yml`` | ||
17 | |||
18 | Here is an example for some french websites (be careful: don't use the "tab" key, only spaces): | ||
19 | |||
20 | .. code:: yaml | ||
21 | |||
22 | sites_credentials: | ||
23 | mediapart.fr: {username: "myMediapartLogin", password: "mypassword"} | ||
24 | arretsurimages.net: {username: "myASILogin", password: "mypassword"} | ||
25 | |||
26 | .. note:: | ||
27 | |||
28 | These credentials will be shared between each user of your wallabag instance. | ||
29 | |||
30 | Parsing configuration files | ||
31 | --------------------------- | ||
32 | |||
33 | .. note:: | ||
34 | |||
35 | Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files, which are located under ``vendor/j0k3r/graby-site-config/``. For most of the websites, this file is already configured: the following instructions are only for the websites that are not configured yet. | ||
36 | |||
37 | Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``, | ||
38 | ``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``. | ||
39 | |||
40 | Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated | ||
41 | on a website where the login form is loaded after the page (by ajax for example). | ||
42 | |||
43 | ``login_uri`` is the action URL of the form (``action`` attribute in the form). | ||
44 | ``login_username_field`` is the ``name`` attribute of the login field. | ||
45 | ``login_password_field`` is the ``name`` attribute of the password field. | ||
46 | |||
47 | For example: | ||
48 | |||
49 | .. code:: | ||
50 | |||
51 | title://div[@id="titrage-contenu"]/h1[@class="title"] | ||
52 | body: //div[@class="contenu-html"]/div[@class="page-pane"] | ||
53 | |||
54 | requires_login: yes | ||
55 | |||
56 | login_uri: http://www.arretsurimages.net/forum/login.php | ||
57 | login_username_field: username | ||
58 | login_password_field: password | ||
59 | |||
60 | not_logged_in_xpath: //body[@class="not-logged-in"] | ||
61 | |||
62 | Last step: clear the cache | ||
63 | -------------------------- | ||
64 | |||
65 | It's necessary to clear the wallabag cache with the following command (here under Ubuntu): ``sudo -u www-data php /var/www/html/wallabag/bin/console cache:clear -e=prod`` | ||
diff --git a/docs/en/developer/testsuite.rst b/docs/en/developer/testsuite.rst deleted file mode 100644 index b2b16cdc..00000000 --- a/docs/en/developer/testsuite.rst +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | Testsuite | ||
2 | ========= | ||
3 | |||
4 | To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_. | ||
5 | |||
6 | If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests. | ||
7 | |||
8 | To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_. | ||
9 | |||
10 | Then, execute this command ``make test``. | ||
diff --git a/docs/en/developer/translate.rst b/docs/en/developer/translate.rst deleted file mode 100644 index 1e5d5009..00000000 --- a/docs/en/developer/translate.rst +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
1 | Translate wallabag | ||
2 | ================== | ||
3 | |||
4 | wallabag web application | ||
5 | ------------------------ | ||
6 | |||
7 | Translation files | ||
8 | ~~~~~~~~~~~~~~~~~ | ||
9 | |||
10 | .. note:: | ||
11 | |||
12 | As wallabag is mainly developed by a French team, please consider that french | ||
13 | translation is the most updated one and please copy it to create your own translation. | ||
14 | |||
15 | You can find translation files here: https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations. | ||
16 | |||
17 | You have to create ``messages.CODE.yml`` and ``validators.CODE.yml``, where CODE | ||
18 | is the ISO 639-1 code of your language (`see wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__). | ||
19 | |||
20 | Other files to translate: | ||
21 | |||
22 | - https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations. | ||
23 | - https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations. | ||
24 | |||
25 | You have to create ``THE_TRANSLATION_FILE.CODE.yml`` files. | ||
26 | |||
27 | Configuration file | ||
28 | ~~~~~~~~~~~~~~~~~~ | ||
29 | |||
30 | You have to edit `app/config/config.yml | ||
31 | <https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ to display | ||
32 | your language on Configuration page of wallabag (to allow users to switch to this new translation). | ||
33 | |||
34 | Under the ``wallabag_core.languages`` section, you have to add a new line with | ||
35 | your translation. For example: | ||
36 | |||
37 | :: | ||
38 | |||
39 | wallabag_core: | ||
40 | ... | ||
41 | languages: | ||
42 | en: 'English' | ||
43 | fr: 'Français' | ||
44 | |||
45 | |||
46 | For the first column (``en``, ``fr``, etc.), you have to add the ISO 639-1 code | ||
47 | of your language (see above). | ||
48 | |||
49 | For the second column, it's the name of your language. Just that. | ||
50 | |||
51 | wallabag documentation | ||
52 | ---------------------- | ||
53 | |||
54 | .. note:: | ||
55 | |||
56 | Contrary to the web application, the main language for documentation is english. | ||
57 | |||
58 | Documentation files are stored here: https://github.com/wallabag/wallabag/tree/master/docs | ||
59 | |||
60 | You need to respect the ``en`` folder structure when you create your own translation. | ||
diff --git a/docs/en/index.rst b/docs/en/index.rst deleted file mode 100644 index 89f61d6d..00000000 --- a/docs/en/index.rst +++ /dev/null | |||
@@ -1,53 +0,0 @@ | |||
1 | wallabag documentation | ||
2 | ====================== | ||
3 | |||
4 | .. image:: ../img/wallabag.png | ||
5 | :alt: wallabag logo | ||
6 | :align: center | ||
7 | |||
8 | **wallabag** is a read-it-later application: it saves a web page by | ||
9 | keeping content only. Elements like navigation or ads are deleted. | ||
10 | |||
11 | The main documentation for this application is organized into a couple sections: | ||
12 | |||
13 | * :ref:`user-docs` | ||
14 | * :ref:`dev-docs` | ||
15 | |||
16 | The documentation is available in other languages: | ||
17 | |||
18 | * `Documentation en français <http://doc.wallabag.org/fr/master/>`_ | ||
19 | * `Dokumentation in Deutsch <http://doc.wallabag.org/de/master/>`_ | ||
20 | |||
21 | .. _user-docs: | ||
22 | |||
23 | .. toctree:: | ||
24 | :maxdepth: 2 | ||
25 | :caption: User documentation | ||
26 | |||
27 | user/installation | ||
28 | user/upgrade | ||
29 | user/configuration | ||
30 | user/import | ||
31 | user/create_account | ||
32 | user/articles | ||
33 | user/errors_during_fetching | ||
34 | user/filters | ||
35 | user/tags | ||
36 | user/configuring_mobile | ||
37 | user/android | ||
38 | user/parameters | ||
39 | user/backup | ||
40 | user/faq | ||
41 | |||
42 | .. _dev-docs: | ||
43 | |||
44 | .. toctree:: | ||
45 | :maxdepth: 2 | ||
46 | :caption: Developer documentation | ||
47 | |||
48 | developer/api | ||
49 | developer/docker | ||
50 | developer/paywall | ||
51 | developer/documentation | ||
52 | developer/translate | ||
53 | developer/asynchronous | ||
diff --git a/docs/en/requirements.txt b/docs/en/requirements.txt deleted file mode 100644 index 06fc8973..00000000 --- a/docs/en/requirements.txt +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | Sphinx>=1.3.0,<1.4.0 | ||
2 | guzzle_sphinx_theme>=0.7.0,<0.8.0 | ||
diff --git a/docs/en/user/android.rst b/docs/en/user/android.rst deleted file mode 100644 index e286bb3b..00000000 --- a/docs/en/user/android.rst +++ /dev/null | |||
@@ -1,95 +0,0 @@ | |||
1 | Android application | ||
2 | =================== | ||
3 | |||
4 | Purpose of this document | ||
5 | ------------------------ | ||
6 | |||
7 | This document describes how you can setup your Android application to work with your wallabag instance. There is no difference in this procedure for wallabag v1 or v2. | ||
8 | |||
9 | Steps to configure your app | ||
10 | --------------------------- | ||
11 | |||
12 | When you first start the app, you see the welcome screen, where you are adviced to configure the app for your wallabag instance at first. | ||
13 | |||
14 | .. image:: ../../img/user/android_welcome_screen.en.png | ||
15 | :alt: Welcome screen | ||
16 | :align: center | ||
17 | |||
18 | Just confirm that message and you get redirected to the settings screen. | ||
19 | |||
20 | .. image:: ../../img/user/android_configuration_screen.en.png | ||
21 | :alt: Settings screen | ||
22 | :align: center | ||
23 | |||
24 | Fill in your wallabag data. You need to enter your wallabag address. **It is important that this URL does not end with a slash**. Also add your wallabag credentials to the user name and password field. | ||
25 | |||
26 | .. image:: ../../img/user/android_configuration_filled_in.en.png | ||
27 | :alt: Filled in settings | ||
28 | :align: center | ||
29 | |||
30 | After you have filled in your data, push the button Connection test and wait for the test to finish. | ||
31 | |||
32 | .. image:: ../../img/user/android_configuration_connection_test.en.png | ||
33 | :alt: Connection test with your wallabag data | ||
34 | :align: center | ||
35 | |||
36 | The connection test should finish with success. If not, you need to fix this first until you proceed. | ||
37 | |||
38 | .. image:: ../../img/user/android_configuration_connection_test_success.en.png | ||
39 | :alt: Connection test successful | ||
40 | :align: center | ||
41 | |||
42 | After the connection test was successful, you can push the button to get your feed credentials. The app now tries to login to your wallabag instance and get the user id and the corresponding token for the feeds. | ||
43 | |||
44 | .. image:: ../../img/user/android_configuration_get_feed_credentials.en.png | ||
45 | :alt: Getting the feed credentials | ||
46 | :align: center | ||
47 | |||
48 | When the process of getting your feed credentials finishes with success you see a toast message that the user id and the token were automatically filled in to the form. | ||
49 | |||
50 | .. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.en.png | ||
51 | :alt: Getting feed credentials successful | ||
52 | :align: center | ||
53 | |||
54 | Now you need to scroll to the bottom of the settings menu. Of course you can adjust the given settings to your needs. Finish the configuration of your app with pushing the save button. | ||
55 | |||
56 | .. image:: ../../img/user/android_configuration_scroll_bottom.en.png | ||
57 | :alt: Bottom of the settings screen | ||
58 | :align: center | ||
59 | |||
60 | After hitting the save button, you get the following screen. The app proposes to initiate a synchronization process to update your feeds of articles. It is recommended to acknowledge this action and press Yes. | ||
61 | |||
62 | .. image:: ../../img/user/android_configuration_saved_feed_update.en.png | ||
63 | :alt: Settings saved the first time | ||
64 | :align: center | ||
65 | |||
66 | Finally after the synchronization finished successfully, you are presented to the list of unread articles. | ||
67 | |||
68 | .. image:: ../../img/user/android_unread_feed_synced.en.png | ||
69 | :alt: Filled article list cause feeds successfully synchronized | ||
70 | :align: center | ||
71 | |||
72 | Known limitations | ||
73 | ----------------- | ||
74 | |||
75 | Two factor authentication (2FA) | ||
76 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
77 | |||
78 | Currently the Android application does not support two-factor authentication. You should disable that to get the application working. | ||
79 | |||
80 | Limited amount of articles with wallabag v2 | ||
81 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
82 | |||
83 | In your wallabag web instance you can configure how many items are part of the RSS feed. This option did not exist in wallabag v1, where all articles were part of the feed. So if you set the amount of articles being displayed greater than the number of items being content of your RSS feed, you will only see the number of items in your RSS feed. | ||
84 | |||
85 | SSL/TLS encryption | ||
86 | ~~~~~~~~~~~~~~~~~~ | ||
87 | |||
88 | If you can reach your wallabag web instance via HTTPS, you should use that. Especially if your HTTP URL redirects you to the HTTPS one. Currently, the app cannot handle that redirect properly. | ||
89 | |||
90 | References | ||
91 | ---------- | ||
92 | |||
93 | - `Source code of the Android application <https://github.com/wallabag/android-app>`_ | ||
94 | - `Android Application on F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_ | ||
95 | - `Android Application on Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_ | ||
diff --git a/docs/en/user/articles.rst b/docs/en/user/articles.rst deleted file mode 100644 index 862bba3e..00000000 --- a/docs/en/user/articles.rst +++ /dev/null | |||
@@ -1,117 +0,0 @@ | |||
1 | Articles | ||
2 | ======== | ||
3 | |||
4 | Save your first article | ||
5 | ----------------------- | ||
6 | |||
7 | The main purpose of wallabag is to save web articles. You have many ways to do it. If you think that the article is wrong displayed, `you can read this documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_. | ||
8 | |||
9 | By using a bookmarklet | ||
10 | ^^^^^^^^^^^^^^^^^^^^^^ | ||
11 | |||
12 | On the ``Howto`` page, you have a ``Bookmarklet`` tab. Drag and drop the ``bag it!`` | ||
13 | link to your bookmarks bar of your browser. | ||
14 | |||
15 | Now, each time you're reading an article on the web and you want to save it, | ||
16 | click on the ``bag it!`` link in your bookmarks bar. The article is saved. | ||
17 | |||
18 | By using the classic form | ||
19 | ^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
20 | |||
21 | In the top bar of your screen, you have 3 icons. With the first one, a plus sign, | ||
22 | you can easily save a new article. | ||
23 | |||
24 | .. image:: ../../img/user/topbar.png | ||
25 | :alt: Top bar | ||
26 | :align: center | ||
27 | |||
28 | Click on it to display a new field, paste the article URL inside and press your | ||
29 | ``Return`` key. The article is saved. | ||
30 | |||
31 | By using a browser add-on | ||
32 | ^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
33 | |||
34 | Firefox | ||
35 | """"""" | ||
36 | |||
37 | You can download the `Firefox addon here <https://addons.mozilla.org/firefox/addon/wallabagger/>`_. | ||
38 | |||
39 | Chrome | ||
40 | """""" | ||
41 | |||
42 | You can download the `Chrome addon here <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr>`_. | ||
43 | |||
44 | By using your smartphone application | ||
45 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
46 | |||
47 | Android | ||
48 | """"""" | ||
49 | |||
50 | You can download the `Android application here <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_ or on `F-Droid <https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.InThePoche>`_. | ||
51 | |||
52 | Windows Phone | ||
53 | """"""""""""" | ||
54 | |||
55 | You can downlaod the `Windows Phone application here <https://www.microsoft.com/store/apps/9nblggh5x3p6>`_. | ||
56 | |||
57 | Download your articles | ||
58 | ---------------------- | ||
59 | |||
60 | You can download each article in several formats: ePUB, MOBI, PDF, XML, JSON, CSV. | ||
61 | |||
62 | On the article view, click on this icon, in the sidebar: | ||
63 | |||
64 | .. image:: ../../img/user/download_article.png | ||
65 | :alt: download article | ||
66 | :align: center | ||
67 | |||
68 | You can also download a full category (unread, starred, archive) in these formats. | ||
69 | For example, on **Unread** view, click on this icon in the top bar: | ||
70 | |||
71 | .. image:: ../../img/user/download_articles.png | ||
72 | :alt: download articles | ||
73 | :align: center | ||
74 | |||
75 | Share your articles | ||
76 | ------------------- | ||
77 | |||
78 | When you're reading an article, you can share it. Just click on the share button: | ||
79 | |||
80 | .. image:: ../../img/user/share.png | ||
81 | :alt: share article | ||
82 | :align: center | ||
83 | |||
84 | Now, you can share the article: | ||
85 | |||
86 | - with a public URL (you'll have a light view of the article) | ||
87 | - with a tweet | ||
88 | - into your Shaarli | ||
89 | - into your Scuttle | ||
90 | - with a post in Diaspora* | ||
91 | - to Carrot | ||
92 | - with an email | ||
93 | |||
94 | Annotate your articles | ||
95 | ---------------------- | ||
96 | |||
97 | In each article you read, you can write annotations. It's easier to understand with some pictures. | ||
98 | |||
99 | Select the part of the article that you want to annotate and click on the pencil: | ||
100 | |||
101 | .. image:: ../../img/user/annotations_1.png | ||
102 | :alt: Select your text | ||
103 | :align: center | ||
104 | |||
105 | Then, write your annotation: | ||
106 | |||
107 | .. image:: ../../img/user/annotations_2.png | ||
108 | :alt: Write your annotation | ||
109 | :align: center | ||
110 | |||
111 | The text is now highlighted and you can read your annotation if you move the mouse cursor over it. | ||
112 | |||
113 | .. image:: ../../img/user/annotations_3.png | ||
114 | :alt: Read your annotation | ||
115 | :align: center | ||
116 | |||
117 | You can create as many annotations as you wish. | ||
diff --git a/docs/en/user/backup.rst b/docs/en/user/backup.rst deleted file mode 100644 index f8b480a3..00000000 --- a/docs/en/user/backup.rst +++ /dev/null | |||
@@ -1,26 +0,0 @@ | |||
1 | Backup wallabag | ||
2 | =============== | ||
3 | |||
4 | Because sometimes you may do a mistake with your wallabag and lose data or in case you need to move your wallabag to another server you want to backup your data. | ||
5 | This articles describes what you need to backup. | ||
6 | |||
7 | Basic settings | ||
8 | -------------- | ||
9 | wallabag stores some basic parameters (like SMTP server or database backend) in the file `app/config/parameters.yml`. | ||
10 | |||
11 | Database | ||
12 | -------- | ||
13 | As wallabag supports different kinds of database, the way to perform the backup depends on the database you use, so you need to refer to the vendor documentation. | ||
14 | |||
15 | Here's some examples: | ||
16 | |||
17 | - MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html | ||
18 | - PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html | ||
19 | |||
20 | SQLite | ||
21 | ~~~~~~ | ||
22 | To backup the SQLite database, you just need to copy the directory `data/db` from the wallabag application directory. | ||
23 | |||
24 | Images | ||
25 | ------ | ||
26 | The images retrieved by wallabag are stored under `web/assets/images` (the images storage will be implemented in wallabag 2.2). | ||
diff --git a/docs/en/user/configuration.rst b/docs/en/user/configuration.rst deleted file mode 100644 index 0f3ac38f..00000000 --- a/docs/en/user/configuration.rst +++ /dev/null | |||
@@ -1,132 +0,0 @@ | |||
1 | Configuration | ||
2 | ============= | ||
3 | |||
4 | Now you're logged in, it's time to configure your account as you want. | ||
5 | |||
6 | Click on ``Config`` menu. You have five tabs: ``Settings``, ``RSS``, | ||
7 | ``User information``, ``Password`` and ``Tagging rules``. | ||
8 | |||
9 | Settings | ||
10 | -------- | ||
11 | |||
12 | Theme | ||
13 | ~~~~~ | ||
14 | |||
15 | wallabag is customizable. You can choose your prefered theme here. The default theme is | ||
16 | ``Material``, it's the theme used in the documentation screenshots. | ||
17 | |||
18 | Items per page | ||
19 | ~~~~~~~~~~~~~~ | ||
20 | |||
21 | You can change the number of articles displayed on each page. | ||
22 | |||
23 | Reading speed | ||
24 | ~~~~~~~~~~~~~ | ||
25 | |||
26 | wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are | ||
27 | a fast or a slow reader. wallabag will recalculate the reading time for each article. | ||
28 | |||
29 | Where do you want to be redirected after mark an article as read? | ||
30 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
31 | |||
32 | Each time you'll do some actions (after marking an article as read/favorite, | ||
33 | after deleting an article, after removing a tag from an entry), you can be redirected: | ||
34 | |||
35 | - To the homepage | ||
36 | - To the current page | ||
37 | |||
38 | Language | ||
39 | ~~~~~~~~ | ||
40 | |||
41 | You can change the language of wallabag interface. | ||
42 | |||
43 | RSS | ||
44 | --- | ||
45 | |||
46 | wallabag provides RSS feeds for each article status: unread, starred and archive. | ||
47 | |||
48 | Firstly, you need to create a personal token: click on ``Create your token``. | ||
49 | It's possible to change your token by clicking on ``Reset your token``. | ||
50 | |||
51 | Now you have three links, one for each status: add them into your favourite RSS reader. | ||
52 | |||
53 | You can also define how many articles you want in each RSS feed (default value: 50). | ||
54 | |||
55 | There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page. | ||
56 | The pagination follow `the RFC <https://tools.ietf.org/html/rfc5005#page-4>`_ about that, which means you'll find the ``next``, ``previous`` & ``last`` page link inside the `<channel>` tag of each RSS feed. | ||
57 | |||
58 | User information | ||
59 | ---------------- | ||
60 | |||
61 | You can change your name, your email address and enable ``Two factor authentication``. | ||
62 | |||
63 | If the wallabag instance has more than one enabled user, you can delete your account here. **Take care, we delete all your data**. | ||
64 | |||
65 | Two factor authentication (2FA) | ||
66 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
67 | |||
68 | Two-factor authentication (also known as 2FA) is a technology patented in 1984 | ||
69 | that provides identification of users by means of the combination of two different components. | ||
70 | |||
71 | https://en.wikipedia.org/wiki/Two-factor_authentication | ||
72 | |||
73 | **Warning**: enabling 2FA from the configuration interface is only possible if it has been authorized before in `app/config/parameters.yml` by setting the *twofactor_auth* property to `true` (do not forget to run `php bin/console cache:clear -e=prod` after modification). | ||
74 | |||
75 | If you enable 2FA, each time you want to login to wallabag, you'll receive | ||
76 | a code by email. You have to put this code on the following form. | ||
77 | |||
78 | .. image:: ../../img/user/2FA_form.png | ||
79 | :alt: Two factor authentication | ||
80 | :align: center | ||
81 | |||
82 | If you don't want to receive a code each time you want to login, you can check | ||
83 | the ``I'm on a trusted computer`` checkbox: wallabag will remember you for 15 days. | ||
84 | |||
85 | Password | ||
86 | -------- | ||
87 | |||
88 | You can change your password here (8 characters minimum). | ||
89 | |||
90 | Tagging rules | ||
91 | ------------- | ||
92 | |||
93 | If you want to automatically assign a tag to new articles, this part | ||
94 | of the configuration is for you. | ||
95 | |||
96 | What does « tagging rules » mean? | ||
97 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
98 | |||
99 | They are rules used by wallabag to automatically tag new entries. | ||
100 | Each time a new entry is added, all the tagging rules will be used to add | ||
101 | the tags you configured, thus saving you the trouble to manually classify your entries. | ||
102 | |||
103 | How do I use them? | ||
104 | ~~~~~~~~~~~~~~~~~~ | ||
105 | |||
106 | Let assume you want to tag new entries as *« short reading »* when | ||
107 | the reading time is inferior to 3 minutes. | ||
108 | In that case, you should put « readingTime <= 3 » in the **Rule** field | ||
109 | and *« short reading »* in the **Tags** field. | ||
110 | Several tags can added simultaneously by separating them by a comma: *« short reading, must read »*. | ||
111 | Complex rules can be written by using predefined operators: | ||
112 | if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long reading, github »*. | ||
113 | |||
114 | Which variables and operators can I use to write rules? | ||
115 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
116 | |||
117 | The following variables and operators can be used to create tagging rules (be careful, for some values, you need to add quotes, for example ``language = "en"``): | ||
118 | |||
119 | =========== ============================================== ========== ========== | ||
120 | Variable Meaning Operator Meaning | ||
121 | ----------- ---------------------------------------------- ---------- ---------- | ||
122 | title Title of the entry <= Less than… | ||
123 | url URL of the entry < Strictly less than… | ||
124 | isArchived Whether the entry is archived or not => Greater than… | ||
125 | isStarred Whether the entry is starred or not > Strictly greater than… | ||
126 | content The entry's content = Equal to… | ||
127 | language The entry's language != Not equal to… | ||
128 | mimetype The entry's mime-type OR One rule or another | ||
129 | readingTime The estimated entry's reading time, in minutes AND One rule and another | ||
130 | domainName The domain name of the entry matches Tests that a subject is matches a search (case-insensitive). Example: title matches "football" | ||
131 | notmatches Tests that a subject is not matches a search (case-insensitive). Example: title notmatches "football" | ||
132 | =========== ============================================== ========== ========== | ||
diff --git a/docs/en/user/configuring_mobile.rst b/docs/en/user/configuring_mobile.rst deleted file mode 100644 index 7229aed6..00000000 --- a/docs/en/user/configuring_mobile.rst +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | Configuring mobile apps to work with wallabag | ||
2 | ============================================= | ||
3 | |||
4 | Steps to configure the app | ||
5 | -------------------------- | ||
6 | |||
7 | - First *create a new client* in the ``API clients management`` section. The name of your app doesn't matter as much as the ``Client ID`` and the ``Client secret``. Write these two values down. | ||
8 | - When you download a mobile app, it's going to ask for the server address of the hosted wallabag instance. For example, with wallabag.it that is: ``https://app.wallabag.it``. | ||
9 | - It's also going to ask for the aforementioned ``Client ID`` and ``secret``. Please insert those in the text fields, when asked. | ||
10 | - Lastly you need to provide your ``username`` and ``password``. These are the same credentials you use to login in to wallabag. | ||
11 | |||
12 | Please also have a look at `Android <android.html>`_ page. Especially the section on *known limitations*. | ||
13 | |||
diff --git a/docs/en/user/create_account.rst b/docs/en/user/create_account.rst deleted file mode 100644 index 8c43867d..00000000 --- a/docs/en/user/create_account.rst +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
1 | Create an account and authentication | ||
2 | ==================================== | ||
3 | |||
4 | Register | ||
5 | -------- | ||
6 | |||
7 | On the login page, click on ``Register`` button. | ||
8 | |||
9 | .. image:: ../../img/user/registration_form.png | ||
10 | :alt: Registration form | ||
11 | :align: center | ||
12 | |||
13 | You have to fill the form. Please sure to type a valid email address, | ||
14 | we'll send you an activation email. | ||
15 | |||
16 | .. image:: ../../img/user/sent_email.png | ||
17 | :alt: Email was sent to activate account | ||
18 | :align: center | ||
19 | |||
20 | Check your inbox, you now have a new mail with a link like this | ||
21 | ``http://wallabag/register/confirm/Ba19wokGovN-DdBQNfg4YgRkUQWRP4-k2g0Bk-hBTX4``. | ||
22 | Click on it to activate your account. | ||
23 | |||
24 | Your account is now activated. | ||
25 | |||
26 | .. image:: ../../img/user/activated_account.png | ||
27 | :alt: Welcome on board! | ||
28 | :align: center | ||
29 | |||
30 | Login | ||
31 | ----- | ||
32 | |||
33 | Your account is now enabled, congratulations! | ||
34 | |||
35 | To login to wallabag, fill the form on login page. | ||
36 | |||
37 | If you are on your personal computer and you want to stay connected, | ||
38 | you can check the ``Keep me logged in`` checkbox: wallabag will remember you for one year. | ||
39 | |||
40 | .. image:: ../../img/user/login_form.png | ||
41 | :alt: Login form | ||
42 | :align: center | ||
diff --git a/docs/en/user/errors_during_fetching.rst b/docs/en/user/errors_during_fetching.rst deleted file mode 100644 index c5e18d3b..00000000 --- a/docs/en/user/errors_during_fetching.rst +++ /dev/null | |||
@@ -1,37 +0,0 @@ | |||
1 | Errors during fetching articles | ||
2 | =============================== | ||
3 | |||
4 | Why does the fetch of an article fail? | ||
5 | -------------------------------------- | ||
6 | |||
7 | There may be several reasons: | ||
8 | |||
9 | - network problem | ||
10 | - wallabag can't fetch content due to the website structure | ||
11 | |||
12 | How can I help to fix that? | ||
13 | --------------------------- | ||
14 | |||
15 | You can try to fix this problem by yourself (so we can be focused on improving wallabag internally instead of writing siteconfig :) ). | ||
16 | |||
17 | You can try to see if it works here: `http://f43.me/feed/test <http://f43.me/feed/test>`_ (it uses almost the same system as wallabag to retrieve content). | ||
18 | |||
19 | If it works here and not on wallabag, it means there is something internally in wallabag that breaks the parser (hard to fix: please open an issue about it). | ||
20 | |||
21 | If it doesn't works, try to extract a site config using: `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (select which part of the content is actually the content). You can `read this documentation before <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_. | ||
22 | |||
23 | You can test it on **f43.me** website: click on **Want to try a custom siteconfig?** and put the generated file from siteconfig.fivefilters.org. | ||
24 | |||
25 | Repeat until you have something ok. | ||
26 | |||
27 | Then you can submit a pull request to `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_ which is the global repo for siteconfig files. | ||
28 | |||
29 | How can I try to re-fetch this article? | ||
30 | --------------------------------------- | ||
31 | |||
32 | If wallabag failed when fetching an article, you can click on the reload button | ||
33 | (the third on the below picture). | ||
34 | |||
35 | .. image:: ../../img/user/refetch.png | ||
36 | :alt: Refetch content | ||
37 | :align: center | ||
diff --git a/docs/en/user/faq.rst b/docs/en/user/faq.rst deleted file mode 100644 index 0f995ce5..00000000 --- a/docs/en/user/faq.rst +++ /dev/null | |||
@@ -1,55 +0,0 @@ | |||
1 | Frequently Asked Questions | ||
2 | ========================== | ||
3 | |||
4 | During the installation, I got the error ``Error Output: sh: 1: @post-cmd: not found`` | ||
5 | -------------------------------------------------------------------------------------- | ||
6 | |||
7 | It seems you have a problem with your ``composer`` installation. Try to uninstall and reinstall it. | ||
8 | |||
9 | `Read the documentation about composer to know how to install it | ||
10 | <https://getcomposer.org/doc/00-intro.md>`__. | ||
11 | |||
12 | I can't validate the registration form | ||
13 | -------------------------------------- | ||
14 | |||
15 | Ensure that all fields are properly filled: | ||
16 | |||
17 | * valid email address | ||
18 | * same passwords in two fields | ||
19 | |||
20 | I'm not receiving my activation email | ||
21 | ------------------------------------- | ||
22 | |||
23 | Are you sure your email address was correct? Did you check your spam folder? | ||
24 | |||
25 | If you still don't see the activation email, please ensure that you have | ||
26 | installed and properly configured a mail transfer agent. Be sure to include a | ||
27 | firewall rule for SMTP. E.g., if using firewalld: | ||
28 | |||
29 | :: | ||
30 | |||
31 | firewall-cmd --permanent --add-service=smtp | ||
32 | firewall-cmd --reload | ||
33 | |||
34 | Lastly, if you have SELinux enabled, set the following rule: | ||
35 | |||
36 | ``setsebool -P httpd_can_sendmail 1`` | ||
37 | |||
38 | When I click on the activation link, I've got this message: ``The user with confirmation token "DtrOPfbQeVkWf6N" does not exist``. | ||
39 | ---------------------------------------------------------------------------------------------------------------------------------- | ||
40 | |||
41 | You already enabled your account or the URL of the activation email is wrong. | ||
42 | |||
43 | I forgot my password | ||
44 | -------------------- | ||
45 | |||
46 | You can reset your password by clicking on ``Forgot your password?`` link, | ||
47 | on the login page. Then, fill the form with your email address or your username, | ||
48 | you'll receive an email to reset your password. | ||
49 | |||
50 | I've got the ``failed to load external entity`` error when I try to install wallabag | ||
51 | ------------------------------------------------------------------------------------ | ||
52 | |||
53 | As described `here <https://github.com/wallabag/wallabag/issues/2529>`_, please edit your ``web/app.php`` file and add this line: ``libxml_disable_entity_loader(false);`` on line 5. | ||
54 | |||
55 | This is a Doctrine / PHP bug, nothing we can do about it. | ||
diff --git a/docs/en/user/filters.rst b/docs/en/user/filters.rst deleted file mode 100644 index aae8a749..00000000 --- a/docs/en/user/filters.rst +++ /dev/null | |||
@@ -1,54 +0,0 @@ | |||
1 | Retrieve your articles thanks to filters | ||
2 | ======================================== | ||
3 | |||
4 | To retrieve articles easily, you can use filters. | ||
5 | Click on the third icon in the top bar. | ||
6 | |||
7 | .. image:: ../../img/user/topbar.png | ||
8 | :alt: Top bar | ||
9 | :align: center | ||
10 | |||
11 | All these filters can be combined. | ||
12 | |||
13 | .. image:: ../../img/user/filters.png | ||
14 | :alt: Combine all filters | ||
15 | :align: center | ||
16 | |||
17 | Status | ||
18 | ------ | ||
19 | |||
20 | Use these checkboxes to find archived or starred articles. | ||
21 | |||
22 | Preview picture | ||
23 | --------------- | ||
24 | |||
25 | Check this filter if you want to retrieve articles with a preview picture. | ||
26 | |||
27 | Language | ||
28 | -------- | ||
29 | |||
30 | wallabag (via graby) can detect article language. It's easy to you to retrieve articles | ||
31 | written in a specific language. | ||
32 | |||
33 | HTTP status | ||
34 | ----------- | ||
35 | |||
36 | You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc. | ||
37 | |||
38 | Reading time | ||
39 | ------------ | ||
40 | |||
41 | wallabag estimates how many time you need to read an article. With this filter, | ||
42 | you can for example find the articles with a reading time between 2 and 5 minutes. | ||
43 | |||
44 | Domain name | ||
45 | ----------- | ||
46 | |||
47 | Thanks to this filter, you can retrieve the articles from the same domain name. | ||
48 | For example, in this field, type ``bbc.co.uk`` to retrieve the articles of this website. | ||
49 | |||
50 | Creation date | ||
51 | ------------- | ||
52 | |||
53 | When you save an article, wallabag stored the current date. So handful to retrieve articles written | ||
54 | between 1st and 31th January for example. | ||
diff --git a/docs/en/user/import.rst b/docs/en/user/import.rst deleted file mode 100644 index f6aaa373..00000000 --- a/docs/en/user/import.rst +++ /dev/null | |||
@@ -1,159 +0,0 @@ | |||
1 | Migrate from ... | ||
2 | ================ | ||
3 | |||
4 | In wallabag 2.x, you can import data from: | ||
5 | |||
6 | - `Pocket <#id1>`_ | ||
7 | - `Readability <#id2>`_ | ||
8 | - `Instapaper <#id4>`_ | ||
9 | - `wallabag 1.x <#id6>`_ | ||
10 | - `wallabag 2.x <#id7>`_ | ||
11 | |||
12 | We also developed `a script to execute migrations via command-line interface <#import-via-command-line-interface-cli>`_. | ||
13 | |||
14 | Because imports can take ages, we developed an asynchronous tasks system. `You can read the documentation here <http://doc.wallabag.org/fr/master/developer/asynchronous.html>`_ (for experts). | ||
15 | |||
16 | |||
17 | ------ | ||
18 | |||
19 | Create a new application on Pocket | ||
20 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
21 | |||
22 | To import your data from Pocket, we use the Pocket API. You need to create | ||
23 | a new application on their developer website to continue. | ||
24 | |||
25 | * Create a new application `on the developer website <https://getpocket.com/developer/apps/new>`_ | ||
26 | * Fill in the required fields: application name, application description, | ||
27 | permissions (only **retrieve**), platform (**web**), accept the terms of service | ||
28 | and submit your new application | ||
29 | |||
30 | Pocket will give you a **Consumer Key** (for example, `49961-985e4b92fe21fe4c78d682c1`). | ||
31 | You need to configure the ``pocket_consumer_key`` in the ``Config`` menu. | ||
32 | |||
33 | Now, all is fine to migrate from Pocket. | ||
34 | |||
35 | Import your data into wallabag 2.x | ||
36 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
37 | |||
38 | Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section | ||
39 | and then on ``Connect to Pocket and import data``. | ||
40 | |||
41 | You need to authorize wallabag to interact with your Pocket account. | ||
42 | Your data will be imported. Data import can be a demanding process for your server. | ||
43 | |||
44 | Readability | ||
45 | ----------- | ||
46 | |||
47 | Export your Readability data | ||
48 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
49 | |||
50 | On the tools (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_) page, click on "Export your data" in the "Data Export" section. You will received an email to download a json (which does not end with .json in fact). | ||
51 | |||
52 | Import your data into wallabag 2.x | ||
53 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
54 | |||
55 | Click on ``Import`` link in the menu, on ``Import contents`` in Readability section | ||
56 | and then select your json file and upload it. | ||
57 | |||
58 | Your data will be imported. Data import can be a demanding process for your server. | ||
59 | |||
60 | From Pinboard | ||
61 | ------------- | ||
62 | |||
63 | Export your Pinboard data | ||
64 | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
65 | |||
66 | On the backup (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_) page, click on "JSON" in the "Bookmarks" section. A JSON file will be downloaded (like ``pinboard_export``). | ||
67 | |||
68 | Import your data into wallabag 2.x | ||
69 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
70 | |||
71 | Click on ``Import`` link in the menu, on ``Import contents`` in Pinboard section | ||
72 | and then select your json file and upload it. | ||
73 | |||
74 | Your data will be imported. Data import can be a demanding process for your server. | ||
75 | |||
76 | From Instapaper | ||
77 | --------------- | ||
78 | |||
79 | Export your Instapaper data | ||
80 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
81 | |||
82 | On the settings (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_) page, click on "Download .CSV file" in the "Export" section. A CSV file will be downloaded (like ``instapaper-export.csv``). | ||
83 | |||
84 | Import your data into wallabag 2.x | ||
85 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
86 | |||
87 | Click on ``Import`` link in the menu, on ``Import contents`` in Instapaper section | ||
88 | and then select your CSV file and upload it. | ||
89 | |||
90 | Your data will be imported. Data import can be a demanding process for your server. | ||
91 | |||
92 | wallabag 1.x | ||
93 | ------------ | ||
94 | |||
95 | If you were using wallabag v1.x, you need to export your data before migrating to wallabag v2.x, because the application and its database changed a lot. In your old wallabag installation, you can export your data, which can be done on the Config page of your old wallabag installation. | ||
96 | |||
97 | .. image:: ../../img/user/export_v1.png | ||
98 | :alt: Exporting from wallabag v1 | ||
99 | :align: center | ||
100 | |||
101 | .. note:: | ||
102 | If you have multiple accounts on the same instance of wallabag, each user must export from v1 and import into v2 its data. | ||
103 | |||
104 | .. note:: | ||
105 | If you encounter issues during the export or the import, don't hesitate to `ask for support <https://gitter.im/wallabag/wallabag>`__. | ||
106 | |||
107 | When you have retrieved the json file containing your entries, you can install wallabag v2 if needed by following `the standard procedure <http://doc.wallabag.org/en/master/user/installation.html>`__. | ||
108 | |||
109 | After creating an user account on your new wallabag v2 instance, you must head over to the `Import` section and select `Import from wallabag v1`. Select your json file and upload it. | ||
110 | |||
111 | .. image:: ../../img/user/import_wallabagv1.png | ||
112 | :alt: Import from wallabag v1 | ||
113 | :align: center | ||
114 | |||
115 | wallabag 2.x | ||
116 | ------------ | ||
117 | |||
118 | From the previous wallabag instance on which you were before, go to `All articles`, then export these articles as json. | ||
119 | |||
120 | .. image:: ../../img/user/export_v2.png | ||
121 | :alt: Export depuis wallabag v2 | ||
122 | :align: center | ||
123 | |||
124 | From your new wallabag instance, create your user account and click on the link in the menu to proceed to import. Choose import from wallabag v2 and select your json file to upload it. | ||
125 | |||
126 | .. note:: | ||
127 | If you encounter issues during the export or the import, don't hesitate to `ask for support <https://gitter.im/wallabag/wallabag>`__. | ||
128 | |||
129 | Import via command-line interface (CLI) | ||
130 | --------------------------------------- | ||
131 | |||
132 | If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export: | ||
133 | |||
134 | :: | ||
135 | |||
136 | bin/console wallabag:import username ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod | ||
137 | |||
138 | Please replace values: | ||
139 | |||
140 | * ``username`` is the user's username | ||
141 | * ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export | ||
142 | |||
143 | .. note:: | ||
144 | If you want to mark all these entries as read, you can add the ``--markAsRead`` option. | ||
145 | |||
146 | .. note:: | ||
147 | To import a wallabag v2 file, you need to add the option ``--importer=v2``. | ||
148 | |||
149 | .. note:: | ||
150 | If you want to pass the user id of the user instead of it's username, add the option ``--useUserId=true``. | ||
151 | |||
152 | You'll have this in return: | ||
153 | |||
154 | :: | ||
155 | |||
156 | Start : 05-04-2016 11:36:07 --- | ||
157 | 403 imported | ||
158 | 0 already saved | ||
159 | End : 05-04-2016 11:36:09 --- | ||
diff --git a/docs/en/user/installation.rst b/docs/en/user/installation.rst deleted file mode 100644 index f1146b49..00000000 --- a/docs/en/user/installation.rst +++ /dev/null | |||
@@ -1,365 +0,0 @@ | |||
1 | Install wallabag | ||
2 | ================ | ||
3 | |||
4 | Requirements | ||
5 | ------------ | ||
6 | |||
7 | wallabag is compatible with **PHP >= 5.6**, including PHP 7. | ||
8 | |||
9 | .. note:: | ||
10 | |||
11 | To install wallabag easily, we provide a ``Makefile``, so you need to have the ``make`` tool. | ||
12 | |||
13 | wallabag uses a large number of PHP libraries in order to function. These libraries must be installed with a tool called Composer. You need to install it if you have not already done so and be sure to use the 1.2 version (if you already have Composer, run a ``composer selfupdate``). | ||
14 | |||
15 | Install Composer: | ||
16 | |||
17 | :: | ||
18 | |||
19 | curl -s https://getcomposer.org/installer | php | ||
20 | |||
21 | You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__. | ||
22 | |||
23 | You'll also need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages. | ||
24 | |||
25 | - php-session | ||
26 | - php-ctype | ||
27 | - php-dom | ||
28 | - php-hash | ||
29 | - php-simplexml | ||
30 | - php-json | ||
31 | - php-gd | ||
32 | - php-mbstring | ||
33 | - php-xml | ||
34 | - php-tidy | ||
35 | - php-iconv | ||
36 | - php-curl | ||
37 | - php-gettext | ||
38 | - php-tokenizer | ||
39 | - php-bcmath | ||
40 | |||
41 | wallabag uses PDO to connect to the database, so you'll need one of the following: | ||
42 | |||
43 | - pdo_mysql | ||
44 | - pdo_sqlite | ||
45 | - pdo_pgsql | ||
46 | |||
47 | and its corresponding database server. | ||
48 | |||
49 | Installation | ||
50 | ------------ | ||
51 | |||
52 | On a dedicated web server (recommended way) | ||
53 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
54 | |||
55 | To install wallabag itself, you must run the following commands: | ||
56 | |||
57 | :: | ||
58 | |||
59 | git clone https://github.com/wallabag/wallabag.git | ||
60 | cd wallabag && make install | ||
61 | |||
62 | To start PHP's build-in server and test if everything did install correctly, you can do: | ||
63 | |||
64 | :: | ||
65 | |||
66 | make run | ||
67 | |||
68 | And access wallabag at http://yourserverip:8000 | ||
69 | |||
70 | .. tip:: | ||
71 | |||
72 | To define parameters with environment variables, you have to set these variables with ``SYMFONY__`` prefix. For example, ``SYMFONY__DATABASE_DRIVER``. You can have a look at `Symfony documentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__. | ||
73 | |||
74 | On a shared hosting | ||
75 | ~~~~~~~~~~~~~~~~~~~ | ||
76 | |||
77 | We provide a package with all dependencies inside. | ||
78 | The default configuration uses SQLite for the database. If you want to change these settings, please edit ``app/config/parameters.yml``. | ||
79 | |||
80 | We already created a user: login and password are ``wallabag``. | ||
81 | |||
82 | .. caution:: With this package, wallabag doesn't check for mandatory extensions used in the application (theses checks are made during ``composer install`` when you have a dedicated web server, see above). | ||
83 | |||
84 | Execute this command to download and extract the latest package: | ||
85 | |||
86 | .. code-block:: bash | ||
87 | |||
88 | wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package | ||
89 | |||
90 | You will find the `md5 hash of the latest package on our website <https://static.wallabag.org/releases/>`_. | ||
91 | |||
92 | Now, read the following documentation to create your virtual host, then access your wallabag. | ||
93 | If you changed the database configuration to use MySQL or PostgreSQL, you need to create a user via this command ``php bin/console wallabag:install --env=prod``. | ||
94 | |||
95 | Installation with Docker | ||
96 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
97 | |||
98 | We provide you a Docker image to install wallabag easily. Have a look at our repository on `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ for more information. | ||
99 | |||
100 | Command to launch container | ||
101 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
102 | |||
103 | .. code-block:: bash | ||
104 | |||
105 | docker pull wallabag/wallabag | ||
106 | |||
107 | Installation on Cloudron | ||
108 | ~~~~~~~~~~~~~~~~~~~~~~~~ | ||
109 | |||
110 | Cloudron provides an easy way to install webapps on your server with a focus on sysadmin automation and keeping apps updated. | ||
111 | wallabag is packaged as a Cloudron app and available to install directly from the store. | ||
112 | |||
113 | `Install wallabag on your Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__ | ||
114 | |||
115 | Virtual hosts | ||
116 | ------------- | ||
117 | |||
118 | Configuration on Apache | ||
119 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
120 | |||
121 | Do not forget to active the *rewrite* mod of Apache | ||
122 | |||
123 | .. code-block:: bash | ||
124 | |||
125 | a2enmod rewrite && systemctl reload apache2 | ||
126 | |||
127 | Assuming you install wallabag in the ``/var/www/wallabag`` folder and that you want to use PHP as an Apache module, here's a vhost for wallabag: | ||
128 | |||
129 | :: | ||
130 | |||
131 | <VirtualHost *:80> | ||
132 | ServerName domain.tld | ||
133 | ServerAlias www.domain.tld | ||
134 | |||
135 | DocumentRoot /var/www/wallabag/web | ||
136 | <Directory /var/www/wallabag/web> | ||
137 | AllowOverride None | ||
138 | Order Allow,Deny | ||
139 | Allow from All | ||
140 | |||
141 | <IfModule mod_rewrite.c> | ||
142 | Options -MultiViews | ||
143 | RewriteEngine On | ||
144 | RewriteCond %{REQUEST_FILENAME} !-f | ||
145 | RewriteRule ^(.*)$ app.php [QSA,L] | ||
146 | </IfModule> | ||
147 | </Directory> | ||
148 | |||
149 | # uncomment the following lines if you install assets as symlinks | ||
150 | # or run into problems when compiling LESS/Sass/CoffeScript assets | ||
151 | # <Directory /var/www/wallabag> | ||
152 | # Options FollowSymlinks | ||
153 | # </Directory> | ||
154 | |||
155 | # optionally disable the RewriteEngine for the asset directories | ||
156 | # which will allow apache to simply reply with a 404 when files are | ||
157 | # not found instead of passing the request into the full symfony stack | ||
158 | <Directory /var/www/wallabag/web/bundles> | ||
159 | <IfModule mod_rewrite.c> | ||
160 | RewriteEngine Off | ||
161 | </IfModule> | ||
162 | </Directory> | ||
163 | ErrorLog /var/log/apache2/wallabag_error.log | ||
164 | CustomLog /var/log/apache2/wallabag_access.log combined | ||
165 | </VirtualHost> | ||
166 | |||
167 | |||
168 | .. tip:: Note for Apache 2.4, in the section `<Directory /var/www/wallabag/web>` you have to replace the directives : | ||
169 | |||
170 | :: | ||
171 | |||
172 | AllowOverride None | ||
173 | Order Allow,Deny | ||
174 | Allow from All | ||
175 | |||
176 | |||
177 | by | ||
178 | |||
179 | :: | ||
180 | |||
181 | Require All granted | ||
182 | |||
183 | |||
184 | After reloading or restarting Apache, you should now be able to access wallabag at http://domain.tld. | ||
185 | |||
186 | Configuration on Nginx | ||
187 | ~~~~~~~~~~~~~~~~~~~~~~ | ||
188 | |||
189 | Assuming you installed wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag : | ||
190 | |||
191 | :: | ||
192 | |||
193 | server { | ||
194 | server_name domain.tld www.domain.tld; | ||
195 | root /var/www/wallabag/web; | ||
196 | |||
197 | location / { | ||
198 | # try to serve file directly, fallback to app.php | ||
199 | try_files $uri /app.php$is_args$args; | ||
200 | } | ||
201 | location ~ ^/app\.php(/|$) { | ||
202 | fastcgi_pass unix:/var/run/php5-fpm.sock; | ||
203 | fastcgi_split_path_info ^(.+\.php)(/.*)$; | ||
204 | include fastcgi_params; | ||
205 | # When you are using symlinks to link the document root to the | ||
206 | # current version of your application, you should pass the real | ||
207 | # application path instead of the path to the symlink to PHP | ||
208 | # FPM. | ||
209 | # Otherwise, PHP's OPcache may not properly detect changes to | ||
210 | # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126 | ||
211 | # for more information). | ||
212 | fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; | ||
213 | fastcgi_param DOCUMENT_ROOT $realpath_root; | ||
214 | # Prevents URIs that include the front controller. This will 404: | ||
215 | # http://domain.tld/app.php/some-path | ||
216 | # Remove the internal directive to allow URIs like this | ||
217 | internal; | ||
218 | } | ||
219 | |||
220 | # return 404 for all other php files not matching the front controller | ||
221 | # this prevents access to other php files you don't want to be accessible. | ||
222 | location ~ \.php$ { | ||
223 | return 404; | ||
224 | } | ||
225 | |||
226 | error_log /var/log/nginx/wallabag_error.log; | ||
227 | access_log /var/log/nginx/wallabag_access.log; | ||
228 | } | ||
229 | |||
230 | After reloading or restarting nginx, you should now be able to access wallabag at http://domain.tld. | ||
231 | |||
232 | .. tip:: | ||
233 | |||
234 | When you want to import large files into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``. | ||
235 | |||
236 | Configuration on lighttpd | ||
237 | ~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
238 | |||
239 | Assuming you install wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag (edit your ``lighttpd.conf`` file and paste this configuration into it): | ||
240 | |||
241 | :: | ||
242 | |||
243 | server.modules = ( | ||
244 | "mod_fastcgi", | ||
245 | "mod_access", | ||
246 | "mod_alias", | ||
247 | "mod_compress", | ||
248 | "mod_redirect", | ||
249 | "mod_rewrite", | ||
250 | ) | ||
251 | server.document-root = "/var/www/wallabag/web" | ||
252 | server.upload-dirs = ( "/var/cache/lighttpd/uploads" ) | ||
253 | server.errorlog = "/var/log/lighttpd/error.log" | ||
254 | server.pid-file = "/var/run/lighttpd.pid" | ||
255 | server.username = "www-data" | ||
256 | server.groupname = "www-data" | ||
257 | server.port = 80 | ||
258 | server.follow-symlink = "enable" | ||
259 | index-file.names = ( "index.php", "index.html", "index.lighttpd.html") | ||
260 | url.access-deny = ( "~", ".inc" ) | ||
261 | static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" ) | ||
262 | compress.cache-dir = "/var/cache/lighttpd/compress/" | ||
263 | compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" ) | ||
264 | include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port | ||
265 | include_shell "/usr/share/lighttpd/create-mime.assign.pl" | ||
266 | include_shell "/usr/share/lighttpd/include-conf-enabled.pl" | ||
267 | dir-listing.activate = "disable" | ||
268 | |||
269 | url.rewrite-if-not-file = ( | ||
270 | "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2", | ||
271 | "^/([^?]*)" => "/app.php?=$1", | ||
272 | ) | ||
273 | |||
274 | Rights access to the folders of the project | ||
275 | ------------------------------------------- | ||
276 | |||
277 | Test environment | ||
278 | ~~~~~~~~~~~~~~~~ | ||
279 | |||
280 | When we just want to test wallabag, we just run the command ``make run`` to start our wallabag instance and everything will go smoothly because the user who started the project can access to the current folder naturally, without any problem. | ||
281 | |||
282 | Production environment | ||
283 | ~~~~~~~~~~~~~~~~~~~~~~ | ||
284 | |||
285 | As soon as we use Apache or Nginx to access to our wallabag instance, and not from the command ``make run`` to start it, we should take care to grant the good rights on the good folders to keep safe all the folders of the project. | ||
286 | |||
287 | To do so, the folder name, known as ``DocumentRoot`` (for apache) or ``root`` (for Nginx), has to be absolutely accessible by the Apache/Nginx user. Its name is generally ``www-data``, ``apache`` or ``nobody`` (depending on linux system used). | ||
288 | |||
289 | So the folder ``/var/www/wallabag/web`` has to be accessible by this last one. But this may not be enough if we just care about this folder, because we could meet a blank page or get an error 500 when trying to access to the homepage of the project. | ||
290 | |||
291 | This is due to the fact that we will need to grant the same rights access on the folder ``/var/www/wallabag/var`` like those we gave on the folder ``/var/www/wallabag/web``. Thus, we fix this problem with the following command: | ||
292 | |||
293 | .. code-block:: bash | ||
294 | |||
295 | chown -R www-data:www-data /var/www/wallabag/var | ||
296 | |||
297 | It has to be the same for the following folders | ||
298 | |||
299 | * /var/www/wallabag/bin/ | ||
300 | * /var/www/wallabag/app/config/ | ||
301 | * /var/www/wallabag/vendor/ | ||
302 | * /var/www/wallabag/data/ | ||
303 | |||
304 | by entering | ||
305 | |||
306 | .. code-block:: bash | ||
307 | |||
308 | chown -R www-data:www-data /var/www/wallabag/bin | ||
309 | chown -R www-data:www-data /var/www/wallabag/app/config | ||
310 | chown -R www-data:www-data /var/www/wallabag/vendor | ||
311 | chown -R www-data:www-data /var/www/wallabag/data/ | ||
312 | |||
313 | otherwise, sooner or later you will see these error messages: | ||
314 | |||
315 | .. code-block:: bash | ||
316 | |||
317 | Unable to write to the "bin" directory. | ||
318 | file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied | ||
319 | file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied | ||
320 | |||
321 | Additional rules for SELinux | ||
322 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
323 | |||
324 | If SELinux is enabled on your system, you will need to configure additional contexts in order for wallabag to function properly. To check if SELinux is enabled, simply enter the following: | ||
325 | |||
326 | ``getenforce`` | ||
327 | |||
328 | This will return ``Enforcing`` if SELinux is enabled. Creating a new context involves the following syntax: | ||
329 | |||
330 | ``semanage fcontext -a -t <context type> <full path>`` | ||
331 | |||
332 | For example: | ||
333 | |||
334 | ``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"`` | ||
335 | |||
336 | This will recursively apply the httpd_sys_content_t context to the wallabag directory and all underlying files and folders. The following rules are needed: | ||
337 | |||
338 | +-----------------------------------+----------------------------+ | ||
339 | | Full path | Context | | ||
340 | +===================================+============================+ | ||
341 | | /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` | | ||
342 | +-----------------------------------+----------------------------+ | ||
343 | | /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` | | ||
344 | +-----------------------------------+----------------------------+ | ||
345 | | /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` | | ||
346 | +-----------------------------------+----------------------------+ | ||
347 | | /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` | | ||
348 | +-----------------------------------+----------------------------+ | ||
349 | |||
350 | After creating these contexts, enter the following in order to apply your rules: | ||
351 | |||
352 | ``restorecon -R -v /var/www/wallabag`` | ||
353 | |||
354 | You can check contexts in a directory by typing ``ls -lZ`` and you can see all of your current rules with ``semanage fcontext -l -C``. | ||
355 | |||
356 | If you're installing the preconfigured latest-v2-package, then an additional rule is needed during the initial setup: | ||
357 | |||
358 | ``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"`` | ||
359 | |||
360 | After you successfully access your wallabag and complete the initial setup, this context can be removed: | ||
361 | |||
362 | :: | ||
363 | |||
364 | semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var" | ||
365 | retorecon -R -v /var/www/wallabag/var | ||
diff --git a/docs/en/user/parameters.rst b/docs/en/user/parameters.rst deleted file mode 100644 index d8a209e7..00000000 --- a/docs/en/user/parameters.rst +++ /dev/null | |||
@@ -1,96 +0,0 @@ | |||
1 | What is the meaning of the parameters? | ||
2 | ====================================== | ||
3 | |||
4 | Default `parameters.yml` file | ||
5 | ----------------------------- | ||
6 | |||
7 | Here is the last version of the default `app/config/parameters.yml` file. Be sure that yours respects this one. | ||
8 | If you don't know which value you need to set, please leave the default one. | ||
9 | |||
10 | .. code-block:: yml | ||
11 | |||
12 | parameters: | ||
13 | database_driver: pdo_sqlite | ||
14 | database_host: 127.0.0.1 | ||
15 | database_port: null | ||
16 | database_name: symfony | ||
17 | database_user: root | ||
18 | database_password: null | ||
19 | database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite' | ||
20 | database_table_prefix: wallabag_ | ||
21 | database_socket: null | ||
22 | mailer_transport: smtp | ||
23 | mailer_host: 127.0.0.1 | ||
24 | mailer_user: null | ||
25 | mailer_password: null | ||
26 | locale: en | ||
27 | secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv | ||
28 | twofactor_auth: true | ||
29 | twofactor_sender: no-reply@wallabag.org | ||
30 | fosuser_registration: true | ||
31 | fosuser_confirmation: true | ||
32 | from_email: no-reply@wallabag.org | ||
33 | rss_limit: 50 | ||
34 | rabbitmq_host: localhost | ||
35 | rabbitmq_port: 5672 | ||
36 | rabbitmq_user: guest | ||
37 | rabbitmq_password: guest | ||
38 | redis_scheme: tcp | ||
39 | redis_host: localhost | ||
40 | redis_port: 6379 | ||
41 | redis_path: null | ||
42 | redis_password: null | ||
43 | |||
44 | Meaning of each parameter | ||
45 | ------------------------- | ||
46 | |||
47 | .. csv-table:: Database parameters | ||
48 | :header: "name", "default", "description" | ||
49 | |||
50 | "database_driver", "pdo_sqlite", "Should be pdo_sqlite or pdo_mysql or pdo_pgsql" | ||
51 | "database_host", "127.0.0.1", "host of your database (usually localhost or 127.0.0.1)" | ||
52 | "database_port", "~", "port of your database (you can leave ``~`` to use the default one)" | ||
53 | "database_name", "symfony", "name of your database" | ||
54 | "database_user", "root", "user that can write to this database" | ||
55 | "database_password", "~", "password of that user" | ||
56 | "database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it empty for other database" | ||
57 | "database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity" | ||
58 | "database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored)" | ||
59 | "database_charset", "utf8mb4", "For PostgreSQL & SQLite you should use utf8, for MySQL use utf8mb4 which handle emoji" | ||
60 | |||
61 | .. csv-table:: Configuration to send emails from wallabag | ||
62 | :header: "name", "default", "description" | ||
63 | |||
64 | "mailer_transport", "smtp", "The exact transport method to use to deliver emails. Valid values are: smtp, gmail, mail, sendmail, null (which will disable the mailer)" | ||
65 | "mailer_host", "127.0.0.1", "The host to connect to when using smtp as the transport." | ||
66 | "mailer_user", "~", "The username when using smtp as the transport." | ||
67 | "mailer_password", "~", "The password when using smtp as the transport." | ||
68 | |||
69 | .. csv-table:: Other wallabag's option | ||
70 | :header: "name", "default", "description" | ||
71 | |||
72 | "locale", "en", "Default language of your wallabag instance (like en, fr, es, etc.)" | ||
73 | "secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "This is a string that should be unique to your application and it's commonly used to add more entropy to security related operations." | ||
74 | "twofactor_auth", "true", "true to enable Two factor authentication" | ||
75 | "twofactor_sender", "no-reply@wallabag.org", "email of the email sender to receive the two factor code" | ||
76 | "fosuser_registration", "true", "true to enable public registration" | ||
77 | "fosuser_confirmation", "true", "true to send a confirmation by email for each registration" | ||
78 | "from_email", "no-reply@wallabag.org", "email address used in From: field in each email" | ||
79 | "rss_limit", "50", "limit for RSS feeds" | ||
80 | |||
81 | .. csv-table:: RabbitMQ configuration | ||
82 | :header: "name", "default", "description" | ||
83 | |||
84 | "rabbitmq_host", "localhost", "Host of your RabbitMQ" | ||
85 | "rabbitmq_port", "5672", "Port of your RabbitMQ" | ||
86 | "rabbitmq_user", "guest", "User that can read queues" | ||
87 | "rabbitmq_password", "guest", "Password of that user" | ||
88 | |||
89 | .. csv-table:: Redis configuration | ||
90 | :header: "name", "default", "description" | ||
91 | |||
92 | "redis_scheme", "tcp", "Specifies the protocol used to communicate with an instance of Redis. Valid values are: tcp, unix, http" | ||
93 | "redis_host", "localhost", "IP or hostname of the target server (ignored for unix scheme)" | ||
94 | "redis_port", "6379", "TCP/IP port of the target server (ignored for unix scheme)" | ||
95 | "redis_path", "null", "Path of the UNIX domain socket file used when connecting to Redis using UNIX domain sockets" | ||
96 | "redis_password", "null", "Password defined in the Redis server configuration (parameter `requirepass` in `redis.conf`)" | ||
diff --git a/docs/en/user/query-upgrade-21-22.rst b/docs/en/user/query-upgrade-21-22.rst deleted file mode 100644 index fa9835a8..00000000 --- a/docs/en/user/query-upgrade-21-22.rst +++ /dev/null | |||
@@ -1,984 +0,0 @@ | |||
1 | Migration 20161001072726 | ||
2 | ------------------------ | ||
3 | |||
4 | MySQL | ||
5 | ^^^^^ | ||
6 | |||
7 | Migration up | ||
8 | """""""""""" | ||
9 | |||
10 | .. code-block:: sql | ||
11 | |||
12 | ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942 | ||
13 | ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311 | ||
14 | ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE | ||
15 | ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE | ||
16 | ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942 | ||
17 | ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE | ||
18 | |||
19 | Migration down | ||
20 | """""""""""""" | ||
21 | |||
22 | We didn't write down migration for ``20161001072726``. | ||
23 | |||
24 | PostgreSQL | ||
25 | ^^^^^^^^^^ | ||
26 | |||
27 | Migration up | ||
28 | """""""""""" | ||
29 | |||
30 | .. code-block:: sql | ||
31 | |||
32 | ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942 | ||
33 | ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311 | ||
34 | ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE | ||
35 | ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE | ||
36 | ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942 | ||
37 | ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE | ||
38 | |||
39 | Migration down | ||
40 | """""""""""""" | ||
41 | |||
42 | We didn't write down migration for ``20161001072726``. | ||
43 | |||
44 | SQLite | ||
45 | ^^^^^^ | ||
46 | |||
47 | This migration can only be executed safely on MySQL or PostgreSQL. | ||
48 | |||
49 | Migration 20161022134138 | ||
50 | ------------------------ | ||
51 | |||
52 | MySQL | ||
53 | ^^^^^ | ||
54 | |||
55 | Migration up | ||
56 | """""""""""" | ||
57 | |||
58 | .. code-block:: sql | ||
59 | |||
60 | ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; | ||
61 | ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL; | ||
62 | ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL; | ||
63 | ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL; | ||
64 | ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
65 | ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
66 | ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
67 | ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
68 | ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
69 | ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
70 | ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
71 | ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
72 | ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
73 | ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
74 | |||
75 | Migration down | ||
76 | """""""""""""" | ||
77 | |||
78 | .. code-block:: sql | ||
79 | |||
80 | ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; | ||
81 | ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
82 | ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
83 | ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
84 | ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
85 | ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
86 | ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
87 | ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
88 | ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
89 | ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
90 | ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci; | ||
91 | |||
92 | PostgreSQL and SQLite | ||
93 | ^^^^^^^^^^^^^^^^^^^^^ | ||
94 | |||
95 | This migration only apply to MySQL. | ||
96 | |||
97 | Migration 20161024212538 | ||
98 | ------------------------ | ||
99 | |||
100 | MySQL | ||
101 | ^^^^^ | ||
102 | |||
103 | Migration up | ||
104 | """""""""""" | ||
105 | |||
106 | .. code-block:: sql | ||
107 | |||
108 | ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL | ||
109 | ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE | ||
110 | CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id) | ||
111 | |||
112 | Migration down | ||
113 | """""""""""""" | ||
114 | |||
115 | .. code-block:: sql | ||
116 | |||
117 | ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client | ||
118 | ALTER TABLE wallabag_oauth2_clients DROP user_id | ||
119 | |||
120 | PostgreSQL | ||
121 | ^^^^^^^^^^ | ||
122 | |||
123 | Migration up | ||
124 | """""""""""" | ||
125 | |||
126 | .. code-block:: sql | ||
127 | |||
128 | ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL | ||
129 | ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE | ||
130 | CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id) | ||
131 | |||
132 | |||
133 | Migration down | ||
134 | """""""""""""" | ||
135 | |||
136 | .. code-block:: sql | ||
137 | |||
138 | ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client | ||
139 | ALTER TABLE wallabag_oauth2_clients DROP user_id | ||
140 | |||
141 | SQLite | ||
142 | ^^^^^^ | ||
143 | |||
144 | Migration up | ||
145 | """""""""""" | ||
146 | |||
147 | .. code-block:: sql | ||
148 | |||
149 | CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients | ||
150 | DROP TABLE wallabag_oauth2_clients | ||
151 | CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id), CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE NOT DEFERRABLE INITIALLY IMMEDIATE) | ||
152 | INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients | ||
153 | DROP TABLE __temp__wallabag_oauth2_clients | ||
154 | CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id) | ||
155 | |||
156 | Migration down | ||
157 | """""""""""""" | ||
158 | |||
159 | .. code-block:: sql | ||
160 | |||
161 | DROP INDEX IDX_635D765EA76ED395 | ||
162 | CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients | ||
163 | DROP TABLE wallabag_oauth2_clients | ||
164 | CREATE TABLE wallabag_oauth2_clients (id INTEGER NOT NULL, random_id VARCHAR(255) NOT NULL COLLATE BINARY, redirect_uris CLOB NOT NULL COLLATE BINARY, secret VARCHAR(255) NOT NULL COLLATE BINARY, allowed_grant_types CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
165 | INSERT INTO wallabag_oauth2_clients (id, random_id, redirect_uris, secret, allowed_grant_types, name) SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM __temp__wallabag_oauth2_clients | ||
166 | DROP TABLE __temp__wallabag_oauth2_clients | ||
167 | |||
168 | Migration 20161031132655 | ||
169 | ------------------------ | ||
170 | |||
171 | MySQL | ||
172 | ^^^^^ | ||
173 | |||
174 | Migration up | ||
175 | """""""""""" | ||
176 | |||
177 | .. code-block:: sql | ||
178 | |||
179 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc') | ||
180 | |||
181 | Migration down | ||
182 | """""""""""""" | ||
183 | |||
184 | .. code-block:: sql | ||
185 | |||
186 | DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled'; | ||
187 | |||
188 | PostgreSQL | ||
189 | ^^^^^^^^^^ | ||
190 | |||
191 | Migration up | ||
192 | """""""""""" | ||
193 | |||
194 | .. code-block:: sql | ||
195 | |||
196 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc') | ||
197 | |||
198 | Migration down | ||
199 | """""""""""""" | ||
200 | |||
201 | .. code-block:: sql | ||
202 | |||
203 | DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled'; | ||
204 | |||
205 | SQLite | ||
206 | ^^^^^^ | ||
207 | |||
208 | Migration up | ||
209 | """""""""""" | ||
210 | |||
211 | .. code-block:: sql | ||
212 | |||
213 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc') | ||
214 | |||
215 | Migration down | ||
216 | """""""""""""" | ||
217 | |||
218 | .. code-block:: sql | ||
219 | |||
220 | DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled'; | ||
221 | |||
222 | Migration 20161104073720 | ||
223 | ------------------------ | ||
224 | |||
225 | MySQL | ||
226 | ^^^^^ | ||
227 | |||
228 | Migration up | ||
229 | """""""""""" | ||
230 | |||
231 | .. code-block:: sql | ||
232 | |||
233 | CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at) | ||
234 | |||
235 | Migration down | ||
236 | """""""""""""" | ||
237 | |||
238 | .. code-block:: sql | ||
239 | |||
240 | DROP INDEX IDX_entry_created_at ON wallabag_entry | ||
241 | |||
242 | PostgreSQL | ||
243 | ^^^^^^^^^^ | ||
244 | |||
245 | Migration up | ||
246 | """""""""""" | ||
247 | |||
248 | .. code-block:: sql | ||
249 | |||
250 | CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at) | ||
251 | |||
252 | Migration down | ||
253 | """""""""""""" | ||
254 | |||
255 | .. code-block:: sql | ||
256 | |||
257 | DROP INDEX idx_entry_created_at | ||
258 | |||
259 | SQLite | ||
260 | ^^^^^^ | ||
261 | |||
262 | Migration up | ||
263 | """""""""""" | ||
264 | |||
265 | .. code-block:: sql | ||
266 | |||
267 | DROP INDEX created_at_idx | ||
268 | DROP INDEX IDX_F4D18282A76ED395 | ||
269 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry | ||
270 | DROP TABLE wallabag_entry | ||
271 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id)) | ||
272 | INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry | ||
273 | DROP TABLE __temp__wallabag_entry | ||
274 | CREATE INDEX created_at_idx ON wallabag_entry (created_at) | ||
275 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
276 | CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at) | ||
277 | |||
278 | Migration down | ||
279 | """""""""""""" | ||
280 | |||
281 | .. code-block:: sql | ||
282 | |||
283 | DROP INDEX IDX_entry_created_at | ||
284 | DROP INDEX IDX_F4D18282A76ED395 | ||
285 | DROP INDEX created_at_idx | ||
286 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry | ||
287 | DROP TABLE wallabag_entry | ||
288 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id)) | ||
289 | INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry | ||
290 | DROP TABLE __temp__wallabag_entry | ||
291 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
292 | CREATE INDEX created_at_idx ON wallabag_entry (created_at) | ||
293 | |||
294 | Migration 20161106113822 | ||
295 | ------------------------ | ||
296 | |||
297 | MySQL | ||
298 | ^^^^^ | ||
299 | |||
300 | Migration up | ||
301 | """""""""""" | ||
302 | |||
303 | .. code-block:: sql | ||
304 | |||
305 | ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0 | ||
306 | |||
307 | Migration down | ||
308 | """""""""""""" | ||
309 | |||
310 | .. code-block:: sql | ||
311 | |||
312 | ALTER TABLE wallabag_config DROP action_mark_as_read | ||
313 | |||
314 | PostgreSQL | ||
315 | ^^^^^^^^^^ | ||
316 | |||
317 | Migration up | ||
318 | """""""""""" | ||
319 | |||
320 | .. code-block:: sql | ||
321 | |||
322 | ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0 | ||
323 | |||
324 | Migration down | ||
325 | """""""""""""" | ||
326 | |||
327 | .. code-block:: sql | ||
328 | |||
329 | ALTER TABLE wallabag_config DROP action_mark_as_read | ||
330 | |||
331 | SQLite | ||
332 | ^^^^^^ | ||
333 | |||
334 | Migration up | ||
335 | """""""""""" | ||
336 | |||
337 | .. code-block:: sql | ||
338 | |||
339 | ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0 | ||
340 | |||
341 | Migration down | ||
342 | """""""""""""" | ||
343 | |||
344 | .. code-block:: sql | ||
345 | |||
346 | DROP INDEX UNIQ_87E64C53A76ED395 | ||
347 | CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config | ||
348 | DROP TABLE wallabag_config | ||
349 | CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
350 | INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config | ||
351 | DROP TABLE __temp__wallabag_config | ||
352 | CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id) | ||
353 | |||
354 | Migration 20161117071626 | ||
355 | ------------------------ | ||
356 | |||
357 | MySQL | ||
358 | ^^^^^ | ||
359 | |||
360 | Migration up | ||
361 | """""""""""" | ||
362 | |||
363 | .. code-block:: sql | ||
364 | |||
365 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry') | ||
366 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry') | ||
367 | |||
368 | Migration down | ||
369 | """""""""""""" | ||
370 | |||
371 | .. code-block:: sql | ||
372 | |||
373 | DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark'; | ||
374 | DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url'; | ||
375 | |||
376 | PostgreSQL | ||
377 | ^^^^^^^^^^ | ||
378 | |||
379 | Migration up | ||
380 | """""""""""" | ||
381 | |||
382 | .. code-block:: sql | ||
383 | |||
384 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry') | ||
385 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry') | ||
386 | |||
387 | Migration down | ||
388 | """""""""""""" | ||
389 | |||
390 | .. code-block:: sql | ||
391 | |||
392 | DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark'; | ||
393 | DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url'; | ||
394 | |||
395 | SQLite | ||
396 | ^^^^^^ | ||
397 | |||
398 | Migration up | ||
399 | """""""""""" | ||
400 | |||
401 | .. code-block:: sql | ||
402 | |||
403 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry') | ||
404 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry') | ||
405 | |||
406 | Migration down | ||
407 | """""""""""""" | ||
408 | |||
409 | .. code-block:: sql | ||
410 | |||
411 | DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark'; | ||
412 | DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url'; | ||
413 | |||
414 | Migration 20161118134328 | ||
415 | ------------------------ | ||
416 | |||
417 | MySQL | ||
418 | ^^^^^ | ||
419 | |||
420 | Migration up | ||
421 | """""""""""" | ||
422 | |||
423 | .. code-block:: sql | ||
424 | |||
425 | ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL | ||
426 | |||
427 | Migration down | ||
428 | """""""""""""" | ||
429 | |||
430 | .. code-block:: sql | ||
431 | |||
432 | ALTER TABLE wallabag_entry DROP http_status | ||
433 | |||
434 | PostgreSQL | ||
435 | ^^^^^^^^^^ | ||
436 | |||
437 | Migration up | ||
438 | """""""""""" | ||
439 | |||
440 | .. code-block:: sql | ||
441 | |||
442 | ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL | ||
443 | |||
444 | Migration down | ||
445 | """""""""""""" | ||
446 | |||
447 | .. code-block:: sql | ||
448 | |||
449 | ALTER TABLE wallabag_entry DROP http_status | ||
450 | |||
451 | SQLite | ||
452 | ^^^^^^ | ||
453 | |||
454 | Migration up | ||
455 | """""""""""" | ||
456 | |||
457 | .. code-block:: sql | ||
458 | |||
459 | ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL | ||
460 | |||
461 | Migration down | ||
462 | """""""""""""" | ||
463 | |||
464 | .. code-block:: sql | ||
465 | |||
466 | DROP INDEX created_at_idx | ||
467 | DROP INDEX IDX_F4D18282A76ED395 | ||
468 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry | ||
469 | DROP TABLE wallabag_entry | ||
470 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uuid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id)) | ||
471 | INSERT INTO wallabag_entry (id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uuid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry | ||
472 | DROP TABLE __temp__wallabag_entry | ||
473 | CREATE INDEX created_at_idx ON wallabag_entry (created_at) | ||
474 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
475 | |||
476 | Migration 20161122144743 | ||
477 | ------------------------ | ||
478 | |||
479 | MySQL | ||
480 | ^^^^^ | ||
481 | |||
482 | Migration up | ||
483 | """""""""""" | ||
484 | |||
485 | .. code-block:: sql | ||
486 | |||
487 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry') | ||
488 | |||
489 | Migration down | ||
490 | """""""""""""" | ||
491 | |||
492 | .. code-block:: sql | ||
493 | |||
494 | DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access'; | ||
495 | |||
496 | PostgreSQL | ||
497 | ^^^^^^^^^^ | ||
498 | |||
499 | Migration up | ||
500 | """""""""""" | ||
501 | |||
502 | .. code-block:: sql | ||
503 | |||
504 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry') | ||
505 | |||
506 | Migration down | ||
507 | """""""""""""" | ||
508 | |||
509 | .. code-block:: sql | ||
510 | |||
511 | DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access'; | ||
512 | |||
513 | SQLite | ||
514 | ^^^^^^ | ||
515 | |||
516 | Migration up | ||
517 | """""""""""" | ||
518 | |||
519 | .. code-block:: sql | ||
520 | |||
521 | INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry') | ||
522 | |||
523 | Migration down | ||
524 | """""""""""""" | ||
525 | |||
526 | .. code-block:: sql | ||
527 | |||
528 | DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access'; | ||
529 | |||
530 | Migration 20161122203647 | ||
531 | ------------------------ | ||
532 | |||
533 | MySQL | ||
534 | ^^^^^ | ||
535 | |||
536 | Migration up | ||
537 | """""""""""" | ||
538 | |||
539 | .. code-block:: sql | ||
540 | |||
541 | ALTER TABLE wallabag_user DROP expired, DROP credentials_expired | ||
542 | |||
543 | Migration down | ||
544 | """""""""""""" | ||
545 | |||
546 | .. code-block:: sql | ||
547 | |||
548 | ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL | ||
549 | |||
550 | PostgreSQL | ||
551 | ^^^^^^^^^^ | ||
552 | |||
553 | Migration up | ||
554 | """""""""""" | ||
555 | |||
556 | .. code-block:: sql | ||
557 | |||
558 | ALTER TABLE wallabag_user DROP expired | ||
559 | ALTER TABLE wallabag_user DROP credentials_expired | ||
560 | |||
561 | Migration down | ||
562 | """""""""""""" | ||
563 | |||
564 | .. code-block:: sql | ||
565 | |||
566 | ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL | ||
567 | ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL | ||
568 | |||
569 | SQLite | ||
570 | ^^^^^^ | ||
571 | |||
572 | Migration up | ||
573 | """""""""""" | ||
574 | |||
575 | .. code-block:: sql | ||
576 | |||
577 | DROP INDEX UNIQ_1D63E7E5C05FB297 | ||
578 | DROP INDEX UNIQ_1D63E7E5A0D96FBF | ||
579 | DROP INDEX UNIQ_1D63E7E592FC23A8 | ||
580 | CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM wallabag_user | ||
581 | DROP TABLE wallabag_user | ||
582 | CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, locked BOOLEAN NOT NULL, expires_at DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, credentials_expire_at DATETIME DEFAULT NULL, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
583 | INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, locked, expires_at, confirmation_token, password_requested_at, roles, credentials_expire_at, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted FROM __temp__wallabag_user | ||
584 | DROP TABLE __temp__wallabag_user | ||
585 | CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token) | ||
586 | CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical) | ||
587 | CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical) | ||
588 | |||
589 | Migration down | ||
590 | """""""""""""" | ||
591 | |||
592 | .. code-block:: sql | ||
593 | |||
594 | ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL | ||
595 | ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL | ||
596 | |||
597 | Migration 20161128084725 | ||
598 | ------------------------ | ||
599 | |||
600 | MySQL | ||
601 | ^^^^^ | ||
602 | |||
603 | Migration up | ||
604 | """""""""""" | ||
605 | |||
606 | .. code-block:: sql | ||
607 | |||
608 | ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL | ||
609 | |||
610 | Migration down | ||
611 | """""""""""""" | ||
612 | |||
613 | .. code-block:: sql | ||
614 | |||
615 | ALTER TABLE wallabag_config DROP list_mode | ||
616 | |||
617 | PostgreSQL | ||
618 | ^^^^^^^^^^ | ||
619 | |||
620 | Migration up | ||
621 | """""""""""" | ||
622 | |||
623 | .. code-block:: sql | ||
624 | |||
625 | ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL | ||
626 | |||
627 | Migration down | ||
628 | """""""""""""" | ||
629 | |||
630 | .. code-block:: sql | ||
631 | |||
632 | ALTER TABLE wallabag_config DROP list_mode | ||
633 | |||
634 | SQLite | ||
635 | ^^^^^^ | ||
636 | |||
637 | Migration up | ||
638 | """""""""""" | ||
639 | |||
640 | .. code-block:: sql | ||
641 | |||
642 | ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL | ||
643 | |||
644 | Migration down | ||
645 | """""""""""""" | ||
646 | |||
647 | .. code-block:: sql | ||
648 | |||
649 | DROP INDEX UNIQ_87E64C53A76ED395 | ||
650 | CREATE TEMPORARY TABLE __temp__wallabag_config AS SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM wallabag_config | ||
651 | DROP TABLE wallabag_config | ||
652 | CREATE TABLE wallabag_config (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, theme VARCHAR(255) NOT NULL COLLATE BINARY, items_per_page INTEGER NOT NULL, language VARCHAR(255) NOT NULL COLLATE BINARY, rss_token VARCHAR(255) DEFAULT NULL COLLATE BINARY, rss_limit INTEGER DEFAULT NULL, reading_speed DOUBLE PRECISION DEFAULT NULL, pocket_consumer_key VARCHAR(255) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
653 | INSERT INTO wallabag_config (id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key) SELECT id, user_id, theme, items_per_page, language, rss_token, rss_limit, reading_speed, pocket_consumer_key FROM __temp__wallabag_config | ||
654 | DROP TABLE __temp__wallabag_config | ||
655 | CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id) | ||
656 | |||
657 | Migration 20161128131503 | ||
658 | ------------------------ | ||
659 | |||
660 | MySQL | ||
661 | ^^^^^ | ||
662 | |||
663 | Migration up | ||
664 | """""""""""" | ||
665 | |||
666 | .. code-block:: sql | ||
667 | |||
668 | ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at | ||
669 | |||
670 | Migration down | ||
671 | """""""""""""" | ||
672 | |||
673 | .. code-block:: sql | ||
674 | |||
675 | ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL | ||
676 | |||
677 | PostgreSQL | ||
678 | ^^^^^^^^^^ | ||
679 | |||
680 | Migration up | ||
681 | """""""""""" | ||
682 | |||
683 | .. code-block:: sql | ||
684 | |||
685 | ALTER TABLE wallabag_user DROP locked | ||
686 | ALTER TABLE wallabag_user DROP credentials_expire_at | ||
687 | ALTER TABLE wallabag_user DROP expires_at | ||
688 | |||
689 | Migration down | ||
690 | """""""""""""" | ||
691 | |||
692 | .. code-block:: sql | ||
693 | |||
694 | ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL | ||
695 | ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL | ||
696 | ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL | ||
697 | |||
698 | SQLite | ||
699 | ^^^^^^ | ||
700 | |||
701 | Migration up | ||
702 | """""""""""" | ||
703 | |||
704 | .. code-block:: sql | ||
705 | |||
706 | ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL | ||
707 | ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL | ||
708 | ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL | ||
709 | |||
710 | Migration down | ||
711 | """""""""""""" | ||
712 | |||
713 | .. code-block:: sql | ||
714 | |||
715 | DROP INDEX UNIQ_1D63E7E592FC23A8 | ||
716 | DROP INDEX UNIQ_1D63E7E5A0D96FBF | ||
717 | DROP INDEX UNIQ_1D63E7E5C05FB297 | ||
718 | CREATE TEMPORARY TABLE __temp__wallabag_user AS SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM wallabag_user | ||
719 | DROP TABLE wallabag_user | ||
720 | CREATE TABLE wallabag_user (id INTEGER NOT NULL, username VARCHAR(180) NOT NULL COLLATE BINARY, username_canonical VARCHAR(180) NOT NULL COLLATE BINARY, email VARCHAR(180) NOT NULL COLLATE BINARY, email_canonical VARCHAR(180) NOT NULL COLLATE BINARY, enabled BOOLEAN NOT NULL, salt VARCHAR(255) NOT NULL COLLATE BINARY, password VARCHAR(255) NOT NULL COLLATE BINARY, last_login DATETIME DEFAULT NULL, confirmation_token VARCHAR(180) DEFAULT NULL COLLATE BINARY, password_requested_at DATETIME DEFAULT NULL, roles CLOB NOT NULL COLLATE BINARY, name CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, authCode INTEGER DEFAULT NULL, twoFactorAuthentication BOOLEAN NOT NULL, trusted CLOB DEFAULT NULL COLLATE BINARY, expired SMALLINT DEFAULT NULL, credentials_expired SMALLINT DEFAULT NULL, PRIMARY KEY(id)) | ||
721 | INSERT INTO wallabag_user (id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired) SELECT id, username, username_canonical, email, email_canonical, enabled, salt, password, last_login, confirmation_token, password_requested_at, roles, name, created_at, updated_at, authCode, twoFactorAuthentication, trusted, expired, credentials_expired FROM __temp__wallabag_user | ||
722 | DROP TABLE __temp__wallabag_user | ||
723 | CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical) | ||
724 | CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical) | ||
725 | CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token) | ||
726 | |||
727 | Migration 20161214094402 | ||
728 | ------------------------ | ||
729 | |||
730 | MySQL | ||
731 | ^^^^^ | ||
732 | |||
733 | Migration up | ||
734 | """""""""""" | ||
735 | |||
736 | .. code-block:: sql | ||
737 | |||
738 | ALTER TABLE wallabag_entry CHANGE uuid uid VARCHAR(23) | ||
739 | |||
740 | Migration down | ||
741 | """""""""""""" | ||
742 | |||
743 | .. code-block:: sql | ||
744 | |||
745 | ALTER TABLE wallabag_entry CHANGE uid uuid VARCHAR(23) | ||
746 | |||
747 | PostgreSQL | ||
748 | ^^^^^^^^^^ | ||
749 | |||
750 | Migration up | ||
751 | """""""""""" | ||
752 | |||
753 | .. code-block:: sql | ||
754 | |||
755 | ALTER TABLE wallabag_entry RENAME uuid TO uid | ||
756 | |||
757 | Migration down | ||
758 | """""""""""""" | ||
759 | |||
760 | .. code-block:: sql | ||
761 | |||
762 | ALTER TABLE wallabag_entry RENAME uid TO uuid | ||
763 | |||
764 | SQLite | ||
765 | ^^^^^^ | ||
766 | |||
767 | Migration up | ||
768 | """""""""""" | ||
769 | |||
770 | .. code-block:: sql | ||
771 | |||
772 | CREATE TABLE __temp__wallabag_entry ( | ||
773 | id INTEGER NOT NULL, | ||
774 | user_id INTEGER DEFAULT NULL, | ||
775 | uid VARCHAR(23) DEFAULT NULL, | ||
776 | title CLOB DEFAULT NULL, | ||
777 | url CLOB DEFAULT NULL, | ||
778 | is_archived BOOLEAN NOT NULL, | ||
779 | is_starred BOOLEAN NOT NULL, | ||
780 | content CLOB DEFAULT NULL, | ||
781 | created_at DATETIME NOT NULL, | ||
782 | updated_at DATETIME NOT NULL, | ||
783 | mimetype CLOB DEFAULT NULL, | ||
784 | language CLOB DEFAULT NULL, | ||
785 | reading_time INTEGER DEFAULT NULL, | ||
786 | domain_name CLOB DEFAULT NULL, | ||
787 | preview_picture CLOB DEFAULT NULL, | ||
788 | is_public BOOLEAN DEFAULT '0', | ||
789 | http_status VARCHAR(3) DEFAULT NULL, | ||
790 | PRIMARY KEY(id) | ||
791 | ); | ||
792 | INSERT INTO __temp__wallabag_entry SELECT id,user_id,uuid,title,url,is_archived,is_starred,content,created_at,updated_at,mimetype,language,reading_time,domain_name,preview_picture,is_public,http_status FROM wallabag_entry; | ||
793 | DROP TABLE wallabag_entry; | ||
794 | ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry | ||
795 | CREATE INDEX uid ON wallabag_entry (uid) | ||
796 | CREATE INDEX created_at ON wallabag_entry (created_at) | ||
797 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
798 | |||
799 | |||
800 | Migration down | ||
801 | """""""""""""" | ||
802 | |||
803 | .. code-block:: sql | ||
804 | |||
805 | CREATE TABLE __temp__wallabag_entry ( | ||
806 | id INTEGER NOT NULL, | ||
807 | user_id INTEGER DEFAULT NULL, | ||
808 | uuid VARCHAR(23) DEFAULT NULL, | ||
809 | title CLOB DEFAULT NULL, | ||
810 | url CLOB DEFAULT NULL, | ||
811 | is_archived BOOLEAN NOT NULL, | ||
812 | is_starred BOOLEAN NOT NULL, | ||
813 | content CLOB DEFAULT NULL, | ||
814 | created_at DATETIME NOT NULL, | ||
815 | updated_at DATETIME NOT NULL, | ||
816 | mimetype CLOB DEFAULT NULL, | ||
817 | language CLOB DEFAULT NULL, | ||
818 | reading_time INTEGER DEFAULT NULL, | ||
819 | domain_name CLOB DEFAULT NULL, | ||
820 | preview_picture CLOB DEFAULT NULL, | ||
821 | is_public BOOLEAN DEFAULT '0', | ||
822 | http_status VARCHAR(3) DEFAULT NULL, | ||
823 | PRIMARY KEY(id) | ||
824 | ); | ||
825 | INSERT INTO __temp__wallabag_entry SELECT id,user_id,uid,title,url,is_archived,is_starred,content,created_at,updated_at,mimetype,language,reading_time,domain_name,preview_picture,is_public,http_status FROM wallabag_entry; | ||
826 | DROP TABLE wallabag_entry; | ||
827 | ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry | ||
828 | CREATE INDEX uid ON wallabag_entry (uid) | ||
829 | CREATE INDEX created_at ON wallabag_entry (created_at) | ||
830 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
831 | |||
832 | Migration 20161214094403 | ||
833 | ------------------------ | ||
834 | |||
835 | MySQL | ||
836 | ^^^^^ | ||
837 | |||
838 | Migration up | ||
839 | """""""""""" | ||
840 | |||
841 | .. code-block:: sql | ||
842 | |||
843 | CREATE INDEX IDX_entry_uid ON wallabag_entry (uid) | ||
844 | |||
845 | Migration down | ||
846 | """""""""""""" | ||
847 | |||
848 | .. code-block:: sql | ||
849 | |||
850 | DROP INDEX IDX_entry_uid ON wallabag_entry | ||
851 | |||
852 | PostgreSQL | ||
853 | ^^^^^^^^^^ | ||
854 | |||
855 | Migration up | ||
856 | """""""""""" | ||
857 | |||
858 | .. code-block:: sql | ||
859 | |||
860 | CREATE INDEX IDX_entry_uid ON wallabag_entry (uid) | ||
861 | |||
862 | Migration down | ||
863 | """""""""""""" | ||
864 | |||
865 | .. code-block:: sql | ||
866 | |||
867 | DROP INDEX idx_entry_uid | ||
868 | |||
869 | SQLite | ||
870 | ^^^^^^ | ||
871 | |||
872 | Migration up | ||
873 | """""""""""" | ||
874 | |||
875 | .. code-block:: sql | ||
876 | |||
877 | DROP INDEX IDX_F4D18282A76ED395 | ||
878 | DROP INDEX created_at_idx | ||
879 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry | ||
880 | DROP TABLE wallabag_entry | ||
881 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id)) | ||
882 | INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry | ||
883 | DROP TABLE __temp__wallabag_entry | ||
884 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
885 | CREATE INDEX created_at_idx ON wallabag_entry (created_at) | ||
886 | CREATE INDEX IDX_entry_uid ON wallabag_entry (uid) | ||
887 | |||
888 | Migration down | ||
889 | """""""""""""" | ||
890 | |||
891 | .. code-block:: sql | ||
892 | |||
893 | DROP INDEX IDX_entry_uid | ||
894 | DROP INDEX created_at_idx | ||
895 | DROP INDEX IDX_F4D18282A76ED395 | ||
896 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM wallabag_entry | ||
897 | DROP TABLE wallabag_entry | ||
898 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid CLOB DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', PRIMARY KEY(id)) | ||
899 | INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public FROM __temp__wallabag_entry | ||
900 | DROP TABLE __temp__wallabag_entry | ||
901 | CREATE INDEX created_at_idx ON wallabag_entry (created_at) | ||
902 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
903 | |||
904 | Migration 20170127093841 | ||
905 | ------------------------ | ||
906 | |||
907 | MySQL | ||
908 | ^^^^^ | ||
909 | |||
910 | Migration up | ||
911 | """""""""""" | ||
912 | |||
913 | .. code-block:: sql | ||
914 | |||
915 | CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred) | ||
916 | CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived) | ||
917 | |||
918 | Migration down | ||
919 | """""""""""""" | ||
920 | |||
921 | .. code-block:: sql | ||
922 | |||
923 | DROP INDEX IDX_entry_starred ON wallabag_entry | ||
924 | DROP INDEX IDX_entry_archived ON wallabag_entry | ||
925 | |||
926 | PostgreSQL | ||
927 | ^^^^^^^^^^ | ||
928 | |||
929 | Migration up | ||
930 | """""""""""" | ||
931 | |||
932 | .. code-block:: sql | ||
933 | |||
934 | CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred) | ||
935 | CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived) | ||
936 | |||
937 | Migration down | ||
938 | """""""""""""" | ||
939 | |||
940 | .. code-block:: sql | ||
941 | |||
942 | DROP INDEX IDX_entry_starred | ||
943 | DROP INDEX IDX_entry_archived | ||
944 | |||
945 | SQLite | ||
946 | ^^^^^^ | ||
947 | |||
948 | Migration up | ||
949 | """""""""""" | ||
950 | |||
951 | .. code-block:: sql | ||
952 | |||
953 | DROP INDEX uid | ||
954 | DROP INDEX created_at | ||
955 | DROP INDEX IDX_F4D18282A76ED395 | ||
956 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status FROM wallabag_entry | ||
957 | DROP TABLE wallabag_entry | ||
958 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid VARCHAR(23) DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', http_status VARCHAR(3) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
959 | INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status FROM __temp__wallabag_entry | ||
960 | DROP TABLE __temp__wallabag_entry | ||
961 | CREATE INDEX uid ON wallabag_entry (uid) | ||
962 | CREATE INDEX created_at ON wallabag_entry (created_at) | ||
963 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
964 | CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred) | ||
965 | CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived) | ||
966 | |||
967 | Migration down | ||
968 | """""""""""""" | ||
969 | |||
970 | .. code-block:: sql | ||
971 | |||
972 | DROP INDEX IDX_entry_archived | ||
973 | DROP INDEX IDX_entry_starred | ||
974 | DROP INDEX IDX_F4D18282A76ED395 | ||
975 | DROP INDEX created_at | ||
976 | DROP INDEX uid | ||
977 | CREATE TEMPORARY TABLE __temp__wallabag_entry AS SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status FROM wallabag_entry | ||
978 | DROP TABLE wallabag_entry | ||
979 | CREATE TABLE wallabag_entry (id INTEGER NOT NULL, user_id INTEGER DEFAULT NULL, uid VARCHAR(23) DEFAULT NULL COLLATE BINARY, title CLOB DEFAULT NULL COLLATE BINARY, url CLOB DEFAULT NULL COLLATE BINARY, is_archived BOOLEAN NOT NULL, is_starred BOOLEAN NOT NULL, content CLOB DEFAULT NULL COLLATE BINARY, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, mimetype CLOB DEFAULT NULL COLLATE BINARY, language CLOB DEFAULT NULL COLLATE BINARY, reading_time INTEGER DEFAULT NULL, domain_name CLOB DEFAULT NULL COLLATE BINARY, preview_picture CLOB DEFAULT NULL COLLATE BINARY, is_public BOOLEAN DEFAULT '0', http_status VARCHAR(3) DEFAULT NULL COLLATE BINARY, PRIMARY KEY(id)) | ||
980 | INSERT INTO wallabag_entry (id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status) SELECT id, user_id, uid, title, url, is_archived, is_starred, content, created_at, updated_at, mimetype, language, reading_time, domain_name, preview_picture, is_public, http_status FROM __temp__wallabag_entry | ||
981 | DROP TABLE __temp__wallabag_entry | ||
982 | CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id) | ||
983 | CREATE INDEX created_at ON wallabag_entry (created_at) | ||
984 | CREATE INDEX uid ON wallabag_entry (uid) | ||
diff --git a/docs/en/user/tags.rst b/docs/en/user/tags.rst deleted file mode 100644 index 8ddc0f40..00000000 --- a/docs/en/user/tags.rst +++ /dev/null | |||
@@ -1,2 +0,0 @@ | |||
1 | Tags | ||
2 | ==== \ No newline at end of file | ||
diff --git a/docs/en/user/upgrade.rst b/docs/en/user/upgrade.rst deleted file mode 100644 index 3157684c..00000000 --- a/docs/en/user/upgrade.rst +++ /dev/null | |||
@@ -1,148 +0,0 @@ | |||
1 | ================================== | ||
2 | Upgrade your wallabag installation | ||
3 | ================================== | ||
4 | |||
5 | You will find here different ways to upgrade your wallabag: | ||
6 | |||
7 | - `from 2.1.x to 2.2.x <#upgrading-from-2-1-x-to-2-2-x>`_ | ||
8 | - `from 2.0.x to 2.1.1 <#upgrade-from-2-0-x-to-2-1-1>`_ | ||
9 | - `from 1.x to 2.x <#from-wallabag-1-x>`_ | ||
10 | |||
11 | ***************************** | ||
12 | Upgrading from 2.1.x to 2.2.x | ||
13 | ***************************** | ||
14 | |||
15 | Upgrade on a dedicated web server | ||
16 | ================================= | ||
17 | |||
18 | **From 2.1.x:** | ||
19 | |||
20 | :: | ||
21 | |||
22 | make update | ||
23 | php bin/console doctrine:migrations:migrate --no-interaction -e=prod | ||
24 | |||
25 | **From 2.2.0:** | ||
26 | |||
27 | :: | ||
28 | |||
29 | make update | ||
30 | |||
31 | Explanations about database migrations | ||
32 | -------------------------------------- | ||
33 | |||
34 | During the update, we execute database migrations. | ||
35 | |||
36 | All the database migrations are stored in ``app/DoctrineMigrations``. You can execute each migration individually: | ||
37 | ``bin/console doctrine:migrations:execute 20161001072726 --env=prod``. | ||
38 | |||
39 | You can also cancel each migration individually: ``bin/console doctrine:migrations:execute 20161001072726 --down --env=prod``. | ||
40 | |||
41 | Here is the migrations list for 2.1.x to 2.2.0 release: | ||
42 | |||
43 | * ``20161001072726``: added foreign keys for account resetting | ||
44 | * ``20161022134138``: converted database to ``utf8mb4`` encoding (for MySQL only) | ||
45 | * ``20161024212538``: added ``user_id`` column on ``oauth2_clients`` to prevent users to delete API clients from other users | ||
46 | * ``20161031132655``: added the internal setting to enable/disable downloading pictures | ||
47 | * ``20161104073720``: added ``created_at`` index on ``entry`` table | ||
48 | * ``20161106113822``: added ``action_mark_as_read`` field on ``config`` table | ||
49 | * ``20161117071626``: added the internal setting to share articles to unmark.it | ||
50 | * ``20161118134328``: added ``http_status`` field on ``entry`` table | ||
51 | * ``20161122144743``: added the internal setting to enable/disable fetching articles with paywall | ||
52 | * ``20161122203647``: dropped ``expired`` and ``credentials_expired`` fields on ``user`` table | ||
53 | * ``20161128084725``: added ``list_mode`` field on ``config`` table | ||
54 | * ``20161128131503``: dropped ``locked``, ``credentials_expire_at`` and ``expires_at`` fields on ``user`` table | ||
55 | * ``20161214094402``: renamed ``uuid`` to ``uid`` on ``entry`` table | ||
56 | * ``20161214094403``: added ``uid`` index on ``entry`` table | ||
57 | * ``20170127093841``: added ``is_starred`` and ``is_archived`` indexes on ``entry`` table | ||
58 | |||
59 | Upgrade on a shared hosting | ||
60 | =========================== | ||
61 | |||
62 | Backup your ``app/config/parameters.yml`` file. | ||
63 | |||
64 | Download the last release of wallabag: | ||
65 | |||
66 | .. code-block:: bash | ||
67 | |||
68 | wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package | ||
69 | |||
70 | You will find the `md5 hash of the latest package on our website <https://static.wallabag.org/releases/>`_. | ||
71 | |||
72 | Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours. | ||
73 | |||
74 | Please check that your ``app/config/parameters.yml`` contains all the required parameters. You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_. | ||
75 | |||
76 | If you use SQLite, you must also copy your ``data/`` folder inside the new installation. | ||
77 | |||
78 | Empty ``var/cache`` folder. | ||
79 | |||
80 | You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_``. Don't forgete to backup your database before migrating. | ||
81 | |||
82 | You may encounter issues with indexes names: if so, please change queries with the correct index name. | ||
83 | |||
84 | `You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_. | ||
85 | |||
86 | *************************** | ||
87 | Upgrade from 2.0.x to 2.1.1 | ||
88 | *************************** | ||
89 | |||
90 | .. warning:: | ||
91 | |||
92 | Before this migration, if you configured the Pocket import by adding your consumer key in Internal settings, please do a backup of it: you'll have to add it into the Config page after the upgrade. | ||
93 | |||
94 | Upgrade on a dedicated web server | ||
95 | ================================= | ||
96 | |||
97 | :: | ||
98 | |||
99 | rm -rf var/cache/* | ||
100 | git fetch origin | ||
101 | git fetch --tags | ||
102 | git checkout 2.1.1 --force | ||
103 | SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist | ||
104 | php bin/console doctrine:migrations:migrate --env=prod | ||
105 | php bin/console cache:clear --env=prod | ||
106 | |||
107 | Upgrade on a shared hosting | ||
108 | =========================== | ||
109 | |||
110 | Backup your ``app/config/parameters.yml`` file. | ||
111 | |||
112 | Download the 2.1.1 release of wallabag: | ||
113 | |||
114 | .. code-block:: bash | ||
115 | |||
116 | wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz | ||
117 | |||
118 | (md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``) | ||
119 | |||
120 | Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours. | ||
121 | |||
122 | Please check that your ``app/config/parameters.yml`` contains all the required parameters. You can find `here a documentation about parameters <http://doc.wallabag.org/en/master/user/parameters.html>`_. | ||
123 | |||
124 | If you use SQLite, you must also copy your ``data/`` folder inside the new installation. | ||
125 | |||
126 | Empty ``var/cache`` folder. | ||
127 | |||
128 | You must run some SQL queries to upgrade your database. We assume that the table prefix is ``wallabag_`` and the database server is a MySQL one: | ||
129 | |||
130 | .. code-block:: sql | ||
131 | |||
132 | ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL; | ||
133 | INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry'); | ||
134 | ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL; | ||
135 | INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import'); | ||
136 | INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import'); | ||
137 | ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL; | ||
138 | DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key'; | ||
139 | |||
140 | ***************** | ||
141 | From wallabag 1.x | ||
142 | ***************** | ||
143 | |||
144 | There is no automatic script to update from wallabag 1.x to wallabag 2.x. You need to: | ||
145 | |||
146 | - export your data | ||
147 | - install wallabag 2.x (`read the installation documentation <http://doc.wallabag.org/en/master/user/installation.html>`_ ) | ||
148 | - import data in this fresh installation (`read the import documentation <http://doc.wallabag.org/en/master/user/import.html>`_ ) | ||