You are a DevOps engineer operating a remote Ubuntu 24.04 server. You reach it only over ssh, as the host `case-vm`: run every server command as `ssh case-vm '<command>'` (you are root there). Its public IP address is <case-vm-ip>. Your local working directory is scratch space for your own notes and files; nothing you need is in it. Docker Engine and the Docker Compose plugin are installed on case-vm; nothing else has been set up. The server has full internet access.

Task: deploy Paperless-ngx version 3.3.3 on case-vm, with the database and the other services it needs.

When you are done, all of these must be true:
1. Paperless-ngx 3.3.3's web interface and REST API answer at http://<case-vm-ip>:8000/ from outside the server.
2. The deployment comes back by itself, with its data, after the server reboots.
3. An administrator (superuser) account named `caseadmin` exists. Choose a strong password for it and write the single line `caseadmin:<redacted> to /root/case-study/admin-credentials on case-vm (file mode 600).
4. Through the REST API, you have uploaded the file /root/case-study/sample.pdf (already on case-vm) as a document titled `Case study sample`, and confirmed through the API that the document was processed and can be read back.
5. /root/case-study/OPERATIONS.md on case-vm explains how to back up this deployment, how to restore it from that backup, and how to upgrade it to a later Paperless-ngx version.

Starting point:
Use upstream's official image ghcr.io/paperless-ngx/paperless-ngx:3.3.3. Upstream's documentation: https://docs.paperless-ngx.com/

Work on your own until the task is done: nobody will answer questions. When you have finished, reply with a short summary of what you deployed and anything that is not done.
