chore: clean up contrib/, fix upstream refs, retire lgtm.yml

Remove stale contrib/ files superseded by current tooling:
- contrib/airsonic.service (superseded by install/systemd/)
- contrib/airsonic-systemd-env (superseded by installer override files)
- contrib/deploy.sh (Tomcat-based, not applicable to standalone WAR)
- contrib/release.md (manual process replaced by GitHub Actions)

Fix upstream references in install/:
- install/docker/Dockerfile: update LABEL url to litebito/airsonic-pulse
- install/compose/docker-compose.hsqldb.yaml: rename service/container,
  update image to ghcr.io/litebito/airsonic-pulse
- install/compose/docker-compose.postgres.yaml: update image reference

Fix upstream reference in .github/CONTRIBUTING.md (line 5)

Retire lgtm.yml: LGTM was shut down November 2022; CodeQL workflow
(any_codeql_scan.yml) is the current replacement.

Fix .github/workflows/any_trivy_scan missing .yml extension so GitHub
Actions recognises the workflow file.

Update contrib/i18n_fix_encoding.go: replace deprecated io/ioutil with
io.ReadAll and os.WriteFile (Go 1.16+).

Fix contrib/library_autoupdater.sh: correct misleading comment
("10 minutes") to match actual sleep duration (3600s = 60 minutes).
This commit is contained in:
litebito 2026-04-26 14:05:53 +02:00
parent 3b535f39a8
commit b7918b7899
12 changed files with 12 additions and 194 deletions

View file

