Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
3dec409169
|
|||
|
4130cc4269
|
|||
|
0893d21ded
|
|||
|
4278fd530d
|
|||
|
483b0fd7b0
|
|||
|
c7f2c99c6b
|
|||
|
1d3ae30cc9
|
|||
|
8b30c88a6a
|
|||
|
0fc4717a05
|
|||
|
2e68ad7323
|
|||
|
792465dab2
|
+2
-1
@@ -4,4 +4,5 @@ navidrome-upload.service
|
||||
.idea/
|
||||
.env
|
||||
/README.md
|
||||
__pycache__/
|
||||
__pycache__/
|
||||
*.deb
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# Navidome-Uploader Dockerfile for building .deb packages
|
||||
# Arian Nasr
|
||||
# May 9, 2026
|
||||
|
||||
FROM debian:13-slim
|
||||
|
||||
# Prevent interactive prompts
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential \
|
||||
debhelper \
|
||||
devscripts \
|
||||
fakeroot \
|
||||
python3 \
|
||||
python3-venv \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /build/src
|
||||
|
||||
RUN mkdir -p /dist
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN chmod +x release/build-deb.sh
|
||||
|
||||
CMD ["sh", "-c", "./release/build-deb.sh && mv ../*.deb /dist/"]
|
||||
Vendored
+6
@@ -1,3 +1,9 @@
|
||||
navidrome-uploader (0.1.0-2) unstable; urgency=high
|
||||
|
||||
* Run pip install stage as navidrome-uploader user instead of root
|
||||
|
||||
-- Arian Nasr <arian@2ari.ca> Tue, 14 Apr 2026 12:11:00 -0400
|
||||
|
||||
navidrome-uploader (0.1.0-1) unstable; urgency=medium
|
||||
|
||||
* Disable gunicorn control socket in systemd service unit
|
||||
|
||||
Vendored
+1
-1
@@ -5,5 +5,5 @@ requirements.txt opt/navidrome-uploader/
|
||||
templates/* opt/navidrome-uploader/templates/
|
||||
static/css/* opt/navidrome-uploader/static/css/
|
||||
static/js/* opt/navidrome-uploader/static/js/
|
||||
contrib/navidrome-uploader.service lib/systemd/system/
|
||||
contrib/navidrome-uploader.service lib/systemd/system/navidrome-uploader.service
|
||||
|
||||
|
||||
Vendored
+14
-10
@@ -3,20 +3,24 @@ set -e
|
||||
|
||||
APP_DIR="/opt/navidrome-uploader"
|
||||
VENV_DIR="${APP_DIR}/venv"
|
||||
APP_USER="navidrome-uploader"
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
python3 -m venv "${VENV_DIR}"
|
||||
"${VENV_DIR}/bin/pip" install --no-cache-dir --upgrade pip
|
||||
"${VENV_DIR}/bin/pip" install --no-cache-dir -r "${APP_DIR}/requirements.txt"
|
||||
configure)
|
||||
chown -R "$APP_USER:$APP_USER" "$APP_DIR"
|
||||
|
||||
if command -v systemctl > /dev/null 2>&1; then
|
||||
systemctl daemon-reload || true
|
||||
systemctl enable navidrome-uploader.service || true
|
||||
systemctl restart navidrome-uploader.service || true
|
||||
fi
|
||||
;;
|
||||
runuser -u "$APP_USER" -- python3 -m venv "$VENV_DIR"
|
||||
runuser -u "$APP_USER" -- "$VENV_DIR/bin/pip" install --no-cache-dir --upgrade pip
|
||||
runuser -u "$APP_USER" -- "$VENV_DIR/bin/pip" install --no-cache-dir -r "$APP_DIR/requirements.txt"
|
||||
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl daemon-reload || true
|
||||
systemctl enable navidrome-uploader.service || true
|
||||
systemctl restart navidrome-uploader.service || true
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
||||
|
||||
|
||||
Vendored
+1
@@ -8,6 +8,7 @@ fi
|
||||
if [ "$1" = "purge" ]; then
|
||||
rm -rf /etc/default/navidrome-uploader
|
||||
rm -rf /opt/navidrome-uploader/venv
|
||||
rm -rf /opt/navidrome-uploader/__pycache__
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
||||
@@ -8,9 +8,11 @@ from werkzeug.utils import secure_filename
|
||||
|
||||
UPLOAD_FOLDER = os.environ.get('NAVIDROME_MUSIC_FOLDER', '/opt/navidrome/music')
|
||||
ALLOWED_EXTENSIONS = {'flac', 'mp3', 'wav'}
|
||||
MAX_CONTENT_LENGTH = 500 * 1024 * 1024
|
||||
|
||||
app = Flask(__name__)
|
||||
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
|
||||
app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
|
||||
|
||||
def allowed_file(filename):
|
||||
return '.' in filename and \
|
||||
|
||||
+4
-2
@@ -1,8 +1,10 @@
|
||||
blinker==1.9.0
|
||||
click==8.3.2
|
||||
click==8.3.3
|
||||
Flask==3.1.3
|
||||
itsdangerous==2.2.0
|
||||
Jinja2==3.1.6
|
||||
MarkupSafe==3.0.3
|
||||
Werkzeug==3.1.8
|
||||
gunicorn==25.3.0
|
||||
gunicorn==26.0.0
|
||||
pip==26.1.1
|
||||
packaging==26.2
|
||||
|
||||
Reference in New Issue
Block a user