ArchMark
ArchMark is a bookmark manager that archives the bookmarked page using Monolith. It consists of the main web proccess as well as a worker that downloads the web page for archival.
Features
- Allows links to be bookmarked and categorized
- Supports local (password-based) login and registration, and reverse-proxy-based authentication (with forwarded headers)
- Caches a local copy of the bookmarked page (available via the 'cached' link below the original)
- Keeps deleted bookmarks in the "deleted" section for a period of time before deleting it (defaults to 48 hours); they can be restored before the timer hits
- Allows searching across content in the bookmarked links (a copy of the linked page is cached for search indexing)
Installation
The simplest way to use ArchMark would be to use docker-compose. If you have Docker and Docker Compose installed, you can follow the steps below to get up and running:
mkdir archmark
cd archmark
curl https://raw.githubusercontent.com/sparkymat/archmark/main/docker-compose.prod.yml -o docker-compose.yml
mkdir -p data/db
mkdir -p data/faktory
mkdir -p data/archive
docker-compose pull
docker-compose up
Alternatively, you can build and run from the code with:
git clone https://github.com/sparkymat/archmark
cd archmark
docker-compose build
docker-compose up
P.S: Don't forget to edit the docker-compose.yml
file, and update the value of JWT_SECRET
and SESSION_SECRET
to something more secure. You can generate secrets using openssl like this:
openssl rand -hex 32
N.B: Everything in the download folder (configured using DOWNLOAD_FOLDER
) will be served under /uploads/
sub-path.
Configuration
Both the app and the worker are configured using environment variables.
Variable |
Description |
DISABLE_REGISTRATION |
Set to 'true' if you want to disable registrations |
REVERSE_PROXY_AUTHENTICATION |
Enables reverse proxy authentication via forwarded headers |
PROXY_AUTH_USERNAME_HEADER |
The request header where proxy passes the usernamae. Default: Remote-User |
PROXY_AUTH_NAME_HEADER |
The request header where proxy passes the full name. Default: Remote-Name |
DELETE_TIMER_HOURS |
Time (in hours) before deleted items are flushed from the recycle bin (default: 48 hours) |
Screenshots
Login page
Bookmarks
Options
New bookmark
Change category
Deleted