Skip to content

Commit 251f3c4

Browse files
authored
Breaking: Hoarder > Karakeep (#3699)
* Breaking: Hoarder > Karakeep * json * Update hoarder.sh * formatting
1 parent 5b73662 commit 251f3c4

File tree

5 files changed

+164
-79
lines changed

5 files changed

+164
-79
lines changed

ct/hoarder.sh

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,23 +40,23 @@ function update_script() {
4040
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
4141
$STD apt-get install -y graphicsmagick ghostscript
4242
fi
43-
cd /opt
43+
cd /opt || exit
4444
if [[ -f /opt/hoarder/.env ]] && [[ ! -f /etc/hoarder/hoarder.env ]]; then
4545
mkdir -p /etc/hoarder
4646
mv /opt/hoarder/.env /etc/hoarder/hoarder.env
4747
fi
4848
rm -rf /opt/hoarder
49-
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip")
50-
unzip -q v${RELEASE}.zip
51-
mv hoarder-${RELEASE} /opt/hoarder
52-
cd /opt/hoarder/apps/web
49+
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
50+
unzip -q v"${RELEASE}".zip
51+
mv karakeep-"${RELEASE}" /opt/hoarder
52+
cd /opt/hoarder/apps/web || exit
5353
$STD pnpm install --frozen-lockfile
5454
$STD pnpm exec next build --experimental-build-mode compile
5555
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
56-
cd /opt/hoarder/apps/workers
56+
cd /opt/hoarder/apps/workers || exit
5757
$STD pnpm install --frozen-lockfile
5858
export DATA_DIR=/opt/hoarder_data
59-
cd /opt/hoarder/packages/db
59+
cd /opt/hoarder/packages/db || exit
6060
$STD pnpm migrate
6161
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/hoarder/hoarder.env
6262
msg_ok "Updated ${APP} to v${RELEASE}"
@@ -65,7 +65,7 @@ function update_script() {
6565
systemctl start hoarder-browser hoarder-workers hoarder-web
6666
msg_ok "Started Services"
6767
msg_info "Cleaning up"
68-
rm -R /opt/v${RELEASE}.zip
68+
rm -R /opt/v"${RELEASE}".zip
6969
echo "${RELEASE}" >/opt/${APP}_version.txt
7070
msg_ok "Cleaned"
7171
msg_ok "Updated Successfully"

ct/karakeep.sh

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#!/usr/bin/env bash
2+
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
3+
# Copyright (c) 2021-2025 tteck
4+
# Author: MickLesk (Canbiz) & vhsdream
5+
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
6+
# Source: https://karakeep.app/
7+
8+
APP="karakeep"
9+
var_tags="bookmark"
10+
var_cpu="2"
11+
var_ram="4096"
12+
var_disk="10"
13+
var_os="debian"
14+
var_version="12"
15+
var_unprivileged="1"
16+
17+
header_info "$APP"
18+
variables
19+
color
20+
catch_errors
21+
22+
function update_script() {
23+
header_info
24+
check_container_storage
25+
check_container_resources
26+
if [[ ! -d /opt/karakeep ]]; then
27+
msg_error "No ${APP} Installation Found!"
28+
exit
29+
fi
30+
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
31+
PREV_RELEASE=$(cat /opt/${APP}_version.txt)
32+
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "${PREV_RELEASE}" ]]; then
33+
msg_info "Stopping Services"
34+
systemctl stop karakeep-web karakeep-workers karakeep-browser
35+
msg_ok "Stopped Services"
36+
msg_info "Updating ${APP} to v${RELEASE}"
37+
if [[ $(corepack -v) < "0.31.0" ]]; then
38+
$STD npm install -g [email protected]
39+
fi
40+
if [[ "${PREV_RELEASE}" < 0.23.0 ]]; then
41+
$STD apt-get install -y graphicsmagick ghostscript
42+
fi
43+
cd /opt || exit
44+
if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
45+
mkdir -p /etc/karakeep
46+
mv /opt/karakeep/.env /etc/karakeep/karakeep.env
47+
fi
48+
rm -rf /opt/karakeep
49+
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
50+
unzip -q "v${RELEASE}.zip"
51+
mv karakeep-"${RELEASE}" /opt/karakeep
52+
cd /opt/karakeep/apps/web || exit
53+
$STD pnpm install --frozen-lockfile
54+
$STD pnpm exec next build --experimental-build-mode compile
55+
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
56+
cd /opt/karakeep/apps/workers || exit
57+
$STD pnpm install --frozen-lockfile
58+
export DATA_DIR=/opt/karakeep_data
59+
cd /opt/karakeep/packages/db || exit
60+
$STD pnpm migrate
61+
sed -i "s/SERVER_VERSION=${PREV_RELEASE}/SERVER_VERSION=${RELEASE}/" /etc/karakeep/karakeep.env
62+
msg_ok "Updated ${APP} to v${RELEASE}"
63+
64+
msg_info "Starting Services"
65+
systemctl start karakeep-browser karakeep-workers karakeep-web
66+
msg_ok "Started Services"
67+
msg_info "Cleaning up"
68+
rm -R /opt/v"${RELEASE}".zip
69+
echo "${RELEASE}" >/opt/${APP}_version.txt
70+
msg_ok "Cleaned"
71+
msg_ok "Updated Successfully"
72+
else
73+
msg_ok "No update required. ${APP} is already at ${RELEASE}."
74+
fi
75+
exit
76+
}
77+
78+
start
79+
build_container
80+
description
81+
82+
msg_ok "Completed Successfully!\n"
83+
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
84+
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
85+
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:3000${CL}"

frontend/public/json/hoarder.json

Lines changed: 0 additions & 34 deletions
This file was deleted.

frontend/public/json/karakeep.json

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"name": "karakeep",
3+
"slug": "karakeep",
4+
"categories": [
5+
12
6+
],
7+
"date_created": "2025-04-06",
8+
"type": "ct",
9+
"updateable": true,
10+
"privileged": false,
11+
"interface_port": 3000,
12+
"documentation": "https://docs.karakeep.app/",
13+
"website": "https://karakeep.app/",
14+
"logo": "https://raw.githubusercontent.com/selfhst/icons/refs/heads/main/svg/karakeep.svg",
15+
"description": "karakeep (formerly: hoarder) is an AI-powered bookmarking tool that helps you save and organize your digital content. It automatically tags your links, notes, and images, making them easy to find later. With features like auto-fetching, lists, and full-text search, karakeep is the perfect tool for anyone who wants to keep track of their digital life.",
16+
"install_methods": [
17+
{
18+
"type": "default",
19+
"script": "ct/karakeep.sh",
20+
"resources": {
21+
"cpu": 2,
22+
"ram": 4096,
23+
"hdd": 10,
24+
"os": "debian",
25+
"version": "12"
26+
}
27+
}
28+
],
29+
"default_credentials": {
30+
"username": null,
31+
"password": null
32+
},
33+
"notes": []
34+
}

