Synology
Frameleaf runs on Synology with Container Manager in DSM. If you don’t have it yet, install Container Manager from Package Center. Synology’s Container Manager help explains the basics.
1. Make the folders
Section titled “1. Make the folders”- In File Station, create a
frameleaffolder inside yourdockershared folder, so you havedocker/frameleaf. Keeping every Docker app underdockeris good practice. - Inside it, create two folders:
postgresandlibrary.
You now have:
docker/frameleaf/postgres, for the databasedocker/frameleaf/library, for your photos and videos
2. Download and edit the settings
Section titled “2. Download and edit the settings”- Download docker-compose.yml and example.env to your computer.
- Upload both files to
docker/frameleaf. - Rename
example.envto.env.
Edit .env:
| Setting | What to set |
|---|---|
UPLOAD_LOCATION |
./library keeps the default library folder next to the Compose file. You can also use an absolute path such as /volume1/docker/frameleaf/library. |
DB_DATA_LOCATION |
./postgres, or an absolute path on an SSD volume if you have one. |
DB_PASSWORD |
Your own password, using only letters and numbers. |
TZ |
Uncomment it and set your time zone. |
See Install with Docker Compose for more about each setting.
3. Create the project
Section titled “3. Create the project”- Open Container Manager, select Project in the left bar and click Create.
- Set Project name to
frameleafand set Path todocker/frameleaf. Container Manager offers to use thedocker-compose.ymlit finds there. Click OK. - The next screen lets you edit the Compose file. If your volume is on hard drives rather than SSDs, uncomment
DB_STORAGE_TYPE: 'HDD'in thedatabaseservice. - Skip the step that offers to set up a Web Station portal, and finish the wizard. Container Manager downloads the images, then builds and starts the containers.
- When they’re running, go to Container, right-click frameleaf_server and choose Details. Scroll to the Network section and note the container’s IP address. You need it in the next step.
4. Allow it through the firewall
Section titled “4. Allow it through the firewall”If the DSM firewall is on, allow traffic to the Frameleaf containers.
- Open Control Panel, then Security, then Firewall.
- Click Edit Rules and add:
- a Source IP rule for the container IP address from the previous step
- a Ports rule for port
2283, the port indocker-compose.yml
- Save the rules.
If you’ll use direct connections for Frameleaf Cloud remote access, also allow port 2443.
5. Create the admin account
Section titled “5. Create the admin account”Open http://<nas-ip>:2283 from your home network and follow first steps. You’ll need the setup code from the server’s log: in Container Manager, open Container, select frameleaf_server and open its Log tab.
Update
Section titled “Update”1. Back up and read the release notes
Section titled “1. Back up and read the release notes”Make sure your photos and videos are backed up; your .env says where they’re stored. Read the release notes and Upgrading before every update. You don’t need to delete anything in the docker folder unless the release notes say so.
2. Stop and clean up
Section titled “2. Stop and clean up”- Open Container Manager, select Project and select your Frameleaf project.
- Click Stop and wait for every container to stop.
- Choose Action, then Clean. This removes the containers, not your photos or database.
- Select Image in the left bar and choose Remove Unused Images.
3. Build
Section titled “3. Build”Go back to Project, select Frameleaf and choose Action, then Build. Container Manager downloads the new images and starts the containers.
4. Check the firewall rule
Section titled “4. Check the firewall rule”Without a fixed subnet, the containers can get new IP addresses when they’re rebuilt. If frameleaf_server runs for a few seconds and then stops, its IP address probably no longer matches your firewall rule.
- In Container, click
frameleaf_server, stay on the General tab and scroll to Network to see its IP address. - In Control Panel, then Security, then Firewall, edit the Source IP rule to match.
To stop this happening again, give the network a fixed subnet.
Set a fixed subnet
Section titled “Set a fixed subnet”Docker gives bridge networks a dynamic subnet, which can change when containers are rebuilt and break your firewall rules. Define a fixed one in docker-compose.yml.
-
In Container, click
frameleaf_server, stay on the General tab and scroll to Network. The IP address and Gateway show the subnet it uses now. -
Add this to the end of
docker-compose.yml, changing the subnet and gateway if yours are different:networks:frameleaf-network:driver: bridgeipam:config:- subnet: 172.20.0.0/16gateway: 172.20.0.1 -
Add the network to each of the four services:
services:immich-server:# other settingsnetworks:- frameleaf-networkimmich-machine-learning:# other settingsnetworks:- frameleaf-networkredis:# other settingsnetworks:- frameleaf-networkdatabase:# other settingsnetworks:- frameleaf-networkThe service names start with
immich-for compatibility; the containers themselves are namedframeleaf_*. -
Save. When Synology asks whether to save only or rebuild the containers, choose to rebuild.
-
If your firewall rules don’t already cover the new subnet, update them as in step 4.