Отложенное чтение. Wallabag

Отложенное чтение. Wallabag.

Содержание

1 Общая информация

2 Установка

2.1 Контейнер

2.1.1 Общая информация

2.1.2 Podman

  1. Общая информация

  1. Загрузка

    • Скачайте контейнер:
      1podman pull wallabag/wallabag
      
  1. Установка с SQLite

    1. Запуск вручную

      • Создайте каталоги для постоянных данных:
        1mkdir -p /opt/wallabag/{data,images}
        2chown -R nobody:nobody /opt/wallabag
        
      • Необходимо указать том для контейнера (для постоянного хранения):
        1podman run --name wallabag -v /opt/wallabag/data:/var/www/wallabag/data -v /opt/wallabag/images:/var/www/wallabag/web/assets/images -p 40401:80 -e "SYMFONY__ENV__DOMAIN_NAME=https://wallabag.example.com" wallabag/wallabag
        
      • Сервер будет доступен по http://localhost:40401.
    1. docker-compose

      • Создадим файл docker-compose wallabag-sqlite.yaml:
         1version: '3'
         2
         3networks:
         4    proxy-network:
         5        external: true
         6
         7services:
         8  wallabag:
         9    image: wallabag/wallabag:latest
        10    container_name: wallabag
        11    restart: unless-stopped
        12    environment:
        13​      - TZ=Etc/UTC
        14​      - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
        15​      - SYMFONY__ENV__MAILER_HOST=mail.example.com
        16​      - SYMFONY__ENV__FROM_EMAIL="wallabag@example.com"
        17​      - SYMFONY__ENV__SERVER_NAME="wallabag.example.com"
        18​      - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.example.com
        19​      - PHP_MEMORY_LIMIT=512M
        20​      - SYMFONY__ENV__MAILER_USER=""
        21​      - SYMFONY__ENV__MAILER_PASSWORD=""
        22​      - SYMFONY__ENV__FOSUSER_REGISTRATION=false
        23​      - SYMFONY__ENV__FOSUSER_CONFIRMATION=false
        24​      - SYMFONY__ENV__TWOFACTOR_AUTH=false
        25    ports:
        26​      - 40401:80
        27    volumes:
        28​      - /opt/wallabag/images:/var/www/wallabag/web/assets/images
        29​      - /opt/wallabag/data:/var/www/wallabag/data
        30    networks:
        31​      - proxy-network
        32    healthcheck:
        33      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
        34      interval: 1m
        35      timeout: 3s
        
  1. Nginx

    • Настройте nginx:
       1server {
       2       listen 443 ssl http2;
       3       listen [::]:443 ssl http2;
       4
       5       server_name wallabag.example.com;
       6
       7       ssl_certificate /etc/letsencrypt/live/wallabag.example.com/fullchain.pem;
       8       ssl_certificate_key /etc/letsencrypt/live/wallabag.example.com/privkey.pem;
       9
      10        charset utf-8;
      11        gzip on;
      12        gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
      13
      14        location / {
      15                proxy_pass http://localhost:40401;
      16                proxy_set_header X-Forwarded-Host $server_name;
      17                proxy_set_header X-Forwarded-Proto https;
      18                proxy_set_header X-Forwarded-For $remote_addr;
      19        }
      20
      21}
      22
      23server {
      24       listen         80;
      25       listen         [::]:80;
      26       server_name    wallabag.example.com;
      27       return         301 https://$server_name$request_uri;
      28}
      
  1. Скрипт systemd

    • Создаём файл сервиса /etc/containers/systemd/wallabag.container:
       1[Unit]
       2Description=A templated wallabag container
       3
       4[Container]
       5Image=wallabag
       6PublishPort=40401:80
       7
       8[Service]
       9# Restart service when sleep finishes
      10Restart=always
      11
      12[Install]
      13WantedBy=default.target
      
    • Запустим генератор и сообщим systemd о запуске новой службы:
      1systemctl daemon-reload
      
    • Запустим службу:
      1systemctl start wallabag.service
      
  1. Импорт Omnivore

    • Экспортировал записи с Omnivore.
    • Скачал архив с большим количеством файлов json (более 600).
    • Загружать каждый файл через web-интерфейс не представлялось возможным.
    • Скопировал архив на сервер.
    • Поскольку каталог /opt/wallabag/images уже подмонтирован к контейнеру в каталог /var/www/wallabag/web/assets/images, сделал в нём каталог omnivore и распаковал туда архив.
    • Запустил скрипт:
      1#!/bin/bash
      2
      3cd /opt/wallabag/images/omnivore
      4for i in metadata*
      5do
      6    podman exec -it <container-id> sh -c "cd /var/www/wallabag/web/assets/images/omnivore; /var/www/wallabag/bin/console --env=prod wallabag:import -v --importer=omnivore --markAsRead=true -- <username> ${i} "
      7done
      

Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие