Отложенное чтение. Wallabag
2024-12-05
·
3 мин. для прочтения
Отложенное чтение. Wallabag.
Содержание
1 Общая информация
- Позволяет сохранять веб-страницы для последующего чтения.
- Лицензия: MIT license
- Сайт с платной подпиской: https://www.wallabag.it/.
- Сайт: wallabag.org.
- Репозиторий: https://github.com/wallabag/wallabag
- Приложение для Android:
- Репозиторий: https://github.com/wallabag/android-app
- Магазин приложений:
- Приложение для iOS:
- Репозиторий: wallabag/ios-app
- Расширение браузера:
- Приложения для Linux:
- Read It Later: https://gitlab.gnome.org/World/read-it-later
- Ссылки по экосистеме: https://github.com/wallabag/wallabag/wiki/wallabag-ecosystem
- Emacs:
- wallabag.el:
- wombag:
- Репозиторий: https://github.com/karthink/wombag
2 Установка
2.1 Контейнер
2.1.1 Общая информация
- Репозиторий: https://github.com/wallabag/docker
- Dockerhub: https://hub.docker.com/r/wallabag/wallabag/
- Учётные данные по умолчанию:
wallabag:wallabag
. - При первом запуске необходимо будет сконфигурить приложение.
- Пусть доменное имя установки будет
wallabag.example.com
2.1.2 Podman
Общая информация
Загрузка
- Скачайте контейнер:
podman pull wallabag/wallabag
- Скачайте контейнер:
Установка с SQLite
Запуск вручную
- Создайте каталоги для постоянных данных:
mkdir -p /opt/wallabag/{data,images} chown -R nobody:nobody /opt/wallabag
- Необходимо указать том для контейнера (для постоянного хранения):
podman 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
.
- Создайте каталоги для постоянных данных:
docker-compose
- Создадим файл docker-compose
wallabag-sqlite.yaml
:version: '3' networks: proxy-network: external: true services: wallabag: image: wallabag/wallabag:latest container_name: wallabag restart: unless-stopped environment: - TZ=Etc/UTC - SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1 - SYMFONY__ENV__MAILER_HOST=mail.example.com - SYMFONY__ENV__FROM_EMAIL="wallabag@example.com" - SYMFONY__ENV__SERVER_NAME="wallabag.example.com" - SYMFONY__ENV__DOMAIN_NAME=https://wallabag.example.com - PHP_MEMORY_LIMIT=512M - SYMFONY__ENV__MAILER_USER="" - SYMFONY__ENV__MAILER_PASSWORD="" - SYMFONY__ENV__FOSUSER_REGISTRATION=false - SYMFONY__ENV__FOSUSER_CONFIRMATION=false - SYMFONY__ENV__TWOFACTOR_AUTH=false ports: - 40401:80 volumes: - /opt/wallabag/images:/var/www/wallabag/web/assets/images - /opt/wallabag/data:/var/www/wallabag/data networks: - proxy-network healthcheck: test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"] interval: 1m timeout: 3s
- Запуск будет выполняться следующим образом:
podman compose --file wallabag-sqlite.yaml up --detach
- Создадим файл docker-compose
Обновление
- Обновление контейнера:
podman pull wallabag/wallabag podman stop wallabag podman compose --file wallabag-sqlite.yaml up --detach
- Обновление контейнера:
Nginx
- Настройте nginx:
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name wallabag.example.com; ssl_certificate /etc/letsencrypt/live/wallabag.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/wallabag.example.com/privkey.pem; charset utf-8; gzip on; 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; location / { proxy_pass http://localhost:40401; proxy_set_header X-Forwarded-Host $server_name; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-For $remote_addr; } } server { listen 80; listen [::]:80; server_name wallabag.example.com; return 301 https://$server_name$request_uri; }
- Настройте nginx:
Скрипт systemd
- Создаём файл сервиса
/etc/containers/systemd/wallabag.container
:[Unit] Description=A templated wallabag container [Container] Image=wallabag ContainerName=wallabag PublishPort=40401:80 [Service] # Restart service when sleep finishes Restart=always [Install] WantedBy=default.target
- Запустим генератор и сообщим systemd о запуске новой службы:
systemctl daemon-reload
- Запустим службу:
systemctl start wallabag.service
- Создаём файл сервиса
Импорт Omnivore
- Экспортировал записи с Omnivore.
- Скачал архив с большим количеством файлов json (более 600).
- Загружать каждый файл через web-интерфейс не представлялось возможным.
- Скопировал архив на сервер.
- Поскольку каталог
/opt/wallabag/images
уже подмонтирован к контейнеру в каталог/var/www/wallabag/web/assets/images
, сделал в нём каталогomnivore
и распаковал туда архив. - Запустил скрипт:
#!/bin/bash cd /opt/wallabag/images/omnivore for i in metadata* do 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} " done