blob: acb5f48b9424998cc7bb8b8ef00c214a58870fe0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# Maintainer: Aseem Athale <athaleaseem@gmail.com>
# Contributor: Ben Davis <bendavis78@gmail.com>
_appname="open-webui"
_appprefix="/opt"
_appdataprefix="/var/opt"
pkgname="${_appname}-git"
pkgver=0.6.0.r0.g04799f1
pkgrel=1
pkgdesc="Web UI and OpenAI API for various LLM runners, including Ollama"
arch=("any")
url="https://github.com/open-webui/open-webui"
license=("MIT")
depends=('python312')
makedepends=('git' 'npm' 'nvm')
optdepends=('ollama' 'tika-server')
source=(
"${pkgname}::git+${url}"
"open-webui.service"
"open-webui.conf"
)
install="${pkgname}.install"
sha1sums=('SKIP'
'9b789adb8d91f15ece2187af4aec810847d4b0b2'
'fb015c224b9529988823f0e24d65ab4a004d30c0')
options=(!strip !debug)
_ensure_local_nvm() {
# let's be sure we are starting clean
which nvm >/dev/null 2>&1 && nvm deactivate && nvm unload
export NVM_DIR="${srcdir}/.nvm"
# The init script returns 3 if version specified
# in ./.nvrc is not (yet) installed in $NVM_DIR
# but nvm itself still gets loaded ok
source /usr/share/nvm/init-nvm.sh || [[ $? != 1 ]]
}
pkgver() {
cd "$srcdir/$pkgname"
git describe --long --tags --abbrev=7 | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
_ensure_local_nvm
nvm install lts/iron
}
build() {
_ensure_local_nvm
cd "$srcdir/$pkgname"
export NODE_OPTIONS="--max_old_space_size=4096"
npm install
npm run format
npm run i18n:parse
npm run build
}
check() {
_ensure_local_nvm
cd "$srcdir/$pkgname"
export NODE_OPTIONS="--max_old_space_size=4096"
npm run test:frontend
}
package() {
# Install systemd service
install -Dm644 "./$_appname.service" "$pkgdir/usr/lib/systemd/system/$_appname.service"
# Install license
install -Dm 644 "$srcdir/${pkgname}"/LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
# Install the default config file to /usr/share/$_appname/open-webui.conf
install -d "$pkgdir/usr/share/$_appname"
install -Dm644 "./$_appname.conf" "$pkgdir/usr/share/$_appname/$_appname.conf"
# Copy source to app's home directory
parent_dir="$pkgdir${_appprefix}" # /opt
install -d "$pkgdir${_appprefix}/$_appname"
install -d "$pkgdir${_appdataprefix}/$_appname"
install -d "$pkgdir/${_appdataprefix}/$_appname/data"
# copy over files
cp -R "$srcdir/${pkgname}/." "$pkgdir${_appprefix}/$_appname"
# clean up stuff we don't need
rm -rf "$pkgdir${_appprefix}/$_appname/node_modules"
rm -rf "$pkgdir${_appprefix}/$_appname/.git"
# Fix permissions
echo "Setting permissions for $pkgdir${_appprefix}/$_appname"
chmod 755 "$pkgdir${_appprefix}/$_appname"
find "$pkgdir${_appprefix}/$_appname" -type d -exec chmod 755 {} \;
find "$pkgdir${_appprefix}/$_appname" -type f -exec chmod 644 {} \;
echo "Setting permissions for $pkgdir${_appdataprefix}/$_appname"
chmod 755 "$pkgdir${_appdataprefix}/$_appname"
find "$pkgdir${_appdataprefix}/$_appname" -type d -exec chmod 700 {} \;
find "$pkgdir${_appdataprefix}/$_appname" -type f -exec chmod 664 {} \;
}
|