# SPDX-FileCopyrightText: 2026 ProactiveProject # SPDX-License-Identifier: GPL-3.0-or-later # # PocketBase per Agenda di Casa, versione "con il tuo server" — variante per Coolify SENZA repository # (risorsa "Dockerfile"): la migrazione si scarica dal sito del progetto invece di copiarla da una cartella. # Il Dockerfile normale e la migrazione sono anche nello zip del codice sorgente: https://proactiveproject.eu/app/ # Questo file è software libero: GNU GPL versione 3 o successiva, come l'app. # PocketBase è software libero con licenza MIT. # # Il programma PocketBase NON è in questo repository: viene scaricato dal sito ufficiale # mentre la "scatola" viene costruita, nella versione giusta per il tuo computer # (PC normale = amd64, Raspberry Pi = arm64), e viene CONTROLLATO con la sua impronta # SHA-256: se il file scaricato non è quello ufficiale, la costruzione si ferma. # # I dati stanno in /pb/pb_data: in Coolify questa cartella DEVE essere un volume # permanente (Persistent Storage), altrimenti si perdono a ogni Deploy. FROM alpine:3.24 # --- Le righe da cambiare quando aggiorni PocketBase (vedi LEGGIMI.md) -------------- # Versione di PocketBase. ARG PB_VERSION=0.41.1 # Impronte SHA-256 dei due file ufficiali di QUESTA versione, copiate dal file # checksums.txt pubblicato insieme a PocketBase. Se cambi PB_VERSION, cambia anche queste. ARG PB_SHA256_AMD64=7504ec99a85fe405fc9941b4d94bdea20733b53707c8251b66fd0daa1444347e ARG PB_SHA256_ARM64=341a249f97f4ff1ba8dfff81d357eb281cd346fbddae8b6ea43193f0647e036d # Indirizzo da cui si scarica. SE LA COSTRUZIONE SI FERMA SUL DOWNLOAD, l'indirizzo è # cambiato: apri pocketbase.io/docs, copia il link del file Linux e metti qui la parte # che viene PRIMA di /vNUMERO/pocketbase_NUMERO_linux_...zip ARG PB_BASE_URL=https://ganigeorgiev.com/meta/pocketbase/pocketbase/download # -------------------------------------------------------------------------------------- ARG TARGETARCH ENV TZ=Europe/Rome RUN apk add --no-cache ca-certificates tzdata unzip curl WORKDIR /pb RUN set -e; \ ARCH="${TARGETARCH}"; \ if [ -z "$ARCH" ]; then case "$(uname -m)" in x86_64) ARCH=amd64 ;; aarch64|arm64) ARCH=arm64 ;; *) echo "Architettura non supportata: $(uname -m)"; exit 1 ;; esac; fi; \ case "$ARCH" in amd64) SUM="${PB_SHA256_AMD64}" ;; arm64) SUM="${PB_SHA256_ARM64}" ;; *) echo "Architettura non supportata: $ARCH"; exit 1 ;; esac; \ URL="${PB_BASE_URL}/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_${ARCH}.zip"; \ echo "Scarico PocketBase: $URL"; \ curl -fL --retry 3 -o /tmp/pb.zip "$URL" || { echo "DOWNLOAD FALLITO: controlla PB_BASE_URL e PB_VERSION in cima al Dockerfile"; exit 1; }; \ echo "${SUM} /tmp/pb.zip" | sha256sum -c - || { echo "IMPRONTA SBAGLIATA: il file scaricato non è quello ufficiale di PocketBase ${PB_VERSION}, oppure le righe PB_SHA256 in cima al Dockerfile sono di un'altra versione. Costruzione fermata."; exit 1; }; \ unzip -o /tmp/pb.zip pocketbase -d /pb; \ rm /tmp/pb.zip; \ chmod +x /pb/pocketbase; \ /pb/pocketbase --version ADD https://proactiveproject.eu/agenda/server/pb_migrations/1761730000_agenda_di_casa.js /pb/pb_migrations/1761730000_agenda_di_casa.js EXPOSE 8090 CMD ["/pb/pocketbase", "serve", "--http=0.0.0.0:8090", "--dir=/pb/pb_data", "--migrationsDir=/pb/pb_migrations"]