Author SHA1 Message Date
fithwum ecd205deb2 Update base image digests (2026-04-26T13:01:50Z) 2026-04-26 13:01:50 +00:00
18 changed files with 129 additions and 1262 deletions
+1
View File
@@ -0,0 +1 @@
alpine@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
+1
View File
@@ -0,0 +1 @@
gitea.fithwum.tech/fithwum/debian-base@sha256:85f4a10274b7a5d821c7a68a56bf71af22d9a5c46ee39b3905f3ec739e80d961
+1 -1
View File
@@ -1 +1 @@
gitea.fithwum.tech/fithwum/debian-base@sha256:b405854d9dbfb510af67cd8d949a488c86d05c3ac1890558c40a6bf993d82703 gitea.fithwum.tech/fithwum/debian-base@sha256:85f4a10274b7a5d821c7a68a56bf71af22d9a5c46ee39b3905f3ec739e80d961
@@ -1,18 +1,18 @@
name: Build Teamspeak-debian name: Build and Push Teamspeak Images on Base Image Update
on: on:
push: push:
branches: branches:
- main - main
paths: paths:
- '.gitea/workflows/teamspeak-build-debian.yml' - '.gitea/workflows/*.yml'
- 'debian/Dockerfile' - '**/Dockerfile'
- 'debian/*.sh' - '**/*.sh'
- '!.cache/*' - '!.cache/*'
- '!debian/CHANGES.md' - '!**/CHANGES.md'
- '!debian/build-info.json' - '!**/build-info.json'
schedule: schedule:
- cron: '15 21 * * 0' - cron: '0 13 * * 0'
env: env:
IMAGE_REGISTRY: ${{ secrets.REPO_URL }} IMAGE_REGISTRY: ${{ secrets.REPO_URL }}
@@ -24,8 +24,12 @@ jobs:
check-for-changes: check-for-changes:
runs-on: vm-docker-build2 runs-on: vm-docker-build2
outputs: outputs:
should_build_alpine: ${{ steps.check.outputs.should_build_alpine }}
should_build_debian: ${{ steps.check.outputs.should_build_debian }} should_build_debian: ${{ steps.check.outputs.should_build_debian }}
should_build_basic: ${{ steps.check.outputs.should_build_basic }}
alpine_digest: ${{ steps.check.outputs.alpine_digest }}
debian_digest: ${{ steps.check.outputs.debian_digest }} debian_digest: ${{ steps.check.outputs.debian_digest }}
basic_digest: ${{ steps.check.outputs.basic_digest }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v3 uses: actions/checkout@v3
@@ -37,14 +41,19 @@ jobs:
- name: Pull latest base images - name: Pull latest base images
run: | run: |
docker pull alpine:latest
docker pull gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm docker pull gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm
- name: Get base image digests - name: Get base image digests
id: get_digest id: get_digest
run: | run: |
alpine_digest=$(docker inspect --format='{{index .RepoDigests 0}}' alpine:latest || echo "unknown")
debian_digest=$(docker inspect --format='{{index .RepoDigests 0}}' gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm || echo "unknown") debian_digest=$(docker inspect --format='{{index .RepoDigests 0}}' gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm || echo "unknown")
basic_digest=$debian_digest # basic uses debian-base
echo "alpine_digest=$alpine_digest" >> $GITHUB_OUTPUT
echo "debian_digest=$debian_digest" >> $GITHUB_OUTPUT echo "debian_digest=$debian_digest" >> $GITHUB_OUTPUT
echo "basic_digest=$basic_digest" >> $GITHUB_OUTPUT
- name: Compare digests and detect changes - name: Compare digests and detect changes
id: check id: check
@@ -70,7 +79,33 @@ jobs:
echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
} }
check_variant alpine "${{ steps.get_digest.outputs.alpine_digest }}"
check_variant debian "${{ steps.get_digest.outputs.debian_digest }}" check_variant debian "${{ steps.get_digest.outputs.debian_digest }}"
check_variant basic "${{ steps.get_digest.outputs.basic_digest }}"
build-alpine:
needs: check-for-changes
if: needs.check-for-changes.outputs.should_build_alpine == 'true'
runs-on: vm-docker-build2
outputs:
built: 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to Docker registry
run: |
echo "${{ secrets.GIT_TOKEN }}" | docker login gitea.fithwum.tech -u "${{ secrets.GIT_USERNAME }}" --password-stdin
- name: Build and Push Alpine Image
run: |
mkdir -p "${{ env.CACHE_DIR }}"
IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:alpine"
METAFILE="${{ env.CACHE_DIR }}/metadata-alpine.json"
echo "[INFO] Building $IMAGE"
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./alpine
build-debian: build-debian:
needs: check-for-changes needs: check-for-changes
@@ -96,10 +131,36 @@ jobs:
echo "[INFO] Building $IMAGE" echo "[INFO] Building $IMAGE"
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./debian docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./debian
build-basic:
needs: check-for-changes
if: needs.check-for-changes.outputs.should_build_basic == 'true'
runs-on: vm-docker-build2
outputs:
built: 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to Docker registry
run: |
echo "${{ secrets.GIT_TOKEN }}" | docker login gitea.fithwum.tech -u "${{ secrets.GIT_USERNAME }}" --password-stdin
- name: Build and Push Basic Image
run: |
mkdir -p "${{ env.CACHE_DIR }}"
IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:basic"
METAFILE2="${{ env.CACHE_DIR }}/metadata-basic.json"
echo "[INFO] Building $IMAGE"
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE2" ./basic
update-base-digest-cache: update-base-digest-cache:
needs: needs:
- check-for-changes - check-for-changes
- build-alpine
- build-debian - build-debian
- build-basic
runs-on: vm-docker-build2 runs-on: vm-docker-build2
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@@ -113,9 +174,15 @@ jobs:
mkdir -p .cache mkdir -p .cache
[[ "${{ needs.build-alpine.outputs.built }}" == "true" ]] && \
echo "${{ needs.check-for-changes.outputs.alpine_digest }}" > .cache/alpine-base.digest
[[ "${{ needs.build-debian.outputs.built }}" == "true" ]] && \ [[ "${{ needs.build-debian.outputs.built }}" == "true" ]] && \
echo "${{ needs.check-for-changes.outputs.debian_digest }}" > .cache/debian-base.digest echo "${{ needs.check-for-changes.outputs.debian_digest }}" > .cache/debian-base.digest
[[ "${{ needs.build-basic.outputs.built }}" == "true" ]] && \
echo "${{ needs.check-for-changes.outputs.basic_digest }}" > .cache/basic-base.digest
if git status --porcelain | grep .; then if git status --porcelain | grep .; then
# Create a temporary branch # Create a temporary branch
TEMP_BRANCH="tmp-digest-$(date -u +%s)" TEMP_BRANCH="tmp-digest-$(date -u +%s)"
@@ -144,9 +211,13 @@ jobs:
generate-build-info: generate-build-info:
needs: needs:
- update-base-digest-cache - update-base-digest-cache
- build-alpine
- build-debian - build-debian
- build-basic
if: | if: |
needs.build-debian.outputs.built == 'true' needs.build-alpine.outputs.built == 'true' ||
needs.build-debian.outputs.built == 'true' ||
needs.build-basic.outputs.built == 'true'
runs-on: vm-docker-build2 runs-on: vm-docker-build2
steps: steps:
- name: Checkout source - name: Checkout source
@@ -166,7 +237,9 @@ jobs:
fi fi
} }
echo "alpine=$(load_digest alpine)" >> $GITHUB_OUTPUT
echo "debian=$(load_digest debian)" >> $GITHUB_OUTPUT echo "debian=$(load_digest debian)" >> $GITHUB_OUTPUT
echo "basic=$(load_digest basic)" >> $GITHUB_OUTPUT
- name: Generate build-info.json for each variant - name: Generate build-info.json for each variant
env: env:
@@ -174,7 +247,7 @@ jobs:
IMAGE_ORG: ${{ env.IMAGE_ORG }} IMAGE_ORG: ${{ env.IMAGE_ORG }}
IMAGE_REPO_TS: ${{ env.IMAGE_REPO_TS }} IMAGE_REPO_TS: ${{ env.IMAGE_REPO_TS }}
run: | run: |
variants=(debian) variants=(alpine debian basic)
human_size() { human_size() {
local b=$1 local b=$1
@@ -190,7 +263,9 @@ jobs:
} }
variants=() variants=()
[[ "${{ needs.build-alpine.outputs.built }}" == "true" ]] && variants+=("alpine")
[[ "${{ needs.build-debian.outputs.built }}" == "true" ]] && variants+=("debian") [[ "${{ needs.build-debian.outputs.built }}" == "true" ]] && variants+=("debian")
[[ "${{ needs.build-basic.outputs.built }}" == "true" ]] && variants+=("basic")
for variant in "${variants[@]}"; do for variant in "${variants[@]}"; do
image_tag="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:${variant}" image_tag="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:${variant}"
@@ -201,9 +276,15 @@ jobs:
build_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ") build_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
case "$variant" in case "$variant" in
alpine)
base_digest="${{ steps.base_digests.outputs.alpine }}"
;;
debian) debian)
base_digest="${{ steps.base_digests.outputs.debian }}" base_digest="${{ steps.base_digests.outputs.debian }}"
;; ;;
basic)
base_digest="${{ steps.base_digests.outputs.basic }}"
;;
esac esac
mkdir -p "$variant" mkdir -p "$variant"
@@ -270,7 +351,9 @@ jobs:
- check-for-changes - check-for-changes
- generate-build-info - generate-build-info
if: | if: |
needs.check-for-changes.outputs.should_build_debian == 'true' needs.check-for-changes.outputs.should_build_alpine == 'true' ||
needs.check-for-changes.outputs.should_build_debian == 'true' ||
needs.check-for-changes.outputs.should_build_basic == 'true'
runs-on: vm-docker-build2 runs-on: vm-docker-build2
steps: steps:
- name: Checkout source - name: Checkout source
@@ -286,9 +369,15 @@ jobs:
- name: Generate changelogs only for updated variants - name: Generate changelogs only for updated variants
run: | run: |
versions=() versions=()
if [[ "${{ needs.check-for-changes.outputs.should_build_alpine }}" == "true" ]]; then
versions+=("alpine")
fi
if [[ "${{ needs.check-for-changes.outputs.should_build_debian }}" == "true" ]]; then if [[ "${{ needs.check-for-changes.outputs.should_build_debian }}" == "true" ]]; then
versions+=("debian") versions+=("debian")
fi fi
if [[ "${{ needs.check-for-changes.outputs.should_build_basic }}" == "true" ]]; then
versions+=("basic")
fi
for version in "${versions[@]}"; do for version in "${versions[@]}"; do
echo "[INFO] Updating changelog for $version" echo "[INFO] Updating changelog for $version"
-347
View File
@@ -1,347 +0,0 @@
name: Build Teamspeak-alpine
on:
push:
branches:
- main
paths:
- '.gitea/workflows/teamspeak-build-alpine.yml'
- 'alpine/Dockerfile'
- 'alpine/*.sh'
- '!.cache/*'
- '!alpine/CHANGES.md'
- '!alpine/build-info.json'
schedule:
- cron: '15 21 * * 0'
env:
IMAGE_REGISTRY: ${{ secrets.REPO_URL }}
IMAGE_ORG: ${{ secrets.GIT_USERNAME }}
IMAGE_REPO_TS: teamspeak-server
CACHE_DIR: .cache
jobs:
check-for-changes:
runs-on: vm-docker-build2
outputs:
should_build_alpine: ${{ steps.check.outputs.should_build_alpine }}
alpine_digest: ${{ steps.check.outputs.alpine_digest }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Ensure .cache directory
run: mkdir -p .cache
- name: Pull latest base images
run: |
docker pull alpine:latest
- name: Get base image digests
id: get_digest
run: |
alpine_digest=$(docker inspect --format='{{index .RepoDigests 0}}' alpine:latest || echo "unknown")
echo "alpine_digest=$alpine_digest" >> $GITHUB_OUTPUT
- name: Compare digests and detect changes
id: check
run: |
check_variant() {
variant=$1
new_digest=$2
digest_file=".cache/${variant}-base.digest"
last_digest=""
if [ -f "$digest_file" ]; then
last_digest=$(cat "$digest_file")
fi
if [ "$last_digest" != "$new_digest" ]; then
echo "[INFO] $variant base image changed"
echo "should_build_${variant}=true" >> $GITHUB_OUTPUT
else
echo "[INFO] $variant base image unchanged"
echo "should_build_${variant}=false" >> $GITHUB_OUTPUT
fi
echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
}
check_variant alpine "${{ steps.get_digest.outputs.alpine_digest }}"
build-alpine:
needs: check-for-changes
if: needs.check-for-changes.outputs.should_build_alpine == 'true'
runs-on: vm-docker-build2
outputs:
built: 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to Docker registry
run: |
echo "${{ secrets.GIT_TOKEN }}" | docker login gitea.fithwum.tech -u "${{ secrets.GIT_USERNAME }}" --password-stdin
- name: Build and Push Alpine Image
run: |
mkdir -p "${{ env.CACHE_DIR }}"
IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:alpine"
METAFILE="${{ env.CACHE_DIR }}/metadata-alpine.json"
echo "[INFO] Building $IMAGE"
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE" ./alpine
update-base-digest-cache:
needs:
- check-for-changes
- build-alpine
runs-on: vm-docker-build2
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Update base digest cache
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
mkdir -p .cache
[[ "${{ needs.build-alpine.outputs.built }}" == "true" ]] && \
echo "${{ needs.check-for-changes.outputs.alpine_digest }}" > .cache/alpine-base.digest
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-digest-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add .cache/*-base.digest
git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
# Push temporary branch
git push origin "$TEMP_BRANCH"
# Merge temp branch into main safely
git checkout main
git fetch origin main
git merge --no-ff --no-edit "$TEMP_BRANCH"
# Push main branch
git push origin main
# Delete temporary branch remotely
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No digest updates to commit."
fi
generate-build-info:
needs:
- update-base-digest-cache
- build-alpine
if: |
needs.build-alpine.outputs.built == 'true'
runs-on: vm-docker-build2
steps:
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Load digests from cache
id: base_digests
run: |
load_digest() {
file=".cache/$1-base.digest"
if [ -f "$file" ]; then
cat "$file"
else
echo "unknown"
fi
}
echo "alpine=$(load_digest alpine)" >> $GITHUB_OUTPUT
- name: Generate build-info.json for each variant
env:
IMAGE_REGISTRY: ${{ env.IMAGE_REGISTRY }}
IMAGE_ORG: ${{ env.IMAGE_ORG }}
IMAGE_REPO_TS: ${{ env.IMAGE_REPO_TS }}
run: |
variants=(alpine)
human_size() {
local b=$1
local d=''
local s=0
local S=(B KB MB GB TB)
while ((b >= 1024 && s < ${#S[@]}-1)); do
d=$((b % 1024))
b=$((b / 1024))
s=$((s + 1))
done
printf "%s%s\n" "$b" "${S[$s]}"
}
variants=()
[[ "${{ needs.build-alpine.outputs.built }}" == "true" ]] && variants+=("alpine")
for variant in "${variants[@]}"; do
image_tag="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:${variant}"
digest=$(docker inspect --format='{{index .RepoDigests 0}}' "$image_tag" 2>/dev/null || echo "unknown")
size_bytes=$(docker image inspect "$image_tag" --format='{{.Size}}' 2>/dev/null || echo 0)
size_human=$(numfmt --to=iec --suffix=B $size_bytes 2>/dev/null || echo "${size_bytes}B")
commit_hash=$(git rev-parse HEAD)
build_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
case "$variant" in
alpine)
base_digest="${{ steps.base_digests.outputs.alpine }}"
;;
esac
mkdir -p "$variant"
jq -n \
--arg version "$variant" \
--arg commit "$commit_hash" \
--arg build_time "$build_time" \
--arg image_tag "$image_tag" \
--arg digest "$digest" \
--arg image_size "$size_human" \
--argjson image_size_bytes "$size_bytes" \
--arg base_digest "$base_digest" \
'{
version: $version,
commit: $commit,
build_time: $build_time,
image_tag: $image_tag,
digest: $digest,
image_size: $image_size,
image_size_bytes: $image_size_bytes,
base_digest: $base_digest
}' > "$variant/build-info.json"
done
- name: Show generated build-info.json
run: |
find . -name build-info.json -exec echo '--- {} ---' \; -exec cat {} \;
- name: Commit and push build-info if changed
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-buildinfo-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add */build-info.json
git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ')"
# Push temp branch
git push origin "$TEMP_BRANCH"
# Switch back to main
git checkout main
git fetch origin main
# Merge temp branch using --allow-unrelated-histories (safe in CI)
git merge --no-ff --no-edit "$TEMP_BRANCH" || true
# Force push main to remote to ensure update
git push origin main --force
# Delete temporary branch locally and remotely
git branch -D "$TEMP_BRANCH"
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No build-info changes to commit."
fi
generate-changelogs:
needs:
- check-for-changes
- generate-build-info
if: |
needs.check-for-changes.outputs.should_build_alpine == 'true'
runs-on: vm-docker-build2
steps:
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Sync with latest main
run: |
git fetch origin main
git reset --hard origin/main
- name: Generate changelogs only for updated variants
run: |
versions=()
if [[ "${{ needs.check-for-changes.outputs.should_build_alpine }}" == "true" ]]; then
versions+=("alpine")
fi
for version in "${versions[@]}"; do
echo "[INFO] Updating changelog for $version"
changelog="$version/CHANGES.md"
mkdir -p "$(dirname "$changelog")"
touch "$changelog"
infofile="$version/build-info.json"
last_commit=""
if [ -f "$infofile" ]; then
last_commit=$(jq -r '.commit' "$infofile")
fi
# Check if last_commit exists in history, fallback to last 10 commits if not
if ! git cat-file -e "${last_commit}^{commit}" 2>/dev/null; then
echo "[WARN] Last commit from build-info.json not found, using last 10 commits"
last_commit=""
fi
echo -e "\n## $(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "$changelog"
git log -n 10 --pretty=format:"- %s (%an)" \
--no-merges \
--invert-grep \
--grep="Update changelogs on" >> "$changelog"
done
- name: Commit and push changelogs
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-changelog-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add */CHANGES.md
git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" --no-verify
# Push temporary branch
git push origin "$TEMP_BRANCH"
# Merge temporary branch into main safely
git checkout main
git fetch origin main
git merge --no-ff --no-edit "$TEMP_BRANCH"
# Push main branch
git push origin main
# Delete temporary branch remotely
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No changelog changes to commit."
fi
-347
View File
@@ -1,347 +0,0 @@
name: Build Teamspeak-basic(debian)
on:
push:
branches:
- main
paths:
- '.gitea/workflows/teamspeak-build-basic.yml'
- 'basic/Dockerfile'
- 'basic/*.sh'
- '!.cache/*'
- '!basic/CHANGES.md'
- '!basic/build-info.json'
schedule:
- cron: '15 21 * * 0'
env:
IMAGE_REGISTRY: ${{ secrets.REPO_URL }}
IMAGE_ORG: ${{ secrets.GIT_USERNAME }}
IMAGE_REPO_TS: teamspeak-server
CACHE_DIR: .cache
jobs:
check-for-changes:
runs-on: vm-docker-build2
outputs:
should_build_basic: ${{ steps.check.outputs.should_build_basic }}
basic_digest: ${{ steps.check.outputs.basic_digest }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Ensure .cache directory
run: mkdir -p .cache
- name: Pull latest base images
run: |
docker pull gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm
- name: Get base image digests
id: get_digest
run: |
basic_digest=$(docker inspect --format='{{index .RepoDigests 0}}' gitea.fithwum.tech/${{ secrets.GIT_USERNAME }}/debian-base:bookworm || echo "unknown")
echo "basic_digest=$basic_digest" >> $GITHUB_OUTPUT
- name: Compare digests and detect changes
id: check
run: |
check_variant() {
variant=$1
new_digest=$2
digest_file=".cache/${variant}-base.digest"
last_digest=""
if [ -f "$digest_file" ]; then
last_digest=$(cat "$digest_file")
fi
if [ "$last_digest" != "$new_digest" ]; then
echo "[INFO] $variant base image changed"
echo "should_build_${variant}=true" >> $GITHUB_OUTPUT
else
echo "[INFO] $variant base image unchanged"
echo "should_build_${variant}=false" >> $GITHUB_OUTPUT
fi
echo "${variant}_digest=$new_digest" >> $GITHUB_OUTPUT
}
check_variant basic "${{ steps.get_digest.outputs.basic_digest }}"
build-basic:
needs: check-for-changes
if: needs.check-for-changes.outputs.should_build_basic == 'true'
runs-on: vm-docker-build2
outputs:
built: 'true'
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Login to Docker registry
run: |
echo "${{ secrets.GIT_TOKEN }}" | docker login gitea.fithwum.tech -u "${{ secrets.GIT_USERNAME }}" --password-stdin
- name: Build and Push Basic Image
run: |
mkdir -p "${{ env.CACHE_DIR }}"
IMAGE="${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_ORG }}/${{ env.IMAGE_REPO_TS }}:basic"
METAFILE2="${{ env.CACHE_DIR }}/metadata-basic.json"
echo "[INFO] Building $IMAGE"
docker buildx build --platform linux/amd64 --push -t "$IMAGE" --metadata-file "$METAFILE2" ./basic
update-base-digest-cache:
needs:
- check-for-changes
- build-basic
runs-on: vm-docker-build2
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Update base digest cache
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
mkdir -p .cache
[[ "${{ needs.build-basic.outputs.built }}" == "true" ]] && \
echo "${{ needs.check-for-changes.outputs.basic_digest }}" > .cache/basic-base.digest
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-digest-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add .cache/*-base.digest
git commit -m "Update base image digests ($(date -u +'%Y-%m-%dT%H:%M:%SZ'))"
# Push temporary branch
git push origin "$TEMP_BRANCH"
# Merge temp branch into main safely
git checkout main
git fetch origin main
git merge --no-ff --no-edit "$TEMP_BRANCH"
# Push main branch
git push origin main
# Delete temporary branch remotely
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No digest updates to commit."
fi
generate-build-info:
needs:
- update-base-digest-cache
- build-basic
if: |
needs.build-basic.outputs.built == 'true'
runs-on: vm-docker-build2
steps:
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Load digests from cache
id: base_digests
run: |
load_digest() {
file=".cache/$1-base.digest"
if [ -f "$file" ]; then
cat "$file"
else
echo "unknown"
fi
}
echo "basic=$(load_digest basic)" >> $GITHUB_OUTPUT
- name: Generate build-info.json for each variant
env:
IMAGE_REGISTRY: ${{ env.IMAGE_REGISTRY }}
IMAGE_ORG: ${{ env.IMAGE_ORG }}
IMAGE_REPO_TS: ${{ env.IMAGE_REPO_TS }}
run: |
variants=(basic)
human_size() {
local b=$1
local d=''
local s=0
local S=(B KB MB GB TB)
while ((b >= 1024 && s < ${#S[@]}-1)); do
d=$((b % 1024))
b=$((b / 1024))
s=$((s + 1))
done
printf "%s%s\n" "$b" "${S[$s]}"
}
variants=()
[[ "${{ needs.build-basic.outputs.built }}" == "true" ]] && variants+=("basic")
for variant in "${variants[@]}"; do
image_tag="${IMAGE_REGISTRY}/${IMAGE_ORG}/${IMAGE_REPO_TS}:${variant}"
digest=$(docker inspect --format='{{index .RepoDigests 0}}' "$image_tag" 2>/dev/null || echo "unknown")
size_bytes=$(docker image inspect "$image_tag" --format='{{.Size}}' 2>/dev/null || echo 0)
size_human=$(numfmt --to=iec --suffix=B $size_bytes 2>/dev/null || echo "${size_bytes}B")
commit_hash=$(git rev-parse HEAD)
build_time=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
case "$variant" in
basic)
base_digest="${{ steps.base_digests.outputs.basic }}"
;;
esac
mkdir -p "$variant"
jq -n \
--arg version "$variant" \
--arg commit "$commit_hash" \
--arg build_time "$build_time" \
--arg image_tag "$image_tag" \
--arg digest "$digest" \
--arg image_size "$size_human" \
--argjson image_size_bytes "$size_bytes" \
--arg base_digest "$base_digest" \
'{
version: $version,
commit: $commit,
build_time: $build_time,
image_tag: $image_tag,
digest: $digest,
image_size: $image_size,
image_size_bytes: $image_size_bytes,
base_digest: $base_digest
}' > "$variant/build-info.json"
done
- name: Show generated build-info.json
run: |
find . -name build-info.json -exec echo '--- {} ---' \; -exec cat {} \;
- name: Commit and push build-info if changed
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-buildinfo-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add */build-info.json
git commit -m "Update build-info on $(date -u +'%Y-%m-%dT%H:%M:%SZ')"
# Push temp branch
git push origin "$TEMP_BRANCH"
# Switch back to main
git checkout main
git fetch origin main
# Merge temp branch using --allow-unrelated-histories (safe in CI)
git merge --no-ff --no-edit "$TEMP_BRANCH" || true
# Force push main to remote to ensure update
git push origin main --force
# Delete temporary branch locally and remotely
git branch -D "$TEMP_BRANCH"
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No build-info changes to commit."
fi
generate-changelogs:
needs:
- check-for-changes
- generate-build-info
if: |
needs.check-for-changes.outputs.should_build_basic == 'true'
runs-on: vm-docker-build2
steps:
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Sync with latest main
run: |
git fetch origin main
git reset --hard origin/main
- name: Generate changelogs only for updated variants
run: |
versions=()
if [[ "${{ needs.check-for-changes.outputs.should_build_basic }}" == "true" ]]; then
versions+=("basic")
fi
for version in "${versions[@]}"; do
echo "[INFO] Updating changelog for $version"
changelog="$version/CHANGES.md"
mkdir -p "$(dirname "$changelog")"
touch "$changelog"
infofile="$version/build-info.json"
last_commit=""
if [ -f "$infofile" ]; then
last_commit=$(jq -r '.commit' "$infofile")
fi
# Check if last_commit exists in history, fallback to last 10 commits if not
if ! git cat-file -e "${last_commit}^{commit}" 2>/dev/null; then
echo "[WARN] Last commit from build-info.json not found, using last 10 commits"
last_commit=""
fi
echo -e "\n## $(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> "$changelog"
git log -n 10 --pretty=format:"- %s (%an)" \
--no-merges \
--invert-grep \
--grep="Update changelogs on" >> "$changelog"
done
- name: Commit and push changelogs
run: |
git config user.name "${{ secrets.GIT_USERNAME }}"
git config user.email "${{ secrets.GIT_EMAIL }}"
if git status --porcelain | grep .; then
# Create a temporary branch
TEMP_BRANCH="tmp-changelog-$(date -u +%s)"
git checkout -b "$TEMP_BRANCH"
git add */CHANGES.md
git commit -m "Update changelogs on $(date -u +'%Y-%m-%dT%H:%M:%SZ')" --no-verify
# Push temporary branch
git push origin "$TEMP_BRANCH"
# Merge temporary branch into main safely
git checkout main
git fetch origin main
git merge --no-ff --no-edit "$TEMP_BRANCH"
# Push main branch
git push origin main
# Delete temporary branch remotely
git push origin --delete "$TEMP_BRANCH" || true
else
echo "[INFO] No changelog changes to commit."
fi
-165
View File
@@ -580,168 +580,3 @@
- Update build-info on 2026-02-22T13:01:00Z (fithwum) - Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum) - Update build-info on 2026-02-15T13:01:30Z (fithwum)
- Update build-info on 2026-02-08T13:01:01Z (fithwum) - Update build-info on 2026-02-08T13:01:01Z (fithwum)
## 2026-04-19T13:02:08Z
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
- Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum)
## 2026-05-24T17:00:31Z
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
## 2026-05-27T21:40:57Z
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
## 2026-05-27T21:53:44Z
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
## 2026-05-31T13:01:59Z
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
## 2026-06-07T13:01:55Z
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
## 2026-06-14T13:01:37Z
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
## 2026-06-20T21:01:55Z
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
## 2026-06-21T21:16:18Z
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
## 2026-06-28T21:16:42Z
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
## 2026-07-05T21:16:58Z
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
## 2026-07-06T14:30:09Z
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
## 2026-07-12T21:16:51Z
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
## 2026-07-19T13:13:09Z
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
## 2026-07-19T21:17:01Z
- Update build-info on 2026-07-19T21:16:50Z (fithwum)
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
-2
View File
@@ -1,8 +1,6 @@
FROM alpine:latest FROM alpine:latest
LABEL maintainer="fithwum" LABEL maintainer="fithwum"
ENV TS_VERSION=""
# URL's for files # URL's for files
ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/alpine/files/Install_Script.sh ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/alpine/files/Install_Script.sh
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"version": "alpine", "version": "alpine",
"commit": "8a41b36eba9d6215b4d3afa3bd836d83577171ea", "commit": "dbed11e8c5d789941766149e41b536a713270b39",
"build_time": "2026-07-19T21:16:50Z", "build_time": "2026-04-12T13:01:19Z",
"image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:alpine", "image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:alpine",
"digest": "\nunknown", "digest": "\nunknown",
"image_size": "0B", "image_size": "0B",
+4 -22
View File
@@ -3,33 +3,15 @@
# All rights reserved # All rights reserved
# Variables. # Variables.
# echo " " echo " "
# echo "Checking for new server version from Teamspeak." echo "Checking for new server version from Teamspeak."
# TS_VERSION=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq --raw-output '.linux.x86.version') TS_VERSION=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq --raw-output '.linux.x86.version')
CHANGELOG=/ts3server/CHANGELOG_$TS_VERSION CHANGELOG=/ts3server/CHANGELOG_$TS_VERSION
# echo "Latest server version from Teamspeak:$TS_VERSION" echo "Latest server version from Teamspeak:$TS_VERSION"
TS_FILES=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/files TS_FILES=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/files
TS_SERVER=https://files.teamspeak-services.com/releases/server/$TS_VERSION/teamspeak3-server_linux_amd64-$TS_VERSION.tar.bz2 TS_SERVER=https://files.teamspeak-services.com/releases/server/$TS_VERSION/teamspeak3-server_linux_amd64-$TS_VERSION.tar.bz2
if [ "$ACCEPT_EULA" = "true" ]; then
echo "INFO ! Accepting EULA (one-time)"
sed -i 's/eula=false/eula=true/' "$EULA_FILE" 2>/dev/null \
|| echo "eula=true" > "$EULA_FILE"
touch "$EULA_MARKER"
elif [ "$ACCEPT_EULA" = "false" ]; then
echo "WARNING ! EULA not accepted on first run"
echo "WARNING ! Set ACCEPT_EULA=true to proceed"
sleep infinity
else
echo "ERROR ! ACCEPT_EULA must be set to true or false on first run"
sleep infinity
fi
# Main install (alpine). # Main install (alpine).
# Check for files in /ts3server and download/create if needed. # Check for files in /ts3server and download/create if needed.
if [ -e "$CHANGELOG" ] if [ -e "$CHANGELOG" ]
-165
View File
@@ -525,168 +525,3 @@
- Update build-info on 2026-02-22T13:01:00Z (fithwum) - Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum) - Update build-info on 2026-02-15T13:01:30Z (fithwum)
- Update build-info on 2026-02-08T13:01:01Z (fithwum) - Update build-info on 2026-02-08T13:01:01Z (fithwum)
## 2026-04-19T13:02:08Z
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
- Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum)
## 2026-05-24T17:00:31Z
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
## 2026-05-27T21:40:57Z
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
## 2026-05-27T21:53:44Z
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
## 2026-05-31T13:01:59Z
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
## 2026-06-07T13:01:55Z
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
## 2026-06-14T13:01:37Z
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
## 2026-06-20T21:01:55Z
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
## 2026-06-21T21:16:18Z
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
## 2026-06-28T21:16:42Z
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
## 2026-07-05T21:16:59Z
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
## 2026-07-06T14:30:09Z
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
## 2026-07-12T21:16:51Z
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
## 2026-07-19T13:13:09Z
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
## 2026-07-19T21:17:01Z
- Update build-info on 2026-07-19T21:16:50Z (fithwum)
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
-2
View File
@@ -1,8 +1,6 @@
FROM gitea.fithwum.tech/fithwum/debian-base:bookworm FROM gitea.fithwum.tech/fithwum/debian-base:bookworm
LABEL maintainer="fithwum" LABEL maintainer="fithwum"
# ENV TS_VERSION=""
# URL's for files # URL's for files
ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/basic/files/Install_Script.sh ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/basic/files/Install_Script.sh
+2 -2
View File
@@ -1,7 +1,7 @@
{ {
"version": "basic", "version": "basic",
"commit": "8a41b36eba9d6215b4d3afa3bd836d83577171ea", "commit": "dbed11e8c5d789941766149e41b536a713270b39",
"build_time": "2026-07-19T21:16:50Z", "build_time": "2026-04-12T13:01:19Z",
"image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:basic", "image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:basic",
"digest": "\nunknown", "digest": "\nunknown",
"image_size": "0B", "image_size": "0B",
+5
View File
@@ -6,3 +6,8 @@ docker build --pull --rm -f "alpine/Dockerfile" -t gitea.fithwum.tech/fithwum/te
docker build --pull --rm -f "debian/Dockerfile" -t gitea.fithwum.tech/fithwum/teamspeak-server:debian "debian" docker build --pull --rm -f "debian/Dockerfile" -t gitea.fithwum.tech/fithwum/teamspeak-server:debian "debian"
docker build --pull --rm -f "basic/Dockerfile" -t gitea.fithwum.tech/fithwum/teamspeak-server:basic "basic" docker build --pull --rm -f "basic/Dockerfile" -t gitea.fithwum.tech/fithwum/teamspeak-server:basic "basic"
docker push -a gitea.fithwum.tech/fithwum/teamspeak-server docker push -a gitea.fithwum.tech/fithwum/teamspeak-server
docker build --pull --rm -f "alpine/Dockerfile" -t fithwum/teamspeak-server:alpine "alpine"
docker build --pull --rm -f "debian/Dockerfile" -t fithwum/teamspeak-server:debian "debian"
docker build --pull --rm -f "basic/Dockerfile" -t fithwum/teamspeak-server:basic "basic"
docker push -a fithwum/teamspeak-server
-165
View File
@@ -580,168 +580,3 @@
- Update build-info on 2026-02-22T13:01:00Z (fithwum) - Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum) - Update build-info on 2026-02-15T13:01:30Z (fithwum)
- Update build-info on 2026-02-08T13:01:01Z (fithwum) - Update build-info on 2026-02-08T13:01:01Z (fithwum)
## 2026-04-19T13:02:08Z
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
- Update build-info on 2026-02-22T13:01:00Z (fithwum)
- Update build-info on 2026-02-15T13:01:30Z (fithwum)
## 2026-05-24T17:00:31Z
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
- Update build-info on 2026-03-08T13:01:16Z (fithwum)
- Update build-info on 2026-03-01T13:01:40Z (fithwum)
## 2026-05-27T21:40:57Z
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
- Update build-info on 2026-03-22T13:01:35Z (fithwum)
- Update build-info on 2026-03-15T13:01:33Z (fithwum)
## 2026-05-27T21:53:44Z
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
- Update build-info on 2026-03-29T13:01:54Z (fithwum)
## 2026-05-31T13:01:59Z
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
- Update build-info on 2026-04-05T13:01:02Z (fithwum)
## 2026-06-07T13:01:55Z
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
- Update build-info on 2026-04-12T13:01:19Z (fithwum)
## 2026-06-14T13:01:37Z
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
- update (fithwum)
- Update build-info on 2026-04-19T13:02:00Z (fithwum)
## 2026-06-20T21:01:55Z
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
- Update build-info on 2026-05-24T17:00:20Z (fithwum)
## 2026-06-21T21:16:18Z
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
- update to remove autoupdate as 3.13.8 is broken (fithwum)
## 2026-06-28T21:16:42Z
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
- Update build-info on 2026-05-27T21:40:47Z (fithwum)
## 2026-07-05T21:16:59Z
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
- Update build-info on 2026-05-27T21:53:34Z (fithwum)
- test (fithwum)
## 2026-07-06T14:30:09Z
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
- Update build-info on 2026-05-31T13:01:50Z (fithwum)
## 2026-07-12T21:16:51Z
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
- Update build-info on 2026-06-14T13:01:30Z (fithwum)
- Update build-info on 2026-06-07T13:01:48Z (fithwum)
## 2026-07-19T13:13:09Z
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
- update (fithwum)
## 2026-07-19T21:17:01Z
- Update build-info on 2026-07-19T21:16:50Z (fithwum)
- Update build-info on 2026-07-19T13:13:00Z (fithwum)
- files (fithwum)
- Update build-info on 2026-07-12T21:16:42Z (fithwum)
- Update build-info on 2026-07-06T14:29:59Z (fithwum)
- updates to autoupdate (fithwum)
- Update build-info on 2026-07-05T21:16:49Z (fithwum)
- Update build-info on 2026-06-28T21:16:33Z (fithwum)
- Update build-info on 2026-06-21T21:16:09Z (fithwum)
- Update build-info on 2026-06-20T21:01:40Z (fithwum)
-3
View File
@@ -1,9 +1,6 @@
FROM gitea.fithwum.tech/fithwum/debian-base:bookworm FROM gitea.fithwum.tech/fithwum/debian-base:bookworm
LABEL maintainer="fithwum" LABEL maintainer="fithwum"
ENV AUTO_UPDATE="true"
ENV TS_VERSION=""
# URL's for files # URL's for files
ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/debian/files/Install_Script.sh ARG INSTALL_SCRIPT=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/debian/files/Install_Script.sh
+5 -5
View File
@@ -1,10 +1,10 @@
{ {
"version": "debian", "version": "debian",
"commit": "8a41b36eba9d6215b4d3afa3bd836d83577171ea", "commit": "dbed11e8c5d789941766149e41b536a713270b39",
"build_time": "2026-07-19T21:16:50Z", "build_time": "2026-04-12T13:01:19Z",
"image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:debian", "image_tag": "gitea.fithwum.tech/fithwum/teamspeak-server:debian",
"digest": "gitea.fithwum.tech/fithwum/teamspeak-server@sha256:449a6a3185c480400082ecd3fd4139eedbc326b33a7749e3a59f17e55ca29850", "digest": "gitea.fithwum.tech/fithwum/teamspeak-server@sha256:ab56bb4473b57ebd573feb3d815f89ee9ead30cb3656625ffb9fb27c0972c514",
"image_size": "290MB", "image_size": "405MB",
"image_size_bytes": 303773932, "image_size_bytes": 423930624,
"base_digest": "unknown" "base_digest": "unknown"
} }
+5 -20
View File
@@ -3,26 +3,11 @@
# All rights reserved # All rights reserved
# Variables. # Variables.
# echo " " echo " "
# echo "Checking server version from Teamspeak." echo "Checking server version from Teamspeak."
# TS_VERSION=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq --raw-output '.linux.x86.version') TS_VERSION=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq --raw-output '.linux.x86.version')
# CHANGELOG=/ts3server/CHANGELOG_$TS_VERSION CHANGELOG=/ts3server/CHANGELOG_$TS_VERSION
# echo "Latest server version from Teamspeak:$TS_VERSION." echo "Latest server version from Teamspeak:$TS_VERSION."
if [ "$AUTO_UPDATE" = "true" ]
then
echo "INFO ! Teamspeak will auto update to the latest version."
echo "Checking server version from Teamspeak."
TS_VERSION=$(curl -s "https://www.teamspeak.com/versions/server.json" | jq --raw-output '.linux.x86.version')
CHANGELOG=/ts3server/CHANGELOG_$TS_VERSION
echo "Latest server version from Teamspeak:$TS_VERSION."
elif [ "$AUTO_UPDATE" = "false" ]
then
echo "INFO ! The version you selected will be installed."
else
echo "ERROR ! ACCEPT_EULA must be set to true or false on first run"
sleep infinity
fi
TS_FILES=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/files TS_FILES=https://gitea.fithwum.tech/fithwum/teamspeak-server/raw/branch/main/files
TS_SERVER=https://files.teamspeak-services.com/releases/server/$TS_VERSION/teamspeak3-server_linux_amd64-$TS_VERSION.tar.bz2 TS_SERVER=https://files.teamspeak-services.com/releases/server/$TS_VERSION/teamspeak3-server_linux_amd64-$TS_VERSION.tar.bz2