Merge pull request #3122 from wallabag/delete-doc

Removed embedded documentation
This commit is contained in:
Thomas Citharel 2017-05-17 11:57:28 +02:00 committed by GitHub
commit e893e33e9b
143 changed files with 0 additions and 11106 deletions

View file

@ -1,55 +0,0 @@
# -*- coding: utf-8 -*-
#
# wallabag documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
import sys
import os
extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag-fr'
copyright = u'2013-2017, Nicolas Lœuillet - MIT Licence'
version = '2.3.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'wallabagdedoc'
latex_elements = {
}
latex_documents = [
('index', 'wallabag-de.tex', u'wallabag Documentation',
u'Nicolas Lœuillet', 'manual'),
]
man_pages = [
('index', 'wallabagde', u'wallabag Documentation',
[u'Nicolas Lœuillet'], 1)
]
texinfo_documents = [
('index', 'wallabag', u'wallabag Documentation',
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
'Miscellaneous'),
]
##### Guzzle sphinx theme
import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}
# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

File diff suppressed because one or more lines are too long

View file

@ -1,159 +0,0 @@
Asynchrone Aufgaben
===================
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir RabbitMQ oder Redis nutzen.
Installation von RabbitMQ für asynchrone Aufgaben
-------------------------------------------------
Voraussetzungen
^^^^^^^^^^^^^^^
Du musst RabbitMQ auf deinem Server installiert haben.
Installation
^^^^^^^^^^^^
.. code:: bash
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Konfiguration und Start
^^^^^^^^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
RabbitMQ stoppen
^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmqctl stop
RabbitMQ für wallabag konfigurieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bearbeite deine ``app/config/parameters.yml``-Datei, um die RabbitMQ-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
.. code:: yaml
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10 # lesen http://www.rabbitmq.com/consumer-prefetch.html
RabbitMQ in wallabag aktivieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In den internen Einstellungen, aktiviere RabbitMQ im Import-Abschnitt mit dem Wert 1.
Starte den RabbitMQ-Consumer
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
.. code:: bash
# für den Pocket-Import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# für den Readability-Import
bin/console rabbitmq:consumer -e=prod import_readability -w
# für den Instapaper-Import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# für den wallabag v1-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# für den wallabag v2-Import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# für den Firefox-Import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# für den Chrome-Import
bin/console rabbitmq:consumer -e=prod import_chrome -w
Redis für asynchrone Aufgaben installieren
------------------------------------------
Um große asynchrone Aufgaben zu starten (etwa für große Importe), können wir auch Redis nutzen.
Voraussetzungen
^^^^^^^^^^^^^^^
Du musst Redis auf deinem Server installiert haben.
Installation
^^^^^^^^^^^^
.. code:: bash
apt-get install redis-server
Start
^^^^^
Der Server kann bereits nach der Installation laufen, falls nicht, kannst du ihn wie folgt starten:
.. code:: bash
redis-server
Redis für wallabag konfigurieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bearbeite deine ``app/config/parameters.yml``-Datei, um die Redis-Parameter zu ändern. Die Standardwerte sollten in Ordnung sein:
.. code:: yaml
redis_host: localhost
redis_port: 6379
Redis in wallabag aktivieren
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In den internen Einstellungen, aktiviere Redis im Import-Abschnitt mit dem Wert 1.
Starten des Redis-Consumer
^^^^^^^^^^^^^^^^^^^^^^^^^^
Abhängig davon, über welchen Service du importieren möchtest, musst du den entsprechenden (oder mehrere) Cronjob aktivieren:
.. code:: bash
# für den Pocket-Import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# für den Readability-Import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# für den Instapaper-Import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# für den wallabag v1-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# für den wallabag v2-Import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# für den Firefox-Import
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# für den Chrome-Import
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
Wenn du den Import nur für einige Artikel nutzen willst, kannst du die Nummer festlegen (hier: 12) und der Consumer wird nach dem zwölften Artikel aufhören:
.. code:: bash
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12

View file

@ -1,57 +0,0 @@
Lasse wallabag in docker-compose laufen
=======================================
Um deine eigene Entwicklungsinstanz von wallabag laufen zu lassen,
möchtest du vielleicht die vorkonfigurierten docker compose Dateien
nutzen.
Voraussetzungen
---------------
Stelle sicher `Docker
<https://docs.docker.com/installation/ubuntulinux/>`__ und `Docker
Compose <https://docs.docker.com/compose/install/>`__ auf deinem
System verfügbar und aktuell zu haben.
Wechsel des DBMS
----------------
Standardmäßig startet wallabag mit einer SQLite Datenbank.
Da wallabag Unterstützung für Postgresql und MySQL bietet, gibt es
auch docker Container für diese.
In der ``docker-compose.yml`` kommentierst du für das gewählte DBMS
aus:
- die Container Definition (``postgres`` oder ``mariadb`` root
Level Block)
- den Container Link in dem ``php`` Container
- die Container Umgebungsdatei in dem ``php`` Container
Um mit Symfony Kommandos auf deinem Host auszuführen (wie z.B.
``wallabag:install``), sollst du außerdem:
- die richtige Umgebungsdatei auf deiner Kommandozeile einlesen,
sodass Variablen wie ``SYMFONY__ENV__DATABASE_HOST`` existieren
- eine Zeile ``127.0.0.1 rdbms`` in deiner ``hosts`` Datei auf dem
System erstellen
wallabag laufen lassen
----------------------
#. Forke und klone das Projekt
#. Bearbeite ``app/config/parameters.yml`` um ``database_*``
Eigenschaften mit den kommentierten zu ersetzen (mit Werten
mit ``env.`` Präfix)
#. ``composer install`` die Projektabhängigkeiten
#. ``php bin/console wallabag:install``, um das Schema zu erstellen
#. ``docker-compose up`` um die Container laufen zu lassen
#. Schließlich öffne http://localhost:8080/, um dein frisch
installiertes wallabag zu finden.
In den verschiedenen Schritten wirst du vielleicht in verschiendene
Probleme laufen wie UNIX Berechtigungsprobleme, falschen Pfaden im
generierten Cache, etc.…
Operationen wie das Löschen der Cachedateien oder das Ändern der
Dateibesitzer können öfter gebraucht werden, darum habe keine Angst
sie anzupassen.

View file

@ -1,10 +0,0 @@
Wirke an dieser Dokumentation mit
=================================
Quellen der Dokumentation sind hier zu finden https://github.com/wallabag/wallabag/tree/master/docs
Wir nutzen `ReadTheDocs <https://readthedocs.org>`__, um sie zu generieren.
Seiten werden in `reStructuredText <https://de.wikipedia.org/wiki/ReStructuredText>`__ geschrieben. Du kannst Onlinetools wie http://rst.aaroniles.net/ oder http://rst.ninjs.org/ nutzen, um eine Vorschau deiner Artikel zu betrachten.
Wenn du eine neue Seite erstellst, vergiss nicht die `index.rst <https://raw.githubusercontent.com/wallabag/wallabag/master/docs/en/index.rst>`__ zu bearbeiten, um dort einen Link für die Seitenleiste hinzuzufügen.

View file

@ -1,56 +0,0 @@
Articles behind a paywall
=========================
wallabag can fetch articles from websites which use a paywall system.
Enable paywall authentication
-----------------------------
In internal settings, in the **Article** section, enable authentication for websites with paywall (with the value 1).
Configure credentials in wallabag
---------------------------------
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. Here is an example for some french websites:
.. code:: yaml
sites_credentials:
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
.. note::
These credentials will be shared between each user of your wallabag instance.
Parsing configuration files
---------------------------
.. note::
Read `this part of the documentation <http://doc.wallabag.org/en/master/user/errors_during_fetching.html>`_ to understand the configuration files.
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
on a website where the login form is loaded after the page (by ajax for example).
``login_uri`` is the action URL of the form (``action`` attribute in the form).
``login_username_field`` is the ``name`` attribute of the login field.
``login_password_field`` is the ``name`` attribute of the password field.
For example:
.. code::
title://div[@id="titrage-contenu"]/h1[@class="title"]
body: //div[@class="contenu-html"]/div[@class="page-pane"]
requires_login: yes
login_uri: http://www.arretsurimages.net/forum/login.php
login_username_field: username
login_password_field: password
not_logged_in_xpath: //body[@class="not-logged-in"]

View file

@ -1,10 +0,0 @@
Testsuite
=========
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
Then, execute this command ``make test``.

View file

