Skip to content

daemonless/immich-public-proxy

Repository files navigation

Immich Public Proxy

Build Status Last Commit

Share Immich photos and albums publicly without exposing the Immich instance itself.

Port 3000
Registry ghcr.io/daemonless/immich-public-proxy
Source https://github.com/daemonless/immich-public-proxy
Website https://github.com/alangrainger/immich-public-proxy

Version Tags

Tag Description Best For
latest Upstream Binary. Built from official release. Most users. Matches Linux Docker behavior.

Prerequisites

Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.

Deployment

Podman Compose

services:
  immich-public-proxy:
    image: "ghcr.io/daemonless/immich-public-proxy:latest"
    container_name: immich-public-proxy
    environment:
      - IMMICH_URL=http://your-internal-immich-server:2283  # URL of your (private) Immich instance, e.g. http://immich-server:2283
      - PUBLIC_BASE_URL=https://your-proxy-url.com  # Public base URL this proxy is served from, no trailing slash (optional - derived from the request hostname if unset)
      - TZ=UTC  # Timezone for the container
    ports:
      - "3000:3000"
    restart: unless-stopped

AppJail Director

.env:

DIRECTOR_PROJECT=immich-public-proxy
IMMICH_URL=http://your-internal-immich-server:2283
PUBLIC_BASE_URL=https://your-proxy-url.com
TZ=UTC

appjail-director.yml:

options:
  - virtualnet: ':<random> default'
  - nat:
services:
  immich-public-proxy:
    name: immich_public_proxy
    options:
      - container: 'boot args:--pull'
    oci:
      user: root
      environment:
        - IMMICH_URL: !ENV '${IMMICH_URL}'
        - PUBLIC_BASE_URL: !ENV '${PUBLIC_BASE_URL}'
        - TZ: !ENV '${TZ}'

Makejail:

ARG tag=latest

OPTION overwrite=force
OPTION from=ghcr.io/daemonless/immich-public-proxy:${tag}

Podman CLI

podman run -d --name immich-public-proxy \
  -p 3000:3000 \
  -e IMMICH_URL=http://your-internal-immich-server:2283 \
  -e PUBLIC_BASE_URL=https://your-proxy-url.com \
  -e TZ=UTC \
  ghcr.io/daemonless/immich-public-proxy:latest

Ansible

- name: Deploy immich-public-proxy
  containers.podman.podman_container:
    name: immich-public-proxy
    image: "ghcr.io/daemonless/immich-public-proxy:latest"
    state: started
    restart_policy: always
    env:
      IMMICH_URL: "http://your-internal-immich-server:2283"
      PUBLIC_BASE_URL: "https://your-proxy-url.com"
      TZ: "UTC"
    ports:
      - "3000:3000"

Access at: http://localhost:3000

Parameters

Environment Variables

Variable Default Description
IMMICH_URL http://your-internal-immich-server:2283 URL of your (private) Immich instance, e.g. http://immich-server:2283
PUBLIC_BASE_URL https://your-proxy-url.com Public base URL this proxy is served from, no trailing slash (optional - derived from the request hostname if unset)
TZ UTC Timezone for the container

Ports

Port Protocol Description
3000 TCP Web UI

This image is part of the Immich Stack.

Architectures: amd64 User: bsd (UID/GID via PUID/PGID, defaults to 1000:1000) Base: FreeBSD 15.0


Need help? Join our Discord community.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors