Skip to content

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. In File Station, create a frameleaf folder inside your docker shared folder, so you have docker/frameleaf. Keeping every Docker app under docker is good practice.
  2. Inside it, create two folders: postgres and library.

You now have:

  • docker/frameleaf/postgres, for the database
  • docker/frameleaf/library, for your photos and videos
  1. Download docker-compose.yml and example.env to your computer.
  2. Upload both files to docker/frameleaf.
  3. Rename example.env to .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.

  1. Open Container Manager, select Project in the left bar and click Create.
  2. Set Project name to frameleaf and set Path to docker/frameleaf. Container Manager offers to use the docker-compose.yml it finds there. Click OK.
  3. 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 the database service.
  4. 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.
  5. 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.

If the DSM firewall is on, allow traffic to the Frameleaf containers.

  1. Open Control Panel, then Security, then Firewall.
  2. 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 in docker-compose.yml
  3. Save the rules.

If you’ll use direct connections for Frameleaf Cloud remote access, also allow port 2443.

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.

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.

  1. Open Container Manager, select Project and select your Frameleaf project.
  2. Click Stop and wait for every container to stop.
  3. Choose Action, then Clean. This removes the containers, not your photos or database.
  4. Select Image in the left bar and choose Remove Unused Images.

Go back to Project, select Frameleaf and choose Action, then Build. Container Manager downloads the new images and starts the containers.

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.

  1. In Container, click frameleaf_server, stay on the General tab and scroll to Network to see its IP address.
  2. 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.

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.

  1. 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.

  2. Add this to the end of docker-compose.yml, changing the subnet and gateway if yours are different:

    networks:
    frameleaf-network:
    driver: bridge
    ipam:
    config:
    - subnet: 172.20.0.0/16
    gateway: 172.20.0.1
  3. Add the network to each of the four services:

    services:
    immich-server:
    # other settings
    networks:
    - frameleaf-network
    immich-machine-learning:
    # other settings
    networks:
    - frameleaf-network
    redis:
    # other settings
    networks:
    - frameleaf-network
    database:
    # other settings
    networks:
    - frameleaf-network

    The service names start with immich- for compatibility; the containers themselves are named frameleaf_*.

  4. Save. When Synology asks whether to save only or rebuild the containers, choose to rebuild.

  5. If your firewall rules don’t already cover the new subnet, update them as in step 4.