Skip to content

Commit 47abe24

Browse files
'Add new script' (#4717)
Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
1 parent 98c64ff commit 47abe24

File tree

4 files changed

+194
-0
lines changed

4 files changed

+194
-0
lines changed

ct/argus.sh

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/usr/bin/env bash
2+
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
3+
# Copyright (c) 2021-2025 community-scripts ORG
4+
# Author: MickLesk (CanbiZ)
5+
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
6+
# Source: https://release-argus.io/
7+
8+
APP="Argus"
9+
var_tags="${var_tags:-os}"
10+
var_cpu="${var_cpu:-1}"
11+
var_ram="${var_ram:-512}"
12+
var_disk="${var_disk:-3}"
13+
var_os="${var_os:-debian}"
14+
var_version="${var_version:-12}"
15+
var_unprivileged="${var_unprivileged:-1}"
16+
17+
header_info "$APP"
18+
variables
19+
color
20+
catch_errors
21+
22+
function update_script() {
23+
header_info
24+
check_container_storage
25+
check_container_resources
26+
27+
if [[ ! -d /opt/argus ]]; then
28+
msg_error "No ${APP} Installation Found!"
29+
exit
30+
fi
31+
32+
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
33+
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
34+
msg_info "Updating $APP to ${RELEASE}"
35+
rm -f /opt/argus/Argus
36+
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
37+
chmod +x /opt/argus/Argus
38+
systemctl restart argus
39+
echo "${RELEASE}" >/opt/${APP}_version.txt
40+
msg_ok "Updated ${APP} to ${RELEASE}"
41+
else
42+
msg_ok "${APP} is already up to date (${RELEASE})"
43+
fi
44+
}
45+
46+
start
47+
build_container
48+
description
49+
50+
msg_ok "Completed Successfully!\n"
51+
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
52+
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
53+
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}"

ct/headers/argus

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
___
2+
/ | _________ ___ _______
3+
/ /| | / ___/ __ `/ / / / ___/
4+
/ ___ |/ / / /_/ / /_/ (__ )
5+
/_/ |_/_/ \__, /\__,_/____/
6+
/____/

frontend/public/json/argus.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "Argus",
3+
"slug": "argus",
4+
"categories": [
5+
11
6+
],
7+
"date_created": "2025-05-19",
8+
"type": "ct",
9+
"updateable": true,
10+
"privileged": false,
11+
"interface_port": 3000,
12+
"documentation": "https://release-argus.io/docs/overview/",
13+
"website": "https://release-argus.io/",
14+
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/argus.webp",
15+
"config_path": "/opt/argus/config.yml",
16+
"description": "Argus will query websites at a user defined interval for new software releases and then trigger Gotify/Slack/Other notification(s) and/or WebHook(s) when one has been found. For example, you could set it to monitor the Argus repo (release-argus/argus). This will query the GitHub API and track the tag_name variable. When this variable changes from what it was on a previous query, a GitHub-style WebHook could be sent that triggers something (like AWX) to update Argus on your server.",
17+
"install_methods": [
18+
{
19+
"type": "default",
20+
"script": "ct/argus.sh",
21+
"resources": {
22+
"cpu": 1,
23+
"ram": 256,
24+
"hdd": 3,
25+
"os": "debian",
26+
"version": "12"
27+
}
28+
}
29+
],
30+
"default_credentials": {
31+
"username": null,
32+
"password": null
33+
},
34+
"notes": []
35+
}

install/argus-install.sh

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#!/usr/bin/env bash
2+
3+
# Copyright (c) 2021-2025 community-scripts ORG
4+
# Author: MickLesk (CanbiZ)
5+
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
6+
# Source: https://release-argus.io/
7+
8+
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
9+
color
10+
verb_ip6
11+
catch_errors
12+
setting_up_container
13+
network_check
14+
update_os
15+
16+
msg_info "Installing Dependencies"
17+
$STD apt-get install -y \
18+
jq
19+
msg_ok "Installed Dependencies"
20+
21+
msg_info "Setup Argus"
22+
RELEASE=$(curl -fsSL https://api.github.com/repos/release-argus/Argus/releases/latest | jq -r .tag_name | sed 's/^v//')
23+
mkdir -p /opt/argus
24+
curl -fsSL "https://github.com/release-argus/Argus/releases/download/${RELEASE}/Argus-${RELEASE}.linux-amd64" -o /opt/argus/Argus
25+
chmod +x /opt/argus/Argus
26+
msg_ok "Setup Argus"
27+
28+
msg_info "Setup Argus Config"
29+
cat <<EOF >/opt/argus/config.yml
30+
settings:
31+
log:
32+
level: INFO
33+
timestamps: false
34+
data:
35+
database_file: data/argus.db
36+
web:
37+
listen_host: 0.0.0.0
38+
listen_port: 8080
39+
route_prefix: /
40+
41+
defaults:
42+
service:
43+
options:
44+
interval: 30m
45+
semantic_versioning: true
46+
latest_version:
47+
allow_invalid_certs: false
48+
use_prerelease: false
49+
dashboard:
50+
auto_approve: true
51+
webhook:
52+
desired_status_code: 201
53+
54+
service:
55+
release-argus/argus:
56+
latest_version:
57+
type: github
58+
url: release-argus/argus
59+
dashboard:
60+
icon: https://raw.githubusercontent.com/release-argus/Argus/master/web/ui/react-app/public/favicon.svg
61+
icon_link_to: https://release-argus.io
62+
web_url: https://github.com/release-argus/Argus/blob/master/CHANGELOG.md
63+
64+
community-scripts/ProxmoxVE:
65+
latest_version:
66+
type: github
67+
url: community-scripts/ProxmoxVE
68+
use_prerelease: false
69+
dashboard:
70+
icon: https://raw.githubusercontent.com/community-scripts/ProxmoxVE/refs/heads/main/misc/images/logo.png
71+
icon_link_to: https://helper-scripts.com/
72+
web_url: https://github.com/community-scripts/ProxmoxVE/releases
73+
EOF
74+
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
75+
msg_ok "Setup Config"
76+
77+
msg_info "Creating Service"
78+
cat <<EOF >/etc/systemd/system/argus.service
79+
[Unit]
80+
Description=Argus
81+
After=network.target
82+
[Service]
83+
Type=simple
84+
WorkingDirectory=/opt/argus
85+
ExecStart=/opt/argus/Argus
86+
Restart=on-failure
87+
RestartSec=5
88+
[Install]
89+
WantedBy=multi-user.target
90+
EOF
91+
systemctl enable -q --now argus
92+
msg_ok "Created Service"
93+
94+
motd_ssh
95+
customize
96+
97+
msg_info "Cleaning up"
98+
$STD apt-get -y autoremove
99+
$STD apt-get -y autoclean
100+
msg_ok "Cleaned"

0 commit comments

Comments
 (0)