Keep Aura and Nixplay photo frames filled from your own PhotoPrism and/or Immich library
1.1K
Keeps your digital photo frames filled from your own PhotoPrism and/or Immich library.
Framewrk watches PhotoPrism and Immich, picks the photos that match your rules, and pushes them to Aura and Nixplay frames at the right size and shape for each one. It remembers what it has already sent, so nothing is uploaded twice, and it takes photos back off a frame when they no longer qualify.
Documentation and support: https://github.com/smichalczyk/framewrk Website: https://hangframewrk.io/
The Framewrk iOS beta can send photos without PhotoPrism or Immich. Connect Aura or Nixplay and configure a frame in the console, then connect the app to your HTTPS server address using your console password. The app stores a revocable device token in Keychain.
Choose up to 50 photos in the app, or select photos in Photos or another app and choose Share → Framewrk. Pick the frames and send. Background uploads continue after the sheet closes; Recent confirms when your server receives each photo. Nixplay sends use configured albums and disclose other frames playing them.
Frame orientation rules apply. Direct photos stay on the frames independently of library selection. The console’s Direct sends page shows delivery history and orientation skips, and Settings → Connected devices revokes a device. Full images are retained for retries for up to 7 days; previews last 90 days. Allow at least 17 MiB request bodies through your HTTPS reverse proxy.
services:
framewrk:
image: smichalczyk/framewrk:latest
container_name: framewrk
restart: unless-stopped
ports:
- "8770:8770"
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
volumes:
- ./data:/data
docker compose up -d
docker compose logs | grep -A2 "Admin password"
Open http://<host>:8770 and sign in with the password from the log. You are
asked to choose your own straight away. Then point it at PhotoPrism, Immich, or
both, add your frames, and press Sync now.
Nothing needs configuring before the first start.
| Tag | What it is |
|---|---|
latest | The current release |
1, 1.2 | Newest release in that major or minor line |
1.2.3 | Exactly that release |
linux/amd64 and linux/arm64.
| Variable | Default | What it does |
|---|---|---|
PUID / PGID | unset | Own the data volume as this user instead of root |
TZ | UTC | Otherwise every timestamp is UTC |
DB_PATH | /data/sync.db | Database location |
FRAMEWRK_PORT | 8770 | Console port |
FRAMEWRK_BIND | 0.0.0.0 | Interface to listen on |
FRAMEWRK_ADMIN_PASSWORD | — | Set the first-run password instead of generating one |
FRAMEWRK_TRUST_PROXY | off | Believe X-Forwarded-*. Only behind a reverse proxy |
Everything else is configured in the console and stored in /data/sync.db.
Copy that one file and you have copied the installation — use
sqlite3 sync.db ".backup out.db" rather than cp, which silently misses
anything still in the write-ahead log.
Immich 3.1 or newer is supported. Configure its URL and an API key in the console; the key needs access to read and download assets and read albums.
The shared Quality setting uses Immich's optional star rating. 0 does not
filter on rating; 1 through 5 select that rating and above. Enable ratings
in Immich at User Settings → Features → Rating before assigning stars.
Free to use, not open source. Personal use only; no resale or redistribution.
See the LICENSE file in the image at /app/LICENSE.
Framewrk is not affiliated with Aura, Nixplay, PhotoPrism or Immich.
Run this in the Proxmox host Shell and follow the default/advanced wizard:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/smichalczyk/framewrk/main/proxmox/create.sh)"
It downloads Debian 12, creates an unprivileged LXC and installs Framewrk without Docker inside LXC. See the Proxmox installation guide and the installer assets on GitHub Releases. Real Proxmox validation is pending; use a new test container.
Content type
Image
Digest
sha256:c964d51ce…
Size
71 MB
Last updated
3 days ago
docker pull smichalczyk/framewrk