install/hoarder-install.sh renamed to install/karakeep-install.sh

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#!/usr/bin/env bash
22

3-
# Copyright (c) 2021-2025 tteck
3+
# Copyright (c) 2021-2025 community-scripts ORG
44
# Author: MickLesk (Canbiz) & vhsdream
55
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
6-
# Source: https://hoarder.app/
6+
# Source: https://karakeep.app/
77

88
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
99
color
@@ -34,8 +34,8 @@ chmod +x /usr/bin/yt-dlp
3434
msg_ok "Installed Additional Tools"
3535

3636
msg_info "Installing Meilisearch"
37-
cd /tmp
38-
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o $(basename "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb")
37+
cd /tmp || exit
38+
curl -fsSL "https://github.com/meilisearch/meilisearch/releases/latest/download/meilisearch.deb" -o "meilisearch.deb"
3939
$STD dpkg -i meilisearch.deb
4040
curl -fsSL "https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml" -o "/etc/meilisearch.toml"
4141
MASTER_KEY=$(openssl rand -base64 12)
@@ -58,30 +58,30 @@ $STD apt-get install -y nodejs
5858
$STD npm install -g [email protected]
5959
msg_ok "Installed Node.js"
6060

61-
msg_info "Installing Hoarder"
62-
cd /opt
63-
RELEASE=$(curl -fsSL https://api.github.com/repos/hoarder-app/hoarder/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
64-
curl -fsSL "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip" -o $(basename "https://github.com/hoarder-app/hoarder/archive/refs/tags/v${RELEASE}.zip")
65-
unzip -q v${RELEASE}.zip
66-
mv hoarder-${RELEASE} /opt/hoarder
67-
cd /opt/hoarder
61+
msg_info "Installing karakeep"
62+
cd /opt || exit
63+
RELEASE=$(curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
64+
curl -fsSL "https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE}.zip" -o "v${RELEASE}.zip"
65+
unzip -q "v${RELEASE}.zip"
66+
mv karakeep-"${RELEASE}" /opt/karakeep
67+
cd /opt/karakeep || exit
6868
corepack enable
6969
export PUPPETEER_SKIP_DOWNLOAD="true"
7070
export NEXT_TELEMETRY_DISABLED=1
7171
export CI="true"
72-
cd /opt/hoarder/apps/web
72+
cd /opt/karakeep/apps/web || exit
7373
$STD pnpm install --frozen-lockfile
7474
$STD pnpm exec next build --experimental-build-mode compile
75-
cp -r /opt/hoarder/apps/web/.next/standalone/apps/web/server.js /opt/hoarder/apps/web
76-
cd /opt/hoarder/apps/workers
75+
cp -r /opt/karakeep/apps/web/.next/standalone/apps/web/server.js /opt/karakeep/apps/web
76+
cd /opt/karakeep/apps/workers || exit
7777
$STD pnpm install --frozen-lockfile
7878

79-
export DATA_DIR=/opt/hoarder_data
80-
HOARDER_SECRET=$(openssl rand -base64 36 | cut -c1-24)
81-
mkdir -p /etc/hoarder
82-
cat <<EOF >/etc/hoarder/hoarder.env
79+
export DATA_DIR=/opt/karakeep_data
80+
karakeep_SECRET=$(openssl rand -base64 36 | cut -c1-24)
81+
mkdir -p /etc/karakeep
82+
cat <<EOF >/etc/karakeep/karakeep.env
8383
SERVER_VERSION=$RELEASE
84-
NEXTAUTH_SECRET="$HOARDER_SECRET"
84+
NEXTAUTH_SECRET="$karakeep_SECRET"
8585
NEXTAUTH_URL="http://localhost:3000"
8686
DATA_DIR="$DATA_DIR"
8787
MEILI_ADDR="http://127.0.0.1:7700"
@@ -99,11 +99,11 @@ BROWSER_WEB_URL="http://127.0.0.1:9222"
9999
# INFERENCE_IMAGE_MODEL="gpt-4o-mini"
100100
EOF
101101
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
102-
msg_ok "Installed Hoarder"
102+
msg_ok "Installed karakeep"
103103

104104
msg_info "Running Database Migration"
105105
mkdir -p ${DATA_DIR}
106-
cd /opt/hoarder/packages/db
106+
cd /opt/karakeep/packages/db || exit
107107
$STD pnpm migrate
108108
msg_ok "Database Migration Completed"
109109

@@ -121,25 +121,25 @@ Restart=always
121121
WantedBy=multi-user.target
122122
EOF
123123

124-
cat <<EOF >/etc/systemd/system/hoarder-web.service
124+
cat <<EOF >/etc/systemd/system/karakeep-web.service
125125
[Unit]
126-
Description=Hoarder Web
127-
Wants=network.target hoarder-workers.service
128-
After=network.target hoarder-workers.service
126+
Description=karakeep Web
127+
Wants=network.target karakeep-workers.service
128+
After=network.target karakeep-workers.service
129129
130130
[Service]
131131
ExecStart=pnpm start
132-
WorkingDirectory=/opt/hoarder/apps/web
133-
EnvironmentFile=/etc/hoarder/hoarder.env
132+
WorkingDirectory=/opt/karakeep/apps/web
133+
EnvironmentFile=/etc/karakeep/karakeep.env
134134
Restart=always
135135
136136
[Install]
137137
WantedBy=multi-user.target
138138
EOF
139139

140-
cat <<EOF >/etc/systemd/system/hoarder-browser.service
140+
cat <<EOF >/etc/systemd/system/karakeep-browser.service
141141
[Unit]
142-
Description=Hoarder Headless Browser
142+
Description=karakeep Headless Browser
143143
After=network.target
144144
145145
[Service]
@@ -151,32 +151,32 @@ Restart=always
151151
WantedBy=multi-user.target
152152
EOF
153153

154-
cat <<EOF >/etc/systemd/system/hoarder-workers.service
154+
cat <<EOF >/etc/systemd/system/karakeep-workers.service
155155
[Unit]
156-
Description=Hoarder Workers
157-
Wants=network.target hoarder-browser.service meilisearch.service
158-
After=network.target hoarder-browser.service meilisearch.service
156+
Description=karakeep Workers
157+
Wants=network.target karakeep-browser.service meilisearch.service
158+
After=network.target karakeep-browser.service meilisearch.service
159159
160160
[Service]
161161
ExecStart=pnpm start:prod
162-
WorkingDirectory=/opt/hoarder/apps/workers
163-
EnvironmentFile=/etc/hoarder/hoarder.env
162+
WorkingDirectory=/opt/karakeep/apps/workers
163+
EnvironmentFile=/etc/karakeep/karakeep.env
164164
Restart=always
165165
TimeoutStopSec=5
166166
167167
[Install]
168168
WantedBy=multi-user.target
169169
EOF
170170

171-
systemctl enable -q --now meilisearch hoarder-browser hoarder-workers hoarder-web
171+
systemctl enable -q --now meilisearch karakeep-browser karakeep-workers karakeep-web
172172
msg_ok "Created Services"
173173

174174
motd_ssh
175175
customize
176176

177177
msg_info "Cleaning up"
178178
rm -rf /tmp/meilisearch.deb
179-
rm -f /opt/v${RELEASE}.zip
179+
rm -f /opt/v"${RELEASE}".zip
180180
$STD apt-get autoremove -y
181181
$STD apt-get autoclean -y
182182
msg_ok "Cleaned"

0 commit comments

Comments
 (0)