@ -1,57 +0,0 @@
Übersetze wallabag
==================
wallabag Webapplikation
-----------------------
Übersetzungsdateien
~~~~~~~~~~~~~~~~~~~
.. note::
Da wallabag hauptsächlich von einem französischem Team entwickelt wird, betrachte
die französische Übersetzung als die aktuellste und kopiere sie, um deine eigene Übersetzung zu starten.
Du kannst die Übersetzungsdateien hier finden: https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
Du musst die ``messages.CODE.yml`` und ``validators.CODE.yml`` erstellen, wobei CODE
der ISO 639-1 Code deiner Sprache ist (`siehe Wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__).
Andere Dateien zum Übersetzen:
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
Du musst die ``THE_TRANSLATION_FILE.CODE.yml`` Dateien erstellen.
Konfigurationsdatei
~~~~~~~~~~~~~~~~~~~
Du musst die `app/config/config.yml <https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ bearbeiten,
um deine Sprache auf der Konfigurationsseite in wallabag anzuzeigen (um Nutzern zu erlauben zu dieser neuen Übersetzung zu wechseln).
Unter dem Abschnitt ``wallabag_core.languages`` musst du eine neue Zeile mit deiner Übersetzung hinzufügen. Zum Beispiel:
::
wallabag_core:
...
languages:
en: 'English'
fr: 'Français'
Für die erste Spalte (``en``, ``fr``, etc.) musst du den ISO 639-1 Code deiner Sprache hinzufügen (siehe oben).
Für die zweite Spalte trägst du den Namen deiner Sprache ein. Nur den.
wallabag Dokumentation
----------------------
.. note::
Im Gegensatz zur Webapplikation ist die Hauptsprache für die Dokumentation Englisch.
Documentationsdateien sind hier gespeichert: https://github.com/wallabag/wallabag/tree/master/docs
Du musst die Ordnerstruktur des Ordners ``en`` beachten, wenn du deine eigene Übersetzung startest.

View file

@ -1,53 +0,0 @@
wallabag Dokumentation
======================
.. image:: ../img/wallabag.png
:alt: wallabag Logo
:align: center
**wallabag** ist eine Read-it-later Applikation: es speichert Websites,
indem es nur den Inhalt behält. Elemente wie Navigation oder Werbung werden gelöscht.
Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organisiert:
* :ref:`user-docs`
* :ref:`dev-docs`
Die Dokumentation ist in anderen Sprachen verfügbar :
* `Documentation in english <http://doc.wallabag.org/en/master/>`_
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
.. _user-docs:
.. toctree::
:maxdepth: 2
:caption: Nutzerdokumentation
user/installation
user/upgrade
user/configuration
user/import
user/create_account
user/articles
user/errors_during_fetching
user/filters
user/tags
user/configuring_mobile
user/android
user/parameters
user/backup
user/faq
.. _dev-docs:
.. toctree::
:maxdepth: 2
:caption: Entwicklerdokumentation
developer/api
developer/docker
developer/paywall
developer/documentation
developer/translate
developer/asynchronous

View file

@ -1,2 +0,0 @@
Sphinx>=1.3.0,<1.4.0
guzzle_sphinx_theme>=0.7.0,<0.8.0

View file

@ -1,102 +0,0 @@
Android App
===========
Zweck dieses Dokuments
----------------------
Dieses Dokument beschreibt wie du deine Android App einrichtest, damit sie mit deiner Wallabaginstanz zusammenarbeitet. Es gibt hierbei keinen Unterschied im Vorgang - egal ob du Wallabag v1 oder v2 einsetzt.
Schritte, um dein App zu einzurichten
-------------------------------------
Wenn du das erste Mal die App startest, siehst du den Willkommensbildschirm, wo du angewiesen wirst zunächst deine App mit deiner Wallabaginstanz einzurichten.
.. image:: ../../img/user/android_welcome_screen.de.png
:alt: Willkommensbildschirm
:align: center
Bestätige nur diese Nachricht und du wirst zum Einstellungsbildschirm weitergeleitet.
.. image:: ../../img/user/android_configuration_screen.de.png
:alt: Einstellungsbildschirm
:align: center
Trage deine Wallabagdaten ein. Du musst deine Wallabagadresse eintragen. **Es ist wichtig, dass die URL nicht mit einem Schrägstrich endet.** Füge auch deine Wallabagzugangsdaten in das Nutzer- und Passwortfeld ein.
.. image:: ../../img/user/android_configuration_filled_in.de.png
:alt: Eingetragene Einstellungen
:align: center
Nachdem du deine Daten eingetragen hast, drücke den Button Verbindung testen und warte auf das Fertigstellen des Tests.
.. image:: ../../img/user/android_configuration_connection_test.de.png
:alt: Verbindungstest mit deinen Wallabagdaten
:align: center
Der Verbindungstest sollte mit Erfolg ausgehen. Falls nicht, musst du zunächst deine Daten korrigieren bevor du zum nächsten Schritt gehst.
.. image:: ../../img/user/android_configuration_connection_test_success.de.png
:alt: Verbindungstest war erfolgreich
:align: center
Nach dem Verbindungstest erfolgreich war, kannst du den Button zum Feedzugangsdaten abholen drücken. Die App versucht nun sich bei deiner Wallabaginstanz einzuloggen und die Nutzer ID und den dazugehörigen Token für die Feeds zu laden.
.. image:: ../../img/user/android_configuration_get_feed_credentials.de.png
:alt: Feedzugangsdaten abholen
:align: center
Wenn der Prozess des Abholens deiner Feedzugangsdaten erfolgreich beendet wurde, siehst du eine Toastnachricht, dass die User ID und der Token automatisch in das Formular eingetragen wurden.
.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.de.png
:alt: Feedzugangsdaten erfolgreich abgeholt
:align: center
Jetzt scrollst du bis zum unteren Rand des Einstellungsbildschirms. Natürlich kannst du die Einstellungen dort deinen Wünschen anpassen. Schließe die Einrichtung mit dem Drücken des Speicherbuttons ab.
.. image:: ../../img/user/android_configuration_scroll_bottom.de.png
:alt: unterer Rand des Einstellungsbildschirms
:align: center
Nachdem du den Speicherbutton gedrückt hast, kommst du in den folgenden Bildschirm. Die App schlägt vor, eine initiale Synchronisation der Artikelfeeds durchzuführen. Hier ist es empfohlen, dies zu bestätigen und Ja zu drücken.
.. image:: ../../img/user/android_configuration_saved_feed_update.de.png
:alt: Einstellung erstmals gespeichert
:align: center
Schließlich nach der ersten erfolgreichen Synchronisation, wird dir die Liste der ungelesenen Artikel präsentiert.
.. image:: ../../img/user/android_unread_feed_synced.de.png
:alt: Gefüllte Artikellist da Feeds erfolgreich synchronisiert sind
:align: center
Bekannte Limitierungen
---------------------
Zwei-Faktor-Authentifizierung (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zur Zeit unterstützt die App keine Zwei-Faktor Authentifizierung. Du solltest sie deaktivieren damit die App funktioniert.
Begrenzte Anzahl Artikel mit Wallabag v2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In deiner Wallabaginstanz kannst du einstellen, wie viele Artikel Teil deiner RSS Feeds sind. Diese Option existierte in Wallabag v1 nicht, wo immer alle Artikel Teil des Feeds waren. Also wenn du die Anzahl der Artikel, die in der App angezeigt werden sollen, größer einstellst als die Anzahl Artikel in deinem Feed, wirst du nur die Anzahl an Artikel deines Feeds sehen.
SSL/TLS Verschlüsselung
~~~~~~~~~~~~~~~~~~~~~~~
Wenn du deine Wallabaginstanz per HTTPS erreichen kannst, solltest du das so konfigurieren. Besonders dann, wenn deine HTTP URL nach HTTPS umleitet. Im Moment kann die App mit dieser Weiterleitung nicht korrekt umgehen.
Referenzen
----------
- `Quellcode der Android-App <https://github.com/wallabag/android-app>`_
- `Android-App auf F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
- `Android-App auf Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_

View file

@ -1,113 +0,0 @@
Artikel
=======
Speichere deinen ersten Artikel
-------------------------------
Die Hauptzweck von wallabag ist es, Artikel aus dem Web zu speichern. Es gibt viele Wege, dieses Ziel zu erreichen.
Wenn du denkst, dass ein Artikel falsch angezeigt wird, kannst du `diese Dokumentation lesen <http://doc.wallabag.org/de/master/user/errors_during_fetching.html>`_.
Über ein Bookmarklet
^^^^^^^^^^^^^^^^^^^^
Auf der ``Howto``-Seite hast du einen ``Bookmarklet``-Tab. Ziehe das ``bag it!`` in die Lesezeichenleiste deines Browsers.
Nun kannst du jedes Mal, wenn du einen Artikel speichern willst, auf den ``bag it!``-Link klicken, dann ist der Artikel gespeichert.
Der klassische Weg
^^^^^^^^^^^^^^^^^^
In der oberen Leiste deines Fensters hast du auf der rechten Seite drei Symbole. Mit dem ersten Symbole, einem Plus-Zeichen, kannst du auf einfache Weise einen neuen Artikel speichern.
.. image:: ../../img/user/topbar.png
:alt: Top bar
:align: center
Klicke darauf, um ein neues Feld anzuzeigen, füge die Artikel-URL ein und drücke Enter. Dann wird der Artikel gespeichert.
Über ein Browser-Addon
^^^^^^^^^^^^^^^^^^^^^^
Firefox
"""""""
Du kannst das `Firefox-Addon hier <https://addons.mozilla.org/firefox/addon/wallabagger/> herunterladen`_.
Chrome
""""""
Du kannst das `Chrome-Addon hier <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr> herunterladen`_.
Über das Smartphone
^^^^^^^^^^^^^^^^^^^
Android
"""""""
Du kannst die `Android-App hier <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_ oder auf `F-Droid <https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.InThePoche>`_ herunterladen.
Windows 10 in general
"""""""""""""""""""""
Du kannst die `Windows-App hier <https://www.microsoft.com/store/apps/9nblggh5x3p6> herunterladen`_.
Artikel herunterladen
---------------------
Du kannst jeden Artikel in verschiedenen Formaten herunterladen: ePUB, MOBI, PDF, XML, JSON, CSV.
Klicke in der Artikelansicht auf dieses Symbol in der Seitenleiste:
.. image:: ../../img/user/download_article.png
:alt: Artikel herunterladen
:align: center
Du kannst sogar eine ganze Kategorie (Ungelesen, Favoriten, Archiv) in diesen Formaten herunterladen:
Beispielsweise kannst du auf der **Ungelesen**-Ansicht auf dieses Symbol in der oberen Leiste klicken:
.. image:: ../../img/user/download_articles.png
:alt: Artikel herunterladen
:align: center
Artikel teilen
--------------
Wenn du einen Artikel liest, kannst du ihn auch teilen. Klicke dazu einfach auf den Teilen-Button:
.. image:: ../../img/user/share.png
:alt: Artikel teilen
:align: center
Nun kannst du den Artikel teilen:
- über eine öffentliche URL (es wird eine reduzierte Ansicht des Artikels zurückgegeben)
- über einen Tweet
- in deine Shaarli
- in deine Scuttle
- mit einem Beitrag auf Diaspora*
- an Carrot
- mit einer E-Mail
Artikel-Anmerkungen
-------------------
In jedem Artikel, den du liest, kannst du Anmerkungen hinzufügen. Es ist einfacher mit ein paar Bilder erklärt.
Wähle den Teil des Artikels aus, den du kommentieren willst und klicke auf den Bleistift:
.. image:: ../../img/user/annotations_1.png
:alt: Wähle den Text
:align: center
Schreibe deinen Kommentar:
.. image:: ../../img/user/annotations_2.png
:alt: Schreibe deinen Kommentar
:align: center
Der Text ist nun hervorgehoben und du kannst deine Anmerkung lesen, wenn du den Mauspfeil darüber fährst.
.. image:: ../../img/user/annotations_3.png
:alt: lese deine Anmerkung
:align: center
Du kannst so viele Anmerkungen erstellen wie du möchtest.

View file

@ -1,25 +0,0 @@
wallabag sichern
================
Da es manchmal vorkommen kann, dass dir ein Fehler mit deiner wallabag unterläuft und du Daten verlierst oder deine wallabag auf einen anderen Server verschieben willst, ist eine Sicherung der Daten sicher ratsam.
Dieser Artikel beschreibt, was du für die Sicherung benötigst.
Grundlegende Einstellungen
--------------------------
wallabag speichert grundlegende Parameter (etwa der SMTP-Server oder das Datenbank-Backend) in der Datei `app/config/parameters.yml`.
Datenbank
---------
Da wallabag verschiedene Datenbank-Typen unterstützt, hängt der Weg der Sicherung von dem verwendeten Typ ab. Daher verweisen wir an dieser Stelle auf die entsprechenden Dokumentationen:
Hier sind einige Beispiele:
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
SQLite
~~~~~~
Um die SQLite-Datenbank zu sichern, ist es lediglich notwendig, das Verzeichnis `data/db` aus dem wallabag-Installations-Ordner zu kopieren.
Bilder
------
Die Bilder, die von wallabag empfangen worden, sind unter `web/assets/images` gespeichert (der Bilder-Speicher wird in wallabag 2.2 implementiert).

View file

@ -1,131 +0,0 @@
Konfiguration
=============
Nun, da du eingeloggt bist, ist es Zeit, deinen Account so zu konfigurieren,
wie du möchtest.
Klicke auf ``Konfiguration`` im Menü. Du hast fünf Karteireiter: ``Einstellungen``,
``RSS``, ``Benutzer-Informationen``, ``Kennwort`` und ``Tagging-Regeln``.
Einstellungen
-------------
Theme
~~~~~
wallabag ist anpassbar. Du kannst dein bevorzugtes Theme hier auswählen. Das Standardtheme
ist ``Material``, es ist das Theme, dass in den Dokumentationsbildschirmfotos genutzt wird.
Artikel pro Seite
~~~~~~~~~~~~~~~~~
Du kannst die Anzahl der dargestellten Artikel pro Seite ändern.
Lesegeschwindigkeit
~~~~~~~~~~~~~~~~~~~
wallabag berechnet die Lesezeit für jeden Artikel. Du kannst hier definieren, dank dieser Liste, ob du
ein schneller oder langsamer Leser bist. wallabag wird die Lesezeit für jeden Artikel neu berechnen.
Wohin möchtest du weitergeleitet werden, nach dem ein Artikel als gelesen markiert wurde?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jedes Mal, wenn du eine Aktion ausführst (nach dem Markieren eines Artikels als gelesen oder Favorit, nach dem Löschen eines Artikels oder dem Entfernen eines Tag von einem Eintrag), kannst du weitergeleitet werden:
- zur Homepage
- zur aktuellen Seite
Sprache
~~~~~~~
Du kannst die Sprache von der wallabag Benutzeroberfläche ändern.
RSS
---
wallabag stellt RSS Feeds für jeden Artikelstatus bereit: ungelesen, Favoriten und Archiv.
Als erstes musst du einen persönlciehn Token erstellen: Klicke auf ``Token generieren``.
Es ist möglich deinen Token zu ändern, indem du auf ``Token zurücksetzen`` klickst.
Jetzt hast du drei Links, einen für jeden Status: Füge sie in deinem liebsten Feedreader hinzu.
Du kannst auch definieren wie viele Artikel du in deinem RSS Feed (Standardwert: 50) haben willst.
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
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.
Benutzer-Informationen
----------------------
Du kannst deinen Namen ändern, deine E-Mail-Adresse und die Zwei-Faktor-Authentifizierung aktivieren.
Zwei-Faktor-Authentifizierung (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Die Zwei-Faktor-Authentifizierung (2FA) dient dem Identitätsnachweis eines Nutzers mittels der
Kombination zweier verschiedener und insbesondere unabhängiger Komponenten (Faktoren).
https://de.wikipedia.org/wiki/Zwei-Faktor-Authentifizierung
**Warnung:** Das Aktivieren von 2FA über das Konfigurations-Interface ist nur möglich, wenn vorher in der `app/config/parameters.yml` die `twofactor_auth`-Eigenschaft auf `true` gesetzt wurde (nach der Konfiguration das Leeren des Cache mit `php bin/console cache:clear -e=prod` nicht vergessen).
Wenn du 2FA aktivierst, erhälst du jedes Mal, wenn du dich bei wallabag einloggen willst, einen Code per
Mail. Du musst den Code in das folgende Formular eingeben.
.. image:: ../../img/user/2FA_form.png
:alt: Zwei-Faktor-Authentifizierung
:align: center
Wenn du nicht jedes Mal, wenn du dich einloggen willst, einen Code zugesendet bekommen möchtest, kannst du
die Checkbox ``Ich bin an einem persönlichen Computer`` anhaken: wallabag wird sich an dich für 15 Tage
erinnern.
Passwort
--------
Du kannst dein Passwort hier ändern (8 Zeichen Minimum).
Tagging-Regeln
--------------
Wenn du automatisch einen Tag zu einem neuen Artikel zuweisen lassen möchtest, ist dieser Teil der
Konfiguration, was du suchst.
Was ist mit Tagging-Regeln gemeint?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dies sind Regeln, die von wallabag genutzt werden, um neue Artikel automatisch zu taggen
Jedes Mal, wenn ein neuer Artikel hinzugefügt wird, werden alle Tagging-Regeln genutzt, um deine
konfigurierten Tags hinzuzufügen, folglich um dir den Aufwand zu sparen, die Artikel manuell einzuteilen.
Wie benutze ich sie?
~~~~~~~~~~~~~~~~~~~~
Nehmen wir an, du möchtest neuen Artikeln einen Tag *schnell gelesen*, wenn du die Lesezeit kleiner als
3 Minuten ist.
In diesem Fall solltest du in das Regelfeld "readingTime <= 3" eintragen und *schnell gelesen* in das Tags-Feld.
Mehrere Tags können gleichzeitig hinzugefügt werden, wenn man sie mit einem Komma trennt:
*schnell gelesen, Pflichtlektüre*.
Komplexe Regeln können mit vordefinierten Operatoren geschrieben werden:
Wenn *readingTime >= 5 AND domainName = "github.com"*, dann tagge als *lange zu lesen, github*.
Welche Variablen und Operatoren kann ich zum Regeln schreiben nutzen?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen (sei vorsichtig, denn bei einigen Werten musst du Anführungszeichen hinzufügen, z.B. ``language = "de"``):
=========== ============================================== ========== ==========
Variable Bedeutung Operator Bedeutung
----------- ---------------------------------------------- ---------- ----------
title Titel des Artikels <= Kleiner gleich als…
url URL des Artikels < Kleiner als…
isArchived Ob der Artikel archiviert ist oder nicht => Größer gleich als…
isStarred Ob der Artikel favorisiert ist oder nicht > Größer als…
content Inhalt des Eintrags = Gleich zu…
language Sprache des Eintrags != Nicht gleich zu…
mimetype MIME-Typ des Eintrags OR Eine Regel oder die andere
readingTime Die geschätzte Lesezeit in Minuten AND Eine Regel und die andere
domainName Der Domain-Name des Eintrags matches Testet, dass ein Feld einer Suche (unabhängig von Groß- und Kleinschreibung) übereinstimmt. Z.B.: title matches "Fußball"
notmatches
=========== ============================================== ========== ==========

View file

@ -1,12 +0,0 @@
Konfiguration mobiler Apps für wallabag
=======================================
Schritte zum Konfigurieren der App
----------------------------------
- Als Erstes erstellst du einen *neuen Client* in dem Abschnitt ``API Client Management``. Der Name deiner App ist dabei nicht so wichtig wie die ``Client-ID`` und das ``Client-Secret``. Schreib diese zwei Werte auf.
- Wenn du eine mobile App herunterlädst, wird sie dich nach der Server-Adresse deiner wallabag-Instanz fragen. Zum Beispiel ist es ``https://app.wallabag.it`` bei wallabag.it.
- Sie wird dich auch nach den zuvor genannten ``Client-ID`` und ``Client-Secret`` fragen. Bitte trage diese in die Textfelder ein, wenn du danach gefragt wirst.
- Zuletzt musst du deinen ``Benutzernamen`` und ``Passwort`` bereitstellen. Diese Zugangsdaten sind die gleichen, die du zum Login bei wallabag nutzt.
Bitte schaue auch auf die `Android <android.html>`_ Seite und dort insbesondere den Abschnitt *Bekannte Limitierungen*.

View file

@ -1,41 +0,0 @@
Account erstellen
=================
Registrierungsformular
----------------------
Klicke auf der Loginseite auf den ``Registrieren`` Button-
.. image:: ../../img/user/registration_form.png
:alt: Registrierungsformular
:align: center
Du musst das Formular ausfüllen. Bitte stelle sicher, dass du eine gültige
E-Mail-Adresse eingibst, wir werden dir eine Aktivierungsmail schicken.
.. image:: ../../img/user/sent_email.png
:alt: E-Mail wurde gesendet, um Account zu aktivieren
:align: center
Überprüfge deinen Posteingang, du hast jetzt eine neue Mail mit einem Link wie diesen
``http://wallabag/register/confirm/Ba19wokGovN-DdBQNfg4YgRkUQWRP4-k2g0Bk-hBTX4``.
Klicke auf den Link, um deinen Account zu aktivieren.
Dein Account ist nun aktiviert.
.. image:: ../../img/user/activated_account.png
:alt: Willkommen!
:align: center
Anmeldung
---------
Glückwunsch, dein Account ist nun aktiviert!
Um dich auf wallabag anzumelden, fülle das Formular auf der Login-Seite aus.
Wenn du auf einem persönlichen Computer bist und angemeldet bleiben möchtest,
kannst du ein Häkchen nach ``angemeldet bleiben`` setzen, wallabag wird sich ein Jahr an dich erinnern.
.. image:: ../../img/user/login_form.png
:alt: Login form
:align: center

View file

@ -1,28 +0,0 @@
Fehler während des Artikelladens
================================
Warum schlägt das Laden eines Artikels fehl?
--------------------------------------------
Das kann verschiedene Ursachen haben:
- Netzwerkprobleme
- wallabag kann den Inhalt aufgrund der Websitestruktur nicht laden
Wie kann ich helfen das zu beheben?
-----------------------------------
- `indem du uns eine Mail mit der URL des Artikels sendest <mailto:hello@wallabag.org>`_
- indem du versuchst das Laden des Artikels durch Erstellen einer Datei für den Artikel
selbst zu beheben
Du kannst `dieses Tool <http://siteconfig.fivefilters.org/>`__ nutzen.
Wie kann ich versuchen, einen Artikel erneut zu laden?
------------------------------------------------------
Wenn wallabag beim Laden eines Artikels fehlschlägt, kannst du auf den erneut laden Button
klicken (der dritte in dem unteren Bild).
.. image:: ../../img/user/refetch.png
:alt: Inhalt neu laden
:align: center

View file

@ -1,52 +0,0 @@
Häufig gestellte Fragen
==========================
Während der Installation sehe ich den Fehler ``Error Output: sh: 1: @post-cmd: not found``
------------------------------------------------------------------------------------------
Es scheint, dass du ein Problem bei deiner ``composer`` Installation hast. Versuche es zu deinstallieren und neu zu installieren.
`Lies die Dokumentation über composer, um zu erfahren wie es installiert wird
<https://getcomposer.org/doc/00-intro.md>`__.
Ich kann das Registrierungsformular nicht validieren
----------------------------------------------------
Stelle sicher, dass alle Felder ausgefüllt sind:
* valide E-Mail-Adresse
* das gleiche Passwort in zwei Feldern
Ich erhalte meine Aktivierungsmail nicht
----------------------------------------
Bist du sicher, dass deine eingegebene E-Mail-Adresse korrekt war? Hast du deinen Spamordner überprüft?
Wenn du dann immer noch nicht deine Aktivierungsmail siehst, stelle bitte sicher, dass du einen MTA
korrekt installiert und eingerichtet hast. Prüfe, dass deine Firewallregel existiert, z.B. für firewalld:
::
firewall-cmd --permanent --add-service=smtp
firewall-cmd --reload
Schließlich, falls du SELinux aktiviert hast, setze folgende Regel:
``setsebool -P httpd_can_sendmail 1``
Wenn ich den Aktivierungslink klicke, bekomme ich die Nachricht ``Der Nutzer mit dem Bestätigungstoken "DtrOPfbQeVkWf6N" existiert nicht``
------------------------------------------------------------------------------------------------------------------------------------------
Du hast deinen Account schon aktiviert oder die URL der Aktivierungsmail ist falsch.
Ich habe mein Passwort vergessen
--------------------------------
Du kannst dein Passwort zurücksetzen, indem du auf den Link ``Kennwort vergessen?`` auf der Loginseite klickst. Fülle dann das Formular mit deiner E-Mail-Adresse oder deinem Nutzernamen aus
und du wirst eine E-Mail zum Passwort zurücksetzen erhalten.
Ich erhalte den Fehler ``failed to load external entity``, wenn ich wallabag installiere
----------------------------------------------------------------------------------------
Wie `hier <https://github.com/wallabag/wallabag/issues/2529>`_ beschrieben, bearbeite bitte deine Datei ``web/app.php`` und füge ihr diese Zeile ``libxml_disable_entity_loader(false);`` in Zeile 5 hinzu.
Dies ist ein Doctrine / PHP Fehler - nichts, woran wir etwas ändern können.

View file

@ -1,54 +0,0 @@
Filter
======
Um Artikel leichter zu erreichen, kannst du sie filtern.
Klicke auf das dritte Symbol in der oberen Leiste.
.. image:: ../../img/user/topbar.png
:alt: Obere Leiste
:align: center
Alle diese Filter können kombiniert werden.
.. image:: ../../img/user/filters.png
:alt: Kombiniere alle Filter
:align: center
Status
------
Nutze die Checkboxen, um einen archivierten oder favorisierten Artikel zu finden.
Vorschaubild
---------------
Hake diesen Filter an, wenn du Artikel mit einem Vorschaubild erhalten willst.
Sprache
-------
wallabag (via graby) kann die Artikelsprache erkennen. Es ist einfach für dich, Artikel
in einer bestimmten Sprache zu filtern.
HTTP status
-----------
You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc.
Lesezeit
--------
wallabag schätzt wieviel Zeit du brauchst, um einen Artikel zu lesen. Mit diesem Filter
kannst du zum Beispiel Artikel mit einer Lesezeit zwischen 2 und 5 Minuten finden.
Domainname
----------
Dank dieses Filters, kannst ud Artikel von der gleichen Domain finden.
Zum Beispiel tippst du in diesem Feld ``bbc.co.uk``, um Artikel dieser Website zu finden.
Erstellungsdatum
----------------
Wenn du Artikel speicherst, merkt sich wallabag das aktuelle Datum. So praktisch, um Aritkel, die
zwischen dem 1. und 31. Januar geschrieben sind, zu finden.

View file

@ -1,152 +0,0 @@
Migration von einem Drittanbieter
=================================
In wallabag 2.x kannst du Daten von folgenden Anbietern importieren:
- Pocket <#id1>`_
- Readability <#id2>`_
- Instapaper <#id4>`_
- wallabag 1.x <#id6>`_
- wallabag 2.x <#id7>`_
Wir haben zusätzlich `ein Skript für die Migration per Kommandozeile <#import-via-command-line-interface-cli>`_ geschrieben.
Da Importe eine Menge Zeit in Anspruch nehmen können, haben wir auch ein asynchrones Aufgabensystem entwickelt. `Du kannst die Dokumentation hier lesen <http://doc.wallabag.org/de/master/developer/asynchronous.html>`_ (für Experten).
Pocket
------
Erstelle eine neue Applikation in Pocket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Um deine Daten von Pocket zu importieren, nutzen wir die Pocket API. Du musst
eine neue Applikation auf ihrer Entwicklerwebsite erstellen, um fortzufahren.
* Erstelle eine neue Applikation `auf der Entwicklerwebsite <https://getpocket.com/developer/apps/new>`_
* Fülle die erforderlichen Felder aus: Name, Beschreibung, Berechtigungen (nur **abrufen**), Plattform
(**web**), akzeptiere die Nutzungsbedingungen und reiche deine neue Applikation ein
Pocket wird dir einen **Consumer Key** geben (z.B. `49961-985e4b92fe21fe4c78d682c1`).
Du musst den ``pocket_consumer_key`` in dem Abschnitt ``Import`` in dem ``Interne Einstellungen`` Menü
konfigurieren.
Jetzt ist alles in Ordnung, um von Pocket zu migrieren.
Importiere deine Daten in wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Klicke auf den ``Importieren`` Link im Menü, auf ``Inhalte importieren`` in dem Pocketabschnitt und
dann auf ``Verbinde mit Pocket und importieren Daten``.
Du musst wallabag erlauben, mit deinem Pocketaccount zu interagieren.
Deine Daten werden importiert. Datenimport kann ein sehr anspruchsvoller Prozess für deinen Server
sein (wir müssen daran arbeiten, um diesen Import zu verbessern).
Von Readability
----------------
Exportiere deine Readability Daten
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Auf der Seite Tools (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), klicke auf "Exportiere deine Daten" in dem Abschnitt "Daten Export". Du wirst eine E-Mail empfangen, um eine JSON Datei herunterladen zu können (Datei endet aber nicht auf .json).
Importiere deine Daten in wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Readability Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
Von Pinboard
-------------
Exportiere deine Pinboard Daten
~~~~~~~~~~~~~~~~~~~~~~~~~
Auf der Seite Backup (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_), klicke auf "JSON" in dem Abschnitt "Lesezeichen". Eine JSON Datei wird heruntergeladen (z.B. ``pinboard_export``).
Importiere deine Daten in wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Pinboard Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
Von Instapaper
---------------
Exportiere deine Instapaper Daten
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Auf der Seite Einstellungen (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), klicke auf "Download .CSV Datei" in dem Abschnitt "Export". Eine CSV Datei wird heruntergeladen (z.B. ``instapaper-export.csv``).
Importiere deine Daten in wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Klicke auf den ``Importieren`` Link im Menü, auf ``Importiere Inhalte`` in dem Instapaper Abschnitt und wähle dann deine JSON Datei aus und lade sie hoch.
Deine Daten werden importiert. Der Datenimport can ein beanspruchender Prozess für deinen Server sein.
wallabag 1.x
------------
Wenn du in der Vergangenheit wallabag 1.x genutzt hast, musst du deine Daten exportieren, bevor du auf wallabag 2.x umsteigst, da sich viel an der Anwendung und der Datenbank geändert hast. In deiner alten wallabag-installation kannst du deine Daten exportieren, indem du die Konfigurationsseite auf der alten wallabag-Instanz öffnest.
.. image:: ../../img/user/export_v1.png
:alt: Export aus wallabag 1.x
:align: center
.. note::
Wenn du mehrere Accounts auf der gleichen wallabag-Instanz hast, muss jeder Nutzer seine Daten aus 1.x exportieren und in 2.x importieren.
.. note::
Falls während des Exports oder des Imports Probleme auftreten sollten, scheue dich nicht, den `Support zu kontaktieren <http://gitter.im/wallabag/wallabag>`__.
Wenn du dann die JSON-Datei mit deinen Einträgen heruntergeladen hast, kannst du `wallabag 2 über die Standard-Prozedur installieren <http://doc.wallabag.org/en/master/user/installation.html>`__.
Nach dem Erstellen des Benutzeraccounts auf deiner neuen "wallabag 2.x"-Instanz, navigiere auf den Import-Bereich und wähle `Aus wallabag v1 importieren`. Wähle deine JSON-Datei und lade sie hoch.
.. image:: ../../img/user/import_wallabagv1.png
:alt: Import aus wallabag v1
:align: center
wallabag 2.x
------------
Gehe auf der alten wallabag-Instanz, die du vorher genutzt hast, auf `Alle Artikel` und exportiere diese dann als JSON.
.. image:: ../../img/user/export_v2.png
:alt: Export aus wallabag v2
:align: center
Nach dem Erstellen des Benutzeraccounts auf deiner neuen "wallabag 2.x"-Instanz, navigiere auf den Import-Bereich und wähle `Aus wallabag v2 importieren`. Wähle deine JSON-Datei und lade sie hoch.
.. note::
Falls während des Exports oder des Imports Probleme auftreten sollten, scheue dich nicht, den `Support zu kontaktieren <http://gitter.im/wallabag/wallabag>`__.
Import über die Kommandozeile (CLI)
-----------------------------------
Falls du auf deinem Server Zugriff auf die Kommandozeile hast, kannst du den folgenden Befehl ausführen, um deine Daten aus wallabag v1 zu importieren:
::
bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Bitte ersetze die Werte:
* ``1`` ist die Benutzer-ID in der Datenbank (die ID des ersten Benutzers ist immer 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` ist der Pfad zu deiner wallabag v1-Exportdatei
Wenn du alle Artikel als gelesen markieren möchtest, kannst du die ``--markAsRead``-Option hinzufügen.
Um eine wallabag 2.x-Datei zu importieren, musst du die Option ``--importer=v2`` hinzufügen.
Als Ergebnis wirst du so etwas erhalten:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---

View file

@ -1,349 +0,0 @@
Installation von wallabag
=========================
Voraussetzungen
---------------
wallabag ist kompatibel mit **PHP >= 5.6**, inkl. PHP 7.
.. note::
To install wallabag easily, we create a ``Makefile``, so you need to have the ``make`` tool.
wallabag nutzt eine große Anzahl an Bibliotheken, um zu funktionieren. Diese Bibliotheken müssen mit einem Tool namens Composer installiert werden. Du musst es installieren sofern du es bisher noch nicht gemacht hast.
Composer installieren:
::
curl -s https://getcomposer.org/installer | php
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden.
Du benötigst die folgenden Extensions damit wallabag funktioniert. Einige von diesen sind vielleicht schon in deiner Version von PHP aktiviert, somit musst du eventuell
nicht alle folgenden Pakete installieren.
- php-session
- php-ctype
- php-dom
- php-hash
- php-simplexml
- php-json
- php-gd
- php-mbstring
- php-xml
- php-tidy
- php-iconv
- php-curl
- php-gettext
- php-tokenizer
- php-bcmath
wallabag nutzt PDO, um sich mit der Datenbank zu verbinden, darum benötigst du eines der folgenden Komponenten:
- pdo_mysql
- pdo_sqlite
- pdo_pgsql
und dessen dazugehörigen Datenbankserver.
Installation
------------
Auf einem dedizierten Webserver (empfohlener Weg)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
::
git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install
Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
::
make run
und wallabag unter http://deineserverip:8000 erreichen.
.. tip::
Um Parameter mit Umgebungsvariable zu definieren, musst du die Variable mit dem ``SYMFONY__`` Präfix setzen. Zum Beispiel ``SYMFONY__DATABASE_DRIVER``. Du kannst einen Blick die `Symfony Dokumentation <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ werfen.
Auf einem geteilten Webhosting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wir stellen ein Paket inkl. aller Abhängigkeiten bereit.
Die Standardkonfiguration nutzt SQLite für die Datenbank. Wenn du diese Einstellung ändern willst, ändere bitte ``app/config/parameters.yml``.
Wir haben bereits einen Nutzer erstellt: Login und Passwort sind ``wallabag``.
.. caution:: Mit diesem Paket überprüft wallabag nicht die von der Applikation gebrauchten Exentions (diese Tests werden während ``composer install`` durchgeführt wenn du einen dedizierten Webserver hast, siehe oben).
Führe dieses Kommando aus, um das neueste Paket herunterzuladen und zu entpacken:
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
Du findest die `md5 Hashsumme des neuesten Pakets auf unserer Website <https://static.wallabag.org/releases/>`_.
Jetzt lies die Dokumentation, um einen Virtualhost zu erstellen, dann greife auf dein wallabag zu.
Wenn du die Datenbankkonfiguration eingestellt hast, MySQL oder PostgreSQL zu nutzen, musst du einen Nutzer über das folgende Kommando erstellen ``php bin/console wallabag:install --env=prod``.
Installation mit Docker
~~~~~~~~~~~~~~~~~~~~~~~
Wir stellen ein Docker Image zu Verfügung, um wallabag einfach zu installieren. Schaue in unser Repository in unserem `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__, um mehr Informationen zu erhalten.
Kommando, um den Container zu starten
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
docker pull wallabag/wallabag
Cloudron Installation
~~~~~~~~~~~~~~~~~~~~~~~~
Cloudron bietet einfache Webapp Installation auf deinem Server, mit Fokus auf System Administrator Automatisierung und Updates.
Ein Wallabag Paket ist direkt zur Installation durch den Cloudron Store verfügbar.
`Installiere wallabag auf deinem Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__
Virtualhosts
------------
Konfiguration von Apache
~~~~~~~~~~~~~~~~~~~~~~~~
Vergiss nicht, die *rewrite* mod von Apache zu aktivieren.
.. code-block:: bash
a2enmod rewrite && systemctl reload apache2
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren und du willst PHP als Apache Modul nutzen, dann ist hier ein vhost für wallabag:
::
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/wallabag/web
<Directory /var/www/wallabag/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeScript assets
# <Directory /var/www/wallabag>
# Options FollowSymlinks
# </Directory>
# optionally disable the RewriteEngine for the asset directories
# which will allow apache to simply reply with a 404 when files are
# not found instead of passing the request into the full symfony stack
<Directory /var/www/wallabag/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog /var/log/apache2/wallabag_error.log
CustomLog /var/log/apache2/wallabag_access.log combined
</VirtualHost>
Nach dem du Apache neugeladen oder neugestartet hast, solltest du nun wallabag unter http://domain.tld erreichen.
Konfiguration von Nginx
~~~~~~~~~~~~~~~~~~~~~~~
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag:
::
server {
server_name domain.tld www.domain.tld;
root /var/www/wallabag/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
# return 404 for all other php files not matching the front controller
# this prevents access to other php files you don't want to be accessible.
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}
Nach dem Neuladen oder Neustarten von nginx solltest du nun wallabag unter http://domain.tld erreichen.
.. tip::
Wenn du eine große Datei in wallabag importieren willst, solltest du diese Zeile zu deiner nginx Konfiguration hinzufügen ``client_max_body_size XM; # allows file uploads up to X megabytes``.
Konfiguration von lighttpd
~~~~~~~~~~~~~~~~~~~~~~~~~~
Angenommen du willst wallabag in das Verzeichnis ``/var/www/wallabag`` installieren, dann ist hier ein Rezept für wallabag (bearbeite deine ``lighttpd.conf`` und füge die Konfiguration dort ein):
::
server.modules = (
"mod_fastcgi",
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
)
server.document-root = "/var/www/wallabag/web"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
server.follow-symlink = "enable"
index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
dir-listing.activate = "disable"
url.rewrite-if-not-file = (
"^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
"^/([^?]*)" => "/app.php?=$1",
)
Rechte, um das Projektverzeichnis zu betreten
---------------------------------------------
Testumgebung
~~~~~~~~~~~~
Wenn wir nur wallabag testen wollen, führen wir nur das Kommando ``php bin/console server:run --env=prod`` aus, um unsere wallabag Instanz zu starten und alles wird geschmeidig laufen, weil der Nutzer, der das Projekt gestartet hat, den aktuellen Ordner ohne Probleme betreten kann.
Produktionsumgebung
~~~~~~~~~~~~~~~~~~~
Sobald wir Apache oder Nginx nutzen, um unsere wallabag Instanz zu erreichen, und nicht das Kommando ``php bin/console server:run --env=prod`` nutzen, sollten wir dafür sorgen, die Rechte vernünftig zu vergeben, um die Ordner des Projektes zu schützen.
Um dies zu machen, muss der Ordner, bekannt als ``DocumentRoot`` (bei Apache) oder ``root`` (bei Nginx), von dem Apache-/Nginx-Nutzer zugänglich sein. Sein Name ist meist ``www-data``, ``apache`` oder ``nobody`` (abhängig vom genutzten Linuxsystem).
Der Ordner ``/var/www/wallabag/web`` musst dem letztgenannten zugänglich sein. Aber dies könnte nicht genug sein, wenn wir nur auf diesen Ordner achten, weil wir eine leere Seite sehen könnten oder einen Fehler 500, wenn wir die Homepage des Projekt öffnen.
Dies kommt daher, dass wir die gleichen Rechte dem Ordner ``/var/www/wallabag/var`` geben müssen, so wie wir es für den Ordner ``/var/www/wallabag/web`` gemacht haben. Somit beheben wir das Problem mit dem folgenden Kommando:
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/var
Es muss analog für die folgenden Ordner ausgeführt werden
* /var/www/wallabag/bin/
* /var/www/wallabag/app/config/
* /var/www/wallabag/vendor/
* /var/www/wallabag/data/
durch Eingabe der Kommandos
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/bin
chown -R www-data:www-data /var/www/wallabag/app/config
chown -R www-data:www-data /var/www/wallabag/vendor
chown -R www-data:www-data /var/www/wallabag/data/
ansonsten wirst du früher oder später folgenden Fehlermeldung sehen:
.. code-block:: bash
Unable to write to the "bin" directory.
file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
Zusätzliche Regeln für SELinux
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wenn SELinux in deinem System aktiviert ist, wirst du zusätzliche Kontexte konfigurieren müssen damit wallabag ordentlich funktioniert. Um zu testen, ob SELinux aktiviert ist, führe einfach folgendes aus:
``getenforce``
Dies wird ``Enforcing`` ausgeben, wenn SELinux aktiviert ist. Einen neuen Kontext zu erstellen, erfordert die folgende Syntax:
``semanage fcontext -a -t <context type> <full path>``
Zum Beispiel:
``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
Dies wird rekursiv den httpd_sys_content_t Kontext auf das wallabag Verzeichnis und alle darunterliegenden Dateien und Ordner anwenden. Die folgenden Regeln werden gebraucht:
+-----------------------------------+----------------------------+
| Vollständiger Pfad | Kontext |
+===================================+============================+
| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
+-----------------------------------+----------------------------+
Nach dem diese Kontexte erstellt wurden, tippe das folgende, um deine Regeln anzuwenden:
``restorecon -R -v /var/www/wallabag``
Du kannst deine Kontexte in einem Verzeichnis überprüfen, indem du ``ls -lZ`` tippst und alle deine aktuellen Regeln mit ``semanage fcontext -l -C`` überprüfst.
Wenn du das vorkonfigurierte latest-v2-package installierst, dann ist eine weitere Regel während der Installation nötig:
``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
Nachdem du erfolgreich dein wallabag erreichst und die Installation fertiggestellt hast, kann dieser Kontext entfernt werden:
::
semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
retorecon -R -v /var/www/wallabag/var

View file

@ -1,95 +0,0 @@
Was bedeuten die Parameter?
===========================
Standardeinstellungen der `parameters.yml`
------------------------------------------
Dies ist die letzte standardisierte Version der `app/config/parameters.yml`-Datei. Stelle sicher, dass sich deine mit dieser ähnelt.
Wenn du nicht weißt, welchen Wert du setzen sollst, belasse es bei dem Standardwert.
.. code-block:: yml
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: root
database_password: null
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
database_table_prefix: wallabag_
database_socket: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
fosuser_registration: true
fosuser_confirmation: true
from_email: no-reply@wallabag.org
rss_limit: 50
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
redis_scheme: tcp
redis_host: localhost
redis_port: 6379
redis_path: null
redis_password: null
Bedeutung von jedem Parameter
-----------------------------
.. csv-table:: Datenbankparameter
:header: "Name", "Standardwert", "Beschreibung"
"database_driver", "pdo_sqlite", "Sollte pdo_sqlite oder pdo_mysql oder pdo_pgsql sein"
"database_host", "127.0.0.1", "Hostadresse deiner Datenbank (normalerweise localhost oder 127.0.0.1)"
"database_port", "~", "Port deiner Datenbank (Du kannst ``~`` stehen lassen, um den Standardport zu nutzen)"
"database_name", "symfony", "Benenne deine Datenbank"
"database_user", "root", "Benutzer, der Schreibrecht in der Datenbank hat"
"database_password", "~", "Passwort des Benutzers"
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "nur für SQLite, definiere, wo die Datenbankdatei abgelegt werden soll. Lass den Parameter leer für andere Datenbanktypen."
"database_table_prefix", "wallabag_", "alle wallabag Tabellen erhalten diesen Präfix im Namen. Du kannst einen ``_`` dafür im Präfix nutzen, um das zu verdeutlichen."
"database_socket", "null", "Wenn deine Datenbank einen Socket statt TCP nutzt, schreibe hier den Pfad zum Socket hin (andere Verbindungsparameter werden dann ignoriert."
.. csv-table:: Konfiguration, um mit wallabag E-Mails senden zu können
:header: "Name", "Standardwert", "Beschreibung"
"mailer_transport", "smtp", "Die exakte Transportmethode, um E-Mails zuzustellen. Gültige Werte sind: smtp, gmail, mail, sendmail, null (was das Mailen deaktivert)"
"mailer_host", "127.0.0.1", "Der Host, zu dem sich verbunden wird, wenn SMTP als Transport genutzt wird."
"mailer_user", "~", "Der Benutzername, wenn SMTP als Transport genutzt wird."
"mailer_password", "~", "Das Passwort, wenn SMTP als Transport genutzt wird."
.. csv-table:: Andere wallabag Optionen
:header: "Name", "Standardwert", "Beschreibung"
"locale", "en", "Standardsprache deiner wallabag Instanz (wie z.B. en, fr, es, etc.)"
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "Dieser String sollte einzigartig für deine Applikation sein und er wird genutzt, um sicherheitsrelevanten Operationen mehr Entropie hinzuzufügen."
"twofactor_auth", "true", "true, um Zwei-Faktor-Authentifizierung zu aktivieren"
"twofactor_sender", "no-reply@wallabag.org", "E-Mail-Adresse des Senders der Mails mit dem Code für die Zwei-Faktor-Authentifizierung"
"fosuser_registration", "true", "true, um die Registrierung für jedermann zu aktivieren"
"fosuser_confirmation", "true", "true, um eine Bestätigungsmail für jede Registrierung zu senden"
"from_email", "no-reply@wallabag.org", "E-Mail-Adresse, die im Absenderfeld jeder Mail genutzt wird"
"rss_limit", "50", "Artikellimit für RSS Feeds"
.. csv-table:: RabbitMQ Konfiguration
:header: "Name", "Standardwert", "Beschreibung"
"rabbitmq_host", "localhost", "Host deines RabbitMQ"
"rabbitmq_port", "5672", "Port deines RabbitMQ"
"rabbitmq_user", "guest", "Benutzer, der die Queue lesen kann"
"rabbitmq_password", "guest", "Passwort dieses Benutzers"
.. csv-table:: Redis Konfiguration
:header: "Name", "Standardwert", "Beschreibung"
"redis_scheme", "tcp", "Bestimmt das Protokoll, dass genutzt wird, um mit Redis zu kommunizieren. Gültige Werte sind: tcp, unix, http"
"redis_host", "localhost", "IP oder Hostname des Zielservers (ignoriert bei Unix Schema)"
"redis_port", "6379", "TCP/IP Port des Zielservers (ignoriert bei Unix Schema)"
"redis_path", "null", "Pfad zur Unix Domain Socket Datei, wenn Redis Unix Domain Sockets nutzt"
"redis_password", "null", "Kennwort, welches in der Redis-Server-Konfiguration definiert ist (Parameter `requirepass` in `redis.conf`)"

View file

@ -1,984 +0,0 @@
Migration 20161001072726
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
SQLite
^^^^^^
This migration can only be executed safely on MySQL or PostgreSQL.
Migration 20161022134138
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Migration down
""""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
PostgreSQL and SQLite
^^^^^^^^^^^^^^^^^^^^^
This migration only apply to MySQL.
Migration 20161024212538
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
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
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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)
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
DROP TABLE __temp__wallabag_oauth2_clients
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_635D765EA76ED395
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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))
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
DROP TABLE __temp__wallabag_oauth2_clients
Migration 20161031132655
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
Migration 20161104073720
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_created_at
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
Migration 20161106113822
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161117071626
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
Migration 20161118134328
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161122144743
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
Migration 20161122203647
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired
ALTER TABLE wallabag_user DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E5C05FB297
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E592FC23A8
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
Migration 20161128084725
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161128131503
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked
ALTER TABLE wallabag_user DROP credentials_expire_at
ALTER TABLE wallabag_user DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E592FC23A8
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E5C05FB297
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
Migration 20161214094402
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uuid uid VARCHAR(23)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uid uuid VARCHAR(23)
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uuid TO uid
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uid TO uuid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration down
""""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uuid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161214094403
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_uid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20170127093841
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred ON wallabag_entry
DROP INDEX IDX_entry_archived ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred
DROP INDEX IDX_entry_archived
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX uid
DROP INDEX created_at
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_archived
DROP INDEX IDX_entry_starred
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at
DROP INDEX uid
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX uid ON wallabag_entry (uid)

View file

@ -1,2 +0,0 @@
Tags
====

View file

@ -1,140 +0,0 @@
wallabag-Installation aktualisieren
===================================
Du wirst hier mehrere Wege finden, um deine wallabag zu aktualisieren:
- `von 2.1.x zu 2.2.x <#upgrade-von-2-1-x-zu-2-2-x>`_
- `von 2.0.x zu 2.1.1 <#upgrade-von-2-0-x-zu-2-1-1>`_
- `von 1.x zu 2.x <#upgrade-von-1-x>`_
Upgrade von 2.1.x zu 2.2.x
--------------------------
Upgrade auf einem dedizierten Webserver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Von 2.1.x:**
::
make update
php bin/console doctrine:migrations:migrate --no-interaction -e=prod
**Von 2.2.0:**
::
make update
Erklärungen über die Datenbankmigration
"""""""""""""""""""""""""""""""""""""""
Während des Updates migrieren wir die Datenbank.
Alle Datenbankmigrationen sind im Verzeichnis ``app/DoctrineMigrations`` gespeichert. Jede von ihnen kann einzeln ausgeführt werden:
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
Dies ist die Migrationsliste von 2.1.x auf 2.2.0:
* ``20161001072726``: Fremdschlüssel für das Zurücksetzen des Kontos hinzugefügt
* ``20161022134138``: Datenbank zum ``utf8mb4``-Encoding ändern (nur für MySQL)
* ``20161024212538``: ``user_id``-Spalte zu ``oauth2_clients`` hinzugefügt, um Benutzer davon abzuhalten, API-Clients anderer Nutzer zu löschen
* ``20161031132655``: Interne Einstellung für das (de-)aktivieren vom Bilder-Download hinzugefügt
* ``20161104073720``: ``created_at``-Index zur ``entry``-Tabelle hinzugefügt
* ``20161106113822``: ``action_mark_as_read``-Feld zur ``config``-Tabelle hinzugefügt
* ``20161117071626``: Interne Einstellung zum Teilen mit unmark.it hinzugefügt
* ``20161118134328``: ``http_status``-Feld zur ``entry``-Tabelle hinzugefügt
* ``20161122144743``: Interne Einstellung für das (de-)aktivieren zum Holen von Artikeln mit einer Paywall hinzugefügt
* ``20161122203647``: ``expired``- und ``credentials_expired``-Feld aus der ``user``-Tabelle entfernt
* ``20161128084725``: added ``list_mode`` field on ``config`` table
* ``20161128131503``: dropped ``locked``, ``credentials_expire_at`` and ``expires_at`` fields on ``user`` table
* ``20161214094402``: renamed ``uuid`` to ``uid`` on ``entry`` table
* ``20161214094403``: added ``uid`` index on ``entry`` table
* ``20170127093841``: added ``is_starred`` and ``is_archived`` indexes on ``entry`` table
Upgrade auf einem Shared Hosting
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sichere deine ``app/config/parameters.yml``-Datei.
Lade das letzte Release von wallabag herunter:
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
Du findest den `aktuellen MD5-Hash auf unserer Webseite <https://static.wallabag.org/releases/>`_.
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
Leere den ``var/cache``-Ordner.
Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist.
`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
Upgrade von 2.0.x zu 2.1.1
---------------------------
.. warning::
Mache eine Sicherung deines Pocket-Consumer-Key, falls hinzugefügt, da dieser nach dem Upgrade erneut hinzugefügt werden muss.
Upgrade auf einem dedizierten Webserver
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console doctrine:migrations:migrate --env=prod
php bin/console cache:clear --env=prod
Upgrade auf einem Shared Hosting
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sichere deine ``app/config/parameters.yml``-Datei.
Lade das 2.1.1-Release von wallabag herunter:
.. code-block:: bash
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
Extrahiere das Archiv in deinen wallabag-Ordner und ersetze die ``app/config/parameters.yml`` mit deiner.
Bitte überprüfe, dass deine ``app/config/parameters.yml`` alle notwendigen Parameter enthält. Eine Dokumentation darüber `findest du hier <http://doc.wallabag.org/de/master/user/parameters.html>`_.
Falls du SQLite nutzt, musst du außerdem deinen ``data/``-Ordner in die neue Installation kopieren.
Leere den ``var/cache``-Ordner.
Du musst einige SQL-Abfragen durchführen, um deine Datenbank zu aktualisieren. Wir gehen in diesem Fall davon aus, dass das Tabellenpräfix ``wallabag_`` ist und eine MySQL-Datenbank verwendet wird:
.. code-block:: sql
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
Upgrade von 1.x
---------------
Es gibt kein automatisiertes Skript, um wallabag 1.x auf wallabag 2.x zu aktualisieren. Du musst:
- deine Daten exportieren
- wallabag 2.x installieren (Dokumentation <http://doc.wallabag.org/en/master/user/installation.html>`_ )
- die Daten in die neue Installation importieren (`Dokumentation <http://doc.wallabag.org/en/master/user/import.html>`_ )

View file

@ -1,55 +0,0 @@
# -*- coding: utf-8 -*-
#
# wallabag documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
import sys
import os
extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag'
copyright = u'2013-2017, Nicolas Lœuillet - MIT Licence'
version = '2.3.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'wallabagdoc'
latex_elements = {
}
latex_documents = [
('index', 'wallabag.tex', u'wallabag Documentation',
u'Nicolas Lœuillet', 'manual'),
]
man_pages = [
('index', 'wallabag', u'wallabag Documentation',
[u'Nicolas Lœuillet'], 1)
]
texinfo_documents = [
('index', 'wallabag', u'wallabag Documentation',
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
'Miscellaneous'),
]
##### Guzzle sphinx theme
import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}
# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

File diff suppressed because one or more lines are too long

View file

@ -1,160 +0,0 @@
Asynchronous tasks
==================
In order to launch asynchronous tasks (useful for huge imports for example), we can use RabbitMQ or Redis.
Install RabbitMQ for asynchronous tasks
---------------------------------------
Requirements
^^^^^^^^^^^^
You need to have RabbitMQ installed on your server.
Installation
^^^^^^^^^^^^
.. code:: bash
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Configuration and launch
^^^^^^^^^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
Stop RabbitMQ
^^^^^^^^^^^^^
.. code:: bash
rabbitmqctl stop
Configure RabbitMQ in wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Edit your ``app/config/parameters.yml`` file to edit RabbitMQ configuration. The default one should be ok:
.. code:: yaml
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10 # read http://www.rabbitmq.com/consumer-prefetch.html
Enable RabbitMQ in wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^
In internal settings, in the **Import** section, enable RabbitMQ (with the value 1).
Launch RabbitMQ consumer
^^^^^^^^^^^^^^^^^^^^^^^^
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
.. code:: bash
# for Pocket import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# for Readability import
bin/console rabbitmq:consumer -e=prod import_readability -w
# for Instapaper import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# for wallabag v1 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# for wallabag v2 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# for Firefox import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# for Chrome import
bin/console rabbitmq:consumer -e=prod import_chrome -w
Install Redis for asynchronous tasks
------------------------------------
In order to launch asynchronous tasks (useful for huge imports for example), we can use Redis.
Requirements
^^^^^^^^^^^^
You need to have Redis installed on your server.
Installation
^^^^^^^^^^^^
.. code:: bash
apt-get install redis-server
Launch
^^^^^^
The server might be already running after installing, if not you can launch it using:
.. code:: bash
redis-server
Configure Redis in wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Edit your ``app/config/parameters.yml`` file to edit Redis configuration. The default one should be ok:
.. code:: yaml
redis_host: localhost
redis_port: 6379
Enable Redis in wallabag
^^^^^^^^^^^^^^^^^^^^^^^^
In internal settings, in the **Import** section, enable Redis (with the value 1).
Launch Redis consumer
^^^^^^^^^^^^^^^^^^^^^
Depending on which service you want to import from you need to enable one (or many if you want to support many) cron job:
.. code:: bash
# for Pocket import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# for Readability import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# for Instapaper import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# for wallabag v1 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# for wallabag v2 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# for Firefox import
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# for Chrome import
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
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 :
.. code:: bash
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12

View file

@ -1,30 +0,0 @@
Console Commands
================
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.
Each command has a help accessible through `bin/console help %command%`.
.. note::
If you're in a production environment, remember to add `-e prod` to each command.
Notable commands
----------------
* `assets:install`: May be helpful if assets are missing.
* `cache:clear`: should be run after each update (included in `make update`).
* `doctrine:migrations:status`: Output the status of your database migrations.
* `fos:user:activate`: Manually activate an user.
* `fos:user:change-password`: Change a password for an user.
* `fos:user:create`: Create an user.
* `fos:user:deactivate`: Deactivate an user (not deleted).
* `fos:user:demote`: Removes a role from an user, typically admin rights.
* `fos:user:promote`: Adds a role to an user, typically admin rights.
* `rabbitmq:*`: May be useful if you're using RabbitMQ.
* `wallabag:clean-duplicates`: Removes all entry duplicates for one user or all users
* `wallabag:export`: Exports all entries for an user. You can choose the output path of the file.
* `wallabag:import`: Import entries to different formats to an user account.
* `wallabag:import:redis-worker`: Useful if you use Redis.
* `wallabag:install`: (re)Install wallabag
* `wallabag:tag:all`: Tag all entries for an user using his/her tagging rules.

View file

@ -1,51 +0,0 @@
Run wallabag in docker-compose
==============================
In order to run your own development instance of wallabag, you may
want to use the pre-configured docker compose files.
Requirements
------------
Make sure to have `Docker
<https://docs.docker.com/installation/ubuntulinux/>`__ and `Docker
Compose <https://docs.docker.com/compose/install/>`__ availables on
your system and up to date.
Switch DBMS
-----------
By default, wallabag will start with a SQLite database.
Since wallabag provides support for Postgresql and MySQL, docker
containers are also available for these ones.
In ``docker-compose.yml``, for the chosen DBMS uncomment:
- the container definition (``postgres`` or ``mariadb`` root level
block)
- the container link in the ``php`` container
- the container env file in the ``php`` container
In order to keep running Symfony commands on your host (such as
``wallabag:install``), you also should:
- source the proper env files on your command line, so variables
like ``SYMFONY__ENV__DATABASE_HOST`` will exist.
- create a ``127.0.0.1 rdbms`` on your system ``hosts`` file
Run wallabag
------------
#. Fork and clone the project
#. Edit ``app/config/parameters.yml`` to replace ``database_*``
properties with commented ones (with values prefixed by ``env.``)
#. ``composer install`` the project dependencies
#. ``php bin/console wallabag:install`` to create the schema
#. ``docker-compose up`` to run the containers
#. Finally, browse to http://localhost:8080/ to find your freshly
installed wallabag.
At various step, you'll probably run into UNIX permission problems,
bad paths in generated cache, etc…
Operations like removing cache files or changing files owners might
be frequently required, so don't be afraid !

View file

@ -1,12 +0,0 @@
Contribute to this documentation
================================
Sources of our documentation are here https://github.com/wallabag/wallabag/tree/master/docs
We use `ReadTheDocs
<https://readthedocs.org>`__ to generate it.
Pages are written in `Restructured Text
<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.
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.

View file

@ -1,33 +0,0 @@
Tips for front-end developers
=============================
Starting from version 2.3, wallabag uses webpack to bundle its assets.
Dev mode
--------
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,...).
Live reload
-----------
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.
.. note::
Don't forget to put back ``use_webpack_dev_server`` to ``false`` when not using the live reload feature.
Production builds
-----------------
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``.
.. note::
Don't forget to generate production builds before committing !
Code style
----------
Code style is checked by two tools : stylelint for (S)CSS and eslint for JS. ESlint config is based on the Airbnb base preset.

View file

@ -1,65 +0,0 @@
Articles behind a paywall
=========================
wallabag can fetch articles from websites which use a paywall system.
Enable paywall authentication
-----------------------------
In internal settings, as a wallabag administrator, in the **Article** section, enable authentication for websites with paywall (with the value 1).
Configure credentials in wallabag
---------------------------------
Edit your ``app/config/parameters.yml`` file to edit credentials for each website with paywall. For example, under Ubuntu:
``sudo -u www-data nano /var/www/html/wallabag/app/config/parameters.yml``
Here is an example for some french websites (be careful: don't use the "tab" key, only spaces):
.. code:: yaml
sites_credentials:
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
.. note::
These credentials will be shared between each user of your wallabag instance.
Parsing configuration files
---------------------------
.. note::
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.
Each parsing configuration file needs to be improved by adding ``requires_login``, ``login_uri``,
``login_username_field``, ``login_password_field`` and ``not_logged_in_xpath``.
Be careful, the login form must be in the page content when wallabag loads it. It's impossible for wallabag to be authenticated
on a website where the login form is loaded after the page (by ajax for example).
``login_uri`` is the action URL of the form (``action`` attribute in the form).
``login_username_field`` is the ``name`` attribute of the login field.
``login_password_field`` is the ``name`` attribute of the password field.
For example:
.. code::
title://div[@id="titrage-contenu"]/h1[@class="title"]
body: //div[@class="contenu-html"]/div[@class="page-pane"]
requires_login: yes
login_uri: http://www.arretsurimages.net/forum/login.php
login_username_field: username
login_password_field: password
not_logged_in_xpath: //body[@class="not-logged-in"]
Last step: clear the cache
--------------------------
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``

View file

@ -1,10 +0,0 @@
Testsuite
=========
To ensure wallabag development quality, we wrote tests with `PHPUnit <https://phpunit.de>`_.
If you contribute to the project (by translating the application, by fixing bugs or by adding a new feature), please write your own tests.
To launch wallabag testsuite, you need to install `ant <http://ant.apache.org>`_.
Then, execute this command ``make test``.

View file

@ -1,60 +0,0 @@
Translate wallabag
==================
wallabag web application
------------------------
Translation files
~~~~~~~~~~~~~~~~~
.. note::
As wallabag is mainly developed by a French team, please consider that french
translation is the most updated one and please copy it to create your own translation.
You can find translation files here: https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
You have to create ``messages.CODE.yml`` and ``validators.CODE.yml``, where CODE
is the ISO 639-1 code of your language (`see wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__).
Other files to translate:
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
You have to create ``THE_TRANSLATION_FILE.CODE.yml`` files.
Configuration file
~~~~~~~~~~~~~~~~~~
You have to edit `app/config/config.yml
<https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ to display
your language on Configuration page of wallabag (to allow users to switch to this new translation).
Under the ``wallabag_core.languages`` section, you have to add a new line with
your translation. For example:
::
wallabag_core:
...
languages:
en: 'English'
fr: 'Français'
For the first column (``en``, ``fr``, etc.), you have to add the ISO 639-1 code
of your language (see above).
For the second column, it's the name of your language. Just that.
wallabag documentation
----------------------
.. note::
Contrary to the web application, the main language for documentation is english.
Documentation files are stored here: https://github.com/wallabag/wallabag/tree/master/docs
You need to respect the ``en`` folder structure when you create your own translation.

View file

@ -1,53 +0,0 @@
wallabag documentation
======================
.. image:: ../img/wallabag.png
:alt: wallabag logo
:align: center
**wallabag** is a read-it-later application: it saves a web page by
keeping content only. Elements like navigation or ads are deleted.
The main documentation for this application is organized into a couple sections:
* :ref:`user-docs`
* :ref:`dev-docs`
The documentation is available in other languages:
* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
* `Dokumentation in Deutsch <http://doc.wallabag.org/de/master/>`_
.. _user-docs:
.. toctree::
:maxdepth: 2
:caption: User documentation
user/installation
user/upgrade
user/configuration
user/import
user/create_account
user/articles
user/errors_during_fetching
user/filters
user/tags
user/configuring_mobile
user/android
user/parameters
user/backup
user/faq
.. _dev-docs:
.. toctree::
:maxdepth: 2
:caption: Developer documentation
developer/api
developer/docker
developer/paywall
developer/documentation
developer/translate
developer/asynchronous

View file

@ -1,2 +0,0 @@
Sphinx>=1.3.0,<1.4.0
guzzle_sphinx_theme>=0.7.0,<0.8.0

View file

@ -1,95 +0,0 @@
Android application
===================
Purpose of this document
------------------------
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.
Steps to configure your app
---------------------------
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.
.. image:: ../../img/user/android_welcome_screen.en.png
:alt: Welcome screen
:align: center
Just confirm that message and you get redirected to the settings screen.
.. image:: ../../img/user/android_configuration_screen.en.png
:alt: Settings screen
:align: center
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.
.. image:: ../../img/user/android_configuration_filled_in.en.png
:alt: Filled in settings
:align: center
After you have filled in your data, push the button Connection test and wait for the test to finish.
.. image:: ../../img/user/android_configuration_connection_test.en.png
:alt: Connection test with your wallabag data
:align: center
The connection test should finish with success. If not, you need to fix this first until you proceed.
.. image:: ../../img/user/android_configuration_connection_test_success.en.png
:alt: Connection test successful
:align: center
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.
.. image:: ../../img/user/android_configuration_get_feed_credentials.en.png
:alt: Getting the feed credentials
:align: center
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.
.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
:alt: Getting feed credentials successful
:align: center
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.
.. image:: ../../img/user/android_configuration_scroll_bottom.en.png
:alt: Bottom of the settings screen
:align: center
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.
.. image:: ../../img/user/android_configuration_saved_feed_update.en.png
:alt: Settings saved the first time
:align: center
Finally after the synchronization finished successfully, you are presented to the list of unread articles.
.. image:: ../../img/user/android_unread_feed_synced.en.png
:alt: Filled article list cause feeds successfully synchronized
:align: center
Known limitations
-----------------
Two factor authentication (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Currently the Android application does not support two-factor authentication. You should disable that to get the application working.
Limited amount of articles with wallabag v2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
SSL/TLS encryption
~~~~~~~~~~~~~~~~~~
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.
References
----------
- `Source code of the Android application <https://github.com/wallabag/android-app>`_
- `Android Application on F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
- `Android Application on Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_

View file

@ -1,117 +0,0 @@
Articles
========
Save your first article
-----------------------
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>`_.
By using a bookmarklet
^^^^^^^^^^^^^^^^^^^^^^
On the ``Howto`` page, you have a ``Bookmarklet`` tab. Drag and drop the ``bag it!``
link to your bookmarks bar of your browser.
Now, each time you're reading an article on the web and you want to save it,
click on the ``bag it!`` link in your bookmarks bar. The article is saved.
By using the classic form
^^^^^^^^^^^^^^^^^^^^^^^^^
In the top bar of your screen, you have 3 icons. With the first one, a plus sign,
you can easily save a new article.
.. image:: ../../img/user/topbar.png
:alt: Top bar
:align: center
Click on it to display a new field, paste the article URL inside and press your
``Return`` key. The article is saved.
By using a browser add-on
^^^^^^^^^^^^^^^^^^^^^^^^^
Firefox
"""""""
You can download the `Firefox addon here <https://addons.mozilla.org/firefox/addon/wallabagger/>`_.
Chrome
""""""
You can download the `Chrome addon here <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr>`_.
By using your smartphone application
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Android
"""""""
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>`_.
Windows Phone
"""""""""""""
You can downlaod the `Windows Phone application here <https://www.microsoft.com/store/apps/9nblggh5x3p6>`_.
Download your articles
----------------------
You can download each article in several formats: ePUB, MOBI, PDF, XML, JSON, CSV.
On the article view, click on this icon, in the sidebar:
.. image:: ../../img/user/download_article.png
:alt: download article
:align: center
You can also download a full category (unread, starred, archive) in these formats.
For example, on **Unread** view, click on this icon in the top bar:
.. image:: ../../img/user/download_articles.png
:alt: download articles
:align: center
Share your articles
-------------------
When you're reading an article, you can share it. Just click on the share button:
.. image:: ../../img/user/share.png
:alt: share article
:align: center
Now, you can share the article:
- with a public URL (you'll have a light view of the article)
- with a tweet
- into your Shaarli
- into your Scuttle
- with a post in Diaspora*
- to Carrot
- with an email
Annotate your articles
----------------------
In each article you read, you can write annotations. It's easier to understand with some pictures.
Select the part of the article that you want to annotate and click on the pencil:
.. image:: ../../img/user/annotations_1.png
:alt: Select your text
:align: center
Then, write your annotation:
.. image:: ../../img/user/annotations_2.png
:alt: Write your annotation
:align: center
The text is now highlighted and you can read your annotation if you move the mouse cursor over it.
.. image:: ../../img/user/annotations_3.png
:alt: Read your annotation
:align: center
You can create as many annotations as you wish.

View file

@ -1,26 +0,0 @@
Backup wallabag
===============
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.
This articles describes what you need to backup.
Basic settings
--------------
wallabag stores some basic parameters (like SMTP server or database backend) in the file `app/config/parameters.yml`.
Database
--------
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.
Here's some examples:
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
SQLite
~~~~~~
To backup the SQLite database, you just need to copy the directory `data/db` from the wallabag application directory.
Images
------
The images retrieved by wallabag are stored under `web/assets/images` (the images storage will be implemented in wallabag 2.2).

View file

@ -1,132 +0,0 @@
Configuration
=============
Now you're logged in, it's time to configure your account as you want.
Click on ``Config`` menu. You have five tabs: ``Settings``, ``RSS``,
``User information``, ``Password`` and ``Tagging rules``.
Settings
--------
Theme
~~~~~
wallabag is customizable. You can choose your prefered theme here. The default theme is
``Material``, it's the theme used in the documentation screenshots.
Items per page
~~~~~~~~~~~~~~
You can change the number of articles displayed on each page.
Reading speed
~~~~~~~~~~~~~
wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are
a fast or a slow reader. wallabag will recalculate the reading time for each article.
Where do you want to be redirected after mark an article as read?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Each time you'll do some actions (after marking an article as read/favorite,
after deleting an article, after removing a tag from an entry), you can be redirected:
- To the homepage
- To the current page
Language
~~~~~~~~
You can change the language of wallabag interface.
RSS
---
wallabag provides RSS feeds for each article status: unread, starred and archive.
Firstly, you need to create a personal token: click on ``Create your token``.
It's possible to change your token by clicking on ``Reset your token``.
Now you have three links, one for each status: add them into your favourite RSS reader.
You can also define how many articles you want in each RSS feed (default value: 50).
There is also a pagination available for these feeds. You can add ``?page=2`` to jump to the second page.
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.
User information
----------------
You can change your name, your email address and enable ``Two factor authentication``.
If the wallabag instance has more than one enabled user, you can delete your account here. **Take care, we delete all your data**.
Two factor authentication (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Two-factor authentication (also known as 2FA) is a technology patented in 1984
that provides identification of users by means of the combination of two different components.
https://en.wikipedia.org/wiki/Two-factor_authentication
**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).
If you enable 2FA, each time you want to login to wallabag, you'll receive
a code by email. You have to put this code on the following form.
.. image:: ../../img/user/2FA_form.png
:alt: Two factor authentication
:align: center
If you don't want to receive a code each time you want to login, you can check
the ``I'm on a trusted computer`` checkbox: wallabag will remember you for 15 days.
Password
--------
You can change your password here (8 characters minimum).
Tagging rules
-------------
If you want to automatically assign a tag to new articles, this part
of the configuration is for you.
What does « tagging rules » mean?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
They are rules used by wallabag to automatically tag new entries.
Each time a new entry is added, all the tagging rules will be used to add
the tags you configured, thus saving you the trouble to manually classify your entries.
How do I use them?
~~~~~~~~~~~~~~~~~~
Let assume you want to tag new entries as *« short reading »* when
the reading time is inferior to 3 minutes.
In that case, you should put « readingTime <= 3 » in the **Rule** field
and *« short reading »* in the **Tags** field.
Several tags can added simultaneously by separating them by a comma: *« short reading, must read »*.
Complex rules can be written by using predefined operators:
if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long reading, github »*.
Which variables and operators can I use to write rules?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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"``):
=========== ============================================== ========== ==========
Variable Meaning Operator Meaning
----------- ---------------------------------------------- ---------- ----------
title Title of the entry <= Less than…
url URL of the entry < Strictly less than…
isArchived Whether the entry is archived or not => Greater than…
isStarred Whether the entry is starred or not > Strictly greater than…
content The entry's content = Equal to…
language The entry's language != Not equal to…
mimetype The entry's mime-type OR One rule or another
readingTime The estimated entry's reading time, in minutes AND One rule and another
domainName The domain name of the entry matches Tests that a subject is matches a search (case-insensitive). Example: title matches "football"
notmatches Tests that a subject is not matches a search (case-insensitive). Example: title notmatches "football"
=========== ============================================== ========== ==========

View file

@ -1,13 +0,0 @@
Configuring mobile apps to work with wallabag
=============================================
Steps to configure the app
--------------------------
- 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.
- 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``.
- It's also going to ask for the aforementioned ``Client ID`` and ``secret``. Please insert those in the text fields, when asked.
- Lastly you need to provide your ``username`` and ``password``. These are the same credentials you use to login in to wallabag.
Please also have a look at `Android <android.html>`_ page. Especially the section on *known limitations*.

View file

@ -1,42 +0,0 @@
Create an account and authentication
====================================
Register
--------
On the login page, click on ``Register`` button.
.. image:: ../../img/user/registration_form.png
:alt: Registration form
:align: center
You have to fill the form. Please sure to type a valid email address,
we'll send you an activation email.
.. image:: ../../img/user/sent_email.png
:alt: Email was sent to activate account
:align: center
Check your inbox, you now have a new mail with a link like this
``http://wallabag/register/confirm/Ba19wokGovN-DdBQNfg4YgRkUQWRP4-k2g0Bk-hBTX4``.
Click on it to activate your account.
Your account is now activated.
.. image:: ../../img/user/activated_account.png
:alt: Welcome on board!
:align: center
Login
-----
Your account is now enabled, congratulations!
To login to wallabag, fill the form on login page.
If you are on your personal computer and you want to stay connected,
you can check the ``Keep me logged in`` checkbox: wallabag will remember you for one year.
.. image:: ../../img/user/login_form.png
:alt: Login form
:align: center

View file

@ -1,37 +0,0 @@
Errors during fetching articles
===============================
Why does the fetch of an article fail?
--------------------------------------
There may be several reasons:
- network problem
- wallabag can't fetch content due to the website structure
How can I help to fix that?
---------------------------
You can try to fix this problem by yourself (so we can be focused on improving wallabag internally instead of writing siteconfig :) ).
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).
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).
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>`_.
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.
Repeat until you have something ok.
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.
How can I try to re-fetch this article?
---------------------------------------
If wallabag failed when fetching an article, you can click on the reload button
(the third on the below picture).
.. image:: ../../img/user/refetch.png
:alt: Refetch content
:align: center

View file

@ -1,55 +0,0 @@
Frequently Asked Questions
==========================
During the installation, I got the error ``Error Output: sh: 1: @post-cmd: not found``
--------------------------------------------------------------------------------------
It seems you have a problem with your ``composer`` installation. Try to uninstall and reinstall it.
`Read the documentation about composer to know how to install it
<https://getcomposer.org/doc/00-intro.md>`__.
I can't validate the registration form
--------------------------------------
Ensure that all fields are properly filled:
* valid email address
* same passwords in two fields
I'm not receiving my activation email
-------------------------------------
Are you sure your email address was correct? Did you check your spam folder?
If you still don't see the activation email, please ensure that you have
installed and properly configured a mail transfer agent. Be sure to include a
firewall rule for SMTP. E.g., if using firewalld:
::
firewall-cmd --permanent --add-service=smtp
firewall-cmd --reload
Lastly, if you have SELinux enabled, set the following rule:
``setsebool -P httpd_can_sendmail 1``
When I click on the activation link, I've got this message: ``The user with confirmation token "DtrOPfbQeVkWf6N" does not exist``.
----------------------------------------------------------------------------------------------------------------------------------
You already enabled your account or the URL of the activation email is wrong.
I forgot my password
--------------------
You can reset your password by clicking on ``Forgot your password?`` link,
on the login page. Then, fill the form with your email address or your username,
you'll receive an email to reset your password.
I've got the ``failed to load external entity`` error when I try to install wallabag
------------------------------------------------------------------------------------
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.
This is a Doctrine / PHP bug, nothing we can do about it.

View file

@ -1,54 +0,0 @@
Retrieve your articles thanks to filters
========================================
To retrieve articles easily, you can use filters.
Click on the third icon in the top bar.
.. image:: ../../img/user/topbar.png
:alt: Top bar
:align: center
All these filters can be combined.
.. image:: ../../img/user/filters.png
:alt: Combine all filters
:align: center
Status
------
Use these checkboxes to find archived or starred articles.
Preview picture
---------------
Check this filter if you want to retrieve articles with a preview picture.
Language
--------
wallabag (via graby) can detect article language. It's easy to you to retrieve articles
written in a specific language.
HTTP status
-----------
You can retrieve the articles by filtering by their HTTP status code: 200, 404, 500, etc.
Reading time
------------
wallabag estimates how many time you need to read an article. With this filter,
you can for example find the articles with a reading time between 2 and 5 minutes.
Domain name
-----------
Thanks to this filter, you can retrieve the articles from the same domain name.
For example, in this field, type ``bbc.co.uk`` to retrieve the articles of this website.
Creation date
-------------
When you save an article, wallabag stored the current date. So handful to retrieve articles written
between 1st and 31th January for example.

View file

@ -1,159 +0,0 @@
Migrate from ...
================
In wallabag 2.x, you can import data from:
- `Pocket <#id1>`_
- `Readability <#id2>`_
- `Instapaper <#id4>`_
- `wallabag 1.x <#id6>`_
- `wallabag 2.x <#id7>`_
We also developed `a script to execute migrations via command-line interface <#import-via-command-line-interface-cli>`_.
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).
Pocket
------
Create a new application on Pocket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To import your data from Pocket, we use the Pocket API. You need to create
a new application on their developer website to continue.
* Create a new application `on the developer website <https://getpocket.com/developer/apps/new>`_
* Fill in the required fields: application name, application description,
permissions (only **retrieve**), platform (**web**), accept the terms of service
and submit your new application
Pocket will give you a **Consumer Key** (for example, `49961-985e4b92fe21fe4c78d682c1`).
You need to configure the ``pocket_consumer_key`` in the ``Config`` menu.
Now, all is fine to migrate from Pocket.
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Pocket section
and then on ``Connect to Pocket and import data``.
You need to authorize wallabag to interact with your Pocket account.
Your data will be imported. Data import can be a demanding process for your server.
Readability
-----------
Export your Readability data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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).
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Readability section
and then select your json file and upload it.
Your data will be imported. Data import can be a demanding process for your server.
From Pinboard
-------------
Export your Pinboard data
~~~~~~~~~~~~~~~~~~~~~~~~~
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``).
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Pinboard section
and then select your json file and upload it.
Your data will be imported. Data import can be a demanding process for your server.
From Instapaper
---------------
Export your Instapaper data
~~~~~~~~~~~~~~~~~~~~~~~~~~~
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``).
Import your data into wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Click on ``Import`` link in the menu, on ``Import contents`` in Instapaper section
and then select your CSV file and upload it.
Your data will be imported. Data import can be a demanding process for your server.
wallabag 1.x
------------
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.
.. image:: ../../img/user/export_v1.png
:alt: Exporting from wallabag v1
:align: center
.. note::
If you have multiple accounts on the same instance of wallabag, each user must export from v1 and import into v2 its data.
.. note::
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://gitter.im/wallabag/wallabag>`__.
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>`__.
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.
.. image:: ../../img/user/import_wallabagv1.png
:alt: Import from wallabag v1
:align: center
wallabag 2.x
------------
From the previous wallabag instance on which you were before, go to `All articles`, then export these articles as json.
.. image:: ../../img/user/export_v2.png
:alt: Export depuis wallabag v2
:align: center
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.
.. note::
If you encounter issues during the export or the import, don't hesitate to `ask for support <https://gitter.im/wallabag/wallabag>`__.
Import via command-line interface (CLI)
---------------------------------------
If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
::
bin/console wallabag:import username ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Please replace values:
* ``username`` is the user's username
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
.. note::
If you want to mark all these entries as read, you can add the ``--markAsRead`` option.
.. note::
To import a wallabag v2 file, you need to add the option ``--importer=v2``.
.. note::
If you want to pass the user id of the user instead of it's username, add the option ``--useUserId=true``.
You'll have this in return:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---

View file

@ -1,365 +0,0 @@
Install wallabag
================
Requirements
------------
wallabag is compatible with **PHP >= 5.6**, including PHP 7.
.. note::
To install wallabag easily, we provide a ``Makefile``, so you need to have the ``make`` tool.
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``).
Install Composer:
::
curl -s https://getcomposer.org/installer | php
You can find specific instructions `here <https://getcomposer.org/doc/00-intro.md>`__.
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.
- php-session
- php-ctype
- php-dom
- php-hash
- php-simplexml
- php-json
- php-gd
- php-mbstring
- php-xml
- php-tidy
- php-iconv
- php-curl
- php-gettext
- php-tokenizer
- php-bcmath
wallabag uses PDO to connect to the database, so you'll need one of the following:
- pdo_mysql
- pdo_sqlite
- pdo_pgsql
and its corresponding database server.
Installation
------------
On a dedicated web server (recommended way)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To install wallabag itself, you must run the following commands:
::
git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install
To start PHP's build-in server and test if everything did install correctly, you can do:
::
make run
And access wallabag at http://yourserverip:8000
.. tip::
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>`__.
On a shared hosting
~~~~~~~~~~~~~~~~~~~
We provide a package with all dependencies inside.
The default configuration uses SQLite for the database. If you want to change these settings, please edit ``app/config/parameters.yml``.
We already created a user: login and password are ``wallabag``.
.. 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).
Execute this command to download and extract the latest package:
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
You will find the `md5 hash of the latest package on our website <https://static.wallabag.org/releases/>`_.
Now, read the following documentation to create your virtual host, then access your wallabag.
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``.
Installation with Docker
~~~~~~~~~~~~~~~~~~~~~~~~
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.
Command to launch container
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
docker pull wallabag/wallabag
Installation on Cloudron
~~~~~~~~~~~~~~~~~~~~~~~~
Cloudron provides an easy way to install webapps on your server with a focus on sysadmin automation and keeping apps updated.
wallabag is packaged as a Cloudron app and available to install directly from the store.
`Install wallabag on your Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__
Virtual hosts
-------------
Configuration on Apache
~~~~~~~~~~~~~~~~~~~~~~~
Do not forget to active the *rewrite* mod of Apache
.. code-block:: bash
a2enmod rewrite && systemctl reload apache2
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:
::
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/wallabag/web
<Directory /var/www/wallabag/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeScript assets
# <Directory /var/www/wallabag>
# Options FollowSymlinks
# </Directory>
# optionally disable the RewriteEngine for the asset directories
# which will allow apache to simply reply with a 404 when files are
# not found instead of passing the request into the full symfony stack
<Directory /var/www/wallabag/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog /var/log/apache2/wallabag_error.log
CustomLog /var/log/apache2/wallabag_access.log combined
</VirtualHost>
.. tip:: Note for Apache 2.4, in the section `<Directory /var/www/wallabag/web>` you have to replace the directives :
::
AllowOverride None
Order Allow,Deny
Allow from All
by
::
Require All granted
After reloading or restarting Apache, you should now be able to access wallabag at http://domain.tld.
Configuration on Nginx
~~~~~~~~~~~~~~~~~~~~~~
Assuming you installed wallabag in the ``/var/www/wallabag`` folder, here's the recipe for wallabag :
::
server {
server_name domain.tld www.domain.tld;
root /var/www/wallabag/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
# return 404 for all other php files not matching the front controller
# this prevents access to other php files you don't want to be accessible.
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}
After reloading or restarting nginx, you should now be able to access wallabag at http://domain.tld.
.. tip::
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``.
Configuration on lighttpd
~~~~~~~~~~~~~~~~~~~~~~~~~
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):
::
server.modules = (
"mod_fastcgi",
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
)
server.document-root = "/var/www/wallabag/web"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
server.follow-symlink = "enable"
index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
dir-listing.activate = "disable"
url.rewrite-if-not-file = (
"^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
"^/([^?]*)" => "/app.php?=$1",
)
Rights access to the folders of the project
-------------------------------------------
Test environment
~~~~~~~~~~~~~~~~
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.
Production environment
~~~~~~~~~~~~~~~~~~~~~~
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.
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).
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.
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:
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/var
It has to be the same for the following folders
* /var/www/wallabag/bin/
* /var/www/wallabag/app/config/
* /var/www/wallabag/vendor/
* /var/www/wallabag/data/
by entering
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/bin
chown -R www-data:www-data /var/www/wallabag/app/config
chown -R www-data:www-data /var/www/wallabag/vendor
chown -R www-data:www-data /var/www/wallabag/data/
otherwise, sooner or later you will see these error messages:
.. code-block:: bash
Unable to write to the "bin" directory.
file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
Additional rules for SELinux
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:
``getenforce``
This will return ``Enforcing`` if SELinux is enabled. Creating a new context involves the following syntax:
``semanage fcontext -a -t <context type> <full path>``
For example:
``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
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:
+-----------------------------------+----------------------------+
| Full path | Context |
+===================================+============================+
| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
+-----------------------------------+----------------------------+
| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
+-----------------------------------+----------------------------+
After creating these contexts, enter the following in order to apply your rules:
``restorecon -R -v /var/www/wallabag``
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``.
If you're installing the preconfigured latest-v2-package, then an additional rule is needed during the initial setup:
``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
After you successfully access your wallabag and complete the initial setup, this context can be removed:
::
semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
retorecon -R -v /var/www/wallabag/var

View file

@ -1,96 +0,0 @@
What is the meaning of the parameters?
======================================
Default `parameters.yml` file
-----------------------------
Here is the last version of the default `app/config/parameters.yml` file. Be sure that yours respects this one.
If you don't know which value you need to set, please leave the default one.
.. code-block:: yml
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: root
database_password: null
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
database_table_prefix: wallabag_
database_socket: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
fosuser_registration: true
fosuser_confirmation: true
from_email: no-reply@wallabag.org
rss_limit: 50
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
redis_scheme: tcp
redis_host: localhost
redis_port: 6379
redis_path: null
redis_password: null
Meaning of each parameter
-------------------------
.. csv-table:: Database parameters
:header: "name", "default", "description"
"database_driver", "pdo_sqlite", "Should be pdo_sqlite or pdo_mysql or pdo_pgsql"
"database_host", "127.0.0.1", "host of your database (usually localhost or 127.0.0.1)"
"database_port", "~", "port of your database (you can leave ``~`` to use the default one)"
"database_name", "symfony", "name of your database"
"database_user", "root", "user that can write to this database"
"database_password", "~", "password of that user"
"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"
"database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
"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)"
"database_charset", "utf8mb4", "For PostgreSQL & SQLite you should use utf8, for MySQL use utf8mb4 which handle emoji"
.. csv-table:: Configuration to send emails from wallabag
:header: "name", "default", "description"
"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)"
"mailer_host", "127.0.0.1", "The host to connect to when using smtp as the transport."
"mailer_user", "~", "The username when using smtp as the transport."
"mailer_password", "~", "The password when using smtp as the transport."
.. csv-table:: Other wallabag's option
:header: "name", "default", "description"
"locale", "en", "Default language of your wallabag instance (like en, fr, es, etc.)"
"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."
"twofactor_auth", "true", "true to enable Two factor authentication"
"twofactor_sender", "no-reply@wallabag.org", "email of the email sender to receive the two factor code"
"fosuser_registration", "true", "true to enable public registration"
"fosuser_confirmation", "true", "true to send a confirmation by email for each registration"
"from_email", "no-reply@wallabag.org", "email address used in From: field in each email"
"rss_limit", "50", "limit for RSS feeds"
.. csv-table:: RabbitMQ configuration
:header: "name", "default", "description"
"rabbitmq_host", "localhost", "Host of your RabbitMQ"
"rabbitmq_port", "5672", "Port of your RabbitMQ"
"rabbitmq_user", "guest", "User that can read queues"
"rabbitmq_password", "guest", "Password of that user"
.. csv-table:: Redis configuration
:header: "name", "default", "description"
"redis_scheme", "tcp", "Specifies the protocol used to communicate with an instance of Redis. Valid values are: tcp, unix, http"
"redis_host", "localhost", "IP or hostname of the target server (ignored for unix scheme)"
"redis_port", "6379", "TCP/IP port of the target server (ignored for unix scheme)"
"redis_path", "null", "Path of the UNIX domain socket file used when connecting to Redis using UNIX domain sockets"
"redis_password", "null", "Password defined in the Redis server configuration (parameter `requirepass` in `redis.conf`)"

View file

@ -1,984 +0,0 @@
Migration 20161001072726
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
SQLite
^^^^^^
This migration can only be executed safely on MySQL or PostgreSQL.
Migration 20161022134138
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Migration down
""""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
PostgreSQL and SQLite
^^^^^^^^^^^^^^^^^^^^^
This migration only apply to MySQL.
Migration 20161024212538
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
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
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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)
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
DROP TABLE __temp__wallabag_oauth2_clients
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_635D765EA76ED395
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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))
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
DROP TABLE __temp__wallabag_oauth2_clients
Migration 20161031132655
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
Migration 20161104073720
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_created_at
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
Migration 20161106113822
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161117071626
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
Migration 20161118134328
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161122144743
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
Migration 20161122203647
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired
ALTER TABLE wallabag_user DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E5C05FB297
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E592FC23A8
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
Migration 20161128084725
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161128131503
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked
ALTER TABLE wallabag_user DROP credentials_expire_at
ALTER TABLE wallabag_user DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E592FC23A8
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E5C05FB297
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
Migration 20161214094402
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uuid uid VARCHAR(23)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uid uuid VARCHAR(23)
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uuid TO uid
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uid TO uuid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration down
""""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uuid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161214094403
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_uid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20170127093841
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred ON wallabag_entry
DROP INDEX IDX_entry_archived ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred
DROP INDEX IDX_entry_archived
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX uid
DROP INDEX created_at
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_archived
DROP INDEX IDX_entry_starred
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at
DROP INDEX uid
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX uid ON wallabag_entry (uid)

View file

@ -1,2 +0,0 @@
Tags
====

View file

@ -1,148 +0,0 @@
==================================
Upgrade your wallabag installation
==================================
You will find here different ways to upgrade your wallabag:
- `from 2.1.x to 2.2.x <#upgrading-from-2-1-x-to-2-2-x>`_
- `from 2.0.x to 2.1.1 <#upgrade-from-2-0-x-to-2-1-1>`_
- `from 1.x to 2.x <#from-wallabag-1-x>`_
*****************************
Upgrading from 2.1.x to 2.2.x
*****************************
Upgrade on a dedicated web server
=================================
**From 2.1.x:**
::
make update
php bin/console doctrine:migrations:migrate --no-interaction -e=prod
**From 2.2.0:**
::
make update
Explanations about database migrations
--------------------------------------
During the update, we execute database migrations.
All the database migrations are stored in ``app/DoctrineMigrations``. You can execute each migration individually:
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
You can also cancel each migration individually: ``bin/console doctrine:migrations:execute 20161001072726 --down --env=prod``.
Here is the migrations list for 2.1.x to 2.2.0 release:
* ``20161001072726``: added foreign keys for account resetting
* ``20161022134138``: converted database to ``utf8mb4`` encoding (for MySQL only)
* ``20161024212538``: added ``user_id`` column on ``oauth2_clients`` to prevent users to delete API clients from other users
* ``20161031132655``: added the internal setting to enable/disable downloading pictures
* ``20161104073720``: added ``created_at`` index on ``entry`` table
* ``20161106113822``: added ``action_mark_as_read`` field on ``config`` table
* ``20161117071626``: added the internal setting to share articles to unmark.it
* ``20161118134328``: added ``http_status`` field on ``entry`` table
* ``20161122144743``: added the internal setting to enable/disable fetching articles with paywall
* ``20161122203647``: dropped ``expired`` and ``credentials_expired`` fields on ``user`` table
* ``20161128084725``: added ``list_mode`` field on ``config`` table
* ``20161128131503``: dropped ``locked``, ``credentials_expire_at`` and ``expires_at`` fields on ``user`` table
* ``20161214094402``: renamed ``uuid`` to ``uid`` on ``entry`` table
* ``20161214094403``: added ``uid`` index on ``entry`` table
* ``20170127093841``: added ``is_starred`` and ``is_archived`` indexes on ``entry`` table
Upgrade on a shared hosting
===========================
Backup your ``app/config/parameters.yml`` file.
Download the last release of wallabag:
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
You will find the `md5 hash of the latest package on our website <https://static.wallabag.org/releases/>`_.
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
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>`_.
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
Empty ``var/cache`` folder.
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.
You may encounter issues with indexes names: if so, please change queries with the correct index name.
`You can find all the queries here <http://doc.wallabag.org/en/master/user/query-upgrade-21-22.html>`_.
***************************
Upgrade from 2.0.x to 2.1.1
***************************
.. warning::
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.
Upgrade on a dedicated web server
=================================
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console doctrine:migrations:migrate --env=prod
php bin/console cache:clear --env=prod
Upgrade on a shared hosting
===========================
Backup your ``app/config/parameters.yml`` file.
Download the 2.1.1 release of wallabag:
.. code-block:: bash
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
(md5 hash of the 2.1.1 package: ``9584a3b60a2b2a4de87f536548caac93``)
Extract the archive in your wallabag folder and replace ``app/config/parameters.yml`` with yours.
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>`_.
If you use SQLite, you must also copy your ``data/`` folder inside the new installation.
Empty ``var/cache`` folder.
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:
.. code-block:: sql
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
*****************
From wallabag 1.x
*****************
There is no automatic script to update from wallabag 1.x to wallabag 2.x. You need to:
- export your data
- install wallabag 2.x (`read the installation documentation <http://doc.wallabag.org/en/master/user/installation.html>`_ )
- import data in this fresh installation (`read the import documentation <http://doc.wallabag.org/en/master/user/import.html>`_ )

View file

@ -1,55 +0,0 @@
# -*- coding: utf-8 -*-
#
# wallabag documentation build configuration file, created by
# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
import sys
import os
extensions = []
templates_path = ['_templates']
source_suffix = '.rst'
master_doc = 'index'
project = u'wallabag-fr'
copyright = u'2013-2017, Nicolas Lœuillet - MIT Licence'
version = '2.3.0'
release = version
exclude_patterns = ['_build']
pygments_style = 'sphinx'
html_theme = 'default'
html_static_path = ['_static']
htmlhelp_basename = 'wallabagfrdoc'
latex_elements = {
}
latex_documents = [
('index', 'wallabag-fr.tex', u'wallabag Documentation',
u'Nicolas Lœuillet', 'manual'),
]
man_pages = [
('index', 'wallabagfr', u'wallabag Documentation',
[u'Nicolas Lœuillet'], 1)
]
texinfo_documents = [
('index', 'wallabag', u'wallabag Documentation',
u'Nicolas Lœuillet', 'wallabag', 'wallabag is an opensource read-it-later.',
'Miscellaneous'),
]
##### Guzzle sphinx theme
import guzzle_sphinx_theme
html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
html_theme_path = guzzle_sphinx_theme.html_theme_path()
html_theme = 'guzzle_sphinx_theme'
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
}
# Register the theme as an extension to generate a sitemap.xml
extensions.append("guzzle_sphinx_theme")

File diff suppressed because one or more lines are too long

View file

@ -1,160 +0,0 @@
Tâches asynchrones
==================
Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser RabbitMQ ou Redis.
Installer RabbitMQ pour des tâches asynchrones
----------------------------------------------
Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser RabbitMQ.
Pré-requis
^^^^^^^^^^
Vous devez installer RabbitMQ sur votre serveur.
Installation
^^^^^^^^^^^^
.. code:: bash
wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
apt-key add rabbitmq-signing-key-public.asc
apt-get update
apt-get install rabbitmq-server
Configuration et démarrage
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
rabbitmq-server -detached
Arrêter RabbitMQ
^^^^^^^^^^^^^^^^
.. code:: bash
rabbitmqctl stop
Configurer RabbitMQ dans wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration RabbitMQ. Celle par défaut devrait convenir :
.. code:: yaml
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
rabbitmq_prefetch_count: 10 # lire http://www.rabbitmq.com/consumer-prefetch.html
Activer RabbitMQ dans wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dans les paramètres internes, section **Import**, activez RabbitMQ (avec la valeur 1).
Démarrer les clients RabbitMQ
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job :
.. code:: bash
# for Pocket import
bin/console rabbitmq:consumer -e=prod import_pocket -w
# for Readability import
bin/console rabbitmq:consumer -e=prod import_readability -w
# for Instapaper import
bin/console rabbitmq:consumer -e=prod import_instapaper -w
# for wallabag v1 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
# for wallabag v2 import
bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
# for Firefox import
bin/console rabbitmq:consumer -e=prod import_firefox -w
# for Chrome import
bin/console rabbitmq:consumer -e=prod import_chrome -w
Installer Redis pour des tâches asynchrones
-------------------------------------------
Pour lancer des tâches asynchrones (utile pour des imports importants par exemple), nous pouvons utiliser Redis.
Pré-requis
^^^^^^^^^^
Vous devez installer Redis sur votre serveur.
Installation
^^^^^^^^^^^^
.. code:: bash
apt-get install redis-server
Démarrage
^^^^^^^^^
Le serveur devrait déjà être démarré après l'installation. Si ce n'est pas le cas, vous pouvez le démarrer ainsi :
.. code:: bash
redis-server
Configurer Redis dans wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Modifiez votre fichier ``app/config/parameters.yml`` pour éditer la configuration Redis. Celle par défaut devrait convenir :
.. code:: yaml
redis_host: localhost
redis_port: 6379
Activer Redis dans wallabag
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dans les paramètres internes, section **Import**, activez Redis (avec la valeur 1).
Démarrer les clients Redis
^^^^^^^^^^^^^^^^^^^^^^^^^^
En fonction du service dont vous souhaitez importer vos données, vous devez activer un (ou plusieurs si vous souhaitez en supporter plusieurs) cron job :
.. code:: bash
# for Pocket import
bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
# for Readability import
bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
# for Instapaper import
bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
# for wallabag v1 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
# for wallabag v2 import
bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
# for Firefox import
bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
# for Chrome import
bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
Si vous souhaitez démarrer l'import pour quelques messages uniquement, vous pouvez spécifier cette valeur en paramètre (ici 12) et le client va s'arrêter après le 12ème message :
.. code:: bash
bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12

View file

@ -1,30 +0,0 @@
Actions en ligne de commande
============================
wallabag a un certain nombre de commandes CLI pour effectuer des tâches. Vous pouvez lister toutes les commandes en exécutant `bin/console` dans le dossier d'installation de wallabag.
Chaque commande a une aide correspondante accessible via `bin/console help %command%`.
.. note::
Si vous êtes dans un environnement de production, souvenez-vous d'ajouter `-e prod` à chaque commande.
Commandes notables
------------------
* `assets:install`: Peut-être utile si les *assets* sont manquants.
* `cache:clear`: doit être exécuté après chaque mise à jour (appelé dans `make update`).
* `doctrine:migrations:status`: Montre le statut de vos migrations de vos bases de données.
* `fos:user:activate`: Activer manuellement un utilisateur.
* `fos:user:change-password`: Changer le mot de passe pour un utilisateur.
* `fos:user:create`: Créer un utilisateur.
* `fos:user:deactivate`: Désactiver un utilisateur (non supprimé).
* `fos:user:demote`: Supprimer un rôle d'un utilisateur, typiquement les droits d'administration.
* `fos:user:promote`: Ajoute un rôle à un utilisateur, typiquement les droits d'administration.
* `rabbitmq:*`: Peut-être utile si vous utilisez RabbitMQ.
* `wallabag:clean-duplicates`: Supprime tous les articles dupliqués pour un utilisateur ou bien tous.
* `wallabag:export`: Exporte tous les articles pour un utilisateur. Vous pouvez choisir le chemin du fichier exporté.
* `wallabag:import`: Importe les articles en différents formats dans un compte utilisateur.
* `wallabag:import:redis-worker`: Utile si vous utilisez Redis.
* `wallabag:install`: (ré)Installer wallabag
* `wallabag:tag:all`: Tagger tous les articles pour un utilisateur ou une utilisatrice en utilisant ses règles de tags automatiques.

View file

@ -1,50 +0,0 @@
Exécuter wallabag avec docker-compose
=====================================
Pour faire tourner votre propre instance de développement de wallabag, vous pouvez
utiliser les fichiers docker pré-configurés.
Pré-requis
----------
Soyez sur d'avoir `Docker
<https://docs.docker.com/installation/ubuntulinux/>`__ et `Docker
Compose <https://docs.docker.com/compose/install/>`__ installés et à jour sur votre
système.
Changer de SGBD
---------------
Par défaut, wallabag fonctionne avec une base de données SQLite.
Depuis que wallabag supporte Postgresql et MySQL, les conteneurs Docker sont
aussi disponibles pour ces SGBD.
Dans ``docker-compose.yml``, en fonction de votre SGBD, décommentez :
- la définition du conteneur (le block racine ``postgres`` ou ``mariadb``)
- le conteneur ``links`` dans le conteneur ``php``
- le conteneur ``env_file`` dans le conteneur ``php``
Pour que les commandes Symfony (par exemple ``wallabag:install``) continuent de
fonctionner sur votre système, vous devez aussi :
- charger le bon fichier d'environnement dans votre ligne de commandes (``source``),
pour que les variables comme ``SYMFONY__ENV__DATABASE_HOST`` existent.
- ajouter une ligne ``127.0.0.1 rdbms`` dans votre fichier ``hosts``
Exécuter wallabag
-----------------
#. Forker et cloner le projet
#. Editer ``app/config/parameters.yml`` pour remplacer les propriétés ``database_*``
par les lignes commentées (celles avec des valeurs préfixées par ``env.``)
#. ``composer install`` pour installer les dépendances
#. ``php bin/console wallabag:install`` pour créer le schéma de la BDD
#. ``docker-compose up`` pour démarrer les conteneurs
#. Enfin, se rendre sur http://localhost:8080/ pour accéder à une installation
tout propre de wallabag.
Il est possible de rencontrer des problèmes de droits UNIX, de mauvais chemins
dans les fichiers de cache, etc…
Les opérations comme vider le cache ou restaurer les permissions des fichiers
peuvent être fréquemment nécessaires, n'ayez crainte !

View file

@ -1,12 +0,0 @@
Contribuer à cette documentation
================================
Les sources de notre documentation sont ici https://github.com/wallabag/wallabag/tree/master/docs
Nous utilisons `ReadTheDocs
<https://readthedocs.org>`__ pour la générer.
Les pages sont écrites au format `Restructured Text
<https://fr.wikipedia.org/wiki/ReStructuredText>`__. Vous pouvez utiliser des outils en ligne comme http://rst.aaroniles.net/ ou http://rst.ninjs.org/ pour prévisualiser vos articles.
Si vous créez une nouvelle page, n'oubliez pas d'éditer le fichier `index.rst <https://raw.githubusercontent.com/wallabag/wallabag/master/docs/en/index.rst>`__ pour ajouter un lien dans la barre latérale.

View file

@ -1,33 +0,0 @@
Conseils pour développeurs front-end
====================================
Depuis la version 2.3, wallabag utilise webpack pour générer ses assets.
Mode développeur
----------------
Si le serveur fonctionne en mode dev, vous devez lancer la commande ``yarn run build:dev`` pour générer les fichiers de sortie javascript pour chaque thème. Ils sont nommés ``%theme%.dev.js`` et sont ignorés par git. Vous devez relancer la commande ``yarn run build:dev`` pour chaque changement que vous effectuez dans les fichiers assets (js, css, images, polices,...).
Live reload
-----------
Webpack apporte le support pour la fonctionnalité de live reload, ce qui signifie que vous n'avez pas besoin de regénérer manuellement le fichier de sortie javascript ni de rafraichir la page dans votre navigateur. Les changements sont appliqués automatiquement. Vous avez juste besoin de mettre le paramètre ``use_webpack_dev_server`` à ``true`` dans ``app/config/config.yml`` et de lancer ``yarn run watch`` pour que cela soit actif.
.. note::
N'oubliez pas de remettre ``use_webpack_dev_server`` à ``false`` lorsque vous n'utilisez pas la fonctionnalité de live reload.
Production builds
-----------------
Lorsque vous committez vos changements, vous devez les compiler dans un environnement de production en exécutant ``yarn run build:prod``. Cela compilera tous les assets nécessaires pour wallabag. Pour tester que cela fonctionne proprement, vous devrez avoir un serveur en mode de production, par exemple avec ``bin/console server:run -e=prod``.
.. note::
N'oubliez pas de générer des fichiers en mode production avant de committer !
Code style
----------
Le style de code est vérifié par deux outils : stylelint pour le (S)CSS et eslint pour le JS. La configuration ESlint config est basée sur le preset Airbnb base.

View file

@ -1,65 +0,0 @@
Articles derrière un paywall
============================
wallabag peut récupérer le contenu des articles des sites qui utilisent un système de paiement.
Activer l'authentification pour les paywall
-------------------------------------------
Dans les paramètres internes, en tant qu'administrateur de wallabag, section **Article**, activez l'authentification pour les articles derrière un paywall (avec la valeur 1).
Configurer les accès dans wallabag
----------------------------------
Éditez le fichier ``app/config/parameters.yml`` pour modifier les accès aux sites avec paywall. Par exemple, sous Ubuntu :
``sudo -u www-data nano /var/www/html/wallabag/app/config/parameters.yml``
Voici un exemple pour certains sites (attention, ne pas utiliser la touche "tab", seulement des espaces) :
.. code:: yaml
sites_credentials:
mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
arretsurimages.net: {username: "myASILogin", password: "mypassword"}
.. note::
Ces accès seront partagés entre chaque utilisateur de votre instance wallabag.
Fichiers de configuration pour parser les articles
--------------------------------------------------
.. note::
Lisez `cette documentation <http://doc.wallabag.org/fr/master/user/errors_during_fetching.html>`_ pour en savoir plus sur ces fichiers de configuration, qui se trouvent dans le répertoire ``vendor/j0k3r/graby-site-config/``. Pour la majorité des sites, ce fichier est déjà configuré : les instructions qui suivent concernent seulement les sites non encore configurés.
Chaque fichier de configuration doit être enrichi en ajoutant ``requires_login``, ``login_uri``,
``login_username_field``, ``login_password_field`` et ``not_logged_in_xpath``.
Attention, le formulaire de connexion doit se trouver dans le contenu de la page lors du chargement de celle-ci.
Il sera impossible pour wallabag de se connecter à un site dont le formulaire de connexion est chargé après coup (en ajax par exemple).
``login_uri`` correspond à l'URL à laquelle le formulaire est soumis (attribut ``action`` du formulaire).
``login_username_field`` correspond à l'attribut ``name`` du champ de l'identifiant.
``login_password_field`` correspond à l'attribut ``name`` du champ du mot de passe.
Par exemple :
.. code::
title://div[@id="titrage-contenu"]/h1[@class="title"]
body: //div[@class="contenu-html"]/div[@class="page-pane"]
requires_login: yes
login_uri: http://www.arretsurimages.net/forum/login.php
login_username_field: username
login_password_field: password
not_logged_in_xpath: //body[@class="not-logged-in"]
Dernière étape : nettoyer le cache
----------------------------------
Il est nécessaire de nettoyer le cache de wallabag avec la commande suivante (ici sous Ubuntu) : ``sudo -u www-data php /var/www/html/wallabag/bin/console cache:clear -e=prod``

View file

@ -1,10 +0,0 @@
Suite de tests
==============
Pour assurer la qualité du développement de wallabag, nous avons écrit des tests avec `PHPUnit <https://phpunit.de>`_.
Si vous contribuez au projet (en traduisant l'application, en corrigeant des bugs ou en ajoutant une nouvelle fonctionnalité), merci d'écrire vos propres tests.
Pour lancer la suite de tests de wallabag, vous devez installer `ant <http://ant.apache.org>`_.
Ensuite, exécutez la commande ``make test``.

View file

@ -1,62 +0,0 @@
Traduire wallabag
=================
L'application web
-----------------
Fichiers de traductions
~~~~~~~~~~~~~~~~~~~~~~~
.. note::
Comme wallabag est principalement dévelopée par une équipe française, c'est
cette traduction qui est considérée comme la plus récente. Merci de vous baser
sur celle-ci pour créer votre traduction.
Les principaux fichiers de traduction se trouvent ici : https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
Vous devez créer les fichiers ``messages.CODE.yml`` et ``validators.CODE.yml``,
où CODE est le code ISO 639-1 de votre langue (`cf wikipedia <https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1>`__).
Autres fichiers à traduire :
- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
Vous devez créer les fichiers ``LE_FICHIER_DE_TRADUCTION.CODE.yml``.
Fichier de configuration
~~~~~~~~~~~~~~~~~~~~~~~~
Vous devez éditer `app/config/config.yml
<https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ pour
afficher votre langue dans la page Configuration de wallabag (pour permettre aux
utilisateurs de choisir cette nouvelle traduction).
Dans la section ``wallabag_core.languages``, vous devez ajouter une nouvelle ligne
avec votre traduction. Par exemple :
::
wallabag_core:
...
languages:
en: 'English'
fr: 'Français'
Pour la première colonne (``en``, ``fr``, etc.), vous devez ajouter le code ISO 639-1
de votre langue (voir ci-dessus).
Pour la seconde colonne, c'est juste le nom de votre langue.
Documentation de wallabag
-------------------------
.. note::
Contrairement à l'application, la langue principale de la documentation est l'anglais
Les fichiers de documentation se trouvent ici : https://github.com/wallabag/wallabag/tree/master/docs
Vous devez respecter la structure du dossier ``en`` quand vous crééz votre traduction.

View file

@ -1,54 +0,0 @@
Documentation de wallabag
=========================
.. image:: ../img/wallabag.png
:alt: wallabag logo
:align: center
**wallabag** est une application de lecture différée : elle permet
simplement darchiver une page web en ne conservant que le contenu. Les
éléments superflus (menu, publicité, etc.) sont supprimés.
La documentation principale de cette application est découpée en plusieurs sections :
* :ref:`user-docs`
* :ref:`dev-docs`
La documentation est disponible dans d'autres langues :
* `Documentation in english <http://doc.wallabag.org/en/master/>`_
* `Deutsch Dokumentation <http://doc.wallabag.org/de/master/>`_
.. _user-docs:
.. toctree::
:maxdepth: 2
:caption: Documentation utilisateur
user/installation
user/upgrade
user/configuration
user/import
user/create_account
user/articles
user/errors_during_fetching
user/filters
user/tags
user/configuring_mobile
user/android
user/parameters
user/backup
user/faq
.. _dev-docs:
.. toctree::
:maxdepth: 2
:caption: Documentation développeur
developer/api
developer/docker
developer/paywall
developer/documentation
developer/translate
developer/asynchronous

View file

@ -1,2 +0,0 @@
Sphinx>=1.3.0,<1.4.0
guzzle_sphinx_theme>=0.7.0,<0.8.0

View file

@ -1,96 +0,0 @@
Application Android
===================
But de ce document
------------------
Ce document explique comment configurer votre application Android pour qu'elle fonctionne avec votre instance de wallabag. Il n'y a pas de différence dans cette procédure entre wallabag v1 et wallabag v2.
Étapes pour configurer votre application
----------------------------------------
Quand vous démarrez l'application pour la première fois, vous voyez le message de bienvenue, où il vous est d'abord conseillé de configurer l'application avec votre instance de wallabag.
.. image:: ../../img/user/android_welcome_screen.en.png
:alt: Écran de bienvenue
:align: center
Vous devez confirmer le message et vous serez redirigé vers l'écran de configuration.
.. image:: ../../img/user/android_configuration_screen.en.png
:alt: Écran de configuration
:align: center
Saisissez vos données wallabag. Vous devez entrer l'adresse de votre instance de wallabag. **Il ne faut pas que cette adresse se termine par un slash**. Ajoutez également vos identifiants wallabag dans les champs correspondants.
.. image:: ../../img/user/android_configuration_filled_in.en.png
:alt: Paramètres remplis
:align: center
Après cet écran, appuyez sur le bouton de test de connexion et attendez que le test se termine.
.. image:: ../../img/user/android_configuration_connection_test.en.png
:alt: Test de connexion
:align: center
Le test de connexion devrait se terminer avec succès. Si ce n'est pas le cas, vous devez résoudre ça avant de continuer.
.. image:: ../../img/user/android_configuration_connection_test_success.en.png
:alt: Test de connexion réussi
:align: center
Après le test de connexion réussi, vous pouvez cliquer sur le bouton pour récupérer vos informations de flux (feed credentials). L'application essaie maintenant de se connecter à wallabag pour récupérer votre identifiant et votre jeton pour les flux RSS.
.. image:: ../../img/user/android_configuration_get_feed_credentials.en.png
:alt: Récupération des informations de flux
:align: center
Quand le processus est terminé avec succès, vous verrez une notification comme quoi l'identifiant et le jeton ont été remplis correctement.
.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
:alt: Récupération des informations correcte
:align: center
Maintenant, vous devez naviguer jusqu'en bas de l'écran des paramètres. Bien sur, vous pouvez régler les paramètres comme vous le souhaitez. Enregistrez la configuration.
.. image:: ../../img/user/android_configuration_scroll_bottom.en.png
:alt: Bottom of the settings screen
:align: center
Après avoir enregistré les paramètres, vous vous retrouvez face à l'écran suivant. L'application vous propose de démarrer une synchronisation pour récupérer vos articles. Il est recommandé de confirmer cette action.
.. image:: ../../img/user/android_configuration_saved_feed_update.en.png
:alt: Settings saved the first time
:align: center
Une fois la synchronisation terminée avec succès, vous pouvez lire vos articles.
.. image:: ../../img/user/android_unread_feed_synced.en.png
:alt: Filled article list cause feeds successfully synchronized
:align: center
Limitations connues
-------------------
Double authentification (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Actuellement, l'application Android ne supporte la double authentification. Vous devez la désactiver pour que l'application fonctionne correctement.
Limiter le nombre d'articles avec wallabag v2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dans votre instance de wallabag, vous pouvez configurer combien d'articles se trouvent dans les flux RSS. Cette option n'existe pas dans wallabag v1, où tous les articles se retrouvent donc dans le flux RSS. 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.
Cryptage SSL/TLS
~~~~~~~~~~~~~~~~
Si vous souhaitez accéder à votre instance de wallabag via HTTPS, vous devez le définir dans les paramètres. Surtout si votre URL HTTP redirige vers l'URL HTTPS. Actuellement, l'application ne gère pas cette redirection correctement.
Références
----------
- `Code source de l'application Android <https://github.com/wallabag/android-app>`_
- `Télécharger l'application Android sur F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
- `Télécharger l'application Android sur Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_

View file

@ -1,124 +0,0 @@
Articles
========
Sauvegardez votre premier article
---------------------------------
La fonctionnalité principale de wallabag est de sauvegarder des articles.
Vous avez plusieurs manières de le faire.
.. note::
Un guide de démarrage s'affichera dans l'application jusqu'à ce que vous
enregistriez votre premier article.
En utilisant le bookmarklet
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sur la page ``Aide``, vous avez un onglet ``Bookmarklet``. Glissez/déposez le lien ``bag it!``
dans votre barre de favoris de votre navigateur.
Maintenant, à chaque fois que vous lisez un article et que vous souhaitez le sauvegarder,
cliquez sur le lien ``bag it!`` dans votre barre de favoris. L'article est enregistré.
En utilisant le formulaire classique
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dans la barre haut de wallabag, vous avez trois icônes. Avec la première icône,
un signe plus, vous pouvez facilement ajouter un nouvel article.
.. image:: ../../img/user/topbar.png
:alt: Barre supérieure
:align: center
Cliquez dessus pour afficher un nouveau champ, collez-y l'URL de l'article et appuyez
sur la touche ``Entrée``. L'article est enregistré.
En utilisant l'extension de votre navigateur
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Firefox
"""""""
Vous pouvez télécharger `l'extension Firefox ici <https://addons.mozilla.org/firefox/addon/wallabagger/>`_.
Chrome
""""""
Vous pouvez télécharger `l'extension Chrome ici <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr>`_.
En utilisant l'application de votre smartphone
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Android
"""""""
Vous pouvez télécharger `l'application Android ici <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_ ou sur `F-Droid <https://f-droid.org/repository/browse/?fdid=fr.gaulupeau.apps.InThePoche>`_.
Windows Phone
~~~~~~~~~~~~~
Vous pouvez télécharger `l'application Windows Phone ici <https://www.microsoft.com/store/apps/9nblggh5x3p6>`_.
Téléchargez vos articles
------------------------
Vous pouvez télécharger chaque article dans plusieurs formats : ePUB, MOBI, PDF, XML, JSON, CSV.
Lorsque vous lisez un article, cliquez sur cette icône dans la barre latérale :
.. image:: ../../img/user/download_article.png
:alt: Télécharger l'article
:align: center
Vous pouvez aussi télécharger une catégorie (non lus, favoris, lus) dans ces formats.
Par exemple, dans la vue **Non lus**, cliquez sur cette icône dans la barre supérieure :
.. image:: ../../img/user/download_articles.png
:alt: Télécharger l'article
:align: center
Partagez vos articles
---------------------
Quand vous lisez un article, vous pouvez le partager. Cliquez sur le bouton de partage :
.. image:: ../../img/user/share.png
:alt: partager un article
:align: center
Vous pouvez maintenant le partager :
- avec une URL publique (vous obtiendrez une vue allégée de l'article)
- avec un tweet
- dans votre Shaarli
- dans votre Scuttle
- avec un message dans Diaspora*
- sur Carrot
- avec un email
Annotez vos articles
--------------------
Sur chaque article que vous lisez, vous pouvez écrire des annotations. Puisqu'une image vaut mieux qu'un long discours,
voici ce que ça donne.
Sélectionnez la zone du texte que vous souhaitez annoter et cliquez sur le crayon :
.. image:: ../../img/user/annotations_1.png
:alt: Sélectionnez votre texte
:align: center
Ensuite, écrivez votre annotation :
.. image:: ../../img/user/annotations_2.png
:alt: Écrivez votre annotation
:align: center
Le texte est maintenant surligné et vous pouvez lire le annotation en le survolant avec votre souris.
.. image:: ../../img/user/annotations_3.png
:alt: Lisez votre annotation
:align: center
Vous pouvez créer autant de annotations que vous le souhaitez.

View file

@ -1,26 +0,0 @@
Sauvegarde de wallabag
======================
Parce que des fois vous faites des erreurs avec votre installation de wallabag et vous perdez des données ou parce que vous souhaitez migrer votre installation sur un autre serveur, vous souhaitez faire une sauvegarde de vos données.
Cette documentation décrit ce que vous devez sauvegarder.
Configuration
-------------
wallabag stocke quelques paramètres (comme la configuration SMTP ou les infos de bases de données) dans le fichier `app/config/parameters.yml`.
Base de données
---------------
Comme wallabag supporte différentes sortes de bases de données, la manière de sauvegarder dépend du type de base de données que vous utilisez, donc vous devez vous en référez à la documentation correspondante.
Quelques exemples :
- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
SQLite
~~~~~~
Pour sauvegarder une base SQLite, vous devez juste copier le répertoire `data/db` de votre installation wallabag.
Images
------
Les images sauvegardées par wallabag sont stockées dans `web/assets/images` (le stockage des images sera implémenté dans wallabag 2.2).

View file

@ -1,134 +0,0 @@
Configuration
=============
Maintenant que vous êtes connecté, il est temps de configurer votre compte.
Cliquez sur le menu ``Configuration``. Vous avez accès à 5 onglets :
``Paramètres``, ``RSS``, ``Mon compte``, ``Mot de passe`` and ``Règles de tag automatiques``.
Paramètres
----------
Thème
~~~~~
L'affichage de wallabag est personnalisable. C'est ici que vous choisissez le thème
que vous préférez. Le thème par défaut est ``Material``, c'est celui
qui est utilisé dans les captures d'écran de la documentation.
Nombre d'articles par page
~~~~~~~~~~~~~~~~~~~~~~~~~~
Vous pouvez définir le nombre d'articles affichés sur chaque page.
Vitesse de lecture
~~~~~~~~~~~~~~~~~~
wallabag calcule une durée de lecture pour chaque article. Vous pouvez définir ici, grâce à cette liste déroulante, si vous lisez plus ou moins vite. wallabag recalculera la durée de lecture de chaque article.
Où souhaitez-vous être redirigé après avoir marqué un article comme lu ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Chaque fois que vous ferez certaines actions (après avoir marqué un article comme lu / comme favori,
après avoir supprimé un article, après avoir retiré un tag d'un article), vous pouvez être redirigé :
- sur la page d'accueil
- sur la page courante
Langue
~~~~~~
Vous pouvez définir la langue de l'interface de wallabag.
RSS
---
wallabag propose un flux RSS pour chaque statut d'article : non lus, favoris et lus.
Tout d'abord, vous devez vous créer un jeton personnel : cliquez sur ``Créez votre jeton``.
Il est possible de regénérer votre jeton en cliquant sur ``Réinitialisez votre jeton``.
Vous avez maintenant trois liens, un par statut : ajoutez-les dans votre agrégateur de flux RSS préféré.
Vous pouvez aussi définir combien d'articles vous souhaitez dans vos flux RSS
(50 est la valeur par défaut).
Une pagination est aussi disponible pour ces flux. Il suffit de rajouter ``?page=2`` pour aller à la seconde page, par exemple.
Cette pagination suit `la RFC <https://tools.ietf.org/html/rfc5005#page-4>`_, ce qui signifie que vous trouverez la page suivante (``next``), précédente (``previous``) et la dernière (``last``) dans la balise `<channel>` de chaque flux RSS.
Mon compte
----------
Vous pouvez ici modifier votre nom, votre adresse email et activer la ``Double authentification``.
Si l'instance de wallabag compte plus d'un utilisateur actif, vous pouvez supprimer ici votre compte. **Attention, nous supprimons toutes vos données**.
Double authentification (2FA)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
L'authentification à deux facteurs (également appelée 2FA) est une technologie brevetée en 1984
qui fournit l'identification des utilisateurs au moyen de la combinaison de deux composants différents .
https://fr.wikipedia.org/wiki/Authentification_forte
**Attention**: l'activation de la 2FA depuis l'interface de configuration n'est possible que si elle a au préalable été autorisée dans `app/config/parameters.yml` en passant la propriété *twofactor_auth* à `true` (n'oubliez pas d'exécuter `php bin/console cache:clear -e=prod` après modification).
Si vous activez 2FA, à chaque tentative de connexion à wallabag, vous recevrez
un code par email. Vous devez renseigner ce code dans le formulaire suivant :
.. image:: ../../img/user/2FA_form.png
:alt: Authentification à deux facteurs
:align: center
Si vous ne souhaitez pas recevoir un code à chaque fois que vous vous connectez,
vous pouvez cocher la case ``Je suis sur un ordinateur de confiance`` : wallabag
se souviendra de vous pour 15 jours.
Mot de passe
------------
Vous pouvez changer de mot de passe ici (8 caractères minimum).
Règles de tag automatiques
--------------------------
Si vous voulez automatiquement assigner un tag à de nouveaux articles en fonction de
certains critères, cette partie de la configuration est pour vous.
Que veut dire « règles de tag automatiques » ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ce sont des règles utilisées par wallabag pour automatiquement assigner un tag
à un nouvel article.
À chaque fois que vous ajoutez un nouvel article, toutes les règles sont utilisées pour ajouter
les tags que vous avez configurés, vous épargnant ainsi la peine de classer manuellement vos articles.
Comment les utiliser ?
~~~~~~~~~~~~~~~~~~~~~~
Admettons que vous voulez ajouter comme tag *« lecture rapide »* quand le temps de lecture
d'un article est inférieur à 3 minutes.
Dans ce cas, vous devez ajouter « readingTime <= 3 » dans le champ **Règle** et  lecture rapide »* dans le champ **Tags**.
Plusieurs tags peuvent être ajoutés en même temps en les séparant par une virgule :  lecture rapide, à lire »*.
Des règles complexes peuvent être écrites en utilisant les opérateurs pré-définis :
if *« readingTime >= 5 AND domainName = "github.com" »* then tag as *« long reading, github »*.
Quels variables et opérateurs puis-je utiliser pour écrire mes règles ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles (attention, pour certaines valeurs, vous devez ajouter des guillemets, par exemple ``language = "en"``) :
=========== ============================================== ========== ==========
Variable Sens Opérateur Sens
----------- ---------------------------------------------- ---------- ----------
title Titre de l'article <= Inférieur ou égal à …
url URL de l'article < Strictement inférieur à …
isArchived Si l'article est archivé ou non => Supérieur ou égal à …
isStarred Si l'article est en favori ou non > Strictement supérieur à …
content Le contenu de l'article = Égal à …
language La langue de l'article != Différent de …
mimetype The type MIME de l'article OR Telle règle ou telle autre règle
readingTime Le temps de lecture de l'article, en minutes AND Telle règle et telle règle
domainName Le nom de domaine de l'article matches Contient telle chaîne de caractère (insensible à la casse). Exemple : title matches "football"
notmaches Ne contient pas telle chaîne de caractère (insensible à la casse). Exemple : title notmatches "football"
=========== ============================================== ========== ==========

View file

@ -1,12 +0,0 @@
Configurer les applications mobile pour wallabag
================================================
Étapes pour configurer les applications
---------------------------------------
- Tout d'abord, *créez un nouveau client* dans la section ``Gestion des clients API``. Le nom de votre application importe peu. Ce qui nous intéresse, ce sont l'``ID Client`` et la ``clé secrète``. Notez bien ces deux valeurs.
- Quand vous installez une application smartphone, on va vous demander de renseigner l'adresse de votre serveur de wallabag. Par exemple, pour wallabag.it, c'est ``https://app.wallabag.it``.
- Les deux valeurs notées précédemment vous seront également demandées. Insérez-les dans les champs correspondants.
- Enfin, vous devez renseigner votre ``nom d'utilisateur`` et votre ``mot de passe``. Ce sont les mêmes valeurs que lorsque vous vous connectez à wallabag.
Vous pouvez également regarder du côté de la page `Android <android.html>`_. Particulièrement la section sur les *limitations connues*.

View file

@ -1,42 +0,0 @@
Se créer un compte et se connecter
==================================
Se créer un compte
------------------
Sur la page de connexion, cliquez sur le bouton ``Créer un compte``.
.. image:: ../../img/user/registration_form.png
:alt: Formulaire de création de compte
:align: center
Vous devez renseigner le formulaire. Faites attention de bien renseigner une adresse
email valide, nous allons vous envoyer un email d'activation.
.. image:: ../../img/user/sent_email.png
:alt: Un email a été envoyé pour activer votre compte
:align: center
Vérifiez votre boite de réception, vous avez un nouvel email avec un lien comme celui-ci
``http://wallabag/register/confirm/Ba19wokGovN-DdBQNfg4YgRkUQWRP4-k2g0Bk-hBTX4``.
Cliquez dessus pour activer votre compte.
Votre compte est maintenant actif.
.. image:: ../../img/user/activated_account.png
:alt: Bienvenue à bord !
:align: center
Se connecter
------------
Votre compte est maintenant actif, félicitations !
Pour vous connecter à wallabag, remplissez le formulaire de connexion.
Si vous êtes sur un ordinateur de confiance et que vous souhaitez rester connecté
vous pouvez cocher la case ``Restez connecté`` : wallabag se souviendra de vous pour un an.
.. image:: ../../img/user/login_form.png
:alt: Formulaire de connexion
:align: center

View file

@ -1,37 +0,0 @@
Erreur durant la récupération des articles
==========================================
Pourquoi la récupération des articles échoue ?
----------------------------------------------
Il peut y avoir plusieurs raisons :
- problème de connexion internet
- wallabag ne peut pas récupérer le contenu à cause de la structure du site web
Comment puis-je aider pour réparer ça ?
---------------------------------------
Vous pouvez essayer de résoudre ce problème vous même (comme ça, nous restons concentrés pour améliorer wallabag au lieu d'écrire ces fichiers de configuration :) ).
Vous pouvez essayer de voir si ça fonctionne ici : `http://f43.me/feed/test <http://f43.me/feed/test>`_ (ce site utilise principalement la même manière de fonctionner que wallabag pour récupérer les articles).
Si ça fonctionne ici et pas sur wallabag, c'est qu'il y a un souci avec wallabag qui casse le parser (difficile à résoudre : merci d'ouvrir un nouveau ticket à ce sujet).
Si ça ne fonctionne pas, vous pouvez essayer de créer un fichier de configuration en utilisant : `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (sélectionnez les parties du contenu qui correspondent à ce que vous souhaitez garder). Vous pouvez `lire cette documentation avant <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
Vous pouvez tester ce fichier sur le site **f43.me** : cliquez sur **Want to try a custom siteconfig?** et insérez le fichier généré depuis siteconfig.fivefilters.org.
Répétez cette opération jusqu'à avoir quelque chose qui vous convienne.
Ensuite, vous pouvez créer une pull request ici `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_, qui est le projet principal pour stocker les fichiers de configuration.
Comment puis-je réessayer de récupérer le contenu ?
---------------------------------------------------
Si wallabag échoue en récupérant l'article, vous pouvez cliquer sur le bouton suivant
(le troisième sur l'image ci-dessous).
.. image:: ../../img/user/refetch.png
:alt: Réessayer de récupérer le contenu
:align: center

View file

@ -1,42 +0,0 @@
Foire Aux Questions
===================
Durant l'installation, je rencontre cette erreur ``Error Output: sh: 1: @post-cmd: not found``
----------------------------------------------------------------------------------------------
Il semblerait que vous ayiez un problème avec votre installation de ``composer``. Essayez de le désinstaller puis de le réinstaller.
`Vous pouvez lire la documentation de composer pour savoir comment l'installer
<https://getcomposer.org/doc/00-intro.md>`__.
Je ne peux pas valider le formulaire de création de compte
----------------------------------------------------------
Soyez sur d'avoir bien renseigné tous les champs :
* une adresse email valide
* le même mot de passe dans les deux champs
Je n'ai pas reçu mon email d'activation
---------------------------------------
Êtes-vous sur d'avoir renseigné votre bonne adresse ? Avez-vous vérifié le dossier de spams ?
Quand je clique sur le lien d'activation, j'ai ce message : ``The user with confirmation token "DtrOPfbQeVkWf6N" does not exist``.
----------------------------------------------------------------------------------------------------------------------------------
Vous avez déjà activé votre compte ou l'URL d'activation n'est pas correcte.
J'ai oublié mon mot de passe
----------------------------
Vous pouvez réinitialiser votre mot de passe en cliquant sur ``Mot de passe oublié ?``,
sur la page de connexion. Ensuite, renseignez votre adresse email ou votre nom d'utilisateur,
un email vous sera envoyé.
J'ai l'erreur ``failed to load external entity`` quand j'essaie d'installer wallabag
------------------------------------------------------------------------------------
Comme décrit `ici <https://github.com/wallabag/wallabag/issues/2529>`_, modifiez le fichier ``web/app.php`` et ajoutez la ligne ``libxml_disable_entity_loader(false);`` à la ligne 5.
C'est un bug lié à PHP et Doctrine, nous ne pouvons rien faire de notre côté.

View file

@ -1,55 +0,0 @@
Retrouver des articles grâce aux filtres
========================================
Pour retrouver plus facilement vos articles, vous pouvez utiliser les filtres.
Cliquez sur la troisième icône de la barre supérieure.
.. image:: ../../img/user/topbar.png
:alt: Barre supérieure
:align: center
Tous ces filtres peuvent être combinés.
.. image:: ../../img/user/filters.png
:alt: Combine all filters
:align: center
Statut
------
Utilisez ces cases à cocher pour retrouver les articles lus ou mis en favori.
Image de prévisualisation
-------------------------
Cochez ce filtre si vous voulez retrouver les articles avec une image de prévisualisation.
Langage
-------
wallabag (via graby) peut détecter la langue dans laquelle l'article est écrit.
C'est ainsi facile pour vous de retrouver des articles écrits dans une langue spécifique.
Statut HTTP
-----------
Vous pouvez retrouver des articles en filtrant par leur code HTTP : 200, 404, 500, etc.
Temps de lecture
----------------
wallabag estime combien de temps vous avez besoin pour lire un article.
Avec ce filtre, vous pouvez par exemple retrouver les articles qui ont une estimation
entre 2 et 5 minutes.
Nom de domaine
--------------
Grâce à ce filtre, vous pouvez retrouver les articles venant d'un même nom de domaine.
Par exemple, dans ce champ, saisissez ``lemonde.fr`` pour retrouver les articles de ce site.
Date de création
----------------
Quand vous ajoutez un article, wallabag stocke la date courante.
C'est très pratique pour retrouver les articles ajoutés entre le 1er et le 31 janvier par exemple.

View file

@ -1,155 +0,0 @@
Migrer depuis ...
=================
Dans wallabag 2.x, vous pouvez importer des données depuis :
- `Pocket <#id1>`_
- `Readability <#id2>`_
- `Instapaper <#id4>`_
- `wallabag 1.x <#id6>`_
- `wallabag 2.x <#id7>`_
Nous avons aussi développé `un script pour exécuter des migrations via la ligne de commande <#import-via-la-ligne-de-commande-cli>`_.
Puisque les imports peuvent gourmands en ressource, nous avons mis en place un système de tâche asynchrone. `Vous trouverez la documentation ici <http://doc.wallabag.org/fr/master/developer/asynchronous.html>`_ (niveau expert).
Pocket
------
Créer une nouvelle application dans Pocket
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pour importer vos données depuis Pocket, nous utilisons l'API de Pocket.
Vous devez créer une nouvelle application sur leur site dédié aux développeurs pour continuer.
* Créez une nouvelle application `sur leur site Développeurs <https://getpocket.com/developer/apps/new>`_
* Remplissez les champs requis : nom de l'application, description de l'application,
permissions (seulement **retrieve**), la plateforme (**web**), acceptez les
termes d'utilisation du service et soumettez votre application
Pocket vous fournira une **Consumer Key** (par exemple, `49961-985e4b92fe21fe4c78d682c1`).
Vous devez configurer la ``pocket_consumer_key`` dans le menu ``Configuration``.
Maintenant, tout est bien configuré pour migrer depuis Pocket.
Importez vos données dans wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
la section Pocket puis sur ``Se connecter à Pocket et importer les données``.
Vous devez autoriser wallabag à se connecter à votre compte Pocket.
Vos données vont être importées. L'import de données est une action qui peut être couteuse
pour votre serveur.
Readability
-----------
Exportez vos données de Readability
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sur la page des outils (`https://www.readability.com/tools/ <https://www.readability.com/tools/>`_), cliquez sur "Export your data" dans la section "Data Export". Vous allez recevoir un email avec un lien pour télécharger le json.
Importez vos données dans wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
la section Readability et ensuite sélectionnez votre fichier json pour l'uploader.
Vos données vont être importées. L'import de données est une action qui peut être couteuse pour votre serveur.
Depuis Pinboard
---------------
Exportez vos données de Pinboard
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sur la page « Backup » (`https://pinboard.in/settings/backup <https://pinboard.in/settings/backup>`_), cliquez sur « JSON » dans la section « Bookmarks ». Un fichier json (sans extension) sera téléchargé (``pinboard_export``).
Importez vos données dans wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
la section Pinboard et ensuite sélectionnez votre fichier json pour l'uploader.
Vos données vont être importées. L'import de données est une action qui peut être couteuse pour votre serveur.
Depuis Instapaper
-----------------
Exportez vos données de Instapaper
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sur la page des paramètres (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera (``instapaper-export.csv``).
Importez vos données dans wallabag 2.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Cliquez sur le lien ``Importer`` dans le menu, sur ``Importer les contenus`` dans
la section Instapaper et ensuite sélectionnez votre fichier CSV pour l'uploader.
Vos données vont être importées. L'import de données est une action qui peut être couteuse pour votre serveur.
wallabag 1.x
------------
Si vous utilisiez wallabag v1.x, vous devez exporter vos données avant de migrer à wallabag v2.x, à cause du changement complet de l'application et de sa base de données. Sur votre ancienne instance de wallabag v1, vous pouvez exporter vos données en allant sur la page de configuration de l'application.
.. image:: ../../img/user/export_v1.png
:alt: Export depuis wallabag v1
:align: center
.. note::
Si vous avez plusieurs comptes sur la même instance de wallabag, chaque utilisateur doit exporter ses données depuis wallabag v1 et les importer dans la v2.
.. note::
S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <http://gitter.im/wallabag/wallabag>`_.
Une fois que vous avez récupéré le fichier json contenant vos données, vous pouvez installer wallabag v2 si c'est nécessaire en suivant `la procédure standard <http://doc.wallabag.org/fr/master/user/installation.html>`_.
Une fois que vous avez créé un compte utilisateur sur votre nouvelle instance de wallabag v2, rendez-vous dans la section `Import`. Vous devez choisir l'import depuis wallabag v1 puis sélectionner votre fichier json récupéré précédemment.
.. image:: ../../img/user/import_wallabagv1.png
:alt: Import depuis wallabag v1
:align: center
wallabag 2.x
------------
Depuis l'instance sur laquelle vous étiez, rendez-vous dans la section `Tous les articles`, puis exportez ces articles au format json.
.. image:: ../../img/user/export_v2.png
:alt: Export depuis wallabag v2
:align: center
Depuis votre nouvelle instance de wallabag, créez votre compte utilisateur puis cliquez sur le lien dans le menu pour accéder à l'import. Choisissez l'import depuis wallabag v2 puis sélectionnez votre fichier json pour l'uploader.
.. note::
S'il vous arrive des problèmes durant l'export ou l'import, n'hésitez pas à `demander de l'aide <http://gitter.im/wallabag/wallabag>`_.
Import via la ligne de commande (CLI)
-------------------------------------<http://doc.wallabag.org/en/master/user/parameters.html
Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 :
::
bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
Remplacez les valeurs :
* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1)
* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1
Si vous voulez marquer tous ces articles comme lus, vous pouvez ajouter l'option ``--markAsRead``.
Pour importer un fichier wallabag v2, vous devez ajouter l'option ``--importer=v2``.
Vous obtiendrez :
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---

View file

@ -1,316 +0,0 @@
Installer wallabag
==================
Pré-requis
------------
wallabag est compatible avec **PHP >= 5.6**, PHP 7 inclus.
.. note::
Pour installer wallabag facilement, nous avons créé un ``Makefile``, vous avez donc besoin d'avoir installé l'outil ``make``.
wallabag utilise un grand nombre de bibliothèques PHP pour fonctionner. Ces bibliothèques doivent être installées à l'aide d'un outil nommé Composer. Vous devez l'installer si ce n'est déjà fait et vous assurer que vous utilisez bien la version 1.2 (si vous avez déjà Composer, faite un ``composer selfupdate``).
Installation de Composer :
::
curl -s https://getcomposer.org/installer | php
Vous pouvez trouver des instructions spécifiques `ici (en anglais) <https://getcomposer.org/doc/00-intro.md>`__.
Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
- php-session
- php-ctype
- php-dom
- php-hash
- php-simplexml
- php-json
- php-gd
- php-mbstring
- php-xml
- php-tidy
- php-iconv
- php-curl
- php-gettext
- php-tokenizer
- php-bcmath
wallabag utilise PDO afin de se connecter à une base de données, donc vous aurez besoin d'une extension et d'un système de bases de données parmi :
- pdo_mysql
- pdo_sqlite
- pdo_pgsql
Installation
------------
Sur un serveur dédié (méthode conseillée)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pour installer wallabag, vous devez exécuter ces commandes :
::
git clone https://github.com/wallabag/wallabag.git
cd wallabag && make install
Pour démarrer le serveur interne à php et vérifier que tout s'est installé correctement, vous pouvez exécuter :
::
make run
Et accéder wallabag à l'adresse http://lipdevotreserveur:8000
.. tip::
Pour définir des paramètres via des variables d'environnement, vous pouvez les spécifier avec le préfixe ``SYMFONY__``. Par exemple, ``SYMFONY__DATABASE_DRIVER``. Vous pouvez lire la `documentation Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ pour en savoir plus.
Sur un serveur mutualisé
~~~~~~~~~~~~~~~~~~~~~~~~
Nous mettons à votre disposition une archive avec toutes les dépendances à l'intérieur.
La configuration par défaut utilise SQLite pour la base de données. Si vous souhaitez changer ces paramètres, vous devez modifier le fichier ``app/config/parameters.yml``.
Nous avons déjà créé un utilisateur : le login et le mot de passe sont ``wallabag``.
.. caution:: Avec cette archive, wallabag ne vérifie pas si les extensions obligatoires sont présentes sur votre serveur pour bien fonctionner (ces vérifications sont faites durant le ``composer install`` quand vous avez un serveur dédié, voir ci-dessus).
Exécutez cette commande pour télécharger et décompresser l'archive :
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
Vous trouverez `le hash md5 du dernier package sur notre site <https://static.wallabag.org/releases/>`_.
Maintenant, lisez la documentation ci-dessous pour crééer un virtual host. Accédez ensuite à votre installation de wallabag.
Si vous avez changé la configuration pour modifier le type de stockage (MySQL ou PostgreSQL), vous devrez vous créer un utilisateur via la commande ``php bin/console wallabag:install --env=prod``.
Installation avec Docker
~~~~~~~~~~~~~~~~~~~~~~~~
Nous vous proposons une image Docker pour installer wallabag facilement. Allez voir du côté de `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ pour plus d'informations.
Commande pour démarrer le containeur
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: bash
docker pull wallabag/wallabag
Installation sur Cloudron
~~~~~~~~~~~~~~~~~~~~~~~~
Cloudron permet d'installer des applications web sur votre serveur
wallabag est proposé en tant qu'application Cloudron et est disponible directement depuis le store.
`Installer wallabag sur Cloudron <https://cloudron.io/store/org.wallabag.cloudronapp.html>`__
Virtual hosts
-------------
Configuration avec Apache
~~~~~~~~~~~~~~~~~~~~~~~~~
N'oubliez pas d'activer le mod *rewrite* de Apache
.. code-block:: bash
a2enmod rewrite && systemctl reload apache2
En imaginant que vous vouliez installer wallabag dans le dossier ``/var/www/wallabag`` et que vous utilisiez PHP comme un module Apache, voici un vhost pour wallabag :
::
<VirtualHost *:80>
ServerName domain.tld
ServerAlias www.domain.tld
DocumentRoot /var/www/wallabag/web
<Directory /var/www/wallabag/web>
AllowOverride None
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeScript assets
# <Directory /var/www/wallabag>
# Options FollowSymlinks
# </Directory>
# optionally disable the RewriteEngine for the asset directories
# which will allow apache to simply reply with a 404 when files are
# not found instead of passing the request into the full symfony stack
<Directory /var/www/wallabag/web/bundles>
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
</Directory>
ErrorLog /var/log/apache2/wallabag_error.log
CustomLog /var/log/apache2/wallabag_access.log combined
</VirtualHost>
.. tip:: Pour Apache 2.4, dans la section `<Directory /var/www/wallabag/web>` vous devez remplacer les directives suivantes :
::
AllowOverride None
Order Allow,Deny
Allow from All
par
::
Require All granted
Après que vous ayez rechargé/redémarré Apache, vous devriez pouvoir avoir accès à wallabag à l'adresse http://domain.tld.
Configuration avec Nginx
~~~~~~~~~~~~~~~~~~~~~~~~
En imaginant que vous vouliez installer wallabag dans le dossier ``/var/www/wallabag``, voici un fichier de configuration Nginx pour wallabag :
::
server {
server_name domain.tld www.domain.tld;
root /var/www/wallabag/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/app\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
# When you are using symlinks to link the document root to the
# current version of your application, you should pass the real
# application path instead of the path to the symlink to PHP
# FPM.
# Otherwise, PHP's OPcache may not properly detect changes to
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
# for more information).
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
# Prevents URIs that include the front controller. This will 404:
# http://domain.tld/app.php/some-path
# Remove the internal directive to allow URIs like this
internal;
}
# return 404 for all other php files not matching the front controller
# this prevents access to other php files you don't want to be accessible.
location ~ \.php$ {
return 404;
}
error_log /var/log/nginx/wallabag_error.log;
access_log /var/log/nginx/wallabag_access.log;
}
Après que vous ayez rechargé/redémarré Nginx, vous devriez pouvoir avoir accès à wallabag à l'adresse http://domain.tld.
.. tip::
Si vous voulez importer un fichier important dans wallabag, vous devez ajouter cette ligne dans votre configuration nginx ``client_max_body_size XM; # allows file uploads up to X megabytes``.
Configuration avec lighttpd
~~~~~~~~~~~~~~~~~~~~~~~~~~~
En imaginant que vous vouliez installer wallabag dans le dossier ``/var/www/wallabag``, voici un fichier de configuration pour wallabag (éditez votre fichier ``lighttpd.conf`` collez-y cette configuration) :
::
server.modules = (
"mod_fastcgi",
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
)
server.document-root = "/var/www/wallabag/web"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
server.follow-symlink = "enable"
index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
dir-listing.activate = "disable"
url.rewrite-if-not-file = (
"^/([^?])(?:\?(.))?" => "/app.php?$1&$2",
"^/([^?]*)" => "/app.php?=$1",
)
Droits d'accès aux dossiers du projet
-------------------------------------
Environnement de test
~~~~~~~~~~~~~~~~~~~~~
Quand nous souhaitons juste tester wallabag, nous lançons simplement la commande ``php bin/console server:run --env=prod`` pour démarrer l'instance wallabag et tout se passe correctement car l'utilisateur qui a démarré le projet a accès naturellement au repertoire courant, tout va bien.
Environnement de production
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dès lors que nous utilisons Apache ou Nginx pour accéder à notre instance wallabag, et non plus la commande ``php bin/console server:run --env=prod`` pour la démarrer, il faut prendre garde à octroyer les bons droits aux bons dossiers afin de préserver la sécurité de l'ensemble des fichiers fournis par le projet.
Aussi, le dossier, connu sous le nom de ``DocumentRoot`` (pour apache) ou ``root`` (pour Nginx), doit être impérativement accessible par l'utilisateur de Apache ou Nginx. Le nom de cet utilisateur est généralement ``www-data``, ``apache`` ou ``nobody`` (selon les systèmes linux utilisés).
Donc le dossier ``/var/www/wallabag/web`` doit être accessible par ce dernier. Mais cela ne suffira pas si nous nous contentons de ce dossier, et nous pourrions avoir, au mieux une page blanche en accédant à la page d'accueil du projet, au pire une erreur 500.
Cela est dû au fait qu'il faut aussi octroyer les mêmes droits d'accès au dossier ``/var/www/wallabag/var`` que ceux octroyés au dossier ``/var/www/wallabag/web``. Ainsi, on règle le problème par la commande suivante :
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/var
Il en est de même pour les dossiers suivants :
* /var/www/wallabag/bin/
* /var/www/wallabag/app/config/
* /var/www/wallabag/vendor/
en tapant
.. code-block:: bash
chown -R www-data:www-data /var/www/wallabag/bin
chown -R www-data:www-data /var/www/wallabag/app/config
chown -R www-data:www-data /var/www/wallabag/vendor
sinon lors de la mise à jour vous finirez par rencontrer les erreurs suivantes :
.. code-block:: bash
Unable to write to the "bin" directory.
file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied

View file

@ -1,95 +0,0 @@
À quoi servent les paramètres ?
===============================
Fichier `parameters.yml` par défaut
-----------------------------------
Voici la dernière version par défaut du fichier `app/config/parameters.yml`. Soyez sur que le votre respecte celui-ci.
Si vous ne savez pas quelle valeur vous devez mettre, laissez celle par défaut.
.. code-block:: yml
parameters:
database_driver: pdo_sqlite
database_host: 127.0.0.1
database_port: null
database_name: symfony
database_user: root
database_password: null
database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
database_table_prefix: wallabag_
database_socket: null
mailer_transport: smtp
mailer_host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
twofactor_auth: true
twofactor_sender: no-reply@wallabag.org
fosuser_registration: true
fosuser_confirmation: true
from_email: no-reply@wallabag.org
rss_limit: 50
rabbitmq_host: localhost
rabbitmq_port: 5672
rabbitmq_user: guest
rabbitmq_password: guest
redis_scheme: tcp
redis_host: localhost
redis_port: 6379
redis_path: null
redis_password: null
Meaning of each parameter
-------------------------
.. csv-table:: Paramètres de base de données
:header: "name", "default", "description"
"database_driver", "pdo_sqlite", "Doit être pdo_sqlite ou pdo_mysql ou pdo_pgsql"
"database_host", "127.0.0.1", "Hôte de votre base de données (généralement localhost ou 127.0.0.1)"
"database_port", "~", "Port de votre base de données (vous pouvez laisser ``~`` pour utiliser celui par défaut)"
"database_name", "symfony", "Nom de votre base de données"
"database_user", "root", "Utilisateur de votre base de données"
"database_password", "~", "Mot de passe de cet utilisateur"
"database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "Uniquement pour SQLite. Chemin du fichier de base de données. Laissez vide pour les autres bases de données."
"database_table_prefix", "wallabag_", "Toutes les tables de wallabag seront préfixées par cette chaine. Vous pouvez ajouter un ``_`` pour plus de clarté"
"database_socket", "null", "Si votre base de données utilise un socket plutôt que tcp, spécifiez le chemin du socket (les autres paramètres de connexion seront alors ignorés)"
.. csv-table:: Configuration pour envoyer des emails depuis wallabag
:header: "name", "default", "description"
"mailer_transport", "smtp", "Méthode de transport exacte utilisée pour envoyer des emails. Les valeurs correctes sont : smtp, gmail, mail, sendmail, null (ce qui désactivera l'envoi des emails)"
"mailer_host", "127.0.0.1", "Hôte sur lequel se connecter quand on utilise smtp comme transport."
"mailer_user", "~", "Utilisateur smtp."
"mailer_password", "~", "Mot de passe de cet utilisateur."
.. csv-table:: Autres options de wallabag
:header: "name", "default", "description"
"locale", "en", "Langue par défaut de votre instance wallabag (comme en, fr, es, etc.)"
"secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "C'est une chaine qui doit être unique à votre application et qui est couramment utilisée pour ajouter plus d'entropie aux opérations relatives à la sécurité."
"twofactor_auth", "true", "true pour activer l'authentification à deux facteurs"
"twofactor_sender", "no-reply@wallabag.org", "Email de l'expéditeur du code de l'authentification à deux facteurs"
"fosuser_registration", "true", "true pour activer l'inscription publique"
"fosuser_confirmation", "true", "true pour envoyer un email de confirmation pour chaque création de compte"
"from_email", "no-reply@wallabag.org", "Email de l'expéditeur pour chaque email envoyé"
"rss_limit", "50", "Limite pour les flux RSS"
.. csv-table:: Configuration RabbitMQ
:header: "name", "default", "description"
"rabbitmq_host", "localhost", "Hôte de votre instance RabbitMQ"
"rabbitmq_port", "5672", "Port de votre instance RabbitMQ"
"rabbitmq_user", "guest", "Utilisateur de votre instance RabbitMQ"
"rabbitmq_password", "guest", "Mot de passe de cet utilisateur"
.. csv-table:: Configuration Redis
:header: "name", "default", "description"
"redis_scheme", "tcp", "Définit le protocole utilisé pour commuiquer avec l'instance Redis. Les valeurs correctes sont : tcp, unix, http"
"redis_host", "localhost", "IP ou hôte du serveur cible (ignoré pour un schéma unix)"
"redis_port", "6379", "Port TCP/IP du serveur cible (ignoré pour un schéma unix)"
"redis_path", "null", "Chemin du fichier de socket du domaine UNIX utilisé quand on se connecte à Redis en utilisant les sockets du domaine UNIX"
"redis_password", "null", "Mot de passe défini dans la configuration serveur de Redis (paramètre `requirepass` dans `redis.conf`)"

View file

@ -1,984 +0,0 @@
Migration 20161001072726
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBA364942
ALTER TABLE wallabag_entry_tag DROP FOREIGN KEY FK_C9F0DD7CBAD26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP FOREIGN KEY FK_A7AED006BA364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cba364942
ALTER TABLE wallabag_entry_tag DROP CONSTRAINT fk_c9f0dd7cbad26311
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
ALTER TABLE wallabag_entry_tag ADD CONSTRAINT FK_entry_tag_tag FOREIGN KEY (tag_id) REFERENCES wallabag_tag (id) ON DELETE CASCADE
ALTER TABLE wallabag_annotation DROP CONSTRAINT fk_a7aed006ba364942
ALTER TABLE wallabag_annotation ADD CONSTRAINT FK_annotation_entry FOREIGN KEY (entry_id) REFERENCES wallabag_entry (id) ON DELETE CASCADE
Migration down
""""""""""""""
We didn't write down migration for ``20161001072726``.
SQLite
^^^^^^
This migration can only be executed safely on MySQL or PostgreSQL.
Migration 20161022134138
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE confirmation_token confirmation_token VARCHAR(180) DEFAULT NULL;
ALTER TABLE wallabag_user CHANGE salt salt VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_user CHANGE password password VARCHAR(180) NOT NULL;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Migration down
""""""""""""""
.. code-block:: sql
ALTER DATABASE wallabag CHARACTER SET = utf8 COLLATE = utf8_unicode_ci;
ALTER TABLE wallabag_annotation CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `text` `text` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_annotation CHANGE `quote` `quote` VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `title` `title` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_entry CHANGE `content` `content` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_tag CHANGE `label` `label` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE wallabag_user CHANGE `name` `name` longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci;
PostgreSQL and SQLite
^^^^^^^^^^^^^^^^^^^^^
This migration only apply to MySQL.
Migration 20161024212538
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT NOT NULL
ALTER TABLE wallabag_oauth2_clients ADD CONSTRAINT IDX_user_oauth_client FOREIGN KEY (user_id) REFERENCES wallabag_user (id) ON DELETE CASCADE
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP FOREIGN KEY IDX_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients ADD user_id INT DEFAULT NULL
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
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_oauth2_clients DROP CONSTRAINT idx_user_oauth_client
ALTER TABLE wallabag_oauth2_clients DROP user_id
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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)
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
DROP TABLE __temp__wallabag_oauth2_clients
CREATE INDEX IDX_635D765EA76ED395 ON wallabag_oauth2_clients (user_id)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_635D765EA76ED395
CREATE TEMPORARY TABLE __temp__wallabag_oauth2_clients AS SELECT id, random_id, redirect_uris, secret, allowed_grant_types, name FROM wallabag_oauth2_clients
DROP TABLE wallabag_oauth2_clients
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))
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
DROP TABLE __temp__wallabag_oauth2_clients
Migration 20161031132655
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('download_images_enabled', 0, 'misc')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'download_images_enabled';
Migration 20161104073720
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_created_at
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_created_at ON wallabag_entry (created_at)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_created_at
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
Migration 20161106113822
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD action_mark_as_read INT DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP action_mark_as_read
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN action_mark_as_read INTEGER DEFAULT 0
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161117071626
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('share_unmark', 0, 'entry')
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('unmark_url', 'https://unmark.it', 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'share_unmark';
DELETE FROM wallabag_craue_config_setting WHERE name = 'unmark_url';
Migration 20161118134328
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry DROP http_status
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry ADD COLUMN http_status VARCHAR(3) DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161122144743
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
INSERT INTO wallabag_craue_config_setting (name, value, section) VALUES ('restricted_access', 0, 'entry')
Migration down
""""""""""""""
.. code-block:: sql
DELETE FROM wallabag_craue_config_setting WHERE name = 'restricted_access';
Migration 20161122203647
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired, DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL, ADD credentials_expired SMALLINT DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP expired
ALTER TABLE wallabag_user DROP credentials_expired
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expired SMALLINT DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E5C05FB297
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E592FC23A8
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN expired SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expired SMALLINT DEFAULT NULL
Migration 20161128084725
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD list_mode INT DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config DROP list_mode
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_config ADD COLUMN list_mode INTEGER DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_87E64C53A76ED395
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
DROP TABLE wallabag_config
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))
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
DROP TABLE __temp__wallabag_config
CREATE UNIQUE INDEX UNIQ_87E64C53A76ED395 ON wallabag_config (user_id)
Migration 20161128131503
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked, DROP credentials_expire_at, DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL, ADD credentials_expire_at DATETIME DEFAULT NULL, ADD expires_at DATETIME DEFAULT NULL
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user DROP locked
ALTER TABLE wallabag_user DROP credentials_expire_at
ALTER TABLE wallabag_user DROP expires_at
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD credentials_expire_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
ALTER TABLE wallabag_user ADD expires_at TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_user ADD COLUMN locked SMALLINT DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN credentials_expire_at DATETIME DEFAULT NULL
ALTER TABLE wallabag_user ADD COLUMN expires_at DATETIME DEFAULT NULL
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX UNIQ_1D63E7E592FC23A8
DROP INDEX UNIQ_1D63E7E5A0D96FBF
DROP INDEX UNIQ_1D63E7E5C05FB297
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
DROP TABLE wallabag_user
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))
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
DROP TABLE __temp__wallabag_user
CREATE UNIQUE INDEX UNIQ_1D63E7E592FC23A8 ON wallabag_user (username_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5A0D96FBF ON wallabag_user (email_canonical)
CREATE UNIQUE INDEX UNIQ_1D63E7E5C05FB297 ON wallabag_user (confirmation_token)
Migration 20161214094402
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uuid uid VARCHAR(23)
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry CHANGE uid uuid VARCHAR(23)
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uuid TO uid
Migration down
""""""""""""""
.. code-block:: sql
ALTER TABLE wallabag_entry RENAME uid TO uuid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration down
""""""""""""""
.. code-block:: sql
CREATE TABLE __temp__wallabag_entry (
id INTEGER NOT NULL,
user_id INTEGER DEFAULT NULL,
uuid VARCHAR(23) DEFAULT NULL,
title CLOB DEFAULT NULL,
url CLOB DEFAULT NULL,
is_archived BOOLEAN NOT NULL,
is_starred BOOLEAN NOT NULL,
content CLOB DEFAULT NULL,
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
mimetype CLOB DEFAULT NULL,
language CLOB DEFAULT NULL,
reading_time INTEGER DEFAULT NULL,
domain_name CLOB DEFAULT NULL,
preview_picture CLOB DEFAULT NULL,
is_public BOOLEAN DEFAULT '0',
http_status VARCHAR(3) DEFAULT NULL,
PRIMARY KEY(id)
);
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;
DROP TABLE wallabag_entry;
ALTER TABLE __temp__wallabag_entry RENAME TO wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20161214094403
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX idx_entry_uid
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at_idx
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_entry_uid ON wallabag_entry (uid)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_uid
DROP INDEX created_at_idx
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX created_at_idx ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
Migration 20170127093841
------------------------
MySQL
^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred ON wallabag_entry
DROP INDEX IDX_entry_archived ON wallabag_entry
PostgreSQL
^^^^^^^^^^
Migration up
""""""""""""
.. code-block:: sql
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_starred
DROP INDEX IDX_entry_archived
SQLite
^^^^^^
Migration up
""""""""""""
.. code-block:: sql
DROP INDEX uid
DROP INDEX created_at
DROP INDEX IDX_F4D18282A76ED395
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX uid ON wallabag_entry (uid)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX IDX_entry_starred ON wallabag_entry (is_starred)
CREATE INDEX IDX_entry_archived ON wallabag_entry (is_archived)
Migration down
""""""""""""""
.. code-block:: sql
DROP INDEX IDX_entry_archived
DROP INDEX IDX_entry_starred
DROP INDEX IDX_F4D18282A76ED395
DROP INDEX created_at
DROP INDEX uid
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
DROP TABLE wallabag_entry
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))
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
DROP TABLE __temp__wallabag_entry
CREATE INDEX IDX_F4D18282A76ED395 ON wallabag_entry (user_id)
CREATE INDEX created_at ON wallabag_entry (created_at)
CREATE INDEX uid ON wallabag_entry (uid)

View file

@ -1,2 +0,0 @@
Tags
====

View file

@ -1,140 +0,0 @@
Mettre à jour votre installation de wallabag
============================================
Vous trouverez ici différentes manières de mettre à jour wallabag :
- `de la 2.1.x à la 2.2.x <#mettre-a-jour-de-la-2-1-x-a-la-2-2-x>`_
- `de la 2.0.x à la 2.1.1 <#mettre-a-jour-de-la-2-0-x-a-la-2-1-1>`_
- `de la 1.x à la 2.x <#depuis-wallabag-1-x>`_
Mettre à jour de la 2.1.x à la 2.2.x
------------------------------------
Mise à jour sur un serveur dédié
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Depuis 2.1.x:**
::
make update
php bin/console doctrine:migrations:migrate --no-interaction -e=prod
**Depuis 2.2.0:**
::
make update
Explications à propos des migrations de base de données
"""""""""""""""""""""""""""""""""""""""""""""""""""""""
Durant la mise à jour, nous exécutons des migrations de base de données.
Toutes les migrations de base de données sont stockées dans le dossier ``app/DoctrineMigrations``. Vous pouvez exécuter chaque migration individuellement :
``bin/console doctrine:migrations:execute 20161001072726 --env=prod``.
Voici la liste des migrations de la 2.1.x à la 2.2.0 :
* ``20161001072726``: ajout de clés étrangères pour la réinitialisation de compte
* ``20161022134138``: conversion de la base de données à l'encodage ``utf8mb4`` (pour MySQL uniquement)
* ``20161024212538``: ajout de la colonne ``user_id`` sur la table ``oauth2_clients`` pour empêcher les utilisateurs de supprimer des clients API d'autres utilisateurs
* ``20161031132655``: ajout du paramètre interne pour activer/désactiver le téléchargement des images
* ``20161104073720``: ajout de l'index ``created_at`` sur la table ``entry``
* ``20161106113822``: ajout du champ ``action_mark_as_read`` sur la table ``config``
* ``20161117071626``: ajout du paramètre interne pour partager ses articles vers unmark.it
* ``20161118134328``: ajout du champ ``http_status`` sur la table ``entry``
* ``20161122144743``: ajout du paramètre interne pour activer/désactiver la récupération d'articles derrière un paywall
* ``20161122203647``: suppression des champs ``expired`` et ``credentials_expired`` sur la table ``user``
* ``20161128084725``: ajout du champ ``list_mode`` sur la table ``config``
* ``20161128131503``: suppression des champs ``locked``, ``credentials_expire_at`` et ``expires_at`` sur la table ``user``
* ``20161214094402``: renommage du champ ``uuid`` en ``uid`` sur la table ``entry``
* ``20161214094403``: ajout de l'index ``uid`` sur la table ``entry``
* ``20170127093841``: ajout des index ``is_starred`` et ``is_archived`` sur la table ``entry``
Mise à jour sur un hébergement mutualisé
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Effectuez une sauvegarde du fichier ``app/config/parameters.yml``.
Téléchargez la dernière version de wallabag :
.. code-block:: bash
wget https://wllbg.org/latest-v2-package && tar xvf latest-v2-package
Vous trouverez `le hash md5 du dernier package sur notre site <https://static.wallabag.org/releases/>`_.
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
Merci de vérifier que votre fichier ``app/config/parameters.yml`` contient tous les paramètres requis. Vous trouverez `ici une documentation détaillée concernant les paramètres <http://doc.wallabag.org/fr/master/user/parameters.html>`_.
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.
Videz le répertoire ``var/cache``.
Vous allez devoir également exécuter des requêtes SQL pour mettre à jour votre base de données. Nous partons du principe que le préfixe de vos tables est ``wallabag_``.
`Vous trouverez toutes les requêtes à exécuter ici <http://doc.wallabag.org/fr/master/user/query-upgrade-21-22.html>`_.
Mettre à jour de la 2.0.x à la 2.1.1
------------------------------------
.. warning::
Avant cette migration, si vous aviez configuré l'import depuis Pocket en ajoutant votre consumer key dans les paramètres internes, pensez à effectuer une sauvegarde de celle-ci : vous devrez l'ajouter dans la configuration de wallabag après la mise à jour.
Mise à jour sur un serveur dédié
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
::
rm -rf var/cache/*
git fetch origin
git fetch --tags
git checkout 2.1.1 --force
SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
php bin/console doctrine:migrations:migrate --env=prod
php bin/console cache:clear --env=prod
Mise à jour sur un hébergement mutualisé
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Effectuez une sauvegarde du fichier ``app/config/parameters.yml``.
Téléchargez la version 2.1.1 de wallabag :
.. code-block:: bash
wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
(hash md5 de l'archive 2.1.1 : ``9584a3b60a2b2a4de87f536548caac93``)
Décompressez l'archive dans votre répertoire d'installation et remplacez le fichier ``app/config/parameters.yml`` avec le votre.
Merci de vérifier que votre fichier ``app/config/parameters.yml`` contient tous les paramètres requis. Vous trouverez `ici une documentation détaillée concernant les paramètres <http://doc.wallabag.org/fr/master/user/parameters.html>`_.
Si vous utilisez SQLite, vous devez également conserver le contenu du répertoire ``data/``.
Videz le répertoire ``var/cache``.
Vous allez devoir également exécuter des requêtes SQL pour mettre à jour votre base de données. Nous partons du principe que le préfixe de vos tables est ``wallabag_`` et que le serveur SQL est un serveur MySQL :
.. code-block:: sql
ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
Depuis wallabag 1.x
-------------------
Il n'y a pas de script automatique pour mettre à jour wallabag 1.x en wallabag 2.x. Vous devez :
- exportez vos données
- installer wallabag 2.x (`lisez la documentation d'installation <http://doc.wallabag.org/fr/master/user/installation.html>`_ )
- importer vos données dans votre installation toute propre (`lisez la documentation d'import <http://doc.wallabag.org/fr/master/user/import.html>`_ )

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Some files were not shown because too many files have changed in this diff Show more