mirror of
https://github.com/community-scripts/ProxmoxVE
synced 2025-02-08 16:59:17 +00:00
Compare commits
15 Commits
ab206530e0
...
779721cea5
Author | SHA1 | Date | |
---|---|---|---|
|
779721cea5 | ||
|
22b7155203 | ||
|
1bb911e531 | ||
|
023c3fc52d | ||
|
258b1bd9fd | ||
|
6d4eb9c3ee | ||
|
15faa76b69 | ||
|
393f6d74c9 | ||
|
f51762420a | ||
|
f8c10ca80b | ||
|
3fca76dbbc | ||
|
b57689ec50 | ||
|
1f8f593116 | ||
|
330315c615 | ||
|
504d47d246 |
8
.github/workflows/update_json_date.yml
vendored
8
.github/workflows/update_json_date.yml
vendored
@ -10,7 +10,13 @@ jobs:
|
|||||||
- name: Checkout PR Branch
|
- name: Checkout PR Branch
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.head_ref }}
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
|
|
||||||
|
- name: Fetch PR changes
|
||||||
|
run: |
|
||||||
|
git remote add fork https://github.com/${{ github.event.pull_request.head.repo.full_name }}.git
|
||||||
|
git fetch fork ${{ github.event.pull_request.head.ref }}:pullreq
|
||||||
|
git checkout pullreq
|
||||||
|
|
||||||
- name: Update JSON
|
- name: Update JSON
|
||||||
id: changed-files
|
id: changed-files
|
||||||
|
11
CHANGELOG.md
11
CHANGELOG.md
@ -20,12 +20,23 @@ Do not break established syntax in this file, as it is automatically updated by
|
|||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
|
### 💥 Breaking Changes
|
||||||
|
|
||||||
|
- Update jellyseerr-install.sh to use Node 22 as required by latest Jellyseerr version [@pedrovieira](https://github.com/pedrovieira) ([#1535](https://github.com/community-scripts/ProxmoxVE/pull/1535))
|
||||||
|
|
||||||
### ✨ New Scripts
|
### ✨ New Scripts
|
||||||
|
|
||||||
|
- New script: Dotnet ASP.NET Web Server [@kris701](https://github.com/kris701) ([#1501](https://github.com/community-scripts/ProxmoxVE/pull/1501))
|
||||||
- New script: phpIPAM [@bvdberg01](https://github.com/bvdberg01) ([#1503](https://github.com/community-scripts/ProxmoxVE/pull/1503))
|
- New script: phpIPAM [@bvdberg01](https://github.com/bvdberg01) ([#1503](https://github.com/community-scripts/ProxmoxVE/pull/1503))
|
||||||
|
|
||||||
|
### 🌐 Website
|
||||||
|
|
||||||
|
- Add Mobile check for empty icon-url on website [@MickLesk](https://github.com/MickLesk) ([#1532](https://github.com/community-scripts/ProxmoxVE/pull/1532))
|
||||||
|
|
||||||
### 🧰 Maintenance
|
### 🧰 Maintenance
|
||||||
|
|
||||||
|
- [Workflow]Update autolabeler-config.json [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1525](https://github.com/community-scripts/ProxmoxVE/pull/1525))
|
||||||
|
- [core]Update update_json_date.yml [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1526](https://github.com/community-scripts/ProxmoxVE/pull/1526))
|
||||||
- [core] Recreate Update JSON Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1523](https://github.com/community-scripts/ProxmoxVE/pull/1523))
|
- [core] Recreate Update JSON Workflow [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1523](https://github.com/community-scripts/ProxmoxVE/pull/1523))
|
||||||
|
|
||||||
## 2025-01-15
|
## 2025-01-15
|
||||||
|
49
ct/dotnetaspwebapi.sh
Normal file
49
ct/dotnetaspwebapi.sh
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/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: Kristian Skov
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
# Source: https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu
|
||||||
|
|
||||||
|
# App Default Values
|
||||||
|
APP="Dotnet ASP Web API"
|
||||||
|
var_tags="web"
|
||||||
|
var_cpu="1"
|
||||||
|
var_ram="1024"
|
||||||
|
var_disk="8"
|
||||||
|
var_os="ubuntu"
|
||||||
|
var_version="24.04"
|
||||||
|
var_unprivileged="0"
|
||||||
|
|
||||||
|
# App Output & Base Settings
|
||||||
|
header_info "$APP"
|
||||||
|
base_settings
|
||||||
|
|
||||||
|
# Core
|
||||||
|
variables
|
||||||
|
color
|
||||||
|
catch_errors
|
||||||
|
|
||||||
|
function update_script() {
|
||||||
|
header_info
|
||||||
|
check_container_storage
|
||||||
|
check_container_resources
|
||||||
|
if [[ ! -d /var/www ]]; then
|
||||||
|
msg_error "No ${APP} Installation Found!"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
msg_info "Updating ${APP} LXC"
|
||||||
|
apt-get update &>/dev/null
|
||||||
|
apt-get -y upgrade &>/dev/null
|
||||||
|
msg_ok "Updated Successfully"
|
||||||
|
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 IP:${CL}"
|
||||||
|
echo -e "${TAB}${GATEWAY}${BGN}${IP}:80${CL}"
|
@ -1,6 +1,7 @@
|
|||||||
import { OperatingSystem } from "@/lib/types";
|
import { OperatingSystem } from "@/lib/types";
|
||||||
import { MessagesSquare, Scroll } from "lucide-react";
|
import { MessagesSquare, Scroll } from "lucide-react";
|
||||||
import { FaDiscord, FaGithub } from "react-icons/fa";
|
import { FaDiscord, FaGithub } from "react-icons/fa";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
export const basePath = process.env.BASE_PATH;
|
export const basePath = process.env.BASE_PATH;
|
||||||
|
|
||||||
@ -33,7 +34,7 @@ export const navbarLinks = [
|
|||||||
text: "Discussions",
|
text: "Discussions",
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
].filter(Boolean) as { href: string; event: string; icon: JSX.Element; text: string }[]; // Typ-Anpassung nach filter(Boolean)
|
].filter(Boolean) as { href: string; event: string; icon: React.ReactNode; text: string }[];
|
||||||
|
|
||||||
export const mostPopularScripts = [
|
export const mostPopularScripts = [
|
||||||
"Proxmox VE Post Install",
|
"Proxmox VE Post Install",
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve",
|
"jsx": "react-jsx",
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
@ -27,7 +27,7 @@
|
|||||||
"**/*.ts",
|
"**/*.ts",
|
||||||
"**/*.tsx",
|
"**/*.tsx",
|
||||||
".next/types/**/*.ts",
|
".next/types/**/*.ts",
|
||||||
"next.config.mjs",
|
"next.config.mjs"
|
||||||
],
|
],
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
110
install/dotnetaspwebapi-install.sh
Normal file
110
install/dotnetaspwebapi-install.sh
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Copyright (c) 2021-2025 community-scripts ORG
|
||||||
|
# Author: Kristian Skov
|
||||||
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||||
|
|
||||||
|
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 update
|
||||||
|
$STD apt-get install -y \
|
||||||
|
ssh \
|
||||||
|
software-properties-common
|
||||||
|
$STD add-apt-repository -y ppa:dotnet/backports
|
||||||
|
$STD apt-get install -y \
|
||||||
|
dotnet-sdk-9.0 \
|
||||||
|
vsftpd \
|
||||||
|
nginx
|
||||||
|
msg_ok "Installed Dependencies"
|
||||||
|
|
||||||
|
msg_info "Configure Application"
|
||||||
|
var_project_name="default"
|
||||||
|
read -r -p "Type the assembly name of the project: " var_project_name
|
||||||
|
echo "Target assembly: '${var_project_name}'"
|
||||||
|
msg_ok "Application Configured"
|
||||||
|
|
||||||
|
msg_info "Setting up FTP Server"
|
||||||
|
useradd ftpuser
|
||||||
|
FTP_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||||
|
usermod --password $(echo ${FTP_PASS} | openssl passwd -1 -stdin) ftpuser
|
||||||
|
mkdir -p /var/www/html
|
||||||
|
usermod -d /var/www/html ftp
|
||||||
|
usermod -d /var/www/html ftpuser
|
||||||
|
chown ftpuser /var/www/html
|
||||||
|
|
||||||
|
sed -i "s|#write_enable=YES|write_enable=YES|g" /etc/vsftpd.conf
|
||||||
|
sed -i "s|#chroot_local_user=YES|chroot_local_user=NO|g" /etc/vsftpd.conf
|
||||||
|
|
||||||
|
systemctl restart -q vsftpd.service
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "FTP-Credentials"
|
||||||
|
echo "Username: ftpuser"
|
||||||
|
echo "Password: $FTP_PASS"
|
||||||
|
} >> ~/ftp.creds
|
||||||
|
|
||||||
|
msg_ok "FTP server setup completed"
|
||||||
|
|
||||||
|
msg_info "Setting up Nginx Server"
|
||||||
|
rm -f /var/www/html/index.nginx-debian.html
|
||||||
|
|
||||||
|
sed "s/\$var_project_name/$var_project_name/g" >myfile <<'EOF' >/etc/nginx/sites-available/default
|
||||||
|
map $http_connection $connection_upgrade {
|
||||||
|
"~*Upgrade" $http_connection;
|
||||||
|
default keep-alive;
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name $var_project_name.com *.$var_project_name.com;
|
||||||
|
location / {
|
||||||
|
proxy_pass http://127.0.0.1:5000/;
|
||||||
|
proxy_http_version 1.1;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection $connection_upgrade;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_cache_bypass $http_upgrade;
|
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
systemctl reload nginx
|
||||||
|
msg_ok "Nginx Server Created"
|
||||||
|
|
||||||
|
msg_info "Creating Service"
|
||||||
|
cat <<EOF >/etc/systemd/system/kestrel-aspnetapi.service
|
||||||
|
[Unit]
|
||||||
|
Description=.NET Web API App running on Linux
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
WorkingDirectory=/var/www/html
|
||||||
|
ExecStart=/usr/bin/dotnet /var/www/html/$var_project_name.dll
|
||||||
|
Restart=always
|
||||||
|
# Restart service after 10 seconds if the dotnet service crashes:
|
||||||
|
RestartSec=10
|
||||||
|
KillSignal=SIGINT
|
||||||
|
SyslogIdentifier=dotnet-${var_project_name}
|
||||||
|
User=root
|
||||||
|
Environment=ASPNETCORE_ENVIRONMENT=Production
|
||||||
|
Environment=DOTNET_NOLOGO=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOF
|
||||||
|
systemctl enable -q --now kestrel-aspnetapi.service
|
||||||
|
msg_ok "Created Service"
|
||||||
|
|
||||||
|
motd_ssh
|
||||||
|
customize
|
||||||
|
|
||||||
|
msg_info "Cleaning up"
|
||||||
|
$STD apt-get -y autoremove
|
||||||
|
$STD apt-get -y autoclean
|
||||||
|
msg_ok "Cleaned"
|
@ -24,7 +24,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_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
|
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
|
||||||
msg_ok "Set up Node.js Repository"
|
msg_ok "Set up Node.js Repository"
|
||||||
|
|
||||||
msg_info "Installing Node.js"
|
msg_info "Installing Node.js"
|
||||||
|
39
json/dotnetaspwebapi.json
Normal file
39
json/dotnetaspwebapi.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"name":"Dotnet ASP Web API",
|
||||||
|
"slug":"dotnetaspwebapi",
|
||||||
|
"categories":[
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"date_created":"2025-01-15",
|
||||||
|
"type":"ct",
|
||||||
|
"updateable":true,
|
||||||
|
"privileged":true,
|
||||||
|
"interface_port":80,
|
||||||
|
"documentation":"https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu",
|
||||||
|
"website":"https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-9.0&tabs=linux-ubuntu",
|
||||||
|
"logo":"https://upload.wikimedia.org/wikipedia/commons/thumb/7/7d/Microsoft_.NET_logo.svg/456px-Microsoft_.NET_logo.svg.png",
|
||||||
|
"description":"Automatically setup a ASP.NET server up, as well as a FTP server so you can publish to this container from Visual Studio.",
|
||||||
|
"install_methods":[
|
||||||
|
{
|
||||||
|
"type":"default",
|
||||||
|
"script":"ct/dotnetaspwebapi.sh",
|
||||||
|
"resources":{
|
||||||
|
"cpu":1,
|
||||||
|
"ram":1024,
|
||||||
|
"hdd":8,
|
||||||
|
"os":"Ubuntu",
|
||||||
|
"version":"24.04"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"default_credentials":{
|
||||||
|
"username":null,
|
||||||
|
"password":null
|
||||||
|
},
|
||||||
|
"notes":[
|
||||||
|
{
|
||||||
|
"text":"FTP server credentials: `cat ~/ftp.creds`",
|
||||||
|
"type":"info"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -421,6 +421,21 @@ APP=Dockge
|
|||||||
/_____/\____/\___/_/|_|\__, /\___/
|
/_____/\____/\___/_/|_|\__, /\___/
|
||||||
/____/
|
/____/
|
||||||
|
|
||||||
|
### dotnetaspwebapi.sh
|
||||||
|
APP=Dotnet ASP Web API
|
||||||
|
____ __ __ ___ _____ ____ _ __ __
|
||||||
|
/ __ \____ / /_____ ___ / /_ / | / ___// __ \ | | / /__ / /_
|
||||||
|
/ / / / __ \/ __/ __ \/ _ \/ __/ / /| | \__ \/ /_/ / | | /| / / _ \/ __ \
|
||||||
|
/ /_/ / /_/ / /_/ / / / __/ /_ / ___ |___/ / ____/ | |/ |/ / __/ /_/ /
|
||||||
|
/_____/\____/\__/_/ /_/\___/\__/ /_/ |_/____/_/ |__/|__/\___/_.___/
|
||||||
|
|
||||||
|
___ ____ ____
|
||||||
|
/ | / __ \/ _/
|
||||||
|
/ /| | / /_/ // /
|
||||||
|
/ ___ |/ ____// /
|
||||||
|
/_/ |_/_/ /___/
|
||||||
|
|
||||||
|
|
||||||
### emby.sh
|
### emby.sh
|
||||||
APP=Emby
|
APP=Emby
|
||||||
______ __
|
______ __
|
||||||
|
Loading…
Reference in New Issue
Block a user