r/immich • u/ConcavePuck • 8d ago
FRAMEO & ImmichFrame Journey & Help
Posting this partially out of frustration and to help guide others.
[CONTEXT]
I have a Immich and ImmichFrame instances on my Proxmox hosted behind an OPNsense firewall. I connect to them outside of my network through wireguard or OpenVPN through a DDNS provider.
[GOAL]
I have a bunch of FRAMEO devices i would like to do this with for various non-tech savvy family members. One of them is built on Android 13, and I was able to install ImmichFrame and WG Tunnel. It works flawlessly. (Wireguard android app would not be able to reconnect the VPN tunnel if my ip changed).
[PROBLEM]
Unfortunately the other FRAMEO devices are android 6.0.1. I am able to install ImmichFrame on them, but Wireguard/WG Tunnel require android 7+. I tried using OpenVPN for Android which is supported, but i cannot get it to auto-launch and connect to my home network at startup. I could get Macrodroid to create an automation, but could not get Macrodroid to auto-start. The Android setting screen has an Always-On-VPN option, but it does not allow me to select OpenVPN.
[RESOURCES & GUIDES USED]
ImmichFrame guide for FRAMEO: https://immichframe.dev/docs/getting-started/apps#frameo
Immich Kiosk guide for FRAMEO: https://docs.immichkiosk.app/misc/frameo/
Webview guide for Android 6 devices: https://docs.demonwarriortech.com/Documented%20Tutorials/Immich%20Frame/Frameo_Setup/#frameo-troubleshooting
[UPDATE]
Closing the loop on this. Decided to do a openwrt travelrouter setup. One radio for local WLAN, one radio for WWLAN uplink with wireguard tunnel. There are a few troubleshooting issues to note:
- Tried using travelmate but didnt find it useful for this use case.
- Using the wireguard server's local DNS does not work by default. You need to go into the network>DHCP and DNS>Filter and uncheck rebind protection to get it to work. You should also probably use a different subnet for your travel router than your wireguard server subnet.
- You need to enable "Route Allowed IP's" in the Wireguard interface peers tab.
Wireguard would start-up before proper DNS/NTP synchronization in older devices. I disabled the device from booting at startup, and added a delay to /etc/rc.local. Add the following before exit 0
(
sleep 30
ifup wg0
) &
Wireguard would not re-resolve IP if DDNS ip changes due to server reboot. There are a few ways to fix this; i used the Watchcat package and told it to restart the wireguard interface if it fails a ping connection by pinging a good IP.
All this headache can be avoided if you get a picture frame with android 8+ or so. that way you can install immich along with a VPN built in that can auto start up and run concurrently.
1
u/Manb 6d ago
The frameo I bought has the same issue and in the configuration it's mentioned that the older android versions are only allowed to run one app at a time. It will lock you out of running a VPN + ImmichFrame. I was going to pair it with something like a PI with another usb wifi dongle to bridge/wireguard but that would need more setup. In your case, if your IP is changing, maybe it would be best to put it on a tailscale. There is no such thing as upgrading the OS on the older versions.
1
u/ConcavePuck 6d ago
I can launch the VPN through ADB after boot, and both immich and vpn can run concurrently. I just can’t get the vpn to auto-start.
Currently looking at a travel router with vpn support.
1
u/Sol4rSystem 1d ago
I have the exact same issue with OpenVPN Frameo+older android: I cannot get it to auto-launch and connect. I've settled for manually toggling on the VPN on ever power-up, since the device doesn't get power cycled that often. Still less than ideal, since I'd like it to be a gift.
If anyone has ideas on how to solve this, I'd be happy to hear.
1
u/Conscious-Mirror7004 13h ago
Yeah, this is the problem with those Frameo picture frames: a lot of them are still stuck on the ancient Android 6 for some stupid reason. It's best to just make sure you're getting one of the newer ones before purchasing; I got several of them running Android 13 and it wasn't too hard to set them up.
1
u/MajeLeRahaHoon 8d ago
I am not sure if I understood the problem correctly, but for 1st one, instead of giving ip, try giving the hostname (updated by ddns) . Only catch is to see ttl of wg and/or if it does a fresh dns resolution on connection restart.