Déployez Paperless-ngx sur Pethost en un clic
Une archive de documents avec OCR et recherche plein texte
Ce qui se passe
- Vous vous connectez à Pethost ou créez un compte, avec une clé d’accès, GitHub ou Google.
- Pas encore de machine ? Vous choisissez une offre, et nous en préparons une pour vous. Le lien attend dans votre navigateur qu’elle soit prête.
- Nouveau projet s’ouvre sur l’application. Vous remplissez ce qu’elle demande et cliquez sur Créer le projet : Mot de passe administrateur.
- En une minute ou deux, l’application tourne à sa propre adresse en HTTPS. Ses secrets sont créés pour elle au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : son compose.yaml, son .env, ses logs et un terminal sont dans le panel, et votre agent peut le modifier, revenir à une version précédente ou le restaurer.
Premiers pas
Connectez-vous avec le nom d’utilisateur admin et le mot de passe que vous avez choisi. Les documents sont lus comme de l’anglais tant que vous n’avez pas changé la langue de l’OCR dans Configuration.
Ce qui tourne
Le template, c’est ce compose.yaml et les variables qu’il écrit dans le .env du projet. Pethost exécute le fichier tel qu’il est écrit.
services:
broker:
image: valkey/valkey:9-alpine
restart: unless-stopped
volumes:
- redisdata:/data
healthcheck:
test: ["CMD-SHELL", "valkey-cli ping | grep -q PONG"]
interval: 5s
timeout: 3s
retries: 10
db:
image: postgres:18
restart: unless-stopped
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql
healthcheck:
# Over TCP: the server of the first start's initialisation listens on
# the socket alone, and is not the one the app will reach.
test: ["CMD-SHELL", "pg_isready -h 127.0.0.1 -U paperless -d paperless"]
interval: 5s
timeout: 3s
retries: 20
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:3.3
restart: unless-stopped
depends_on:
db:
condition: service_healthy
broker:
condition: service_healthy
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBENGINE: postgresql
PAPERLESS_DBHOST: db
PAPERLESS_DBPASS: ${POSTGRES_PASSWORD}
PAPERLESS_URL: ${PAPERLESS_URL}
PAPERLESS_SECRET_KEY: ${PAPERLESS_SECRET_KEY}
# The first start makes this superuser, so no sign-up page is left open.
PAPERLESS_ADMIN_USER: admin
PAPERLESS_ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# TLS ends at the machine's proxy, which says so in X-Forwarded-Proto.
PAPERLESS_PROXY_SSL_HEADER: '["HTTP_X_FORWARDED_PROTO", "https"]'
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- export:/usr/src/paperless/export
- consume:/usr/src/paperless/consume
healthcheck:
# The image's own check, with time for the first start's migrations.
test: ["CMD", "curl", "-fs", "-S", "-L", "--max-time", "2", "http://localhost:8000"]
interval: 30s
timeout: 10s
retries: 5
start_period: 180s
volumes:
redisdata:
pgdata:
data:
media:
export:
consume: