Since Composer 1.2, binaries are re-installed from vendors if there aren't found.
This avoid us to commit binaries vendors into the repo.
⚠️ You have to update your Composer to the 1.2 (`composer selfupdate`)
Instead of using a HTTP request we just login user like FOSUser does.
It allows us to mock service in container for functional tests.
Also, fix a bad config name in fos_user for firewall
And finally, add functional test to PocketImport
Instead of checking for the whole absolute url, we just check with the relative url.
If the referer ends with the relative url of the deleted entry, don't redirect to the referer.
Following https://gist.github.com/Ocramius/3121916
Be sure to remove the related entity when removing an entity.
Let say you have Entry -> EntryTag -> Tag.
If you remove the entry:
- before that commit, the EntryTag will stay (at least using SQLite).
- with that commit, the related entity is removed
When saving an entry fail because of database error we previously just returned `false`.
Now we got an error in the log and the displayed notice to the user is updated too.
Add a new test to the EntryControllerTest collection which checks that
only entries which have not been archived (and are treated as "unread")
are retrieved.
When installing a new project with MySQL, if the database doesn't exist before installation will fail because DBAL will try to get the server version by querying it.
And since this query is done using the default database connexion and since the database doesn't exist, DBAL can't connect to the server.
On line 103, I'm not sure what symbol that is that looks like this (<<) but it looks smaller? Where is that? Should I just copy and paste it? And just to clarity, please look at line 101 too cause I'm not too sure if/how I change the stuff within <...> I stopped mid line in 103 just until I get clarification on this. Thanks.
Testing that a tag exist or is assigned to the current entry isn't important in the tag controler since the `assignTagsToEntry` is already doing that job.
So it simplify the controller.
Run php-cs-fixer to avoid CS on commits
Add a check on translation message using the built-in yaml validator. It'll avoid typo in translation yaml files.
If the response content isn't the one expected, instead of checking into the whole DOM (with node tag, etc ..) we only check the text.
So if it fails, phpunit will display only the text, not all node tag. It'll be easier to read.
- convert english translation to translate key
- remove baggy template for login (never used since user isn't logged in and it'll use the default theme: material)
- fix tests about text in response (now checking translation key instead of translated text)
- remove all ugly `<div class="hidden">{{ form_rest(form) }}</div>`
When using the default User Agent, the website returns a 403. By forcing the User Agent for this domain, we got the proper behavior: a 200
Since we can't _append_ new user agent to the default graby configuration, we need to rewrite all the default config + the new one.
Fix#1801
- Avoid too much hidden data in the form (instead of manually define the submit button and hide the default, use the default one !)
- Fix HTML syntax in client_parameters
- Add developer link in baggy menu
- Fix space between link in material footer
We already faced this problem but we are facing it again.
d502762598
It seems we can drop a database properly using wallabag:install.
The server log keep saying:
ERROR: source database "template1" is being accessed by other users
DETAIL: There is 1 other session using the database.
STATEMENT: CREATE DATABASE "wallabag_test"
Which means, it can't remove the database wallabag_test because one other person is using it.
Translation file for the 'Persian' language. Also recognized by fa_IR. Also known (in the Persian language) as Farsi. Also written like فارسی in Persian. All said, please call the language just 'Persian'.
So the only solution I found so far is to force the `prod` env when create the project with composer.
There is other solution.
Since the `cache:clear` task is using `dev` env by default, so it tries to load dev bundle, which aren't there since we specify `--no-dev`.
Fix#1617
Using slice & striptags, the content is automatically escaped.
If some html character need to be displayed, they'll be escape too, sth like `&`.
Using |raw, the content isn't escape twice and is well displayed.
So they can be installed using the `assets:install` command and there'll no longer symlink in the repo
They moved from `web/themes/...` to `bundles/wallabagcore/themes/...`
The `resetAction` was overriden to redirect user to the homepage instead of `fos_user_profile_show`.
Instead of copying the whole method we can simply use FOSUserEvents to handle that.
Split paragraph in translation
Inject wallabag_url for image in HTML template
Remove username & password from config_dev.yml (null are already the default value)
Use travis_wait to avoid travis timeout on `composer up`
Jump to `memory_limit -1` for `composer up`
Also, since composer.lock is ignored, we can remove it.
Having a big composer.lock on a final project can have side effect on incoming PR that add a new vendor.
Mostly because conflict are too frequent.
By ignoring composer.lock we ease the PR submission and rebase.
BUT we need to be careful when we release a new version of wallabag. We should manually `git add -f composer.lock` to update it.
Since composer.lock will no longer be commited I switch the `composer install` to a `composer up` in the travis configuration.
Symfony use a different class when in dev mode and prod mode.
Prod loads `Symfony\Bundle\FrameworkBundle\Translation\Translator`.
Dev loads `Symfony\Component\Translation\DataCollectorTranslator` to gather information for the debug bar.
Fix#1585
- some missing url parameters from WallabagRestController & EntryController
- use a service for `EntryFilterType` to use fully qualified name instead (so changing class signature)
- update ImportBundle (url & form)
- list services in /import
- add url to import service
- ImportBundle routing are now prefixed by /import
- optimize flush in each import (flushing each 20 contents)
- improve design of each import
- add more tests
For the moment, we won't do a queue system, just a plain synchronous import.
We also use ContentProxy to grab content for each article from Pocket.
Error from Pocket are now logged using the logger.
The ImportInterface need to be simple and not related to oAuth (not all import will use that method).
- WallabagRestController: remove the tag deletion from the API since we can't remove a tag now, we only remove reference to entries
- RuleBasedTaggerTest: remove workaround for asserting tag are equal since problem was related to mock expects (_call instead of findOneByLabel which was removed from the tag repository)
Fix#1512
We generate the url of the removed content and compare it to the referer url. If they matche, we redirect user to the homepage otherwise to the referer url.
When a new tag is created but not yet persisted, it can be duplicated.
It could happen when multiple rules match the content and at least 2 of them should attach same new tag.
Fix#1528
Configuring SMTP parameters required to be written in files which is not
convenient when using docker containers as the credentials need to be in
the filesystem.
Created environment parameters override for those parameters. A new build
script created in order to generate those parameters right before
launching the application.
For a not-clear reason, I can't properly drop the current database. Even if Doctrine made a special case for that (https://github.com/doctrine/dbal/pull/849).
So instead of trying crazy things to achieve the test, better way is to skip test (too much wasted days ..)
It will slow down the whole test suite (because it'll use doctrine command).
Remove unecessary `KernelTestCase`.
Also rename `AbstractControllerTest` to `WallabagApiTestCase` for consistency.
Ensure that created use during install command will always be unique.
We assume that the install command must be run to initialize a wallabag instance. NEVER to add more user.
Also, use a better way to retrieve the real name of the database and not the one defined in parameters.yml (which isn't the same for test envi because the dbname isn't defined in parameters.yml but directly in config_test.yml)
When I click on "new article" icon, and on the cross after, the filter icon is no more visible.
When I change the size of my browser window, the filter appears but I didn't click on the icon
Bug: can't click on pagination > 1
display bug: when we load homepage, we see quickly the filter form
new entry form: when we click on the field, the history of the field is at the left of the screen, not below the field (see screenshot)
It takes ages to process and most of the time the build fail for "execution time" too long.
Too much time already burned to investigate it.
We'll investigate later, it's not a priority atm.
Since password are linked to username it was hard to change username while checking that the password is the good one.
Instead of doing crazy things to achieve that, I act that user won't be able to update username.
Also, username (and email) must be unique, since people logged in using username and can request a new password using email.
This should fix#1149
They are god damn too long to execute because it launch external command (mostly related to doctrine).
So I've added a PHPUnit @group (`command-doctrine`) so that we can avoid launching them on a regular basis, like that:
`phpunit --exclude-group command-doctrine`
Re-defined the config / user relation to be OneToOne bidirectionnal.
ConfigType is now a service so I can inject the list of available themes that are also used by LiipThemeBundle
Force sqlite for test
In case of people use a different driver in parameter.yml (yes I do :))
Instead of the legacy bin/install here is a symfony command that can initialize wallabag.
There are still work to do on the requirements part (to be sure that wallabag can run like a charm).
I've also added (but commented) the fixtures load part (which will need an extra doctrine package). We'll see that point later.
Multi-page Telepolis-articles (www.heise.de/tp/...) are not fetched correctly atm. My addition to the single_page_link makes it work (tested with http://www.heise.de/tp/artikel/42/42579/1.html).
- [#2165](https://github.com/wallabag/wallabag/pull/2165) Fix a few french translations typos (Thomas Citharel)
- [#2157](https://github.com/wallabag/wallabag/pull/2157) Handle only upper or only lower reading filter (Jeremy Benoist)
- [#2156](https://github.com/wallabag/wallabag/pull/2156) Try to find bad redirection after delete (Jeremy Benoist)
## [2.0.5] - 2016-05-31
### Added
- [#2052](https://github.com/wallabag/wallabag/pull/2052) Add unread filter to entries pages (Dan Bartram)
### Changed
- [#2093](https://github.com/wallabag/wallabag/pull/2093) Replace vertical dots in material theme with horizontal dots (Nicolas Lœuillet)
- [#2054](https://github.com/wallabag/wallabag/pull/2054) Update italian translation (Daniele Conca)
- [#2068](https://github.com/wallabag/wallabag/pull/2068), [#2049](https://github.com/wallabag/wallabag/pull/2049) Update documentation (Josh Panter, Mario Vormstein)
### Fixed
- [#2122](https://github.com/wallabag/wallabag/pull/2122) Fix the deletion of Tags/Entries relation when delete an entry (Jeremy Benoist, Nicolas Lœuillet)
- [#2095](https://github.com/wallabag/wallabag/pull/2095) Fix form user display when 2FA is disabled (Nicolas Lœuillet)
- [#2092](https://github.com/wallabag/wallabag/pull/2092) API: Starred and archived clears if article is already exists (Rurik19)
- [#2023](https://github.com/wallabag/wallabag/pull/2023) Fix translation for validators (Nicolas Lœuillet)
- [#2020](https://github.com/wallabag/wallabag/pull/2020) Fix number of entries in tag/list (Nicolas Lœuillet)
- [#2022](https://github.com/wallabag/wallabag/pull/2022) Fix pagination bar on small devices (Nicolas Lœuillet)
- [#2013](https://github.com/wallabag/wallabag/pull/2013) Fix tag listing (Nicolas Lœuillet)
- [#1976](https://github.com/wallabag/wallabag/pull/1976) Fix filter reading time (Nicolas Lœuillet)
- [#2005](https://github.com/wallabag/wallabag/pull/2005) Fix reading speed not defined when user was created via config page (Nicolas Lœuillet)
- [#2010](https://github.com/wallabag/wallabag/pull/2010) Set the title via POST /api/entries (Nicolas Lœuillet)
## [2.0.3] - 2016-04-22
### Added
- [#1962](https://github.com/wallabag/wallabag/pull/1962) cURL examples in documentation about API (Dirk Deimeke)
### Fixed
- Forgot `composer.lock` file in 2.0.2 release so some users may encounter `Fatal error: Out of memory` error during installation
## [2.0.2] - 2016-04-21
### Added
- [#1945](https://github.com/wallabag/wallabag/pull/1945) cURL examples in documentation about API (Dirk Deimeke)
- [#1911](https://github.com/wallabag/wallabag/pull/1911) Add title hover on entry titles (Thomas Citharel)
### Changed
- [#1944](https://github.com/wallabag/wallabag/pull/1944), [#1953](https://github.com/wallabag/wallabag/pull/1953), [#1954](https://github.com/wallabag/wallabag/pull/1954) Due to branches renaming, update documentation and configuration (maxi62330, Nicolas Lœuillet)
- [#1879](https://github.com/wallabag/wallabag/pull/1879) Move tag form in Material theme (Nicolas Lœuillet)
### Fixed
- [#1903](https://github.com/wallabag/wallabag/pull/1903) Force server version to avoid connection error (Jeremy Benoist)
- [#1887](https://github.com/wallabag/wallabag/pull/1887) Fix duplicate article when added via the bookmarklet (Nicolas Lœuillet)
- [#1895](https://github.com/wallabag/wallabag/pull/1895) API: All the entries are fetched via GET /api/entries (Nicolas Lœuillet)
- [#1898](https://github.com/wallabag/wallabag/pull/1898) Fix estimated reading time in material view #1893 (Nicolas Lœuillet)
- [#1896](https://github.com/wallabag/wallabag/pull/1896) remove download_picture setting and manage show_printlink in material theme #1867 (Nicolas Lœuillet)
- [#1894](https://github.com/wallabag/wallabag/pull/1894) Fix documentation link in developer page (Nicolas Lœuillet)
- [#1891](https://github.com/wallabag/wallabag/pull/1891) Fix typo on configuration page (Nicolas Lœuillet)
- [#1884](https://github.com/wallabag/wallabag/pull/1884) Change the installation method in issue template (Nicolas Lœuillet)
* save an article, read it, favorite it, archive it. (Hopefully)
* annotations: In each article you read, you can write annotations. ([read the doc](http://doc.wallabag.org/en/v2/user/annotations.html))
* filter entries by reading time, domain name, creation date, status, etc.
* assign tags to entries
* edit article titles
* a REST API ([you can have a look to the documentation](http://v2.wallabag.org/api/doc))
* authorization via oAuth2
* a new default theme, called `material`
* RSS feeds (with ability to limit number of articles)
* create a new account from the config page (for super admin only)
* recover passwords from login page (you have to fill your email on config page)
* picture preview, if available, is displayed for each entry
* Public registration
* migration from wallabag v1/v2 (based on JSON export) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
* migration from Pocket (it works, but we need to implement asynchronous import: if you have too many articles, it can fail) ([read the doc](http://doc.wallabag.org/en/v2/user/import.html))
* exports in many formats (PDF, JSON, EPUB, MOBI, XML, CSV and TXT).
* 2-Factor authentication via email ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#two-factor-authentication))
* Tagging rule: create a rule to automatically assign tags to entries! ([read the doc](http://doc.wallabag.org/en/v2/user/configuration.html#tagging-rules))
* Occitan, German, French, Turkish, Persian, Romanian, Polish, Danish, Spanish and English translations
* Quickstart for beginners (when you don't have any entries)
* Internal settings for administrator (the account created during installation)
* For 3rd apps developers, a developer page is available to create API token
wallabag is mainly developed by [Nicolas Lœuillet](https://github.com/nicosomb), [@j0k3r](https://github.com/j0k3r) and [@tcitworld](https://github.com/tcitworld) under the MIT License.
wallabag is mainly developed by Nicolas Lœuillet under the MIT License
If you want to contribute to wallabag, you have some rules to respect. These rules were defined by [PHP Framework Interop Group](http://www.php-fig.org).
## Basic Coding Standard (PSR-1)
This section of the standard comprises what should be considered the standard coding elements that are required to ensure a high level of technical interoperability between shared PHP code.
* Files MUST use only `<?php` and `<?=` tags.
* Files MUST use only UTF-8 without BOM for PHP code.
* Files SHOULD either declare symbols (classes, functions, constants, etc.) or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.
* Namespaces and classes MUST follow [PSR-0](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md).
* Class names MUST be declared in `StudlyCaps`.
* Class constants MUST be declared in all upper case with underscore separators.
* Method names MUST be declared in `camelCase`.
You can read details on [PHP FIG website](http://www.php-fig.org/psr/psr-1/).
## Coding Style Guide (PSR-2)
This guide extends and expands on PSR-1, the basic coding standard.
The intent of this guide is to reduce cognitive friction when scanning code from different authors. It does so by enumerating a shared set of rules and expectations about how to format PHP code.
The style rules herein are derived from commonalities among the various member projects. When various authors collaborate across multiple projects, it helps to have one set of guidelines to be used among all those projects. Thus, the benefit of this guide is not in the rules themselves, but in the sharing of those rules.
* Code MUST follow PSR-1.
* Code MUST use 4 spaces for indenting, not tabs.
* There MUST NOT be a hard limit on line length; the soft limit MUST be 120 characters; lines SHOULD be 80 characters or less.
* There MUST be one blank line after the `namespace` declaration, and there MUST be one blank line after the block of `use` declarations.
* Opening braces for classes MUST go on the next line, and closing braces MUST go on the next line after the body.
* Opening braces for methods MUST go on the next line, and closing braces MUST go on the next line after the body.
* Visibility MUST be declared on all properties and methods; `abstract` and `final` MUST be declared before the visibility; `static` MUST be declared after the visibility.
* Control structure keywords MUST have one space after them; method and function calls MUST NOT.
* Opening braces for control structures MUST go on the same line, and closing braces MUST go on the next line after the body.
* Opening parentheses for control structures MUST NOT have a space after them, and closing parentheses for control structures MUST NOT have a space before.
You can read details on [PHP FIG website](http://www.php-fig.org/psr/psr-2/).
wallabag is a self hostable application allowing you to not miss any content anymore. Click, save, read it when you can. It extracts content so that you can read it when you have time.
More informations on our website: [wallabag.org](http://wallabag.org)
# What is wallabag?
wallabag is a self hostable application allowing you to not miss any content anymore.
Click, save and read it when you can. It extracts content so that you can read it when you have time.
More informations on our website: [wallabag.org](https://wallabag.org)
# Install wallabag
If you don't have it yet, please [install composer](https://getcomposer.org/download/) or be sure to use Composer 1.2 (`composer selfupdate` can help you about that).
Then you can install wallabag by executing the following commands:
This guide will describe the procedure of translation management of the wallabag web application.
All translations are made using [gettext](http://en.wikipedia.org/wiki/Gettext) system and tools.
You will need the [Poedit](http://www.poedit.net/download.php) editor to update, edit and create your translation files easily. However, you can also handle translations also without it: all can be done using gettext tools and your favorite plain text editor only. This guide, however, describes editing with Poedit. If you want to use gettext only, please refer to the xgettext manual page to update po files from sources (see also how it is used by Poedit below) and use msgunfmt tool to compile .mo files manually.
You need to know, that translation phrases are stored in **".po"** files (for example: `locale/pl_PL.utf8/LC_MESSAGES/pl_PL.utf8.po`), which are then complied in **".mo"** files using **msgfmt** gettext tool or by Poedit, which will run msgfmt for you in background.
**It's assumed, that you have wallabag installed locally on your computer or on the server you have access to.**
## To change existing translation you will need to do:
### 1. Clear cache
You can do this using **http://your-wallabag-host.com/?empty-cache** link (replace http://your-wallabag-host.com/ with real url of your wallabag application)
OR
from command line:
go to root of your installation of wallabag project and run next command:
`rm -rf ./cache/*`
(this may require root privileges if you run, for example Apache web server with mod_php)
### 2. Generate php files from all twig templates
Do this using next command:
`php ./locale/tools/fillCache.php`
OR
from your browser: **http://your-wallabag-host.com/locale/tools/fillCache.php** (this may require removal of .htaccess file in locale/ directory).
### 3. Configure your Poedit
Open Poedit editor, open Edit->Preferences. Go to "Parsers" tab, click on PHP and press "Edit" button. Make sure your "Parser command:" looks like
Usually it is required to add "--no-location" to default value.
### 4. Open .po file you want to edit in Poedit and change its settings
Open, for example `locale/pl_PL.utf8/LC_MESSAGES/pl_PL.utf8.po` file in your Poedit.
Go to "Catalog"->"Settings..." menu. Then go to "Path" tab and add path to wallabag installation in your local file system. This step can't be omitted as you will not be able to update phrases otherwise.
You can also check "project into" tab to be sure, that "Language" is set correctly (this will allow you to spell check your translation).
### 5. Update opened .po file from sources
Once you have set your path correctly, you are able to update phrases from sources. Press "Update catalog - synchronize it with sources" button or go to "Catalog"->"Update from sources" menu.
As a result you will see confirmation popup with two tabs: "New strings" and "Obsolete strings". Please review and accept changes (or press "Undo" if you see too many obsolete strings, as Poedit will remove them all - in this case please make sure all previous steps are performed w/o errors).
### 6. Translate and save your .po file
If you have any difficulties on this step, please consult with Poedit manual.
Every time you save your .po file, Poedit will also compile appropriate .mo file by default (of course, if not disabled in preferences).
You are now almost done.
### 7. Clear cache again
This step may be required if your web server runs php scripts in name of, say, www user (i.e. Apache with mod_php, not cgi).
##To create new translation
You just have to copy the folder corresponding to the language you want to translate from, change language in the project settings and for the folder and files names. Then start replacing all existing translations with your own.
Enter your email address below and we'll send you password reset instructions.:"Indtast din emailadresse nedenfor, så sender vi dig instrukser til at nulstille din adgangskode."
Enter your email address below and we'll send you password reset instructions.:"Tippe deine E-Mail-Adresse unten ein und wir senden dir die Anweisungen, wie du dein Kennwort zurücksetzen kannst."
Enter your email address below and we'll send you password reset instructions.:"Introduzca su dirección de email y le enviaremos las instrucciones para resetear su contraseña."
Enter your email address below and we'll send you password reset instructions.:"Renseignez votre adresse email, nous vous enverrons les instructions pour réinitialiser votre mot de passe."
Enter your email address below and we'll send you password reset instructions.:"Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
Enter your email address below and we'll send you password reset instructions.:"Wpisz poniżej swój adres email, abyśmy mogli wysłać ci instrukcję resetowania hasła."
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.
Du kannst deine IP Adresse in ``app/config/config.yml`` setzen, wenn du Zugriff zu wallabag haben willst, auch wenn der Wartungsmodus aktiv ist. Zum Beispiel:
::
lexik_maintenance:
authorized:
ips: ['127.0.0.1']
Deaktivieren des Wartungsmodus
------------------------
Um den Wartungsmodus zu deaktivieren, führe dieses Kommando aus:
**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.
..tip::
Diese Dokumentation ist über wallabag v2. Wenn du die Dokumentation für wallabag v1 lesen willst, `siehe dir bitte das hier an <https://github.com/wallabag/documentation>`__.
Die Hauptdokumentation für diese Applikation ist in einigen Abschnitten organisiert:
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.
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.
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.
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.
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.
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.
:alt:Gefüllte Artikellist da Feeds erfolgreich synchronisiert sind
:align:center
Bekannte Limitierungen
---------------------
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 Applikation <https://github.com/wallabag/android-app>`_
`Android Applikation auf F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
`Android Applikation auf Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_
`Support Chat auf English <https://gitter.im/wallabag/wallabag>`_
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"
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.
wallabag ist kompatibel mit PHP >= 5.5, inkl. PHP 7.
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
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)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 http://getcomposer.org/installer | php
Du kannst eine spezifische Anleitung `hier <https://getcomposer.org/doc/00-intro.md>`__ finden:
Um wallabag selbst zu installieren, musst du die folgenden Kommandos ausführen:
Um PHPs eingebauten Server zu starten und zu testen, ob alles korrekt installiert wurde, kannst du folgendes Kommando ausführen:
::
php bin/console server:run --env=prod
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 http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
Jetzt lese 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
Virtualhosts
------------
Konfiguration von Apache
~~~~~~~~~~~~~~~~~~~~~~~
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
# 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;
}
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::
When you want to import large file into wallabag, you need to add this line in your nginx configuration ``client_max_body_size XM; # allows file uploads up to X megabytes``.
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):
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
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:
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:
Wenn du bisher wallabag v1.x genutzt hast, musst du deine Daten exportieren bevor du zu wallabag v2.x migrierst, weil die Applikation und ihre Datenbank sich stark geändert haben. In deiner alten wallabag Installation kannst du deine Daten auf der Konfigurationsseite exportieren.
..image:: ../../img/user/export_v1.png
:alt:Export von wallabag v1
:align:center
..note::
Wenn du mehrere Accounts auf der gleichen Instanz von wallabag hast, muss jeder Nutzer von v1 exportieren und in v2 seine Daten importieren.
..note::
Wenn du Probleme während des Exports oder Imports hast, scheue dich nicht davor `nach Hilfe zu fragen <https://www.wallabag.org/pages/support.html>`__.
Wenn du eine JSON Datei mit deinen Artikeln erhalten hast, kannst du wallabag v2 installieren falls benötigt durch Befolgen `der Standardprozedur <http://doc.wallabag.org/en/master/user/installation.html>`__.
Nachdem du einen Nutzerkonto auf deiner neuen wallabag v2 Instanz eingerichtet hast, kannst du zu dem Abschnitt `Import` springen und `Import von wallabag v1` auswählen. Wähle deine JSON Datei aus und lade sie hoch.
..image:: ../../img/user/import_wallabagv1.png
:alt:Import von wallabag v1
:align:center
Import via command-line interface (CLI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Wenn du CLI Zugang zu deinem Webserver hast, kannst du dieses Kommando ausführen, um deine Aritkel vom wallabag v1 Export zu importieren:
*``1`` ist die Nutzer ID in der Databank (Die ID von dem ersten erstellten Nutzer in wallabag ist 1)
*``~/Downloads/wallabag-export-1-2016-04-05.json`` ist der Pfad zu deinem wallabag v1 Export
Du wirst eine solche Ausgabe erhalten:
::
Start : 05-04-2016 11:36:07 ---
403 imported
0 already saved
End : 05-04-2016 11:36:09 ---
Von wallabag 2.x
----------------
In der vorherigen wallabag Instanz, gehe zu `Alle Artikel` und exportiere diese Artikel als JSON.
..image:: ../../img/user/export_v2.png
:alt:Export von wallabag v2
:align:center
In deiner neuen wallabag Instanz erstellst du ein Nutzerkonto und klickst auf den Link im Menü, um den Import fortzusetzen. Wähle Import von wallabag v2 aus und lade deine JSON Datei hoch.
..note::
Wenn du Probleme während des Exports oder Imports hast, scheue dich nicht davor `nach Hilfe zu fragen <https://www.wallabag.org/pages/support.html>`__.
Das neueste Release ist auf https://www.wallabag.org/pages/download-wallabag.html veröffentlicht. Um deine wallabag Installation auf die neueste Version upzudaten, führe die folgenden Kommandos in deinem wallabag Ordner aus (ersetze ``2.0.3`` mit der neuesten Releasenummer):
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.