Merge pull request #1837 from AminGholizad/submit/koffan
feat: add koffan
This commit is contained in:
5
ct/headers/koffan
Normal file
5
ct/headers/koffan
Normal file
@@ -0,0 +1,5 @@
|
||||
__ __ ________
|
||||
/ //_/___ / __/ __/___ _____
|
||||
/ ,< / __ \/ /_/ /_/ __ `/ __ \
|
||||
/ /| / /_/ / __/ __/ /_/ / / / /
|
||||
/_/ |_\____/_/ /_/ \__,_/_/ /_/
|
||||
68
ct/koffan.sh
Normal file
68
ct/koffan.sh
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/AminGholizad/ProxmoxVED/main/misc/build.func)
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: (AminGholizad)
|
||||
# License: MIT | https://github.com/AminGholizad/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/PanSalut/Koffan
|
||||
|
||||
APP="Koffan"
|
||||
var_tags="${var_tags:-productivity}"
|
||||
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_unprivileged="${var_unprivileged:-1}"
|
||||
|
||||
header_info "$APP"
|
||||
variables
|
||||
color
|
||||
catch_errors
|
||||
|
||||
function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
|
||||
if [[ ! -f /opt/koffan/koffan ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
if check_for_gh_release "koffan" "PanSalut/Koffan"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop koffan
|
||||
msg_ok "Stopped Service"
|
||||
|
||||
msg_info "Backing up Data"
|
||||
cp -r /opt/koffan/data /opt/koffan_data_backup
|
||||
msg_ok "Backed up Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "koffan" "PanSalut/Koffan" "tarball"
|
||||
|
||||
msg_info "Rebuilding Koffan"
|
||||
cd /opt/koffan
|
||||
go build -o koffan main.go
|
||||
msg_ok "Rebuild Koffan"
|
||||
|
||||
msg_info "Restoring Data"
|
||||
cp -r /opt/koffan_data_backup/. /opt/koffan/data/
|
||||
rm -rf /opt/koffan_data_backup
|
||||
msg_ok "Restored Data"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start koffan
|
||||
msg_ok "Started Service"
|
||||
msg_ok "Updated successfully!"
|
||||
fi
|
||||
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}:3000${CL}"
|
||||
63
install/koffan-install.sh
Normal file
63
install/koffan-install.sh
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2026 community-scripts ORG
|
||||
# Author: (AminGholizad)
|
||||
# License: MIT | https://github.com/AminGholizad/ProxmoxVED/raw/main/LICENSE
|
||||
# Source: https://github.com/PanSalut/Koffan
|
||||
|
||||
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
ensure_dependencies build-essential
|
||||
setup_go
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
fetch_and_deploy_gh_release "koffan" "PanSalut/Koffan" "tarball"
|
||||
|
||||
msg_info "Building Koffan"
|
||||
cd /opt/koffan
|
||||
go build -o koffan main.go
|
||||
msg_ok "Built Koffan"
|
||||
|
||||
msg_info "Configuring Koffan"
|
||||
PASSWORD=$(openssl rand -base64 12)
|
||||
mkdir /opt/koffan/data
|
||||
cat <<EOF >/opt/koffan/data/.env
|
||||
APP_ENV=production
|
||||
APP_PASSWORD=${PASSWORD}
|
||||
PORT=3000
|
||||
DB_PATH=/opt/koffan/data/shopping.db
|
||||
EOF
|
||||
|
||||
cat <<EOF >~/koffan.creds
|
||||
Password: ${PASSWORD}
|
||||
EOF
|
||||
msg_ok "Configured Koffan"
|
||||
|
||||
msg_info "Creating systemd service"
|
||||
cat <<EOF >/etc/systemd/system/koffan.service
|
||||
[Unit]
|
||||
Description=Koffan Service
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
EnvironmentFile=/opt/koffan/data/.env
|
||||
WorkingDirectory=/opt/koffan
|
||||
ExecStart=/opt/koffan/koffan
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now koffan
|
||||
msg_ok "Created systemd service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
cleanup_lxc
|
||||
40
json/koffan.json
Normal file
40
json/koffan.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"name": "Koffan",
|
||||
"slug": "koffan",
|
||||
"categories": [
|
||||
12
|
||||
],
|
||||
"date_created": "2026-05-25",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 3000,
|
||||
"documentation": null,
|
||||
"website": null,
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/koffan.webp",
|
||||
"description": "Koffan is a lightweight web application for managing shopping lists, designed for couples and families. It allows real-time synchronization between multiple devices, so everyone knows what to buy and what's already in the cart.\n\nThe app works in any browser on both mobile and desktop. Just one password to log in - no complicated registration required.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/koffan.sh",
|
||||
"config_path": "/opt/koffan/data/.env",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 1024,
|
||||
"hdd": 4,
|
||||
"os": "Debian",
|
||||
"version": "13"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": "shopping123"
|
||||
},
|
||||
"notes": [
|
||||
{
|
||||
"text": "Credentials are saved to `~/koffan.creds`.",
|
||||
"type": "info"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user