Hoarder is a web based application that you can self host which is useful to store web page links, screen shots, and textual notes.
Here’s what the interface looks like.
UPDATE: I DISCOVERED AFTER MAKING THE VIDEO THAT THE HOARDER APP HAS AN ANDROID APP AND AN IOS APP THAT CAN TALK TO YOUR HOARDER SERVER. CHECK THEM OUT IN THE GOOGLE PLAY STORE AND THE APPLE APP STORE.
Hoarder is a docker application with three docker containers which we will be nesting inside of an Incus Container. If you are unfamiliar with Incus, go watch my tutorial entitled Incus Containers Step by Step.
Start by launching an Incus container to host Hoarder:
incus launch images:ubuntu/24.04 Hoarder -p default -p bridgeprofile -c boot.autostart=true -c security.nesting=true
Move inside of the new container and update the repository list.
incus shell Hoarder
apt update
Install some dependencies:
apt install curl nano net-tools openssh-server -y
Install docker:
curl https://get.docker.com | sh
Create a user account and add the new account to the sudo and docker groups.
adduser scott
usermod -aG sudo scott
usermod -aG docker scott
Move into the new user account, create a folder for Hoarder and move inside of it.
su - scott
mkdir hoarder
cd hoarder
Create a docker-compose file:
nano docker-compose.yml
Insert the following into the file:
services:
web:
image: ghcr.io/hoarder-app/hoarder:${HOARDER_VERSION:-release}
restart: unless-stopped
volumes:
# By default, the data is stored in a docker volume called "data".
# If you want to mount a custom directory, change the volume mapping to:
# - /path/to/your/directory:/data
- ./data:/data
ports:
- 3000:3000
env_file:
- .env
environment:
MEILI_ADDR: http://meilisearch:7700
BROWSER_WEB_URL: http://chrome:9222
# OPENAI_API_KEY: ...
# You almost never want to change the value of the DATA_DIR variable.
# If you want to mount a custom directory, change the volume mapping above instead.
DATA_DIR: /data # DON'T CHANGE THIS
chrome:
image: gcr.io/zenika-hub/alpine-chrome:123
restart: unless-stopped
command:
- --no-sandbox
- --disable-gpu
- --disable-dev-shm-usage
- --remote-debugging-address=0.0.0.0
- --remote-debugging-port=9222
- --hide-scrollbars
meilisearch:
image: getmeili/meilisearch:v1.11.1
restart: unless-stopped
env_file:
- .env
environment:
MEILI_NO_ANALYTICS: "true"
volumes:
- ./meilisearch:/meili_data
Do a CTRL O and enter to save the file and a CTRL X to exit the nano editor.
Create an environment variable file:
nano .env
Insert the following into the file.
HOARDER_VERSION=release
NEXTAUTH_SECRET=super_random_string
MEILI_MASTER_KEY=another_random_string
NEXTAUTH_URL=http://localhost:3000
DATA_DIR=./data
DISABLE_SIGNUPS=
OPENAI_API_KEY=key-from-openai
Save the file with a CTRL O and enter and exit the editor with CTRL X.
Go visit the following web link, create an account and get an API key which will be placed in the OPENAI_API_KEY value in the file above.
https://platform.openai.com/api-keys
When you go to the OpenAI website, give your key/project names and click the option to “Generate API Key”:
Once you generate the key, you will want to copy it so that it can go into the .env file as shown in the video.
Execute the following command twice to two generate a random strings.
openssl rand -base64 36
Put the two values you just obtained into the NEXTAUTH_SECRET and the MEILI_MASTER_KEY fields in the file above.
Yes, I know that in the video I put one of the values in twice, but I have corrected that here and the duplicate did not have an impact on the application.
Once you are done with the edits, start the application.
docker compose up -d
After a minute or two check to see that the application is started.
docker ps
If all is well, you should see the application is healthy as in the screen shot above.
You will want to check to see what the address of your “eth0” device is on your container which will differ from mine.
ifconfig
Head up to your web browser and go to the address you just found with “:3000” on the end of the address since the application is running at port 3000.
Go the sign up option and the first user account that you add with be the system administrator user.
You will then be taken to the main dashboard.
Hoarder seems be a nice alternative for folks looking for a notetaking application that is web based.