πŸ—ž Wallabag

Use Wallabag to gather save, and classify news and articles across all of your devices, for easy reading later.

wallabag.org
Save and classify articles. Read them later. Freely.

Read a lot? Wallabag (code) helps you gather and save web pages, saving and classifying articles to read later:

Wallabag application dashboard (source: https://github.com/wallabag/wallabag)

Along with the web, Wallabag is available for Android, iOS, a Browser extension and has a native GNOME app maintained by the community, all F/OSS.

Wallabag also has a version you can try out online, and offers hosting for just 9 Euros a year (!) with a 14 day free trial.

Running Wallabag

Wallabag is high quality self-hosted software, so it's got great documentation (in multiple languages!), and has docker-compose specific instructions to make things super easy.

Here's a preview of the docker-compose.yml that you'd be using:

version: '3.8'
services:

    php:
        build:
            context: docker/php
            # Use target 'rootless' if you run rootless Docker
            target: default
        volumes:
            - .:/var/www/html
            # Volumes for data-related folders
            - assets:/var/www/html/web/assets
            - data:/var/www/html/data
            - cache:/var/www/.cache
            # Uncomment the following volume if you run rootless Docker
            # A limitation blocks permissions on root docker, see
            # https://github.com/moby/moby/issues/40881
            # - type: tmpfs
            #   target: /var/www/html/var/cache
            # Override third-party libraries for dev
            # - ../graby-site-config:/var/www/html/vendor/j0k3r/graby-site-config
            # - ../php-readability:/var/www/html/vendor/j0k3r/php-readability
            # - ../graby:/var/www/html/vendor/j0k3r/graby
            # - ../HTMLawed:/var/www/html/vendor/fossar/htmlawed
            # - ../PHPePub:/var/www/html/vendor/wallabag/phpepub
            # - ../guzzle-site-authenticator:/var/www/html/vendor/bdunogier/guzzle-site-authenticator
        env_file:
            # Copy docker/php/env.example to docker/php/env and customize
            - ./docker/php/env
            # Uncomment the database engine you want, it will use sqlite if both are commented
            # - ./docker/mariadb/env
            # - ./docker/postgres/env
            # Uncomment to enable Xdebug
            # - ./docker/php/xdebug
        ports:
            - 8000:8000
            # Uncomment to permit Xdebug remote session
            # - 9000:9000
        depends_on:
            # - mariadb
            # - postgres
            - redis

    # postgres:
    #     image: postgres:11-alpine
    #     volumes:
    #         - db-data:/var/lib/postgresql/data
    #     env_file:
    #         - ./docker/postgres/env
    #     healthcheck:
    #         test: ["CMD-SHELL", "pg_isready -q || exit 1"]
    #         interval: 10s
    #         timeout: 3s
    #         retries: 3

    # mariadb:
    #    image: mariadb:10
    #    ports:
    #        - "3306:3306"
    #    volumes:
    #        - db-data:/var/lib/mysql
    #    env_file:
    #        - ./docker/mariadb/env

    # rabbitmq:
    #     image: rabbitmq:3-management-alpine
    #     ports:
    #         - "15672:15672"

    redis:
        image: redis:6-alpine
        healthcheck:
            test: ["CMD", "redis-cli", "ping"]
            interval: 10s
            timeout: 3s
            retries: 3

volumes:
    db-data:
        driver: local
    assets:
        driver: local
    data:
        driver: local
    cache:
        driver: local

Here at AWSMFOSS we're partial to Postgres, so that's what we'd be uncommenting, but MariaDB (and ostensibly MySQL) is also an option.