Skip to main content

Other needs

Expose web server to internet

Using Caddy this becomes easy. Deploy the server with

/etc/caddy/Caddyfile
your-server-name.duckdns.org {

# Generate password storing hash with: caddy hash-password
basic_auth {
# Username "iib", password "bewegung"
iib $2a$14$basROD3Y0cLE.VqXd.h89.akCQDKzhp6IH9ND2CRFyEICkMrKn3AO
}

root /var/www/iib/

}

Usage of Immich API

To make use of Immich API you need to allow CORS, example

/etc/caddy/Caddyfile
immich.your-server-name.duckdns.org {

header {
Access-Control-Allow-Origin https://your-server-name.duckdns.org
Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS"
Access-Control-Allow-Headers "Content-Type, x-api-key"
}

@options method OPTIONS
respond @options 204

reverse_proxy http://localhost:2283

}

Alternatives

  • Add support for https
    • E.g. via Let's encrypt
  • Use user authentication via
    • Authelia, or
    • Authentik, or
    • Client certificates, or
    • Port forwarding over SSH (e.g. using Termius on Android)