add ezBookkeeping script
This commit is contained in:
70
ct/ezbookkeeping.sh
Normal file
70
ct/ezbookkeeping.sh
Normal file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/mayswind/ezbookkeeping
|
||||
|
||||
APP="ezBookkeeping"
|
||||
var_tags="${var_tags:-}"
|
||||
var_cpu="${var_cpu:-1}"
|
||||
var_ram="${var_ram:-1024}"
|
||||
var_disk="${var_disk:-4}"
|
||||
var_os="${var_os:-debian}"
|
||||
var_version="${var_version:-13}"
|
||||
var_arm64="${var_arm64:-no}"
|
||||
var_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ ! -d /opt/ezbookkeeping ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "ezbookkeeping" "mayswind/ezbookkeeping"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop ezbookkeeping
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up configuration"
|
||||
mkdir -p /opt/ezbookkeeping-backup
|
||||
cp /opt/ezbookkeeping/conf/ezbookkeeping.ini /opt/ezbookkeeping-backup/
|
||||
cp -r /opt/ezbookkeeping/data /opt/ezbookkeeping-backup/data/
|
||||
cp -r /opt/ezbookkeeping/storage /opt/ezbookkeeping-backup/storage/
|
||||
msg_ok "Backed up configuration"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ezbookkeeping" "mayswind/ezbookkeeping" "prebuild" "latest" "/opt/ezbookkeeping" "ezbookkeeping-*-linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Restoring configuration"
|
||||
mv -f /opt/ezbookkeeping-backup/ezbookkeeping.ini /opt/ezbookkeeping/conf/
|
||||
mv -f /opt/ezbookkeeping-backup/data /opt/ezbookkeeping/data/
|
||||
mv -f /opt/ezbookkeeping-backup/storage /opt/ezbookkeeping/storage/
|
||||
rm -rf /opt/ezbookkeeping-backup
|
||||
msg_ok "Restored configuration"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start ezbookkeeping
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
cleanup_lxc
|
||||
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}https://${IP}${CL}"
|
||||
49
install/ezbookkeeping-install.sh
Normal file
49
install/ezbookkeeping-install.sh
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: Slaviša Arežina (tremor021)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://ezbookkeeping.mayswind.net/
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
fetch_and_deploy_gh_release "ezbookkeeping" "mayswind/ezbookkeeping" "prebuild" "latest" "/opt/ezbookkeeping" "ezbookkeeping-*-linux-amd64.tar.gz"
|
||||
create_self_signed_cert
|
||||
|
||||
msg_info "Configuring ezBookkeeping"
|
||||
SECRET_KEY=$(openssl rand -base64 64 | tr -dc 'a-zA-Z0-9' | head -c50)
|
||||
sed -i "s/enable_gzip = false/enable_gzip = true/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/protocol = http/protocol = https/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/http_port = 8080/http_port = 443/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/cert_file =/cert_file = \/etc\/ssl\/ezbookkeeping\/ezbookkeeping.crt/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/cert_key_file =/cert_key_file = \/etc\/ssl\/ezbookkeeping\/ezbookkeeping.key/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/domain = localhost/domain = ${LOCAL_IP}/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
sed -i "s/secret_key =/secret_key = ${SECRET_KEY}/" /opt/ezbookkeeping/conf/ezbookkeeping.ini
|
||||
msg_ok "Configured ezBookkeeping"
|
||||
|
||||
msg_info "Creating service"
|
||||
cat <<EOF >/etc/systemd/system/ezbookkeeping.service
|
||||
[Unit]
|
||||
Description=ezBookkeeping Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/ezbookkeeping
|
||||
ExecStart=/opt/ezbookkeeping/ezbookkeeping server run
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now ezbookkeeping
|
||||
msg_ok "Created service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
36
json/ezbookkeeping.json
Normal file
36
json/ezbookkeeping.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"name": "ezBookkeeping",
|
||||
"slug": "ezbookkeeping",
|
||||
"categories": [
|
||||
23
|
||||
],
|
||||
"date_created": "2026-02-11",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"has_arm": false,
|
||||
"interface_port": 443,
|
||||
"documentation": "https://ezbookkeeping.mayswind.net/installation/",
|
||||
"website": "https://ezbookkeeping.mayswind.net",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ezbookkeeping.webp",
|
||||
"description": "ezBookkeeping is a lightweight, self-hosted personal finance app with a user-friendly interface and powerful bookkeeping features. It helps you record daily transactions, import data from various sources, and quickly search and filter your bills. You can analyze historical data using built-in charts or perform custom queries with your own chart dimensions to better understand spending patterns and financial trends.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/ezbookkeeping.sh",
|
||||
"config_path": "/opt/ezbookkeeping/conf/ezbookkeeping.ini",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 512,
|
||||
"hdd": 2,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
Reference in New Issue
Block a user