Storage Template
Immich allows the admin user to set the uploaded filename pattern at the directory and filename level as well as the storage label for a user.
On new machines running version 1.92.0 storage template engine is off by default, for more info.
You can read more about the differences between storage template engine on and off here
The admin user can set the template by using the template builder in the Administration -> Settings -> Storage Template
. Immich provides a set of variables that you can use in constructing the template, along with additional custom text. If the template produces multiple files with the same filename, they won't be overwritten as a sequence number is appended to the filename.
Year/Year-Month-Day/Filename.Extension
If you want to change the storage template during the initial setup, first enable the feature.
Then, customize your storage template.
If an asset is in multiple albums, {{album}}
will be set to the name of the album which was most recently created. By default, special characters will be converted to an HTML entity (for example, &
-> &
). To prevent this, wrap the variable in an extra set of braces (for example, {{{album}}}
). You can learn more about this here and here.
Immich also provides a mechanism to migrate between templates so that if the template you set now doesn't work in the future, you can always migrate all the existing files to the new template. The mechanism is run as a job on the Job page.
If you want to store assets in album folders, but you also have assets that do not belong to any album, you can use {{#if album}}
, {{else}}
and {{/if}}
to create a conditional statement. For example, the following template will store assets in album folders if they belong to an album, and in a folder named "Other/Month" if they do not belong to an album:
{{y}}/{{#if album}}{{album}}{{else}}Other{{/if}}/{{MM}}/{{filename}}