mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-07-02 20:17:37 +00:00
Compare commits
70 Commits
2025-01-13
...
2025-01-15
Author | SHA1 | Date | |
---|---|---|---|
959a7b4b14 | |||
5da06e75e7 | |||
2aed45fa61 | |||
7614034784 | |||
0f06725fdc | |||
5c16955a8e | |||
2c8aab24d0 | |||
9cc07cc6e1 | |||
047667c428 | |||
147ba0e78d | |||
d3b0becfe6 | |||
d20d0428dc | |||
0368ce36d1 | |||
757b5bd267 | |||
4d0632fea0 | |||
69288b197f | |||
12a61a1d71 | |||
d186557488 | |||
db6390f791 | |||
41c4b11575 | |||
bf89a037bd | |||
e503ce3806 | |||
c934085b16 | |||
c57f0be737 | |||
e6530e14dd | |||
9174536e95 | |||
aa3a3997f0 | |||
37da2e5e1c | |||
18538897ba | |||
dbfb72807a | |||
e756c49e50 | |||
4ae131e102 | |||
f498f349f3 | |||
8e525611bd | |||
910f3bb6f4 | |||
c8319f044c | |||
ac61a925cc | |||
4ce474382a | |||
424dc26720 | |||
b9829165cf | |||
3b1c43381e | |||
cb496d74f4 | |||
33cd0cb2f1 | |||
325084f8ca | |||
349cfb28b5 | |||
2fff2079ef | |||
13a6e31a99 | |||
481138bff5 | |||
c032db98a3 | |||
434c938cde | |||
647fb1cb5e | |||
45916edef5 | |||
78ed820bb0 | |||
7ab5485fc3 | |||
910e767bb4 | |||
8c54d25bf5 | |||
3c2db95345 | |||
692f3caab6 | |||
3830527ef2 | |||
ed1a618f6d | |||
76fa4c68d1 | |||
53b96a98c0 | |||
0f1eea7f09 | |||
4c13164ad3 | |||
97ca738332 | |||
86706e6233 | |||
13671c613b | |||
364109877f | |||
64297e7191 | |||
e60dc6784d |
@ -1,66 +0,0 @@
|
||||
name: Auto Update .app-headers and Create PR
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'ct/**.sh'
|
||||
|
||||
jobs:
|
||||
update-app-headers:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Step 1: Checkout the repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Step 2: Set up Git user for committing changes
|
||||
- name: Set up Git
|
||||
run: |
|
||||
git config --global user.name "GitHub Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
|
||||
# Step 3: Ensure .app-headers file exists
|
||||
- name: Ensure .app-headers file exists
|
||||
run: |
|
||||
if [ ! -f ct/.app-headers ]; then
|
||||
echo "Creating .app-headers file."
|
||||
touch ct/.app-headers
|
||||
fi
|
||||
|
||||
# Step 4: Process the ct/*.sh files and update .app-headers
|
||||
- name: Update .app-headers with figlet output
|
||||
run: |
|
||||
echo "Updating .app-headers with figlet output."
|
||||
for script in ct/*.sh; do
|
||||
if grep -q 'APP=' "$script"; then
|
||||
APP_NAME=$(grep -oP 'APP=\K\w+' "$script")
|
||||
echo "Processing $script for APP: \"$APP_NAME\""
|
||||
figlet "$APP_NAME" >> ct/.app-headers
|
||||
fi
|
||||
done
|
||||
|
||||
# Step 5: Check out and merge main into the update-app-headers branch without committing
|
||||
- name: Merge main into update-app-headers
|
||||
run: |
|
||||
git fetch origin
|
||||
git checkout update-app-headers
|
||||
git merge origin/main --no-ff --no-commit -m "Merge main into update-app-headers"
|
||||
echo "Merge complete. Please review and commit the changes manually."
|
||||
|
||||
# Step 6: Check if a PR exists and create one if it doesn't
|
||||
- name: Create Pull Request if not exists
|
||||
run: |
|
||||
PR_EXISTS=$(gh pr list --head "update-app-headers" --json number --jq '.[].number')
|
||||
|
||||
if [ -z "$PR_EXISTS" ]; then
|
||||
echo "Creating a new PR."
|
||||
PR_URL=$(gh pr create --title "[core]: update .app-headers to latest version" \
|
||||
--body "This PR automatically updates the .app-headers file." \
|
||||
--head update-app-headers \
|
||||
--base main)
|
||||
echo "PR created: $PR_URL"
|
||||
else
|
||||
echo "PR already exists."
|
||||
fi
|
@ -1,34 +0,0 @@
|
||||
name: Update .app-headers with figlet output
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
workflows: ["Merge main into update-app-headers"]
|
||||
types:
|
||||
- completed
|
||||
|
||||
jobs:
|
||||
update-app-headers:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Ensure .app-headers file exists silently
|
||||
run: |
|
||||
if [ ! -f ct/.app-headers ]; then
|
||||
touch ct/.app-headers
|
||||
fi
|
||||
|
||||
- name: Update .app-headers with figlet output silently
|
||||
run: |
|
||||
for script in ct/*.sh; do
|
||||
if grep -q 'APP=' "$script"; then
|
||||
APP_NAME=$(grep -oP 'APP=\K\w+' "$script")
|
||||
if [ ! -z "$APP_NAME" ]; then
|
||||
echo "Adding $APP_NAME to .app-headers"
|
||||
figlet "$APP_NAME" >> ct/.app-headers 2>/dev/null || echo "figlet failed for $APP_NAME"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
82
.github/workflows/auto-update-app-headers.yml
vendored
Normal file
82
.github/workflows/auto-update-app-headers.yml
vendored
Normal file
@ -0,0 +1,82 @@
|
||||
name: Auto Update .app-headers
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'ct/**.sh'
|
||||
workflow_dispatch: # Ermöglicht das manuelle Ausführen der Action
|
||||
|
||||
jobs:
|
||||
update-app-headers:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
# Step 1: Checkout repository
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Step 2: Set up Git user for committing changes
|
||||
- name: Set up Git
|
||||
run: |
|
||||
git config --global user.name "GitHub Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
|
||||
# Step 3: Install figlet
|
||||
- name: Install figlet
|
||||
run: sudo apt-get install -y figlet
|
||||
|
||||
# Step 4: Run the generate-app-headers.sh script to update .app-headers
|
||||
- name: Run generate-app-headers.sh to update .app-headers
|
||||
run: |
|
||||
chmod +x .github/workflows/scripts/generate-app-headers.sh
|
||||
.github/workflows/scripts/generate-app-headers.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Step 5: Check if there are any changes
|
||||
- name: Check if there are any changes
|
||||
id: verify-diff
|
||||
run: |
|
||||
git diff --quiet . || echo "changed=true" >> $GITHUB_OUTPUT
|
||||
|
||||
# Step 6: Commit changes (if any) and create a PR
|
||||
- name: Commit and create PR if changes exist
|
||||
if: steps.verify-diff.outputs.changed == 'true'
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git add ./misc/.app-headers
|
||||
git commit -m "Update .app-headers file"
|
||||
# Create a temporary branch for the PR
|
||||
git checkout -b pr-update-app-headers
|
||||
git push origin pr-update-app-headers --force
|
||||
|
||||
# Create PR against main
|
||||
gh pr create --title "[core] update .app-headers file" \
|
||||
--body "This PR is auto-generated by a Github Action to update the .app-headers file." \
|
||||
--head pr-update-app-headers \
|
||||
--base main \
|
||||
--label "automated pr"
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Re-approve pull request after update
|
||||
if: steps.verify-diff.outputs.changed == 'true'
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
PR_NUMBER=$(gh pr list --head "pr-update-app-headers" --json number --jq '.[].number')
|
||||
# Check if the PR was created by the bot (skip review if so)
|
||||
PR_AUTHOR=$(gh pr view "$PR_NUMBER" --json author --jq '.author.login')
|
||||
if [ "$PR_AUTHOR" != "github-actions[bot]" ]; then
|
||||
gh pr review "$PR_NUMBER" --approve
|
||||
else
|
||||
echo "PR was created by the bot, skipping review."
|
||||
fi
|
||||
|
60
.github/workflows/backup/check_and_update_json_date.yml
vendored
Normal file
60
.github/workflows/backup/check_and_update_json_date.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
name: Update date_created in JSON files
|
||||
|
||||
on:
|
||||
# Dieser Trigger wird für das Öffnen von PRs sowie für das Aktualisieren von offenen PRs verwendet
|
||||
pull_request:
|
||||
types: [opened, synchronize]
|
||||
schedule:
|
||||
# Dieser Trigger wird 4x am Tag ausgelöst, um sicherzustellen, dass das Datum aktualisiert wird
|
||||
- cron: "0 0,6,12,18 * * *" # Führt alle 6 Stunden aus
|
||||
workflow_dispatch: # Manuelle Ausführung des Workflows möglich
|
||||
|
||||
jobs:
|
||||
update-date:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install yq
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y yq
|
||||
|
||||
- name: Set the current date
|
||||
id: set_date
|
||||
run: echo "TODAY=$(date -u +%Y-%m-%d)" >> $GITHUB_ENV
|
||||
|
||||
- name: Check for changes in PR
|
||||
run: |
|
||||
# Hole den PR-Branch
|
||||
PR_BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
|
||||
git fetch origin $PR_BRANCH
|
||||
|
||||
# Liste alle JSON-Dateien im PR auf, die geändert wurden
|
||||
CHANGED_JSON_FILES=$(git diff --name-only origin/main...$PR_BRANCH | grep '.json')
|
||||
|
||||
if [ -z "$CHANGED_JSON_FILES" ]; then
|
||||
echo "No JSON files changed in this PR."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Gehe alle geänderten JSON-Dateien durch und aktualisiere das Datum
|
||||
for file in $CHANGED_JSON_FILES; do
|
||||
echo "Updating date_created in $file"
|
||||
# Setze das aktuelle Datum
|
||||
yq eval ".date_created = \"${{ env.TODAY }}\"" -i "$file"
|
||||
git add "$file"
|
||||
done
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
# Prüfe, ob es Änderungen gibt und committe sie
|
||||
git config user.name "json-updater-bot"
|
||||
git config user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
git commit -m "Update date_created to ${{ env.TODAY }}" || echo "No changes to commit"
|
||||
|
||||
# Push zurück in den PR-Branch
|
||||
git push origin $PR_BRANCH
|
60
.github/workflows/backup/shellcheck.yml
vendored
Normal file
60
.github/workflows/backup/shellcheck.yml
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
name: Shellcheck
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "5 1 * * *"
|
||||
|
||||
jobs:
|
||||
shellcheck:
|
||||
name: Shellcheck
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v45
|
||||
with:
|
||||
files: |
|
||||
**.sh
|
||||
|
||||
- name: Download ShellCheck
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_VERSION: "v0.10.0"
|
||||
run: |
|
||||
set -euo pipefail
|
||||
if [[ "${{ runner.os }}" == "macOS" ]]; then
|
||||
osvariant="darwin"
|
||||
else
|
||||
osvariant="linux"
|
||||
fi
|
||||
|
||||
baseurl="https://github.com/koalaman/shellcheck/releases/download"
|
||||
curl -Lso "${{ github.workspace }}/sc.tar.xz" \
|
||||
"${baseurl}/${INPUT_VERSION}/shellcheck-${INPUT_VERSION}.${osvariant}.x86_64.tar.xz"
|
||||
|
||||
tar -xf "${{ github.workspace }}/sc.tar.xz" -C "${{ github.workspace }}"
|
||||
mv "${{ github.workspace }}/shellcheck-${INPUT_VERSION}/shellcheck" \
|
||||
"${{ github.workspace }}/shellcheck"
|
||||
|
||||
- name: Verify ShellCheck binary
|
||||
run: |
|
||||
ls -l "${{ github.workspace }}/shellcheck"
|
||||
|
||||
- name: Display ShellCheck version
|
||||
run: |
|
||||
"${{ github.workspace }}/shellcheck" --version
|
||||
|
||||
- name: Run ShellCheck
|
||||
if: steps.changed-files.outputs.any_changed == 'true'
|
||||
env:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
run: |
|
||||
echo "${ALL_CHANGED_FILES}" | xargs "${{ github.workspace }}/shellcheck"
|
45
.github/workflows/check_and_update_json_date.yml
vendored
45
.github/workflows/check_and_update_json_date.yml
vendored
@ -1,45 +0,0 @@
|
||||
name: Check and Update JSON Date
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [synchronize, opened, reopened, edited]
|
||||
paths:
|
||||
- "json/*.json"
|
||||
|
||||
jobs:
|
||||
update-date:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.12
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install jq
|
||||
|
||||
- name: Find and Update JSON files in /json folder
|
||||
run: |
|
||||
TODAY=$(date +%Y-%m-%d)
|
||||
for file in $(git diff --diff-filter=A --name-only HEAD | grep '^json/.*\.json$'); do
|
||||
if jq -e '.date_created' $file > /dev/null 2>&1; then
|
||||
echo "Updating date_created in $file"
|
||||
jq --arg date "$TODAY" '.date_created = $date' $file > temp.json && mv temp.json $file
|
||||
git add $file
|
||||
fi
|
||||
done
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
git config user.name "GitHub Action"
|
||||
git config user.email "action@github.com"
|
||||
git commit -m "Update date_created in new JSON files" || echo "No changes to commit"
|
||||
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@v0.6.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
29
.github/workflows/merge-main.yml
vendored
29
.github/workflows/merge-main.yml
vendored
@ -1,29 +0,0 @@
|
||||
name: Merge main into update-app-headers
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'ct/**.sh'
|
||||
|
||||
jobs:
|
||||
merge-main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Git
|
||||
run: |
|
||||
git config --global user.name "GitHub Actions"
|
||||
git config --global user.email "actions@github.com"
|
||||
|
||||
- name: Merge main into update-app-headers silently
|
||||
run: |
|
||||
git fetch origin
|
||||
git checkout update-app-headers
|
||||
git merge origin/main --allow-unrelated-histories --no-commit -m "Merge main into update-app-headers"
|
||||
git push origin update-app-headers > /dev/null 2>&1 || true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
23
.github/workflows/scripts/update_json_date.sh
vendored
Normal file
23
.github/workflows/scripts/update_json_date.sh
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Verzeichnis, das die JSON-Dateien enthält
|
||||
json_dir="./json/*.json"
|
||||
|
||||
current_date=$(date +"%Y-%m-%d")
|
||||
|
||||
for json_file in $json_dir; do
|
||||
if [[ -f "$json_file" ]]; then
|
||||
current_json_date=$(jq -r '.date_created' "$json_file")
|
||||
|
||||
if [[ "$current_json_date" != "$current_date" ]]; then
|
||||
echo "Updating $json_file with date $current_date"
|
||||
jq --arg date "$current_date" '.date_created = $date' "$json_file" > temp.json && mv temp.json "$json_file"
|
||||
|
||||
git add "$json_file"
|
||||
git commit -m "Update date_created to $current_date in $json_file"
|
||||
else
|
||||
echo "Date in $json_file is already up to date."
|
||||
fi
|
||||
fi
|
||||
done
|
||||
git push origin HEAD
|
62
.github/workflows/shellcheck.yml
vendored
62
.github/workflows/shellcheck.yml
vendored
@ -1,62 +0,0 @@
|
||||
name: Shellcheck
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "5 1 * * *"
|
||||
|
||||
jobs:
|
||||
shellcheck:
|
||||
name: Shellcheck
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v45
|
||||
with:
|
||||
files: |
|
||||
**.sh
|
||||
|
||||
# This is a manual copy from https://github.com/ludeeus/action-shellcheck/blob/00b27aa7cb85167568cb48a3838b75f4265f2bca/action.yaml#L59
|
||||
# Why? Because the action is not capable of adding ONLY a list of files.
|
||||
# We aim to only check the files that have changed.
|
||||
# This is used as we deal with a codebase that throws a lot of warnings.
|
||||
# Checking only the changed files is a good compromise to improve the codebase over time.
|
||||
- name: Download shellcheck
|
||||
shell: bash
|
||||
env:
|
||||
INPUT_VERSION: "v0.10.0"
|
||||
run: |
|
||||
if [[ "${{ runner.os }}" == "macOS" ]]; then
|
||||
osvariant="darwin"
|
||||
else
|
||||
osvariant="linux"
|
||||
fi
|
||||
|
||||
baseurl="https://github.com/koalaman/shellcheck/releases/download"
|
||||
|
||||
curl -Lso "${{ github.action_path }}/sc.tar.xz" \
|
||||
"${baseurl}/${INPUT_VERSION}/shellcheck-${INPUT_VERSION}.${osvariant}.x86_64.tar.xz"
|
||||
|
||||
tar -xf "${{ github.action_path }}/sc.tar.xz" -C "${{ github.action_path }}"
|
||||
mv "${{ github.action_path }}/shellcheck-${INPUT_VERSION}/shellcheck" \
|
||||
"${{ github.action_path }}/shellcheck"
|
||||
|
||||
- name: Display shellcheck version
|
||||
shell: bash
|
||||
run: |
|
||||
"${{ github.action_path }}/shellcheck" --version
|
||||
|
||||
- name: Run ShellCheck
|
||||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||||
env:
|
||||
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
run: |
|
||||
echo "${ALL_CHANGED_FILES}" | xargs shellcheck
|
68
.github/workflows/update_json_date.yml
vendored
Normal file
68
.github/workflows/update_json_date.yml
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
name: Update JSON Date in PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
types:
|
||||
- opened
|
||||
- synchronize
|
||||
- reopened
|
||||
|
||||
jobs:
|
||||
update_json:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Configure Git user
|
||||
run: |
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
git config --global user.name "github-actions[bot]"
|
||||
|
||||
- name: Get list of changed files in PR
|
||||
id: files
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const prNumber = context.payload.pull_request.number;
|
||||
const prFiles = await github.rest.pulls.listFiles({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: prNumber,
|
||||
});
|
||||
|
||||
// Filter for JSON files only
|
||||
const changedJsonFiles = prFiles.data
|
||||
.filter(file => file.filename.endsWith('.json'))
|
||||
.map(file => file.filename);
|
||||
|
||||
core.setOutput('changed_files', changedJsonFiles.join('\n'));
|
||||
console.log('Changed JSON files:', changedJsonFiles);
|
||||
|
||||
- name: Update dates in changed JSON files
|
||||
run: |
|
||||
changed_files="${{ steps.files.outputs.changed_files }}"
|
||||
if [[ -z "$changed_files" ]]; then
|
||||
echo "No JSON files changed in this PR. Exiting."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for file in $changed_files; do
|
||||
echo "Updating $file with current date."
|
||||
# Your logic to update the file
|
||||
jq '.date_created = "'"$(date +%Y-%m-%d)"'"' "$file" > tmp.$$.json && mv tmp.$$.json "$file"
|
||||
done
|
||||
|
||||
- name: Commit changes if updated
|
||||
run: |
|
||||
git add *.json
|
||||
git diff --cached --quiet || git commit -m "Update JSON dates"
|
||||
|
||||
- name: Push changes
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
git push
|
39
CHANGELOG.md
39
CHANGELOG.md
@ -16,6 +16,45 @@ All LXC instances created using this repository come pre-installed with Midnight
|
||||
> [!IMPORTANT]
|
||||
Do not break established syntax in this file, as it is automatically updated by a Github Workflow
|
||||
|
||||
## 2025-01-15
|
||||
|
||||
### Changed
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Fix: Add FFMPEG for OpenWebUI [@MickLesk](https://github.com/MickLesk) ([#1497](https://github.com/community-scripts/ProxmoxVE/pull/1497))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- [core] build.func&install.func: Fix ssh keynot added error [@dsiebel](https://github.com/dsiebel) ([#1502](https://github.com/community-scripts/ProxmoxVE/pull/1502))
|
||||
|
||||
## 2025-01-14
|
||||
|
||||
### Changed
|
||||
|
||||
### 💥 Breaking Changes
|
||||
|
||||
- Update tianji-install.sh: Add OPENAI_API_KEY to .env [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1480](https://github.com/community-scripts/ProxmoxVE/pull/1480))
|
||||
|
||||
### ✨ New Scripts
|
||||
|
||||
- New Script: Wordpress [@MickLesk](https://github.com/MickLesk) ([#1485](https://github.com/community-scripts/ProxmoxVE/pull/1485))
|
||||
- New Script: Opengist [@jd-apprentice](https://github.com/jd-apprentice) ([#1429](https://github.com/community-scripts/ProxmoxVE/pull/1429))
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- Update lazylibrarian-install.sh: Add pypdf libary [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1467](https://github.com/community-scripts/ProxmoxVE/pull/1467))
|
||||
- Update opengist-install.sh: Add git as dependencie [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1471](https://github.com/community-scripts/ProxmoxVE/pull/1471))
|
||||
|
||||
### 🌐 Website
|
||||
|
||||
- [website] Update footer text [@rajatdiptabiswas](https://github.com/rajatdiptabiswas) ([#1466](https://github.com/community-scripts/ProxmoxVE/pull/1466))
|
||||
|
||||
### 🧰 Maintenance
|
||||
|
||||
- Hotfix build.func: Error when tags are empty [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1492](https://github.com/community-scripts/ProxmoxVE/pull/1492))
|
||||
- [core] Update build.func: Fix bug with advanced tags [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#1473](https://github.com/community-scripts/ProxmoxVE/pull/1473))
|
||||
|
||||
## 2025-01-13
|
||||
|
||||
### Changed
|
||||
|
71
ct/opengist.sh
Normal file
71
ct/opengist.sh
Normal file
@ -0,0 +1,71 @@
|
||||
#!/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: Jonathan (jd-apprentice)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://opengist.io/
|
||||
|
||||
# App Default Values
|
||||
APP="Opengist"
|
||||
var_tags="development"
|
||||
var_cpu="1"
|
||||
var_ram="1024"
|
||||
var_disk="8"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
var_unprivileged="1"
|
||||
|
||||
# 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 /opt/opengist ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop opengist.service
|
||||
msg_ok "Stopped Service"
|
||||
apt-get update &>/dev/null
|
||||
apt-get upgrade &>/dev/null
|
||||
RELEASE=$(curl -s https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
wget -qO "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz"
|
||||
rm -rf /opt/opengist
|
||||
tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
|
||||
chmod +x /opt/opengist/opengist
|
||||
echo "${RELEASE}" >"/opt/${APP}_version.txt"
|
||||
rm -rf /opt/opengist${RELEASE}-linux-amd64.tar.gz
|
||||
apt-get -y autoremove &>/dev/null
|
||||
apt-get -y autoclean &>/dev/null
|
||||
msg_ok "Updated ${APP} LXC"
|
||||
|
||||
msg_info "Starting Service"
|
||||
systemctl start opengist.service
|
||||
msg_ok "Started Service"
|
||||
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}."
|
||||
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}:6157${CL}"
|
45
ct/wordpress.sh
Normal file
45
ct/wordpress.sh
Normal file
@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
source <(curl -s https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
|
||||
# Copyright (c) 2021-2025 communtiy-scripts ORG
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://wordpress.org/
|
||||
|
||||
## App Default Values
|
||||
APP="Wordpress"
|
||||
var_tags="blog;cms"
|
||||
var_disk="5"
|
||||
var_cpu="2"
|
||||
var_ram="2048"
|
||||
var_os="debian"
|
||||
var_version="12"
|
||||
|
||||
# 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/html/wordpress ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
msg_error "Wordpress should be updated via the user 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}/${CL}"
|
@ -6,7 +6,7 @@ export default function Footer() {
|
||||
<div className="supports-backdrop-blur:bg-background/90 mt-auto flex border-t border-border bg-background/40 py-6 backdrop-blur-lg">
|
||||
<div className="flex w-full justify-between">
|
||||
<div className="mx-6 w-full max-w-7xl text-sm text-muted-foreground">
|
||||
Website build by the community. The source code is avaliable on{" "}
|
||||
Website built by the community. The source code is avaliable on{" "}
|
||||
<Link
|
||||
href={`https://github.com/community-scripts/${basePath}`}
|
||||
target="_blank"
|
||||
|
@ -33,6 +33,7 @@ $STD apt-get install -y \
|
||||
$STD pip install jaraco.stream
|
||||
$STD pip install python-Levenshtein
|
||||
$STD pip install soupsieve
|
||||
$STD pip install pypdf
|
||||
msg_ok "Installed Python3 Dependencies"
|
||||
|
||||
msg_info "Installing LazyLibrarian"
|
||||
|
61
install/opengist-install.sh
Normal file
61
install/opengist-install.sh
Normal file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 community-scripts ORG
|
||||
# Author: Jonathan (jd-apprentice)
|
||||
# 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 install -y \
|
||||
mc \
|
||||
curl \
|
||||
sudo \
|
||||
git
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Install Opengist"
|
||||
RELEASE=$(curl -s https://api.github.com/repos/thomiceli/opengist/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
wget -q "https://github.com/thomiceli/opengist/releases/download/v${RELEASE}/opengist${RELEASE}-linux-amd64.tar.gz"
|
||||
$STD tar -xzf opengist${RELEASE}-linux-amd64.tar.gz
|
||||
mv opengist /opt/opengist
|
||||
chmod +x /opt/opengist/opengist
|
||||
mkdir -p /opt/opengist-data
|
||||
msg_ok "Installed Opengist"
|
||||
|
||||
msg_info "Creating Service"
|
||||
|
||||
sed -i 's|opengist-home:.*|opengist-home: /opt/opengist-data|' /opt/opengist/config.yml
|
||||
|
||||
cat <<EOF >/etc/systemd/system/opengist.service
|
||||
[Unit]
|
||||
Description=Opengist server to manage your Gists
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
WorkingDirectory=/opt/opengist
|
||||
ExecStart=/opt/opengist/opengist --config /opt/opengist/config.yml
|
||||
Restart=always
|
||||
User=root
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
systemctl enable -q --now opengist.service
|
||||
msg_ok "Created Service"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /opengist${RELEASE}-linux-amd64.tar.gz
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
@ -15,11 +15,13 @@ network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies"
|
||||
$STD apt-get install -y curl
|
||||
$STD apt-get install -y sudo
|
||||
$STD apt-get install -y mc
|
||||
$STD apt-get install -y gpg
|
||||
$STD apt-get install -y git
|
||||
$STD apt-get install -y \
|
||||
curl \
|
||||
sudo \
|
||||
mc \
|
||||
gpg \
|
||||
git \
|
||||
ffmpeg
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Installing Python3 Dependencies"
|
||||
|
@ -74,6 +74,7 @@ $STD pnpm build:server
|
||||
echo "${RELEASE}" >"/opt/${APPLICATION}_version.txt"
|
||||
cat <<EOF >/opt/tianji/src/server/.env
|
||||
DATABASE_URL="postgresql://$DB_USER:$DB_PASS@localhost:5432/$DB_NAME?schema=public"
|
||||
OPENAI_API_KEY=""
|
||||
JWT_SECRET="$TIANJI_SECRET"
|
||||
EOF
|
||||
cd /opt/tianji/src/server
|
||||
|
85
install/wordpress-install.sh
Normal file
85
install/wordpress-install.sh
Normal file
@ -0,0 +1,85 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Copyright (c) 2021-2025 communtiy-scripts ORG
|
||||
# Author: MickLesk (Canbiz)
|
||||
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
||||
# Source: https://wordpress.org/
|
||||
|
||||
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
|
||||
color
|
||||
verb_ip6
|
||||
catch_errors
|
||||
setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Dependencies (Patience)"
|
||||
$STD apt-get install -y \
|
||||
curl \
|
||||
unzip \
|
||||
sudo \
|
||||
mc \
|
||||
apache2 \
|
||||
php8.2-{bcmath,common,cli,curl,fpm,gd,snmp,imap,mbstring,mysql,xml,zip} \
|
||||
libapache2-mod-php \
|
||||
mariadb-server
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Setting up Database"
|
||||
DB_NAME=wordpress_db
|
||||
DB_USER=wordpress
|
||||
DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13)
|
||||
$STD mysql -u root -e "CREATE DATABASE $DB_NAME;"
|
||||
$STD mysql -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';"
|
||||
$STD mysql -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;"
|
||||
{
|
||||
echo "WordPress Credentials"
|
||||
echo "Database User: $DB_USER"
|
||||
echo "Database Password: $DB_PASS"
|
||||
echo "Database Name: $DB_NAME"
|
||||
} >> ~/wordpress.creds
|
||||
msg_ok "Set up Database"
|
||||
|
||||
msg_info "Installing Wordpress (Patience)"
|
||||
cd /var/www/html
|
||||
wget -q https://wordpress.org/latest.zip
|
||||
unzip -q latest.zip
|
||||
chown -R www-data:www-data wordpress/
|
||||
cd /var/www/html/wordpress
|
||||
find . -type d -exec chmod 755 {} \;
|
||||
find . -type f -exec chmod 644 {} \;
|
||||
mv wp-config-sample.php wp-config.php
|
||||
sed -i -e "s|^define( 'DB_NAME', '.*' );|define( 'DB_NAME', '$DB_NAME' );|" \
|
||||
-e "s|^define( 'DB_USER', '.*' );|define( 'DB_USER', '$DB_USER' );|" \
|
||||
-e "s|^define( 'DB_PASSWORD', '.*' );|define( 'DB_PASSWORD', '$DB_PASS' );|" \
|
||||
/var/www/html/wordpress/wp-config.php
|
||||
msg_ok "Installed Wordpress"
|
||||
|
||||
msg_info "Setup Services"
|
||||
cat <<EOF > /etc/apache2/sites-available/wordpress.conf
|
||||
<VirtualHost *:80>
|
||||
ServerName yourdomain.com
|
||||
DocumentRoot /var/www/html/wordpress
|
||||
|
||||
<Directory /var/www/html/wordpress>
|
||||
AllowOverride All
|
||||
</Directory>
|
||||
|
||||
ErrorLog \${APACHE_LOG_DIR}/error.log
|
||||
CustomLog \${APACHE_LOG_DIR}/access.log combined
|
||||
|
||||
</VirtualHost>
|
||||
EOF
|
||||
$STD a2ensite wordpress.conf
|
||||
$STD a2dissite 000-default.conf
|
||||
systemctl reload apache2
|
||||
msg_ok "Created Services"
|
||||
|
||||
motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -rf /var/www/html/latest.zip
|
||||
$STD apt-get autoremove
|
||||
$STD apt-get autoclean
|
||||
msg_ok "Cleaned"
|
34
json/opengist.json
Normal file
34
json/opengist.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "Opengist",
|
||||
"slug": "opengist",
|
||||
"categories": [
|
||||
3
|
||||
],
|
||||
"date_created": "2025-01-14",
|
||||
"type": "ct",
|
||||
"updateable": false,
|
||||
"privileged": false,
|
||||
"interface_port": 6157,
|
||||
"documentation": null,
|
||||
"website": "https://opengist.io/",
|
||||
"logo": "https://raw.githubusercontent.com/thomiceli/opengist/master/public/opengist.svg",
|
||||
"description": "Self-hosted pastebin powered by Git, open-source alternative to Github Gist.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/opengist.sh",
|
||||
"resources": {
|
||||
"cpu": 1,
|
||||
"ram": 1024,
|
||||
"hdd": 8,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
34
json/wordpress.json
Normal file
34
json/wordpress.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"name": "Wordpress",
|
||||
"slug": "wordpress",
|
||||
"categories": [
|
||||
14
|
||||
],
|
||||
"date_created": "2025-01-14",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 80,
|
||||
"documentation": "https://wordpress.org/documentation/",
|
||||
"website": "https://wordpress.org/",
|
||||
"logo": "https://s.w.org/style/images/about/WordPress-logotype-simplified.png",
|
||||
"description": "WordPress is the simplest, most popular way to create your own website or blog. In fact, WordPress powers over 43.6% of all the websites on the Internet. Yes – more than one in four websites that you visit are likely powered by WordPress.\n\nOn a slightly more technical level, WordPress is an open-source content management system licensed under GPLv2, which means that anyone can use or modify the WordPress software for free.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/wordpress.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 5,
|
||||
"os": "Debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
### Generated on 01-10-2025
|
||||
### Generated on 01-14-2025
|
||||
##################################################
|
||||
|
||||
### 2fauth.sh
|
||||
@ -529,6 +529,15 @@ APP=Frigate
|
||||
/_/ /_/ /_/\__, /\__,_/\__/\___/
|
||||
/____/
|
||||
|
||||
### ghost.sh
|
||||
APP=Ghost
|
||||
________ __
|
||||
/ ____/ /_ ____ _____/ /_
|
||||
/ / __/ __ \/ __ \/ ___/ __/
|
||||
/ /_/ / / / / /_/ (__ ) /_
|
||||
\____/_/ /_/\____/____/\__/
|
||||
|
||||
|
||||
### gitea.sh
|
||||
APP=Gitea
|
||||
_______ __
|
||||
@ -1222,6 +1231,15 @@ APP=OneDev
|
||||
\____/_/ /_/\___/_____/\___/|___/
|
||||
|
||||
|
||||
### opengist.sh
|
||||
APP=Opengist
|
||||
____ _ __
|
||||
/ __ \____ ___ ____ ____ _(_)____/ /_
|
||||
/ / / / __ \/ _ \/ __ \/ __ `/ / ___/ __/
|
||||
/ /_/ / /_/ / __/ / / / /_/ / (__ ) /_
|
||||
\____/ .___/\___/_/ /_/\__, /_/____/\__/
|
||||
/_/ /____/
|
||||
|
||||
### openhab.sh
|
||||
APP=openHAB
|
||||
__ _____ ____
|
||||
@ -1948,6 +1966,15 @@ APP=Wireguard
|
||||
|__/|__/_/_/ \___/\__, /\__,_/\__,_/_/ \__,_/
|
||||
/____/
|
||||
|
||||
### wordpress.sh
|
||||
APP=Wordpress
|
||||
_ __ __
|
||||
| | / /___ _________/ /___ ________ __________
|
||||
| | /| / / __ \/ ___/ __ / __ \/ ___/ _ \/ ___/ ___/
|
||||
| |/ |/ / /_/ / / / /_/ / /_/ / / / __(__ |__ )
|
||||
|__/|__/\____/_/ \__,_/ .___/_/ \___/____/____/
|
||||
/_/
|
||||
|
||||
### yunohost.sh
|
||||
APP=YunoHost
|
||||
__ __ __ __ __
|
||||
|
@ -629,9 +629,14 @@ advanced_settings() {
|
||||
|
||||
if ADV_TAGS=$(whiptail --backtitle "Proxmox VE Helper Scripts" --inputbox "Set Custom Tags?[If you remove all, there will be no tags!]" 8 58 ${TAGS} --title "Advanced Tags" 3>&1 1>&2 2>&3); then
|
||||
if [ -n "${ADV_TAGS}" ]; then
|
||||
ADV_TAGS=${ADV_TAGS:-""}
|
||||
ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]')
|
||||
ADV_TAGS=$(echo "$ADV_TAGS" | tr -d '[:space:]') # Remove whitespace from ADV_TAGS
|
||||
if [[ "$ADV_TAGS" != *"community-script"* ]]; then
|
||||
TAGS="community-script;${ADV_TAGS}"
|
||||
else
|
||||
TAGS="${ADV_TAGS}" # ADV_TAGS already contains "community-script"
|
||||
fi
|
||||
else
|
||||
TAGS="community-script;"
|
||||
fi
|
||||
echo -e "${NETWORK}${BOLD}${DGN}Tags: ${BGN}$TAGS${CL}"
|
||||
else
|
||||
@ -822,6 +827,7 @@ build_container() {
|
||||
export PASSWORD="$PW"
|
||||
export VERBOSE="$VERB"
|
||||
export SSH_ROOT="${SSH}"
|
||||
export SSH_AUTHORIZED_KEY
|
||||
export CTID="$CT_ID"
|
||||
export CTTYPE="$CT_TYPE"
|
||||
export PCT_OSTYPE="$var_os"
|
||||
|
@ -255,4 +255,11 @@ EOF
|
||||
fi
|
||||
echo "bash -c \"\$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/${app}.sh)\"" >/usr/bin/update
|
||||
chmod +x /usr/bin/update
|
||||
|
||||
if [[ -n "${SSH_AUTHORIZED_KEY}" ]]; then
|
||||
mkdir -p /root/.ssh
|
||||
echo "${SSH_AUTHORIZED_KEY}" > /root/.ssh/authorized_keys
|
||||
chmod 700 /root/.ssh
|
||||
chmod 600 /root/.ssh/authorized_keys
|
||||
fi
|
||||
}
|
||||
|
Reference in New Issue
Block a user