55# License: MIT
66# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
77
8- source /dev/stdin <<< " $FUNCTIONS_FILE_PATH"
8+ source /dev/stdin <<< " $FUNCTIONS_FILE_PATH"
99color
1010verb_ip6
1111catch_errors
@@ -14,12 +14,13 @@ network_check
1414update_os
1515
1616msg_info " Installing Dependencies"
17- $STD apt-get install -y curl
18- $STD apt-get install -y sudo
19- $STD apt-get install -y mc
20- $STD apt-get install -y git
21- $STD apt-get install -y ca-certificates
22- $STD apt-get install -y gnupg
17+ $STD apt-get install -y \
18+ curl \
19+ sudo \
20+ mc \
21+ git \
22+ ca-certificates \
23+ gnupg
2324msg_ok " Installed Dependencies"
2425
2526msg_info " Setting up Node.js Repository"
@@ -28,36 +29,49 @@ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dea
2829echo " deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" > /etc/apt/sources.list.d/nodesource.list
2930msg_ok " Set up Node.js Repository"
3031
32+ msg_info " Setting up PostgreSQL Repository"
33+ curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
34+ echo " deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list
35+ msg_ok " Set up PostgreSQL Repository"
36+
3137msg_info " Installing Node.js"
3238$STD apt-get update
3339$STD apt-get install -y nodejs
3440msg_ok " Installed Node.js"
3541
36- msg_info " Installing Wiki.js"
37- mkdir -p /opt/wikijs
38- cd /opt/wikijs
39- $STD wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz
40- tar xzf wiki-js.tar.gz
41- rm wiki-js.tar.gz
42+ msg_info " Set up PostgreSQL"
43+ $STD apt-get install -y postgresql-17
44+ DB_NAME=" wikijs_db"
45+ DB_USER=" wikijs_user"
46+ DB_PASS=" $( openssl rand -base64 18 | tr -dc ' a-zA-Z0-9' | cut -c1-13) "
47+ $STD sudo -u postgres psql -c " CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS ';"
48+ $STD sudo -u postgres psql -c " CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
49+ $STD sudo -u postgres psql -c " CREATE EXTENSION IF NOT EXISTS pg_trgm;" $DB_NAME
50+ $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
51+ $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
52+ $STD sudo -u postgres psql -c " ALTER ROLE $DB_USER SET timezone TO 'UTC';"
53+ {
54+ echo " WikiJS-Credentials"
55+ echo " WikiJS Database User: $DB_USER "
56+ echo " WikiJS Database Password: $DB_PASS "
57+ echo " WikiJS Database Name: $DB_NAME "
58+ } >> ~ /wikijs.creds
59+ msg_ok " Set up PostgreSQL"
4260
43- cat << EOF >/opt/wikijs/config.yml
44- bindIP: 0.0.0.0
45- port: 3000
46- db:
47- type: sqlite
48- storage: /opt/wikijs/db.sqlite
49- logLevel: info
50- logFormat: default
51- dataPath: /opt/wikijs/data
52- bodyParserLimit: 5mb
53- EOF
54- $STD npm rebuild sqlite3
61+ msg_info " Setup Wiki.js"
62+ temp_file=$( mktemp)
63+ RELEASE=$( curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep " tag_name" | awk ' {print substr($2, 3, length($2)-4) }' )
64+ wget -q " https://github.com/Requarks/wiki/archive/refs/tags/v${RELEASE} .tar.gz" -O " $temp_file "
65+ tar -xzf " $temp_file "
66+ mv wiki-${RELEASE} /opt/wikijs
67+ mv /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
68+ sed -i -E " s|(host: ).*|\1localhost|; s|(port: ).*|\15432|; s|(user: ).*|\1$DB_USER |; s|(pass: ).*|\1$DB_PASS |; s|(db: ).*|\1$DB_NAME |; s|(ssl: ).*|\1false|" /opt/wikijs/config.yml
69+ echo " ${RELEASE} " > " /opt/${APPLICATION} _version.txt"
5570msg_ok " Installed Wiki.js"
5671
5772msg_info " Creating Service"
58- service_path=" /etc/systemd/system/wikijs.service"
59-
60- echo " [Unit]
73+ cat << EOF >/etc/systemd/system/wikijs.service
74+ [Unit]
6175Description=Wiki.js
6276After=network.target
6377
@@ -70,14 +84,16 @@ Environment=NODE_ENV=production
7084WorkingDirectory=/opt/wikijs
7185
7286[Install]
73- WantedBy=multi-user.target" > $service_path
74- $STD systemctl enable --now wikijs
87+ WantedBy=multi-user.target
88+ EOF
89+ systemctl enable --now wikijs
7590msg_ok " Created Service"
7691
7792motd_ssh
7893customize
7994
8095msg_info " Cleaning up"
96+ rm -f " $temp_file "
8197$STD apt-get -y autoremove
8298$STD apt-get -y autoclean
8399msg_ok " Cleaned"
0 commit comments