chore: sync ISO build configs with live server state

- Add nginx snippets (PWA, HTTPS app proxies) to image-recipe/configs/
- Update build script Dockerfile to install openssl, generate self-signed
  SSL cert, copy nginx snippets, and create Cloud dummy directories
- Ensures fresh ISO installs have working HTTPS, PWA installability,
  and pre-created Cloud storage folders

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-05 08:34:53 +00:00
co-authored by Claude Opus 4.6
parent 0bc7251e22
commit 1b2021cece
4 changed files with 222 additions and 3 deletions
+25 -2
View File
@@ -134,7 +134,7 @@ FROM debian:bookworm
ENV DEBIAN_FRONTEND=noninteractive
# Install all packages we need including nginx and podman
# Install all packages we need including nginx, podman, and openssl (for self-signed certs)
RUN apt-get update && apt-get install -y \
linux-image-amd64 \
grub-efi-amd64 \
@@ -153,6 +153,7 @@ RUN apt-get update && apt-get install -y \
htop \
vim-tiny \
ca-certificates \
openssl \
locales \
console-setup \
keyboard-configuration \
@@ -180,6 +181,17 @@ RUN rm -f /etc/nginx/sites-enabled/default
COPY nginx-archipelago.conf /etc/nginx/sites-available/archipelago
RUN ln -sf /etc/nginx/sites-available/archipelago /etc/nginx/sites-enabled/archipelago
# Install nginx snippets (PWA config, HTTPS app proxies)
COPY snippets/ /etc/nginx/snippets/
# Generate self-signed SSL certificate for HTTPS (PWA install requires secure context)
RUN mkdir -p /etc/archipelago/ssl && \
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
-keyout /etc/archipelago/ssl/archipelago.key \
-out /etc/archipelago/ssl/archipelago.crt \
-subj "/C=XX/ST=Bitcoin/L=Node/O=Archipelago/CN=archipelago" && \
chmod 600 /etc/archipelago/ssl/archipelago.key
# Create archipelago systemd service
COPY archipelago.service /etc/systemd/system/archipelago.service
@@ -189,10 +201,11 @@ RUN systemctl enable NetworkManager || true && \
systemctl enable nginx || true && \
systemctl enable archipelago || true
# Create directories
# Create directories (including Cloud storage for FileBrowser)
RUN mkdir -p /var/lib/archipelago/{data,config,containers} && \
mkdir -p /etc/archipelago && \
mkdir -p /opt/archipelago/{bin,scripts,web-ui} && \
mkdir -p /var/lib/archipelago/data/cloud/{Documents,Photos,Music,Videos,Downloads} && \
chown -R archipelago:archipelago /var/lib/archipelago /opt/archipelago
# Clean up
@@ -200,6 +213,16 @@ RUN apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
DOCKERFILE
# Copy nginx snippets for HTTPS (PWA, app proxies)
if [ -d "$SCRIPT_DIR/configs/snippets" ]; then
mkdir -p "$WORK_DIR/snippets"
cp "$SCRIPT_DIR/configs/snippets/"*.conf "$WORK_DIR/snippets/" 2>/dev/null || true
echo " Using nginx snippets from configs/snippets/"
else
mkdir -p "$WORK_DIR/snippets"
echo " ⚠ No nginx snippets found, HTTPS features may not work"
fi
# Use nginx config from configs/ (includes app proxies for Nextcloud, Vaultwarden, Immich, Penpot)
if [ -f "$SCRIPT_DIR/configs/nginx-archipelago.conf" ]; then
cp "$SCRIPT_DIR/configs/nginx-archipelago.conf" "$WORK_DIR/nginx-archipelago.conf"