@ -7,5 +7,5 @@ litebito/airsonic-pulse development is a community project, and contributions ar
2. **No Breakage** New features or changes to existing ones must not degrade the user experience. This means do not introduce bugs, remove functionality, or make large changes to existing themes/UI without prior discussion in an Issue.
3. **Coding standards** Language best-practices should be followed, comment generously, and avoid "clever" algorithms. Refactoring existing messes is great, but watch out for breakage.
4. **Be bold!** Without contributions, this project will vanish. If you just want to help out, try [submiting a patch](https://github.com/litebito/airsonic-pulse/issues?q=is%3Aissue+is%3Aopen+label%3Apatches-welcome) for an open Issue.
5. **Stay relevant** Issues or commentary that is off-topic or tangential to kagemomiji/airsonic-advanced development is subject to moderation. Questions should be focused on improving documentation to solve a problem. Visit [GitHub Discussions](https://github.com/litebito/airsonic-pulse/discussions)
5. **Stay relevant** Issues or commentary that is off-topic or tangential to litebito/airsonic-pulse development is subject to moderation. Questions should be focused on improving documentation to solve a problem. Visit [GitHub Discussions](https://github.com/litebito/airsonic-pulse/discussions)

View file

@ -1,31 +0,0 @@
# Set the location of the standalone war to use
#JAVA_JAR=/var/airsonic/airsonic.war
# Set any java opts separated by spaces
#JAVA_OPTS=-Xmx700m
# Set a different location for airsonic home.
# If this path is /var/libresonic or even contains "libresonic",
# the data from a previous libresonic can be used as is (i.e. without
# renaming libresonic.properties,db/libresonic*,etc
#AIRSONIC_HOME=/var/airsonic
# Change the port to listen on
#PORT=8080
# Change the path that is listened on
#CONTEXT_PATH=/airsonic
# Add any java args. These are different than JAVA_OPTS in that
# they are passed directly to the program. The default is empty:
#JAVA_ARGS=
# Note that there are several settings for spring boot, not explicitly listed
# here, but can be used in either JAVA_OPTS or JAVA_ARGS. The full list
# can be found here:
# https://docs.spring.io/spring-boot/docs/1.4.5.RELEASE/reference/htmlsingle/#common-application-properties
# For example to set debug across the board:
#JAVA_ARGS=--debug
# Or to change the ip address that is listened on:
#JAVA_ARGS=--server.address=127.0.0.1

View file

@ -1,59 +0,0 @@
[Unit]
Description=Airsonic Media Server
After=remote-fs.target network.target
AssertPathExists=/var/airsonic
[Service]
Type=simple
Environment="JAVA_JAR=/var/airsonic/airsonic.war"
Environment="JAVA_OPTS=-Xmx700m"
Environment="AIRSONIC_HOME=/var/airsonic"
Environment="PORT=8080"
Environment="CONTEXT_PATH=/airsonic"
Environment="JAVA_ARGS="
EnvironmentFile=-/etc/sysconfig/airsonic
ExecStart=/usr/bin/java \
$JAVA_OPTS \
-Dairsonic.home=${AIRSONIC_HOME} \
-Dserver.servlet.context-path=${CONTEXT_PATH} \
-Dserver.port=${PORT} \
-jar ${JAVA_JAR} $JAVA_ARGS
User=airsonic
Group=airsonic
# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
# for details
DevicePolicy=closed
NoNewPrivileges=yes
PrivateDevices=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=@system-service @known
# syscall restrictions. TODO: perhaps could be restricted more.
SystemCallFilter=~@clock @cpu-emulation @debug @module @obsolete @pkey @privileged @raw-io @reboot @sandbox @swap
ReadWritePaths=/var/airsonic
# You can change the following line to `strict` instead of `full`
# if you don't want airsonic to be able to
# write anything on your filesystem outside of AIRSONIC_HOME.
ProtectSystem=full
# You can uncomment the following line if you don't have any media
# in /home/…. This will prevent airsonic from ever reading/writing anything there.
#ProtectHome=true
# You can uncomment the following line if you're not using the OpenJDK.
# This will prevent processes from having a memory zone that is both writeable
# and executeable, making hacker's lifes a bit harder.
#MemoryDenyWriteExecute=yes
[Install]
WantedBy=multi-user.target

View file

@ -1,12 +0,0 @@
#!/bin/bash
# contrib/deploy.sh
# airsonic/airsonic
#
# Helper script to shorten dev/build/deployment
#
sudo systemctl stop tomcat
sudo rm /var/lib/tomcat/webapps/airsonic* -rf
sudo cp airsonic-main/target/airsonic.war /var/lib/tomcat/webapps/
sudo systemctl start tomcat

View file

@ -8,7 +8,7 @@ package main
import (
"fmt"
"io/ioutil"
"io"
"log"
"os"
"path/filepath"
@ -31,7 +31,7 @@ func main() {
}
// Read file data
data, err := ioutil.ReadAll(f)
data, err := io.ReadAll(f)
if err != nil {
log.Fatal(err)
}
@ -46,7 +46,7 @@ func main() {
// If any changes where made write them to file
if string(data) != out {
fmt.Printf("Changes where made for %s\n", path)
if err := ioutil.WriteFile(path, []byte(out), 0644); err != nil {
if err := os.WriteFile(path, []byte(out), 0644); err != nil {
log.Fatal(err)
}
}

View file

@ -54,8 +54,8 @@ for (( ; ; )) do
-e delete \
$dirs
info "Event received, waiting 10 minutes before triggering new scan"
sleep 3600 # Wait 10 minutes before triggering the scan
info "Event received, waiting 60 minutes before triggering new scan"
sleep 3600 # Wait 60 minutes before triggering the scan
trigger_scan
sleep 5
done

View file

@ -1,60 +0,0 @@
Release Steps
=============
1. Ensure changelog is up to date
2. Create a new minor branch if not already exists. Checkout branch
git checkout -b release-X.Y
3. Bump the maven pom
mvn versions:set -DnewVersion=X.Y.Z-RELEASE
4. Commit maven pom changes
5. Create a new tag
git tag -s vX.Y.Z -m 'Release vX.Y.Z'
6. Package
mvn clean verify -P docker
7. Sign sha256sums file
gpg2 --clearsign airsonic-main/target/artifacts-checksums.sha
8. push up branch and tag
git push origin vX.Y.Z
git push -u origin release-X.Y
9. Create new release on github
- Draft new Relase
- Choose existing tag
- Title is "Airsonic X.Y.Z"
- Contents are the relevant entry of the CHANGELOG.md file
- Upload `airsonic.war` and `artifacts-checksums.sha.asc`
10. Update latest docker tag
docker tag airsonic/airsonic:X.Y.Z-RELEASE airsonic/airsonic:latest
11. Docker login with airsonic credentials in `airsonic-passwords` repo
docker login
12. Push images
docker push airsonic/airsonic:X.Y.Z-RELEASE
docker push airsonic/airsonic:latest
13. Checkout master branch and bump maven version to next snapshot version
git checkout master
mvn versions:set -DnewVersion=X.Y+1.0-SNAPSHOT
14. Git commit and push

View file

@ -2,9 +2,9 @@ version: "3"
services:
airsonic-advanced:
image: ghcr.io/kagemomiji/airsonic-advanced
container_name: airsonic-advanced
airsonic-pulse:
image: ghcr.io/litebito/airsonic-pulse
container_name: airsonic-pulse
environment:
- PUID=1000
- PGID=1000

View file

@ -15,7 +15,7 @@ services:
airsonic:
depends_on:
- postgres
image: ghcr.io/kagemomiji/airsonic-advanced
image: ghcr.io/litebito/airsonic-pulse
environment:
- PUID=1000
- PGID=1000

View file

@ -16,8 +16,8 @@ RUN mv WEB-INF/classes/liquibase cliquibase
FROM eclipse-temurin:${IMAGE_JAVA_VERSION}-jre-jammy
LABEL description="Airsonic-Advanced is a free, web-based media streamer, providing ubiquitous access to your music." \
url="https://github.com/kagemomiji/airsonic-advanced"
LABEL description="Airsonic-Pulse is a free, web-based media streamer, providing ubiquitous access to your music." \
url="https://github.com/litebito/airsonic-pulse"
ENV AIRSONIC_PORT=4040 AIRSONIC_DIR=/var CONTEXT_PATH=/ UPNP_PORT=4041 PUID=0 PGID=0

View file

@ -1,20 +0,0 @@
extraction:
javascript:
index:
exclude:
- "airsonic-main/src/main/webapp/script"
include:
- "airsonic-main/src/main/webapp/script/playQueue"
- "airsonic-main/src/main/webapp/script/keyboard_shortcuts.js"
- "airsonic-main/src/main/webapp/script/playQueueCast.js"
- "airsonic-main/src/main/webapp/script/utils.js"
- "airsonic-main/src/main/webapp/script/videoPlayerCast.js"
java:
index:
java_version: 11
build_command:
- "export PATH=/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin:$PATH"
- "export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
- java -version
- javac -version
- mvn package -DskipTests -Dcheckstyle.skip=true