1<!DOCTYPE html> 2<html lang="es"> 3<head> 4 <meta charset="utf-8" /> 5 <title>Como instalar Wallabag en Debian | FErArg</title> 6 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <meta name="generator" content="GravCMS" /> 10 <meta name="description" content="Blog de FErArg" /> 11 12 <link rel="icon" type="image/png" href="/user/themes/quark/images/favicon.png" /> 13 <link rel="canonical" href="https://ferarg.com/blog/como-instalar-wallabag-en-debian" /> 14 15 16 17 <link href="/user/plugins/backtotop/assets/css/font-awesome-4.7.0.min.css" type="text/css" rel="stylesheet"> 18<link href="/user/plugins/admin-power-tools/assets/scroll_fix.css" type="text/css" rel="stylesheet"> 19<link href="/user/plugins/backtotop/assets/css/return-to-top.css" type="text/css" rel="stylesheet"> 20<link href="/user/plugins/breadcrumbs/css/breadcrumbs.css" type="text/css" rel="stylesheet"> 21<link href="/user/plugins/external_links/assets/css/external_links.css" type="text/css" rel="stylesheet"> 22<link href="/user/plugins/form/assets/form-styles.css" type="text/css" rel="stylesheet"> 23<link href="/user/plugins/simplesearch/css/simplesearch.css" type="text/css" rel="stylesheet"> 24<link href="/user/plugins/youtube/css/youtube.css" type="text/css" rel="stylesheet"> 25<link href="/user/plugins/login/css/login.css" type="text/css" rel="stylesheet"> 26<link href="/user/themes/quark/css-compiled/spectre.min.css" type="text/css" rel="stylesheet"> 27<link href="/user/themes/quark/css-compiled/theme.min.css" type="text/css" rel="stylesheet"> 28<link href="/user/themes/quark/css/custom.css" type="text/css" rel="stylesheet"> 29<link href="/user/themes/quark/css/line-awesome.min.css" type="text/css" rel="stylesheet"> 30 31
31<script> 32var pageStats = {"sid":"702772","url":"\/page-stats\/event-collection","config":{"ping":15}} 33</script>
vendor: 1 bytes, line 33
33
34<script src="/system/assets/jquery/jquery-3.x.min.js"></script>
vendor: 1 bytes, line 34
34
35<script src="/user/plugins/page-stats/js/ps.js"></script>
vendor: 1 bytes, line 35
35
36<script src="/user/plugins/lazy-image/vendor/lazyload.min.js"></script>
vendor: 1 bytes, line 36
36
37<script> 38// Grav Lazy Image Plugin - START 39document.onreadystatechange = function() { 40 if(document.readyState == "complete") { 41 let lazyLoadImages = document.querySelectorAll(".img-fluid"); 42 lazyload(lazyLoadImages); 43 } 44}; 45// Grav Lazy Image Plugin - END 46</script>
46 47 48</head> 49<body id="top" class=" header-fixed header-animated sticky-footer"><a href="https://ferarg.com/cdn-cgi/content?id=GE3tfWR1APNiTMReCsY5TPWwUudvb9HZ5kShVkKW5DQ-1791597826.6156738-1.2.1.1-NoMQt7YFrrv3HMmFa6Z9HEo8fyEJuLgGt0eAj.TDqZZc1WPJt7yMZj11sdECzWkn" aria-hidden="true" rel="nofollow noopener" style="display: none !important; visibility: hidden !important"></a> 50 <div id="page-wrapper"> 51 <section id="header" class="section"> 52 <section class="container grid-xl"> 53 <nav class="navbar"> 54 <section class="navbar-section logo"> 55 <a href="/" class="navbar-brand mr-10"> 56 <img src="/user/themes/quark/images/logo/steawi_1-modified_2.png" alt="FErArg" /> 57</a> </section> 58 <section class="navbar-section desktop-menu"> 59 60 <nav class="dropmenu animated"> 61 62<ul > 63 <li> 64 <a href="/" class="active"> 65 Home 66 </a> 67 </li> 68 <li> 69 <a href="/contacto" class=""> 70 Contacto 71 </a> 72 </li> 73 74</ul> 75 76 </nav> 77 78 79 </section> 80 </nav> 81 </section> 82 </section> 83 <div class="mobile-menu"> 84 <div class="button_container" id="toggle"> 85 <span class="top"></span> 86 <span class="middle"></span> 87 <span class="bottom"></span> 88 </div> 89 </div> 90 91 92 <section id="start"> 93 <section id="body-wrapper" class="section blog-listing"> 94 <section class="container grid-xl"> 95 96 97<div id="breadcrumbs" itemscope itemtype="http://schema.org/BreadcrumbList"> 98 <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 99 <a itemscope itemtype="http://schema.org/Thing" itemprop="item" href="/" itemid="/"> 100 <span itemprop="name">Home</span> 101 </a> 102 <i class="fa fa-angle-right"></i> 103 <meta itemprop="position" content="1" /> 104 </span> 105 <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> 106 <span itemscope itemtype="http://schema.org/Thing" itemprop="item" itemid="/blog/como-instalar-wallabag-en-debian"> 107 <span itemprop="name">Como instalar Wallabag en Debian</span> 108 </span> 109 <meta itemprop="position" content="2" /> 110 </span> 111 </div> 112 113 114<div class="columns"> 115 <div id="item" class="column col-9 col-md-12 extra-spacing"> 116 <div class="content-item h-entry"> 117 118 <div class="content-title text-center"> 119 <h2 class="p-name mt-1"><a href="/blog/como-instalar-wallabag-en-debian" class="u-url">Como instalar Wallabag en Debian</a></h2> 120 <span class="blog-date"> 121 <time class="dt-published" datetime="2023-03-26T00:00:00+00:00"> 122 <i class="fa fa-calendar"></i> 26th Mar 2023 123 </time> 124</span> 125 <span class="tags"> 126 <a class="label label-rounded label-secondary p-category" href="/tag:wallabag#body-wrapper">wallabag</a> 127 </span> 128 </div> 129 <div class="e-content"> 130 <p>Hace uno 6-7 años utilizaba <a href="https://www.wallabag.it/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Wallabag</a> como un Read-It-Later privado, hasta que hicieron un cambio en la instalación/actualización, y lo eliminé de mi server, hasta hace unas semanas que me llegó por dos sitios diferentes, <a href="https://www.howtoforge.com/how-to-install-wallabag-on-ubuntu-22-04/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Ubuntu</a> y <a href="https://www.linuxteck.com/how-to-install-apache-on-rocky-linux/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Rocky</a>, artÃculos de como instalar Wallabag en tu server privado.</p> 131<p>Seguà las indicaciones de esta web, <a href="https://www.howtoforge.com/how-to-install-wallabag-on-ubuntu-22-04/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Ubuntu</a>, pero de forma "personalizada", asà que basándome en esa misma ayuda, detallo los pasos que seguà para
131instalar esta app.</p> 132<p>Aclaraciones y Pre requisitos:</p> 133<ul> 134<li>Instalación en Debian/Ubuntu</li> 135<li>Versión de PHP 7.4.33 / 8.2.XX</li> 136<li>Instalaremos Wallabag en un subdominio - (Ejemplo: wallabag.example.com)</li> 137<li>Tener certificados ofrecidos por Let's Encrypt para el dominio que utilizaremos - (Ejemplo: wallabag.example.com)</li> 138<li>No instalamos Wallabag directamente en el directorio que utiliza Apache como directorio root, porque lo utilizaremos como proxy, para utilizar Wallabag con certificados - (Ejemplo: https://wallabag.example.com)</li> 139</ul> 140<p>1- Pre Requisitos</p> 141<ul> 142<li>Server MySQL Instalado</li> 143<li>Crear un usuario y una DB para Wallabag</li> 144<li>servidor Apache2 Instalado</li> 145</ul> 146<p>2- Instalación de librerÃas PHP, adaptar la versi</p> 147<pre><code>sudo apt install php7.4-fpm php7.4-mysql php7.4-bcmath php7.4-xml php7.4-zip php7.4-curl php7.4-mbstring php7.4-gd php7.4-tidy php7.4-intl php7.4-cli </code></pre> 148<p>3- Crear directorio </p> 149<pre><code>mkdir /var/www/wallabag</code></pre> 150<p>4- Descargar wallabag en el directorio temporal, descomprimir y copiar el nuavo directorio</p> 151<pre><code>cd /tmp 152git clone https://github.com/wallabag/wallabag.git 153cp -R /tmp/wallabag/* /var/www/wallabag/</code></pre> 154<p>5- Descargar Composer</p> 155<pre><code>cd /var/www/wallabag 156php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 157php composer-setup.php --2.2 158php -r "unlink('composer-setup.php');"</code></pre> 159<p>6- Configurar Wallabag</p> 160<pre><code>mkdir /var/www/wallabag/data/assets 161cd /var/www/wallabag</code></pre> 162<p>7- Copiar el Archivo de configuración</p> 163<pre><code>cp app/config/parameters.yml.dist app/config/parameters.yml</code></pre> 164<p>8- Se necesita una llave seceta, que generaremos con openssl</p> 165<pre><code>openssl rand -base64 32 166QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o=</code></pre> 167<p>9- Editamos el archivo de configuración y lo personalizamos</p> 168<pre><code>nano app/config/parameters.yml</code></pre> 169<p>Condifuración de la Base de Datos</p> 170<pre><code> database_driver: pdo_mysql 171 database_host: 127.0.0.1 172 database_port: 3306 173 database_name: wallabag 174 database_user: wallabaguser 175 database_password: Your_password2</code></pre> 176<p>Configuración del dominio y nombre del sitio </p> 177<pre><code> domain_name: https://wallabag.example.com 178 server_name: "Howtoforge Wallabag"</code></pre> 179<p>Configuración del correo electrónico</p> 180<pre><code> mailer_transport: smtp 181 mailer_user: YOUR_AES_USERNAME 182 mailer_password: YOUR_AES_PASSWORD 183 mailer_host: email-smtp.us-west-2.amazonaws.com 184 mailer_port: 587 185 mailer_encryption: tls</code></pre> 186<p>Configuración de la llave secreta,(la creamos en el paso 8), y otras personalizaciones de seguridad</p> 187<pre><code> # A secret key that's used to generate certain security-related tokens 188 secret: QLV/GpZwDobQbyQZQ15FkM1Hvt+ZFJZXw8GW9F4KR3o= 189 190 # two factor stuff 191 twofactor_auth: true 192 twofactor_sender: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="127c7d3f6077627e6b5265737e7e737073753c776a737f627e773c717d7f">[email protected]</a> 193 194 # fosuser stuff 195 fosuser_registration: true 196 fosuser_confirmation: true 197 198 from_email: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="98f6f7b5eafde8f4e1d8eff9f4f4f9faf9ffb6fde0f9f5e8f4fdb6fbf7f5">[email protected]</a></code></pre> 199<p>10- Cambiamos permisos, para que el usuario de Apache puede modificar los archivos</p> 200<pre><code>chown www-data:www-data * -R /var/www/wallabag</code></pre> 201<p>11- Instalamos Wallabag</p> 202<pre><code>cd /var/www/wallabag 203php composer.phar bin/console wallabag:install --env=prod</code></pre> 204<p>Serguir las indicaciones del instalador y personalizar la instalación</p> 205<p>12- Apache2 como proxy 206Utilzaremos este servidor web como proxy, para poder conectar a Wallabar por HTTPS, para ello crearemos un nuevo archivo de configuración</p> 207<pre><code>nano /etc/apache2/sites-available/wallabag-ssl.conf</code></pre> 208<p>Copiamos el siguiente texto, (personalizar el contenido con tu sistema)</p> 209<pre><code><VirtualHost *:443> 210 ServerName wallabag.wallabag.example.com 211 DocumentRoot /var/www/wallabag 212 213 <Directory /var/www/wallabag> 214 AllowOverride None 215 Order Allow,Deny 216 Allow from All 217 <IfModule mod_rewrite.c> 218 Options -MultiViews 219 RewriteEngine On 220 RewriteCond %{REQUEST_FILENAME} !-f 221 RewriteRule ^(.*)$ app.php [QSA,L] 222 </IfModule> 223 </Directory> 224 <Directory /var/www/wallabag/bundles> 225 <IfModule mod_rewrite.c> 226 RewriteEngine Off 227 </IfModule> 228 </Directory> 229 230 SSLEngine on 231 SSLCertificateFile /etc/letsencrypt/live/wallabag.example.com/fullchain.pem 232 SSLCertificateKeyFile /etc/letsencrypt/live/wallabag.example.com/privke
232y.pem 233 234 ErrorLog ${APACHE_LOG_DIR}/wallabag-error.log 235 CustomLog ${APACHE_LOG_DIR}/wallabag-access.log combined 236 237 RewriteEngine On 238</VirtualHost> 239</code></pre> 240<p>Guardamos, habilitamos el nuevo subdominio y reiniciamos Apache2 para que publique el nuevo subdominio</p> 241<pre><code>Para guardar: Ctlr + x 242Para habilitar: a2ensite wallabag-ssl 243Para Reiniciar Apache2: systemctl restart apache2 244</code></pre> 245<p>Con estos pasos ya podrÃas acceder a "https://wallabag.example.com" y encontrarte con la página de inicio de Wallabag, si tienes problemas, revisa la configuración y sobre todo los logs de apache, que dan mucha información.</p> 246<p>Para este post, me basé en las webs:</p> 247<ul> 248<li><a href="https://www.howtoforge.com/how-to-install-wallabag-on-ubuntu-22-04/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">How to Install Wallabag on Ubuntu 22.04</a></li> 249<li><a href="https://nxnjz.net/2019/02/install-wallabag-on-ubuntu-18-04-lts/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">How to Install WallaBag on Ubuntu 18.04 LTS</a></li> 250<li><a href="https://www.howtoforge.com/how-to-install-wallabag-on-ubuntu-1804/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">How to Install Wallabag on Ubuntu 18.04 LTS</a></li> 251<li><a href="https://httpd.apache.org/docs/trunk/es/howto/reverse_proxy.html" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Apache - GuÃa de Proxy Inverso</a></li> 252<li><a href="https://blog.jitendrapatro.me/installing-vaultwarden-server-with-apache-and-sslh-proxy/" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">Installing Vaultwarden server with Apache and SSLH proxy</a></li> 253<li><a href="https://serverfault.com/questions/309847/how-do-i-have-an-apache-site-in-a-subdirectory-when-the-root-is-proxypassed-to" target="_blank" rel="nofollow noopener noreferrer" class="external-link no-image">How do I have an Apache site in a subdirectory, when the root is ProxyPassed to something else?</a></li> 254</ul> 255 </div> 256 257 </div> 258 259<p class="prev-next text-center"> 260 <a class="btn" href="/blog/actualizados-repositorios-git"><i class="fa fa-angle-left"></i> Previous Post</a> 261 262 <a class="btn" href="/blog/como-clonar-repositorio-git-a-otro-server">Next Post <i class="fa fa-angle-right"></i></a> 263 </p> 264 </div> 265 <div id="sidebar" class="column col-3 col-md-12"> 266 267<div class="sidebar-content"> 268 <div class="search-wrapper"> 269 <form name="search" data-simplesearch-form> 270 <input 271 name="searchfield" 272 class="search-input" 273 aria-label="search" 274 type="text" 275 data-min="3" required 276 placeholder="Search â¦" 277 value="" 278 data-search-invalid="Please add at least 3 characters" 279 data-search-separator=":" 280 data-search-input="/search/query" 281 autofocus 282 /> 283 </form> 284</div> 285</div> 286<div class="sidebar-content"> 287 <h4>Related Posts</h4> 288 <ul class="related-pages menu"> 289 <li class="menu-item"> 290 <div class="menu-badge"> 291 <span class="label label-primary">100</span> 292 </div> 293 <a href="/blog/como-actualizar-wallabag" title="Cómo Actualizar Wallabag">Cómo Actualizar Wallabag</a> 294 </li> 295 </ul></div> 296<div class="sidebar-content"> 297 <h4>Random Article</h4> 298 <a class="button" href="/random"><i class="fa fa-retweet"></i> I'm Feeling Lucky!</a> 299</div> 300 301<!-- 302#### Some Text Widget 303You can **edit** this by modifying the `modules/sidebar/default.md` page. 304To **reorder** things in the sidebar you need to modify the `partials/sidebar.html.twig` template file. 305--> 306 307<div class="sidebar-content"> 308 <h4>Popular Tags</h4> 309 310</div> 311<div class="sidebar-content"> 312 <h4>Archives</h4> 313 <ul class="archives"> 314 315 <li> 316 <a href="/archives_month:oct_2025">
317 <span class="label label-rounded label-primary">4</span> 318 <span class="archive_date">October 2025 </span> 319 </a> 320 </li> 321 <li> 322 <a href="/archives_month:jan_2025"> 323 <span class="label label-rounded label-primary">1</span> 324 <span class="archive_date">January 2025 </span> 325 </a> 326 </li> 327 <li> 328 <a href="/archives_month:mar_2023"> 329 <span class="label label-rounded label-primary">2</span> 330 <span class="archive_date">March 2023 </span> 331 </a> 332 </li> 333 <li> 334 <a href="/archives_month:feb_2023"> 335 <span class="label label-rounded label-primary">9</span> 336 <span class="archive_date">February 2023 </span> 337 </a> 338 </li> 339 <li> 340 <a href="/archives_month:jul_2019"> 341 <span class="label label-rounded label-primary">1</span> 342 <span class="archive_date">July 2019 </span> 343 </a> 344 </li> 345 <li> 346 <a href="/archives_month:feb_2019"> 347 <span class="label label-rounded label-primary">1</span> 348 <span class="archive_date">February 2019 </span> 349 </a> 350 </li> 351 <li> 352 <a href="/archives_month:sep_2018"> 353 <span class="label label-rounded label-primary">1</span> 354 <span class="archive_date">September 2018 </span> 355 </a> 356 </li> 357 <li> 358 <a href="/archives_month:may_2018"> 359 <span class="label label-rounded label-primary">1</span> 360 <span class="archive_date">May 2018 </span> 361 </a> 362 </li> 363 <li> 364 <a href="/archives_month:sep_2016"> 365 <span class="label label-rounded label-primary">1</span> 366 <span class="archive_date">September 2016 </span> 367 </a> 368 </li> 369 <li> 370 <a href="/archives_month:dec_2015"> 371 <span class="label label-rounded label-primary">2</span> 372 <span class="archive_date">December 2015 </span> 373 </a> 374 </li> 375 <li> 376 <a href="/archives_month:aug_2015"> 377 <span class="label label-rounded label-primary">1</span> 378 <span class="archive_date">August 2015 </span> 379 </a> 380 </li> 381 <li> 382 <a href="/archives_month:may_2015"> 383 <span class="label label-rounded label-primary">1</span> 384 <span class="archive_date">May 2015 </span> 385 </a> 386 </li> 387</ul> 388</div> 389<div class="sidebar-content syndicate"> 390 <h4>Syndicate</h4> 391 <a class="btn" href="/blog.atom"><i class="fa fa-rss-square"></i> Atom 1.0</a> 392 <a class="btn" href="/blog.rss"><i class="fa fa-rss-square"></i> RSS</a> 393 </div> 394 </div> 395 </div> 396 397 398 </section> 399</section> 400 </section> 401 402 </div> 403 404 <section id="footer" class="section bg-gray"> 405 <section class="container grid-xl"> 406 <p><a href="https://getgrav.org">Grav</a> was <i class="fa fa-code"></i> with <i class="fa fa-heart-o pulse "></i> by <a href="https://trilby.media">Trilby Media</a>.</p> 407 </section> 408</section> 409 410 <div class="mobile-container"> 411 <div class="overlay" id="overlay"> 412 <div class="mobile-logo"> 413 <a href="/" class="navbar-brand mr-10"> 414 <img src="/user/themes/quark/images/logo/steawi_1-modified_2.png" alt="FErArg" /> 415</a> </div> 416 <nav class="overlay-menu"> 417 418<ul class="tree"> 419 <li> 420 <a href="/" class="active"> 421 Home 422 </a> 423 </li> 424 <li> 425 <a href="/contacto" class=""> 426 Contacto 427 </a> 428 </li> 429 430</ul> 431 432 </nav> 433 </div> 434 </div>
vendor: 118 bytes, lines 434-436
434 435 436 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
436<script src="/user/plugins/backtotop/assets/js/return-to-top.js"></script>
vendor: 1 bytes, line 436
436
437<script src="/user/plugins/simplesearch/js/simplesearch.js"></script>
vendor: 1 bytes, line 437
437
438<script src="/user/themes/quark/js/jquery.treemenu.js"></script>
vendor: 1 bytes, line 438
438
439<script src="/user/themes/quark/js/site.js"></script>
439 440 441
442<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4820cf05d8590bd',t:'MTc5MTU5NzgyNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
442<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"bfc1e76dd6244c32b5d776f2a45bb80a","r":1,"spa":2}' crossorigin="anonymous"></script>
442 443</body> 444</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.