Compare commits

...

45 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
a9362e0b4a Update CHANGELOG.md (#2545)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-21 16:32:17 +01:00
jaminmc
10c46723fe Add ZFS to Podman. Now it works on ZFS! (#2526)
* Allow Podman to work on ZFS containers

* Fix ZFS for Podman-Create missing folder.

* Added option to install Portainer or Portainer agent in Podman

* Fix source for Podman Homeassistant so Portainer and other containers can be installed.

* fix Podman not creating storage/volumes, until one exists.
2025-02-21 16:45:30 +02:00
community-scripts-pr-app[bot]
666e170f7d Update CHANGELOG.md (#2536)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-21 10:46:48 +01:00
CanbiZ
109c48694e Update changelog-pr.yml 2025-02-21 10:45:58 +01:00
CanbiZ
d0cd58e923 Update changelog-pr.yml 2025-02-21 10:44:54 +01:00
CanbiZ
16b8bbfca6 Update changelog-pr.yml 2025-02-21 10:42:01 +01:00
CanbiZ
209aa220b0 Update changelog-pr.yml 2025-02-21 10:40:28 +01:00
CanbiZ
dd8db43dea General Cleanup & Moving Files / Folders (#2532) 2025-02-21 10:31:17 +01:00
CanbiZ
7d40e148e9 Update autolabeler.yml 2025-02-21 10:04:16 +01:00
CanbiZ
ef6eeea608 Update changelog-pr.yml 2025-02-21 08:29:30 +01:00
CanbiZ
0c13b71466 Update changelog-pr.yml 2025-02-21 08:24:37 +01:00
community-scripts-pr-app[bot]
e1c25a3c8e Update CHANGELOG.md (#2531)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-21 08:23:24 +01:00
CanbiZ
e5bfb8f8a3 Update changelog-pr-config.json 2025-02-21 08:21:27 +01:00
CanbiZ
4dfcd32d92 Update changelog-pr-config.json 2025-02-21 08:16:25 +01:00
CanbiZ
167deb5d7f Update autolabeler.yml 2025-02-21 08:15:38 +01:00
CanbiZ
8cb3007d66 Update autolabeler.yml 2025-02-21 08:13:54 +01:00
CanbiZ
49bcd30e77 Fix: Tianji - Downgrade Node (#2530) 2025-02-21 08:09:50 +01:00
CanbiZ
1e2954a993 Update wikijs-install.sh 2025-02-20 17:14:25 +01:00
CanbiZ
fe5711d9c4 Update wikijs-install.sh 2025-02-20 16:49:51 +01:00
CanbiZ
33f812179f Update wikijs.sh 2025-02-20 16:48:36 +01:00
CanbiZ
d7a2614819 Update wikijs-install.sh 2025-02-20 16:47:36 +01:00
CanbiZ
dc259847af Update docmost-install.sh 2025-02-20 16:44:12 +01:00
CanbiZ
9bcd1cd237 Update docmost-install.sh 2025-02-20 16:39:27 +01:00
CanbiZ
3a1ae8f7c0 Update wikijs-install.sh 2025-02-20 16:38:12 +01:00
CanbiZ
9cbe196913 Update wikijs-install.sh 2025-02-20 16:36:34 +01:00
CanbiZ
d0c8b1c15b Update docmost-install.sh 2025-02-20 16:32:21 +01:00
CanbiZ
2efdea9a29 Update wikijs.sh 2025-02-20 16:24:19 +01:00
CanbiZ
978dc549f4 Update wikijs.json 2025-02-20 16:24:00 +01:00
community-scripts-pr-app[bot]
d4d8943c9f Update CHANGELOG.md (#2524) 2025-02-20 16:16:21 +01:00
CanbiZ
12a1f46703 Update wikijs-install.sh 2025-02-20 16:15:45 +01:00
Slaviša Arežina
15d20a54b3 Fix files not copying to correct directory (#2521) 2025-02-20 16:14:46 +01:00
CanbiZ
bedfbd232d Update wikijs-install.sh 2025-02-20 16:06:04 +01:00
CanbiZ
3c289e7235 Update wikijs.json 2025-02-20 15:54:55 +01:00
CanbiZ
450d2410d9 Update wikijs.sh 2025-02-20 15:54:38 +01:00
community-scripts-pr-app[bot]
e1ecc8d6cf Update CHANGELOG.md (#2520)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-20 14:15:06 +01:00
community-scripts-pr-app[bot]
e9d9da3355 Update CHANGELOG.md (#2519) 2025-02-20 14:04:35 +01:00
CanbiZ
6d3c442464 WikiJS: Prepare for Using PostgreSQL (#2516) 2025-02-20 14:03:43 +01:00
community-scripts-pr-app[bot]
1a8f5a4007 Update CHANGELOG.md (#2518)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-20 14:02:16 +01:00
CanbiZ
20414d9659 [gh] better handling of labels (#2517)
* Update autolabeler.yml

* Update changelog-pr-config.json
2025-02-20 14:01:33 +01:00
community-scripts-pr-app[bot]
1fe8bc05b3 Update CHANGELOG.md (#2513) 2025-02-20 12:19:54 +01:00
CanbiZ
049afa994b Pihole & Unbound: Installation for Pihole V6 (#2505) 2025-02-20 12:18:35 +01:00
CanbiZ
ba41bcd561 Breaking: Actual Budget Script (HTTPS / DB Migration / New Structure) - Read Description (#2496) 2025-02-20 12:18:00 +01:00
community-scripts-pr-app[bot]
4aa84c265d Update CHANGELOG.md (#2506)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-20 10:46:23 +01:00
community-scripts-pr-app[bot]
436945b711 Update .app files (#2507)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2025-02-20 09:52:38 +01:00
Slaviša Arežina
b749119a1c New Script: Dolibarr (#2502)
* Add Dolibarr script

* Moved mariadb into dependencies

* Fixed updatable to true
2025-02-20 09:51:32 +01:00
33 changed files with 537 additions and 132 deletions

View File

@@ -4,29 +4,37 @@
"labels": ["breaking change"] "labels": ["breaking change"]
}, },
{ {
"title": " New Scripts", "title": "🆕 New Scripts",
"labels": ["new script"] "labels": ["new script"]
}, },
{ {
"title": "🚀 Updated Scripts", "title": "🚀 Updated Scripts",
"labels": ["update script"] "labels": ["update script"]
}, },
{
"title": "🐞 Bug Fixes (Updated Scripts)",
"labels": ["update script", "bugfix"]
},
{
"title": "✨ Feature Updates (Updated Scripts)",
"labels": ["update script", "feature"]
},
{
"title": "✨ New Features",
"labels": ["feature"]
},
{ {
"title": "🌐 Website", "title": "🌐 Website",
"labels": ["website"] "labels": ["website"]
}, },
{
"title": "🐞 Bug Fixes",
"labels": ["bug fix"]
},
{
"title": "🧰 Maintenance",
"labels": ["maintenance"]
},
{ {
"title": "📡 API", "title": "📡 API",
"labels": ["api"] "labels": ["api"]
}, },
{
"title": "🧰 Maintenance",
"labels": ["maintenance"]
},
{ {
"title": "❔ Unlabelled", "title": "❔ Unlabelled",
"labels": [] "labels": []

View File

@@ -19,7 +19,7 @@ jobs:
- name: Install minimatch - name: Install minimatch
run: npm install minimatch run: npm install minimatch
- name: Label PR based on config rules - name: Label PR based on file changes and PR template
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
script: | script: |
@@ -32,6 +32,12 @@ jobs:
const autolabelerConfig = JSON.parse(fileContent); const autolabelerConfig = JSON.parse(fileContent);
const prNumber = context.payload.pull_request.number; const prNumber = context.payload.pull_request.number;
const prBody = context.payload.pull_request.body.toLowerCase();
// Label-Sammlung (um doppelte API-Calls zu vermeiden)
let labelsToAdd = new Set();
// Prüfe Datei-Änderungen
const prListFilesResponse = await github.rest.pulls.listFiles({ const prListFilesResponse = await github.rest.pulls.listFiles({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
@@ -51,12 +57,36 @@ jobs:
}); });
if (shouldAddLabel) { if (shouldAddLabel) {
console.log(`Adding label ${label} to PR ${prNumber}`); labelsToAdd.add(label);
}
}
// Prüfe PR-Template Checkboxen mit den korrekten Labels
const templateLabelMappings = {
"🐞 bug fix": "bugfix",
"✨ new feature": "feature",
"💥 breaking change": "breaking change",
"🆕 new script": "new script"
};
for (const [checkbox, label] of Object.entries(templateLabelMappings)) {
const regex = new RegExp(`- \\[(.*?)\\] ${checkbox}`, "i");
const match = prBody.match(regex);
if (match && match[1].trim() !== "") { // Checkbox ist gesetzt
labelsToAdd.add(label);
}
}
// Debugging: Anzeigen, welche Labels tatsächlich erkannt wurden
console.log(`Labels to add: ${Array.from(labelsToAdd).join(", ")}`);
// Labels setzen, falls neue erkannt wurden
if (labelsToAdd.size > 0) {
console.log(`Adding labels ${Array.from(labelsToAdd).join(", ")} to PR ${prNumber}`);
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: prNumber, issue_number: prNumber,
labels: [label], labels: Array.from(labelsToAdd),
}); });
} }
}

View File

@@ -17,6 +17,41 @@ All LXC instances created using this repository come pre-installed with Midnight
Do not break established syntax in this file, as it is automatically updated by a Github Workflow Do not break established syntax in this file, as it is automatically updated by a Github Workflow
## 2025-02-21
### Changes
### 🚀 Updated Scripts
- Add ZFS to Podman. Now it works on ZFS! [@jaminmc](https://github.com/jaminmc) ([#2526](https://github.com/community-scripts/ProxmoxVE/pull/2526))
- Fix: Tianji - Downgrade Node [@MickLesk](https://github.com/MickLesk) ([#2530](https://github.com/community-scripts/ProxmoxVE/pull/2530))
### 🧰 Maintenance
- [gh] General Cleanup & Moving Files / Folders [@MickLesk](https://github.com/MickLesk) ([#2532](https://github.com/community-scripts/ProxmoxVE/pull/2532))
## 2025-02-20
### Changes
### 💥 Breaking Changes
- Breaking: Actual Budget Script (HTTPS / DB Migration / New Structure) - Read Description [@MickLesk](https://github.com/MickLesk) ([#2496](https://github.com/community-scripts/ProxmoxVE/pull/2496))
- Pihole & Unbound: Installation for Pihole V6 (read description) [@MickLesk](https://github.com/MickLesk) ([#2505](https://github.com/community-scripts/ProxmoxVE/pull/2505))
### ✨ New Scripts
- New Script: Dolibarr [@tremor021](https://github.com/tremor021) ([#2502](https://github.com/community-scripts/ProxmoxVE/pull/2502))
### 🚀 Updated Scripts
- Fix: Pingvin Share - Update not copying to correct directory [@tremor021](https://github.com/tremor021) ([#2521](https://github.com/community-scripts/ProxmoxVE/pull/2521))
- WikiJS: Prepare for Using PostgreSQL [@MickLesk](https://github.com/MickLesk) ([#2516](https://github.com/community-scripts/ProxmoxVE/pull/2516))
### 🧰 Maintenance
- [gh] better handling of labels [@MickLesk](https://github.com/MickLesk) ([#2517](https://github.com/community-scripts/ProxmoxVE/pull/2517))
## 2025-02-19 ## 2025-02-19
### Changes ### Changes

View File

@@ -19,10 +19,10 @@
<a href="https://ko-fi.com/community_scripts"> <a href="https://ko-fi.com/community_scripts">
<img src="https://img.shields.io/badge/Support-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" /> <img src="https://img.shields.io/badge/Support-FF5F5F?style=for-the-badge&logo=ko-fi&logoColor=white" alt="Donate" />
</a> </a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTING.md"> <a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_AND_GUIDES/CONTRIBUTING.md">
<img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" /> <img src="https://img.shields.io/badge/Contribute-ff4785?style=for-the-badge&logo=git&logoColor=white" alt="Contribute" />
</a> </a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/USER_SUBMITTED_GUIDES.md"> <a href="https://github.com/community-scripts/ProxmoxVE/blob/main/.github/CONTRIBUTOR_AND_GUIDES/USER_SUBMITTED_GUIDES.md">
<img src="https://img.shields.io/badge/Guides-0077b5?style=for-the-badge&logo=read-the-docs&logoColor=white" alt="Guides" /> <img src="https://img.shields.io/badge/Guides-0077b5?style=for-the-badge&logo=read-the-docs&logoColor=white" alt="Guides" />
</a> </a>
<a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md"> <a href="https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md">

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 tteck
# Author: tteck (tteckster) # Author: tteck (tteckster)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@@ -43,36 +42,44 @@ function update_script() {
wget -q "https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz" wget -q "https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz"
mv /opt/actualbudget /opt/actualbudget_bak mv /opt/actualbudget /opt/actualbudget_bak
tar -xzf "v${RELEASE}.tar.gz" >/dev/null 2>&1 tar -xzf "v${RELEASE}.tar.gz" &>/dev/null
mv *ctual-server-* /opt/actualbudget mv *ctual-server-* /opt/actualbudget
if [[ ! -d /opt/actualbudget-data ]]; then
mkdir -p /opt/actualbudget-data/server-files mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
for dir in server-files .migrate user-files migrations; do
if [[ -d /opt/actualbudget_bak/$dir ]]; then
mv /opt/actualbudget_bak/$dir/* /opt/actualbudget-data/$dir/ 2>/dev/null || true
fi
done
if [[ -f /opt/actualbudget-data/migrate/.migrations ]]; then
sed -i 's/null/1732656575219/g' /opt/actualbudget-data/migrate/.migrations
sed -i 's/null/1732656575220/g' /opt/actualbudget-data/migrate/.migrations
fi
if [[ -f /opt/actualbudget/server-files/account.sqlite ]] && [[ ! -f /opt/actualbudget-data/server-files/account.sqlite ]]; then
mv /opt/actualbudget/server-files/account.sqlite /opt/actualbudget-data/server-files/account.sqlite
fi fi
rm -rf /opt/actualbudget/.env if [[ -f /opt/actualbudget_bak/.env ]]; then
if [[ ! -f /opt/actualbudget_bak/.env ]]; then mv /opt/actualbudget_bak/.env /opt/actualbudget-data/.env
cat <<EOF > /opt/actualbudget_bak/.env else
ACTUAL_UPLOAD_DIR=/opt/actualbudget/server-files cat <<EOF > /opt/actualbudget-data/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
ACTUAL_DATA_DIR=/opt/actualbudget-data ACTUAL_DATA_DIR=/opt/actualbudget-data
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget/server-files ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files
ACTUAL_USER_FILES=/opt/actualbudget-data/user-files
PORT=5006 PORT=5006
ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1/128,fc00::/7"
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
EOF EOF
fi fi
mv /opt/actualbudget_bak/.env /opt/actualbudget/
if [[ -d /opt/actualbudget_bak/server-files ]] && [[ -n $(ls -A /opt/actualbudget_bak/server-files 2>/dev/null) ]]; then
mv /opt/actualbudget_bak/server-files/* /opt/actualbudget/server-files/
fi
if [[ -d /opt/actualbudget_bak/.migrate ]]; then
mv /opt/actualbudget_bak/.migrate /opt/actualbudget/
fi
cd /opt/actualbudget cd /opt/actualbudget
yarn install &>/dev/null yarn install &>/dev/null
echo "${RELEASE}" > /opt/actualbudget_version.txt echo "${RELEASE}" > /opt/actualbudget_version.txt
msg_ok "Updated ${APP}" msg_ok "Updated ${APP}"
msg_info "Starting ${APP}" msg_info "Starting ${APP}"
cat <<EOF >/etc/systemd/system/actualbudget.service cat <<EOF > /etc/systemd/system/actualbudget.service
[Unit] [Unit]
Description=Actual Budget Service Description=Actual Budget Service
After=network.target After=network.target
@@ -82,7 +89,7 @@ Type=simple
User=root User=root
Group=root Group=root
WorkingDirectory=/opt/actualbudget WorkingDirectory=/opt/actualbudget
EnvironmentFile=/opt/actualbudget/.env EnvironmentFile=/opt/actualbudget-data/.env
ExecStart=/usr/bin/yarn start ExecStart=/usr/bin/yarn start
Restart=always Restart=always
RestartSec=10 RestartSec=10
@@ -90,6 +97,8 @@ RestartSec=10
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target
EOF EOF
systemctl daemon-reload
systemctl start actualbudget systemctl start actualbudget
msg_ok "Started ${APP}" msg_ok "Started ${APP}"
@@ -111,4 +120,4 @@ description
msg_ok "Completed Successfully!\n" msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:5006${CL}" echo -e "${TAB}${GATEWAY}${BGN}https://${IP}:5006${CL}"

41
ct/dolibarr.sh Normal file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env bash
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Dolibarr/dolibarr/
APP="Dolibarr"
var_tags="erp;accounting"
var_cpu="1"
var_ram="2048"
var_disk="6"
var_os="debian"
var_version="12"
var_unprivileged="1"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /usr/share/dolibarr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
msg_error "To update ${APP}, use the applications web interface."
exit
}
start
build_container
description
msg_ok "Completed Successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}/dolibarr/install${CL}"

6
ct/headers/dolibarr Normal file
View File

@@ -0,0 +1,6 @@
____ ___ __
/ __ \____ / (_) /_ ____ ___________
/ / / / __ \/ / / __ \/ __ `/ ___/ ___/
/ /_/ / /_/ / / / /_/ / /_/ / / / /
/_____/\____/_/_/_.___/\__,_/_/ /_/

View File

@@ -39,7 +39,7 @@ function update_script() {
cd /opt cd /opt
wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip" wget -q "https://github.com/stonith404/pingvin-share/archive/refs/tags/v${RELEASE}.zip"
unzip -q v${RELEASE}.zip unzip -q v${RELEASE}.zip
mv pingvin-share-${RELEASE} /opt/pingvin-share cp -rf pingvin-share-${RELEASE}/* /opt/pingvin-share
cd /opt/pingvin-share cd /opt/pingvin-share
cd backend cd backend
npm install &>/dev/null npm install &>/dev/null
@@ -49,6 +49,7 @@ function update_script() {
npm run build &>/dev/null npm run build &>/dev/null
echo "${RELEASE}" >"/opt/pingvin_version.txt" echo "${RELEASE}" >"/opt/pingvin_version.txt"
rm -rf /opt/v${RELEASE}.zip rm -rf /opt/v${RELEASE}.zip
rm -rf /opt/pingvin-share-${RELEASE}
msg_ok "Updated Pingvin Share to v${RELEASE}" msg_ok "Updated Pingvin Share to v${RELEASE}"
msg_info "Starting Pingvin Share" msg_info "Starting Pingvin Share"

View File

@@ -7,9 +7,9 @@ source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/m
APP="Wikijs" APP="Wikijs"
var_tags="wiki" var_tags="wiki"
var_cpu="1" var_cpu="2"
var_ram="512" var_ram="2048"
var_disk="3" var_disk="10"
var_os="debian" var_os="debian"
var_version="12" var_version="12"
var_unprivileged="1" var_unprivileged="1"

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Copyright (c) 2021-2025 tteck # Copyright (c) 2021-2025 community-scripts ORG
# Author: tteck (tteckster) # Author: MickLesk (CanbiZ)
# License: MIT # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://actualbudget.org/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color color
@@ -41,18 +41,32 @@ RELEASE=$(curl -s https://api.github.com/repos/actualbudget/actual/releases/late
wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz wget -q https://github.com/actualbudget/actual-server/archive/refs/tags/v${RELEASE}.tar.gz
tar -xzf v${RELEASE}.tar.gz tar -xzf v${RELEASE}.tar.gz
mv *ctual-server-* /opt/actualbudget mv *ctual-server-* /opt/actualbudget
mkdir -p /opt/actualbudget/server-files
mkdir -p /opt/actualbudget-data mkdir -p /opt/actualbudget-data/{server-files,upload,migrate,user-files,migrations,config}
chown -R root:root /opt/actualbudget/server-files chown -R root:root /opt/actualbudget-data
chmod 755 /opt/actualbudget/server-files chmod -R 755 /opt/actualbudget-data
cat <<EOF > /opt/actualbudget/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget/server-files cat <<EOF > /opt/actualbudget-data/.env
ACTUAL_UPLOAD_DIR=/opt/actualbudget-data/upload
ACTUAL_DATA_DIR=/opt/actualbudget-data ACTUAL_DATA_DIR=/opt/actualbudget-data
ACTUAL_SERVER_FILES_DIR=/opt/actualbudget/server-files ACTUAL_SERVER_FILES_DIR=/opt/actualbudget-data/server-files
ACTUAL_USER_FILES=/opt/actualbudget-data/user-files
PORT=5006 PORT=5006
ACTUAL_TRUSTED_PROXIES="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.1/32,::1/128,fc00::/7"
ACTUAL_HTTPS_KEY=/opt/actualbudget/selfhost.key
ACTUAL_HTTPS_CERT=/opt/actualbudget/selfhost.crt
EOF EOF
cd /opt/actualbudget cd /opt/actualbudget
$STD yarn install $STD yarn install
$STD openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout selfhost.key -out selfhost.crt <<EOF
US
California
San Francisco
My Organization
My Unit
localhost
myemail@example.com
EOF
echo "${RELEASE}" >"/opt/actualbudget_version.txt" echo "${RELEASE}" >"/opt/actualbudget_version.txt"
msg_ok "Installed Actual Budget" msg_ok "Installed Actual Budget"
@@ -67,7 +81,7 @@ Type=simple
User=root User=root
Group=root Group=root
WorkingDirectory=/opt/actualbudget WorkingDirectory=/opt/actualbudget
EnvironmentFile=/opt/actualbudget/.env EnvironmentFile=/opt/actualbudget-data/.env
ExecStart=/usr/bin/yarn start ExecStart=/usr/bin/yarn start
Restart=always Restart=always
RestartSec=10 RestartSec=10

View File

@@ -27,7 +27,7 @@ msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository" msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js" msg_info "Installing Node.js"
@@ -64,7 +64,7 @@ mv .env.example .env
sed -i "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)|" /opt/docmost/.env sed -i "s|APP_SECRET=.*|APP_SECRET=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)|" /opt/docmost/.env
sed -i "s|DATABASE_URL=.*|DATABASE_URL=postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME|" /opt/docmost/.env sed -i "s|DATABASE_URL=.*|DATABASE_URL=postgres://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME|" /opt/docmost/.env
export NODE_OPTIONS="--max-old-space-size=2048" export NODE_OPTIONS="--max-old-space-size=2048"
$STD pnpm install --force $STD pnpm install
$STD pnpm build $STD pnpm build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt" echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Docmost" msg_ok "Installed Docmost"

View File

@@ -0,0 +1,53 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2025 community-scripts ORG
# Author: Slaviša Arežina (tremor021)
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/Dolibarr/dolibarr/
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y \
curl \
sudo \
mc \
php-imap \
debconf-utils \
mariadb-server
msg_ok "Installed Dependencies"
msg_info "Setting up Database"
ROOT_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
$STD sudo mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password AS PASSWORD('$ROOT_PASS'); flush privileges;"
{
echo "Dolibarr DB Credentials"
echo "MariaDB Root Password: $ROOT_PASS"
} >> ~/dolibarr.creds
msg_ok "Set up database"
msg_info "Setup Dolibarr"
BASE="https://sourceforge.net/projects/dolibarr/files/Dolibarr%20installer%20for%20Debian-Ubuntu%20(DoliDeb)/"
RELEASE=$(curl -s "$BASE" | grep -oP '(?<=/Dolibarr%20installer%20for%20Debian-Ubuntu%20%28DoliDeb%29/)[^/"]+' | head -n1)
FILE=$(curl -s "${BASE}${RELEASE}/" | grep -oP 'dolibarr_[^"]+_all.deb' | head -n1)
wget -q "https://netcologne.dl.sourceforge.net/project/dolibarr/Dolibarr%20installer%20for%20Debian-Ubuntu%20(DoliDeb)/${RELEASE}/${FILE}?viasf=1" -O "$FILE"
echo "dolibarr dolibarr/reconfigure-webserver multiselect apache2" | debconf-set-selections
$STD apt-get install ./$FILE -y
$STD apt install -f
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Setup Dolibarr"
motd_ssh
customize
msg_info "Cleaning up"
rm -rf ~/$FILE
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"

View File

@@ -14,32 +14,48 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl $STD apt-get install -y \
$STD apt-get install -y sudo curl \
$STD apt-get install -y mc sudo \
$STD apt-get install -y ufw mc \
$STD apt-get install -y ntp ufw
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Installing Pi-hole" msg_info "Installing Pi-hole"
mkdir -p /etc/pihole/ mkdir -p /etc/pihole
cat <<EOF >/etc/pihole/setupVars.conf touch /etc/pihole/pihole.toml
PIHOLE_INTERFACE=eth0
PIHOLE_DNS_1=8.8.8.8
PIHOLE_DNS_2=8.8.4.4
QUERY_LOGGING=true
INSTALL_WEB_SERVER=true
INSTALL_WEB_INTERFACE=true
LIGHTTPD_ENABLED=true
CACHE_SIZE=10000
DNS_FQDN_REQUIRED=true
DNS_BOGUS_PRIV=true
DNSMASQ_LISTENING=local
WEBPASSWORD=$(openssl rand -base64 48)
BLOCKING_ENABLED=true
EOF
# View script https://install.pi-hole.net
$STD bash <(curl -fsSL https://install.pi-hole.net) --unattended $STD bash <(curl -fsSL https://install.pi-hole.net) --unattended
sed -i -E '
/^\s*upstreams =/ s|=.*|= ["8.8.8.8", "8.8.4.4"]|
/^\s*interface =/ s|=.*|= "eth0"|
/^\s*queryLogging =/ s|=.*|= true|
/^\s*size =/ s|=.*|= 10000|
/^\s*active =/ s|=.*|= true|
/^\s*listeningMode =/ s|=.*|= "LOCAL"|
/^\s*port =/ s|=.*|= "80o,443os,[::]:80o,[::]:443os"|
/^\s*pwhash =/ s|=.*|= ""|
# DHCP Disable
/^\s*\[dhcp\]/,/^\s*\[/{s/^\s*active = true/ active = false/}
# NTP Disable
/^\s*\[ntp.ipv4\]/,/^\s*\[/{s/^\s*active = true/ active = false/}
/^\s*\[ntp.ipv6\]/,/^\s*\[/{s/^\s*active = true/ active = false/}
/^\s*\[ntp.sync\]/,/^\s*\[/{s/^\s*active = true/ active = false/}
/^\s*\[ntp.sync\]/,/^\s*\[/{s/^\s*interval = [0-9]+/ interval = 0/}
/^\s*\[ntp.sync.rtc\]/,/^\s*\[/{s/^\s*set = true/ set = false/}
# set domainNeeded und expandHosts
/^\s*domainNeeded =/ s|=.*|= true|
/^\s*expandHosts =/ s|=.*|= true|
' /etc/pihole/pihole.toml
cat <<EOF > /etc/dnsmasq.d/01-pihole.conf
server=8.8.8.8
server=8.8.4.4
EOF
$STD pihole-FTL --config ntp.sync.interval 0
systemctl restart pihole-FTL.service
msg_ok "Installed Pi-hole" msg_ok "Installed Pi-hole"
read -r -p "Would you like to add Unbound? <y/N> " prompt read -r -p "Would you like to add Unbound? <y/N> " prompt
@@ -119,9 +135,13 @@ forward-zone:
#forward-addr: 2620:fe::9@853#dns.quad9.net #forward-addr: 2620:fe::9@853#dns.quad9.net
EOF EOF
fi fi
cat <<EOF > /etc/dnsmasq.d/01-pihole.conf
server=127.0.0.1#5335
server=8.8.8.8
server=8.8.4.4
EOF
sed -i -e 's/PIHOLE_DNS_1=8.8.8.8/PIHOLE_DNS_1=127.0.0.1#5335/' -e '/PIHOLE_DNS_2=8.8.4.4/d' /etc/pihole/setupVars.conf sed -i -E "s|^(upstreams =).*|\1 [\"127.0.0.1#5335\", \"8.8.4.4\"]|" /etc/pihole/pihole.toml
sed -i -e 's/server=8.8.8.8/server=127.0.0.1#5335/' -e '/server=8.8.4.4/d' /etc/dnsmasq.d/01-pihole.conf
systemctl enable -q --now unbound systemctl enable -q --now unbound
systemctl restart pihole-FTL.service systemctl restart pihole-FTL.service
msg_ok "Installed Unbound" msg_ok "Installed Unbound"

View File

@@ -19,11 +19,72 @@ $STD apt-get install -y sudo
$STD apt-get install -y mc $STD apt-get install -y mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
get_latest_release() {
curl -sL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
}
PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer")
PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent")
if $STD mount | grep 'on / type zfs' > null && echo "ZFS"; then
msg_info "Enabling ZFS support."
mkdir -p /etc/containers
cat <<'EOF' >/usr/local/bin/overlayzfsmount
#!/bin/sh
exec /bin/mount -t overlay overlay "$@"
EOF
chmod +x /usr/local/bin/overlayzfsmount
cat <<'EOF' >/etc/containers/storage.conf
[storage]
driver = "overlay"
runroot = "/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
pull_options = {enable_partial_images = "false", use_hard_links = "false", ostree_repos=""}
mount_program = "/usr/local/bin/overlayzfsmount"
[storage.options.overlay]
mountopt = "nodev"
EOF
fi
msg_info "Installing Podman" msg_info "Installing Podman"
$STD apt-get -y install podman $STD apt-get -y install podman
$STD systemctl enable --now podman.socket $STD systemctl enable --now podman.socket
echo -e 'unqualified-search-registries=["docker.io"]' >> /etc/containers/registries.conf
msg_ok "Installed Podman" msg_ok "Installed Podman"
read -r -p "Would you like to add Portainer? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
podman volume create portainer_data >/dev/null
$STD podman run -d \
-p 8000:8000 \
-p 9443:9443 \
--name=portainer \
--restart=always \
-v /run/podman/podman.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
else
read -r -p "Would you like to add the Portainer Agent? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
podman volume create temp >/dev/null
podman volume remove temp >/dev/null
$STD podman run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /run/podman/podman.sock:/var/run/docker.sock \
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
portainer/agent
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
fi
fi
msg_info "Pulling Home Assistant Image" msg_info "Pulling Home Assistant Image"
$STD podman pull docker.io/homeassistant/home-assistant:stable $STD podman pull docker.io/homeassistant/home-assistant:stable
msg_ok "Pulled Home Assistant Image" msg_ok "Pulled Home Assistant Image"

View File

@@ -19,12 +19,73 @@ $STD apt-get install -y sudo
$STD apt-get install -y mc $STD apt-get install -y mc
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
get_latest_release() {
curl -sL https://api.github.com/repos/$1/releases/latest | grep '"tag_name":' | cut -d'"' -f4
}
PORTAINER_LATEST_VERSION=$(get_latest_release "portainer/portainer")
PORTAINER_AGENT_LATEST_VERSION=$(get_latest_release "portainer/agent")
if $STD mount | grep 'on / type zfs' > null && echo "ZFS"; then
msg_info "Enabling ZFS support."
mkdir -p /etc/containers
cat <<'EOF' >/usr/local/bin/overlayzfsmount
#!/bin/sh
exec /bin/mount -t overlay overlay "$@"
EOF
chmod +x /usr/local/bin/overlayzfsmount
cat <<'EOF' >/etc/containers/storage.conf
[storage]
driver = "overlay"
runroot = "/run/containers/storage"
graphroot = "/var/lib/containers/storage"
[storage.options]
pull_options = {enable_partial_images = "false", use_hard_links = "false", ostree_repos=""}
mount_program = "/usr/local/bin/overlayzfsmount"
[storage.options.overlay]
mountopt = "nodev"
EOF
fi
msg_info "Installing Podman" msg_info "Installing Podman"
$STD apt-get -y install podman $STD apt-get -y install podman
$STD systemctl enable --now podman.socket $STD systemctl enable --now podman.socket
echo -e 'unqualified-search-registries=["docker.io"]' >> /etc/containers/registries.conf echo -e 'unqualified-search-registries=["docker.io"]' >> /etc/containers/registries.conf
msg_ok "Installed Podman" msg_ok "Installed Podman"
read -r -p "Would you like to add Portainer? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Portainer $PORTAINER_LATEST_VERSION"
podman volume create portainer_data >/dev/null
$STD podman run -d \
-p 8000:8000 \
-p 9443:9443 \
--name=portainer \
--restart=always \
-v /run/podman/podman.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
msg_ok "Installed Portainer $PORTAINER_LATEST_VERSION"
else
read -r -p "Would you like to add the Portainer Agent? <y/N> " prompt
if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Portainer agent $PORTAINER_AGENT_LATEST_VERSION"
podman volume create temp >/dev/null
podman volume remove temp >/dev/null
$STD podman run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /run/podman/podman.sock:/var/run/docker.sock \
-v /var/lib/containers/storage/volumes:/var/lib/docker/volumes \
portainer/agent
msg_ok "Installed Portainer Agent $PORTAINER_AGENT_LATEST_VERSION"
fi
fi
motd_ssh motd_ssh
customize customize

View File

@@ -34,7 +34,7 @@ msg_ok "Installed Dependencies"
msg_info "Installing Node.js" msg_info "Installing Node.js"
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
$STD apt-get update $STD apt-get update
$STD apt-get install -y nodejs $STD apt-get install -y nodejs
$STD npm install -g pnpm@9.7.1 $STD npm install -g pnpm@9.7.1

View File

@@ -5,7 +5,7 @@
# License: MIT # License: MIT
# https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH" source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color color
verb_ip6 verb_ip6
catch_errors catch_errors
@@ -14,70 +14,97 @@ network_check
update_os update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt-get install -y curl $STD apt-get install -y \
$STD apt-get install -y sudo curl \
$STD apt-get install -y mc sudo \
$STD apt-get install -y git mc \
$STD apt-get install -y ca-certificates git \
$STD apt-get install -y gnupg ca-certificates \
gnupg \
build-essential \
python3 \
g++ \
make
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository" msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository" msg_ok "Set up Node.js Repository"
msg_info "Setting up PostgreSQL Repository"
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
echo "deb https://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" >/etc/apt/sources.list.d/pgdg.list
msg_ok "Set up PostgreSQL Repository"
msg_info "Installing Node.js" msg_info "Installing Node.js"
$STD apt-get update $STD apt-get update
$STD apt-get install -y nodejs $STD apt-get install -y nodejs
$STD npm install --global yarn
$STD npm install -g node-gyp
msg_ok "Installed Node.js" msg_ok "Installed Node.js"
msg_info "Installing Wiki.js" msg_info "Set up PostgreSQL"
mkdir -p /opt/wikijs $STD apt-get install -y postgresql-17
cd /opt/wikijs DB_NAME="wiki"
$STD wget https://github.com/Requarks/wiki/releases/latest/download/wiki-js.tar.gz DB_USER="wikijs_user"
tar xzf wiki-js.tar.gz DB_PASS="$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | cut -c1-13)"
rm wiki-js.tar.gz $STD sudo -u postgres psql -c "CREATE ROLE $DB_USER WITH LOGIN PASSWORD '$DB_PASS';"
$STD sudo -u postgres psql -c "CREATE DATABASE $DB_NAME WITH OWNER $DB_USER ENCODING 'UTF8' TEMPLATE template0;"
$STD sudo -u postgres psql -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;" $DB_NAME
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET client_encoding TO 'utf8';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET default_transaction_isolation TO 'read committed';"
$STD sudo -u postgres psql -c "ALTER ROLE $DB_USER SET timezone TO 'UTC';"
{
echo "WikiJS-Credentials"
echo "WikiJS Database User: $DB_USER"
echo "WikiJS Database Password: $DB_PASS"
echo "WikiJS Database Name: $DB_NAME"
} >> ~/wikijs.creds
msg_ok "Set up PostgreSQL"
cat <<EOF >/opt/wikijs/config.yml msg_info "Setup Wiki.js"
bindIP: 0.0.0.0 temp_file=$(mktemp)
port: 3000 RELEASE=$(curl -s https://api.github.com/repos/Requarks/wiki/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
db: wget -q "https://github.com/Requarks/wiki/archive/refs/tags/v${RELEASE}.tar.gz" -O "$temp_file"
type: sqlite tar -xzf "$temp_file"
storage: /opt/wikijs/db.sqlite mv wiki-${RELEASE} /opt/wikijs
logLevel: info mv /opt/wikijs/config.sample.yml /opt/wikijs/config.yml
logFormat: default sed -i -E 's|^( *user: ).*|\1'"$DB_USER"'|' /opt/wikijs/config.yml
dataPath: /opt/wikijs/data sed -i -E 's|^( *pass: ).*|\1'"$DB_PASS"'|' /opt/wikijs/config.yml
bodyParserLimit: 5mb cd /opt/wikijs
EOF export NODE_OPTIONS="--max-old-space-size=2048"
$STD npm rebuild sqlite3 $STD yarn install --ignore-engines
$STD yarn build
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
msg_ok "Installed Wiki.js" msg_ok "Installed Wiki.js"
msg_info "Creating Service" msg_info "Creating Service"
service_path="/etc/systemd/system/wikijs.service" cat <<EOF >/etc/systemd/system/wikijs.service
[Unit]
echo "[Unit]
Description=Wiki.js Description=Wiki.js
After=network.target After=network.target
[Service] [Service]
Type=simple Type=simple
ExecStart=/usr/bin/node server ExecStart=/usr/bin/yarn start
Restart=always Restart=always
User=root User=root
Environment=NODE_ENV=production Environment=NODE_ENV=production
WorkingDirectory=/opt/wikijs WorkingDirectory=/opt/wikijs
[Install] [Install]
WantedBy=multi-user.target" >$service_path WantedBy=multi-user.target
$STD systemctl enable --now wikijs EOF
systemctl enable -q --now wikijs
msg_ok "Created Service" msg_ok "Created Service"
motd_ssh motd_ssh
customize customize
msg_info "Cleaning up" msg_info "Cleaning up"
rm -f "$temp_file"
$STD apt-get -y autoremove $STD apt-get -y autoremove
$STD apt-get -y autoclean $STD apt-get -y autoclean
msg_ok "Cleaned" msg_ok "Cleaned"

39
json/dolibarr.json Normal file
View File

@@ -0,0 +1,39 @@
{
"name": "Dolibarr",
"slug": "dolibarr",
"categories": [
25
],
"date_created": "2025-02-20",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 80,
"documentation": "https://wiki.dolibarr.org/index.php?title=Home",
"website": "https://www.dolibarr.org/",
"logo": "https://wiki.dolibarr.org/images/5/51/Dolibarr_124x124_white.svg",
"description": "Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an open source Web application (written in PHP) designed for businesses of any sizes, foundations and freelancers.",
"install_methods": [
{
"type": "default",
"script": "ct/dolibarr.sh",
"resources": {
"cpu": 1,
"ram": 2048,
"hdd": 6,
"os": "debian",
"version": "12"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Database credentials: `cat ~/dolibarr.creds`",
"type": "info"
}
]
}

View File

@@ -31,10 +31,6 @@
"password": null "password": null
}, },
"notes": [ "notes": [
{
"text": "Doesn't work with ZFS",
"type": "warning"
},
{ {
"text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.", "text": "If the LXC is created Privileged, the script will automatically set up USB passthrough.",
"type": "warning" "type": "warning"
@@ -42,6 +38,10 @@
{ {
"text": "config path: `/var/lib/containers/storage/volumes/hass_config/_data`", "text": "config path: `/var/lib/containers/storage/volumes/hass_config/_data`",
"type": "info" "type": "info"
},
{
"text": "Options to Install Portainer or Portainer Agent",
"type": "warning"
} }
] ]
} }

View File

@@ -32,7 +32,7 @@
}, },
"notes": [ "notes": [
{ {
"text": "Doesn't work with ZFS", "text": "Options to Install Portainer or Portainer Agent",
"type": "warning" "type": "warning"
} }
] ]

View File

@@ -18,9 +18,9 @@
"type": "default", "type": "default",
"script": "ct/wikijs.sh", "script": "ct/wikijs.sh",
"resources": { "resources": {
"cpu": 1, "cpu": 2,
"ram": 512, "ram": 2048,
"hdd": 3, "hdd": 7,
"os": "debian", "os": "debian",
"version": "12" "version": "12"
} }