In today’s digital age, managing the overwhelming amount of information we encounter online can be a daunting task. Whether you’re a student, professional, or casual internet user, bookmarks are essential for saving valuable content for later reference. However, traditional bookmark managers often fall short in providing an efficient and organized way to handle our digital collections. Enter Readeck, the bookmark manager that’s changing the game.
Table of Contents
What is Readeck?
Readeck (https://readeck.org/en/) is a cutting-edge bookmark manager designed to simplify and enhance your online browsing experience. It’s not just about saving links; it’s about creating an intuitive, organized, and powerful system to manage your online resources. Readeck helps users save, categorize, and access their bookmarks with ease, transforming the way we interact with the internet.
Key Features of Readeck
- Intuitive Interface: Readeck boasts a user-friendly interface that makes bookmarking and organizing links a breeze. Its clean design ensures that even the least tech-savvy users can navigate the platform effortlessly.
- Smart Categorization: One of the standout features of Readeck is its smart categorization system. It automatically tags and organizes your bookmarks based on their content, saving you the hassle of manual sorting.
- Customizable Collections: Users can create custom collections for specific topics or projects, making it easier to find related bookmarks quickly. This is especially useful for students and researchers working on multiple assignments simultaneously.
- Powerful Search Functionality: Readeck’s robust search engine allows you to find saved bookmarks in seconds. Whether you remember the title, a keyword, or just a snippet of the content, Readeck’s search functionality has you covered.
- Cross-Platform Syncing: Never lose your bookmarks again! Readeck syncs across all your devices, ensuring that your important links are always accessible, whether you’re on your computer, tablet, or smartphone.
- Offline Access: For those times when you don’t have an internet connection, Readeck offers offline access to your saved bookmarks. This feature is a lifesaver for frequent travelers and anyone who needs to access information on the go.
- Privacy and Security: Readeck takes your privacy seriously. With advanced encryption and secure servers, you can trust that your bookmarks and personal information are protected from unauthorized access.
- Collaboration Tools: Readeck allows users to share their bookmark collections with others, making it an excellent tool for teams and collaborative projects. Share your research, resources, and interesting finds with colleagues, friends, or study groups effortlessly.
Why Choose Readeck?
Readeck stands out in a crowded market of bookmark managers due to its combination of smart technology and user-centric design. It’s not just about storing links; it’s about creating a seamless, efficient, and enjoyable way to manage your digital content. Here are a few reasons why you should make the switch to Readeck:
- Efficiency: Readeck saves you time by automating the organization of your bookmarks and providing powerful tools to retrieve them quickly.
- Organization: With features like smart categorization and customizable collections, your bookmarks are always neatly organized.
- Accessibility: Cross-platform syncing and offline access ensure your bookmarks are always at your fingertips.
- Collaboration: Share your resources easily and collaborate more effectively with Readeck’s sharing features.
Prerequisites
We’ll need to have a volume for Readeck configuration files. In our example, we’ll use /docker/readeck
path on the Docker host. You’ll need to create this directory before running the container.
For the persistence, Readeck can use either SQLite or PostgreSQL database.
Running the container with SQLite
That’s the most simple way of starting Readeck, as you don’t need any external database.
docker run -d \
--name readeck \
--hostname readeck \
-p 8000:8000 \
-e READECK_LOG_LEVEL=info \
-e READECK_SERVER_HOST=0.0.0.0 \
-e READECK_SERVER_PORT=8000 \
-e READECK_SERVER_PREFIX=/ \
-e READECK_USE_X_FORWARDED=true \
-v /docker/readeck:/readeck \
--restart unless-stopped \
--health-cmd "/bin/readeck healthcheck -config config.toml" \
--health-interval 30s \
--health-timeout 2s \
--health-retries 3 \
codeberg.org/readeck/readeck:latest
Running the container with PostgreSQL
Before you start the container, make sure you have the PosgreSQL database running (it’s postgres-host
in our example) and there’s a database created (readeck
). You’ll also need a user (in the example below it’s readeck
with readeck
password).
docker run -d \
--name readeck \
--hostname readeck \
-p 8000:8000 \
-e READECK_DATABASE_SOURCE=postgres://readeck:readeck@postgres-host/readeck \
-e READECK_LOG_LEVEL=info \
-e READECK_SERVER_HOST=0.0.0.0 \
-e READECK_SERVER_PORT=8000 \
-e READECK_SERVER_PREFIX=/ \
-e READECK_USE_X_FORWARDED=true \
-v /docker/readeck:/readeck \
--restart unless-stopped \
--health-cmd "/bin/readeck healthcheck -config config.toml" \
--health-interval 30s \
--health-timeout 2s \
--health-retries 3 \
codeberg.org/readeck/readeck:latest
This docker run
command is used to start a Docker container for the Readeck application. Here’s a detailed breakdown of each part of the command:
Command Breakdown
docker run
: Command to create and start a new Docker container.
-d
: Run the container in detached mode (in the background).
--name readeck
: Assigns the name “readeck” to the container for easier management.
--hostname readeck
: Sets the hostname of the container to “readeck”.
-p 8000:8000
: will map the container port 8000 to the host port 8000. Readeck will be available on http://your-host:8000
-e READECK_DATABASE_SOURCE=postgres://readeck:readeck@postgres-host/readeck
: Sets an environment variable READECK_DATABASE_SOURCE with the value being the URL to connect to a PostgreSQL database. This includes the username (readeck
), password (readeck
), host (postgres-host
), and database name (readeck
).
–e READECK_LOG_LEVEL=info
: Sets the logging level to “info”.
-e READECK_SERVER_HOST=0.0.0.0
: Configures the server to listen on all available network interfaces.
-e READECK_SERVER_PORT=8000
: Sets the server port to 8000.
-e READECK_SERVER_PREFIX=/
: Sets the URL prefix for the server.
-e READECK_ALLOWED_HOSTS=readeck.your-domain.com
: Specifies allowed hosts for the application, which is a security feature to prevent HTTP Host header attacks.
-e READECK_USE_X_FORWARDED=true
: Enables the use of X-Forwarded-* headers, which are commonly used when the application is behind a proxy.
-v /docker/readeck:/readeck
: Mounts the host directory /docker/readeck
to the container directory /readeck
. This is used to persist data or configuration files outside the container.
--restart unless-stopped
: Configures the container to restart automatically unless it is explicitly stopped. This helps in ensuring high availability.
--health-cmd "/bin/readeck healthcheck -config config.toml"
: Specifies a command to check the health of the container. Here, it runs the Readeck health check script with a specific configuration file.
--health-interval 30s
: Sets the interval between health checks to 30 seconds.
--health-timeout 2s
: Sets the timeout for each health check to 2 seconds.
--health-retries 3
: Sets the number of consecutive failures required for the container to be considered unhealthy.
codeberg.org/readeck/readeck:latest
: Specifies the Docker image to use for creating the container. It pulls the latest version of the Readeck image from the repository at codeberg.org
.
Summary
This Docker command runs the Readeck application in a container with the following configurations:
- Connects to a PostgreSQL database.
- Sets various environment variables for logging, server configuration, and security.
- Mounts a host directory to the container.
- Automatically restarts unless stopped manually.
- Performs health checks to ensure the container is running correctly.
Bonus: MacOS Alfred Readeck workflow for saving bookmarks
When using Safari, there’s no browser extension for Readeck. However, you can easily use Alfred (http://alfredapp.com) with custom workflow to save your bookmarks to Readeck instantly.
The first thing you’ll need to do is to create the authentication token in Readeck. Go to your Profile
, then API Token
and create a new token. Provide the expiration date and mark Bookmarks: Write Only
:

After creating a token, copy the Authorization: Bearer HTTP header
– we’ll use that in the Alfred Workflow.
Go to Alfred and create a workflow, triggered by the keyword, like rd
for example. Use Keyword as a trigger and Run script as the Action. The workflow should look like this:

Provide a keyword and select Argument Required:

Double click Run script and provide this snippet as the execution script. For the authorization token header, use the one you’ve created in the API Tokens in Readeck:
URL="$1"
curl -X POST "https://readeck.your-domain.com/api/bookmarks" \
-H "accept: application/json" \
-H "content-type: application/json" \
-H "Authorization: Bearer your-authorization-token" \
-d "{\"labels\":[\"inbox\"],\"url\":\"$URL\"}"
Now you can easily save your bookmarks, by triggering the workflow with a keyword, providing the URL to save in Readeck:

Ań alternative version of this script, that takes the current URL from Safari and saves it to Readeck:
#!/bin/bash
# Get current URL from Safari using AppleScript
URL=$(osascript <<'APPLESCRIPT'
tell application "Safari"
set currentURL to URL of current tab of window 1
end tell
return currentURL
APPLESCRIPT
)
# Your curl command to post the URL
curl_result=$(curl -X POST "https://readeck.bor6.pl/api/bookmarks" \
-H "accept: application/json" \
-H "content-type: application/json" \
-H "Authorization: Bearer your-authorization-token" \
-d "{\"labels\":[\"inbox\"],\"url\":\"$URL\"}"
)
# Output JSON for Alfred to process
echo "{\"items\":[{\"title\":\"URL posted to API\",\"subtitle\":\"$URL\",\"arg\":\"$curl_result\"}]}"
Conclusion
Readeck offers a comprehensive solution for anyone looking to take control of their online content. Whether you’re a student, researcher, professional, or casual browser, Readeck provides the tools you need to stay organized, efficient, and always connected.
Happy bookmarking, stay safe!