Install Readeck and Wallabag
Update your system
Ubuntu / Debian
sudo apt update && sudo apt upgrade -y
RedHat / CentOS / Fedora / Alma / Rocky
sudo dnf update -y
Setup a Non-root user with sudo Privileges
adduser <username>
Enter a password for the new user and confirm it.
Enter any of the additional information you want to enter, but it's not required.
Enter 'Y', and press 'Enter' to confirm.
Add the user to the sudo group with:
usermod -aG sudo <username>
Now, exit the system as root, and re-login with your new non-root sudo user.
Install Docker
curl https://get.docker.com | sh
This will install Docker and Docker Compose to the system.
Add your user to the docker group
sudo usermod -aG docker <username>
newgrp
newgrp docker
Now you should be able to enter
docker ps
and see the docker headers who up without any errors in the command line.
Install Readeck
Let's create a folder to keep our docker applications organized.
mkdir -p docker/readeck
This will create a new folder called 'docker' if one doesn't already exist in the current location, otherwise it will use the existing one. Inside of the directory, it will create a new directory called 'readeck'.
Move into the new 'readeck' directory with:
cd docker/readeck
Now we can create a new file called "compose.yaml" to help us make our application run.
nano compose.yaml
Paste the following code block into the fiel we just opened.
name: readeck
services:
readeck:
tty: true
stdin_open: true
ports:
- 8000:8000
volumes:
- ./readeck-data:/readeck
image: codeberg.org/readeck/readeck:latest
Save the file with CTRL + O, then press Enter to confirm, and exit the nano editor with CTRL + X.
Now we'll pull down the images we need to run the application:
docker compose pull
Next, we'll start the application with
docker compose up -d
After a few seconds you should have the application up and running. YOu can access the application at the IP address of the host server or VM where you installed it on port 8000. If the host server or VM already has an application using port 8000, you can change the port number on the left side of the port mapping in the compose.yaml file. For instance, instead of 8000, you may need to use 8010. You can change the port maping to look like:
ports:
- 8010:8000
If you change the port on the left, you need to access the application on that port.
I, for instance went to
http://192.168.10.181:8010
Here you can create your account, and sign in for the first time.
Go through, and explore the interface, and make any configuration changes you want. Now, if you want to save things easily, there is a Readeck Firefox add-on you can get, and use it to quickly save pages and articles to the Readeck instance you are running.
Get the add-on installed in Firefox, then configure it to use your instance IP and port number, and provide your credentials.
Setup a DNS A Record
If you want to access your Readeck (or Wallabag) from the internet, and not just from your local network, then you'll want to setup a domain / subdomain for your instance. To do this, you need to own a domain name already. I own the domain "routemehome.org".
I have setup a DNS type A record which points the wildcard subdomain (*.routemehome.org) to the public IP address of my hosted server. That server has a firewall rule allowing traffic on port 80 and 443 to go to my Reverse proxy. This makes it so any subdomain of routemehome.org will try to go to my public IP v4 address on my hosted server.
Setup a Reverse Proxy Entry
On my hosted server I run a reverse proxy called NGinX Proxy Manager (pronounced engine-x proxy manager). In the reverse proxy I create an entry for read.routemehome.org, and point that to the private IP address of my host server, and enter the port number 8010 as the port where my Readeck service is running. I also tell the reverse proxy to request a valid SSL certificate, and to force all requests for read.routemehome.org to use SSL on port 443.
Now I can access my Readeck instance from anywhere with an internet connection by visiting https://read.routemehome.org. I can also use this address in my Readeck add-on in firefox.
Install Wallabag
Wallabag is another incredible open source option to replace Pocket. I used Wallabag years ago, and loved it. I don't know why I stopped using it actually. It can do the same things as Pocket and Readeck, and it can also take in RSS feeds, so you can subscribe to any news or interesting RSS feeds you find, and wallabag will pull in those articles for you.
Let's add a new folder to the docker folder where we installed Readeck. Right now we have ~/docker/readeck, and we want to create ~/docker/wallabag. We can do this with
mkdir -p ~/docker/wallabag
Then we can move to that directory with
cd ~/docker/wallabag
Now we'll create a new compose.yaml file with the nano text editor:
nano compose.yaml
And we'll copy the code below and paste it into the new file:
---
services:
wallabag:
image: wallabag/wallabag
container_name: wallabag
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=<AlongSt0N6pA5sW0rdthat1sCompl3XAnDcrEatiVE>
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=db
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=wallabag
- SYMFONY__ENV__DATABASE_USER=wallabag
- SYMFONY__ENV__DATABASE_PASSWORD=<AnoTHeRlongSt0N6pA5sW0rdthat1sCompl3XAnDcrEatiVE>
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__DATABASE_TABLE_PREFIX="wallabag_"
- SYMFONY__ENV__MAILER_DSN=smtp://127.0.0.1
- SYMFONY__ENV__FROM_EMAIL=<wallabag@example.com>
- SYMFONY__ENV__DOMAIN_NAME=<https://wall.yourgreatdomain.com>
- SYMFONY__ENV__SERVER_NAME="wallabag"
ports:
- 80:80
volumes:
- ./wallabag/images:/var/www/wallabag/web/assets/images
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost/api/info"]
interval: 1m
timeout: 3s
depends_on:
- db
- redis
db:
image: mariadb
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=AlongSt0N6pA5sW0rdthat1sCompl3XAnDcrEatiVE
volumes:
- ./wallabag/data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
interval: 20s
timeout: 3s
redis:
image: redis:alpine
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 20s
timeout: 3s
Change any of the values surrounded by less than "<" and greater than ">" signs. Make sure to use long, strong, complex passwords, and make sure the root passwords in the wallabag and db sections match exactly.
Also, if you need to change the port mapping in the main app section, you can change the left side only from 80 to another port, such as 8025.
Save the file with CTRL + O then press Enter to confirm, and exit the nano text editor with CTRL + X.
Now do
docker compose pull
to pull the wallabag images down. Once complete, we'll do
docker compose up -d
Give it about 10 seconds, then go to the IP address and port, or create a reverse proxy entry for your wallabag service, and visit the URL.
You should be greeted with a login screen. Currently the default login credentials are:
username: wallabag
password: wallabag
You can also grab a Firefox add-on for Wallabag. I grabbed the Wallabagger add-on, and it seems to work well. Just like with Readeck, I had to configure the add-on to reach my server and be able to login, but once done it does a good job of quickly saving pages, articles, etc for me to check out later on.
I personally prefer the Wallabag interface, but the choice is up to you my friends.
Setup a Reverse Proxy Entry
On my hosted server I run a reverse proxy called NGinX Proxy Manager (pronounced engine-x proxy manager). In the reverse proxy I create an entry for read.routemehome.org, and point that to the private IP address of my host server, and enter the port number 8025 as the port where my Wallabag service is running. I also tell the reverse proxy to request a valid SSL certificate, and to force all requests for wall.routemehome.org to use SSL on port 443.
Now I can access my Wallabag instance from anywhere with an internet connection by visiting https://wall.routemehome.org. I can also use this address in my Wallabagger add-on in firefox.