TrueNAS Scale Linkwarden
Overview
Setup Linkwarden on TrueNAS Scale.
Assumptions
TrueNAS Scale Setup completed.
TrueNAS Scale NPM completed.
Logged in as administrative user.
Storage Configuration
Create a new dataset for Linkwarden to use for persistent storage of page archives. This dataset needs to be read and writable by the apps user. The default ixVolume could be used for Linkwarden storage, but this may not be ideal for users wishing to store archives long-term.
Create Dataset
Navigate to the Datasets tab in the TrueNAS dashboard.
Select the dataset or pool that the new linkwarden dataset should be stored in.
Select Add Dataset within Dataset Details. Configure the new dataset using the wizard.
| Setting | Value | Description |
|---|---|---|
| Parent path | pool01 | Will be the name of the parent dataset. |
| Name | linkwarden | Name of the dataset to create. |
| Comments | | Optional comments for your memory. |
| Sync | Inherit (standard) | Determines when to wait for data writes to complete. |
| Compression level | Inherit (lz4) | Set compression level, LZ4 recommended. |
| Enable Atime | Inherit (off) | Update file access time when read. |
| Encryption Options | Inherit | Inherit unless the dataset being created needs to have a different key. |
| ZFS Deduplication | Inherit (off) | Deduplicate data when stored. Do not use if on a resource-light system. |
| Case Sensitivity | Sensitive | Choose filename case sensitivity. |
| Share Type | Generic | Change to SMB if required for your application. |
Select Save to create the new dataset.
Dataset Permissions
For the Linkwarden app to utilize the created dataset, the permissions for the dataset need to be modified.
Select the created linkwarden dataset and find the Permissions details section.
Edit the permissions to achieve the following. This will allow Linkwarden to access the dataset.
| Setting | Value | Description |
|---|---|---|
| Owner | — | — |
| User | apps | May be replaced by 568, the apps UID, this is acceptable. |
| Apply User | true | Apply user changes. |
| Group | apps | May be replaced by 568, the apps GID, this is acceptable. |
| Apply Group | true | Apply group changes. |
| Access | — | — |
| User | Read - Write - Execute | Allow apps user to read, write, and execute (7). |
| Group | Read - Execute | Allow apps group to read and execute (5). |
| Other | None | Don’t allow any other users to access the dataset. (0). |
| Advanced | — | — |
| Apply permissions recursively | true | Apply permissions to all dataset files. |
| Apply permissions to child datasets | true | Apply permissions to all child-dataset files. |
Select Save to apply the configured permissions.
Install Linkwarden
Navigate to the Applications page in the TrueNAS Scale dashboard, Apps on the main navigation.
Switch to the Available Applications tab in the Applications page.
Using the search tool, find the linkwarden application. Verify Linkwarden is from the TrueNAS catalog and is on the Community train.
Select Install to begin configuration and installation of the application. Configuration options not mentioned in this section can be left as default.
Application Name
| Setting | Value | Description |
|---|---|---|
| Application Name | linkwarden | Name for the application. |
| Version Number | #.#.# | Version to use, latest by default. |
Linkwarden Configuration
| Setting | Value | Description |
|---|---|---|
| Postgres Image | Postgres 17 | On new installations, use Postgres 17. If importing an existing Postgres 15 database, use Postgres 15 until ready to upgrade. Database upgrades are one-way. |
| Database Password | Generated-Secure-Password | Generate a secure database password. |
| NextAuth Secret | Generated-Random-String | Generate a random string, minimum 64 characters. |
| Meilisearch Master Key | Generated-Random-String | Generate a random string, minimum 64 characters. |
Network Configuration
| Setting | Value | Description |
|---|---|---|
| Port Bind Mode | Publish port on the host for external access | Publish the port for external access. |
| WebUI Port | 30243 | Port Linkwarden service will be exposed on. |
| Host IPs | 0.0.0.0 | Optionally, specify a Host IP. If there is a dedicated local network interface for containers, specify that address here. |
Storage Configuration
The following configuration assumes the previously created Linkwarden dataset will be used. To continue with an ixVolume, just leave the values as default.
| Setting | Value | Description |
|---|---|---|
| Data Storage | /mnt/pool01/linkwarden | Select the created linkwarden dataset from the stroage pool as a Host Path. If no dataset was created, use the default ixVolume. |
| Meilisearch Data Storage | ixVolume | Meilisearch storage location. |
| Postgres Data Storage | ixVolume | Postgres storage location. |
Resources Configuration
| Setting | Value | Description |
|---|---|---|
| CPU Limit | 1 | Configure a CPU thread limit for the application. 1 should be adequate for small deployments. |
| Memory Limit | 2048 | Memery limit in megabytes. 2 gigabytes should be adequate for small deployments. |
Install
Verify you have checked the TrueNAS documentation for Linkwarden and Install. The application will complete installation and deploy. Navigate to the Applications tab to monitor the status.
NPM Proxy Host
Add a Nginx Proxy Manager proxy host for the Linkwarden service.
From the Nginx Proxy Manager dashboard, select Proxy Hosts under Hosts.
Select Add Proxy Host from the Proxy Hosts dashboard.
Proxy Host Details
Configure the new proxy host details.
| Setting | Value | Description |
|---|---|---|
| Domain Names | linkwarden.system.example.com | Hostname used to access Linkwarden, must have a matching DNS record. |
| Forward Hostname / IP | 172.16.13.13 | Use the IP addess of the host server. The loopback address will not work. |
| Forward Port | 30243 | Use the mapped service port, not the internal Docker port. |
| Cache Assets | false | |
| Block Common Exploits | true | |
| Websockets Support | false | |
| Access List | local | Optionally, use the configured access list to limit devices that can connect. |
Proxy Host SSL
Switch to the SSL tab for the new proxy host and configure it to use the generated certificate.
| Setting | Value | Description |
|---|---|---|
| SSL Certificate | *.system.example.com | Use the generated certificate. |
| Force SSL | true | |
| HTTP/2 Support | true | |
| HSTS Enabled | true | |
| HSTS Subdomains | true |

Proxy Host Connect
Save the new proxy host and view the added host in the proxy hosts list.
If a local DNS server is setup, verify there is a wildcard entry for the local server or create one specifially for Linkwarden.
If there is no local DNS server yet, add a custom host entry to /etc/hosts.
sudo nano /etc/hostsAdd the required domain(s) and point them to the host server IP address.
172.16.13.13 system.example.com
172.16.13.13 npm.system.example.com
172.16.13.13 linkwarden.system.example.comNavigate to the Linkwarden service with the configured domain, no port required if Nginx Proxy Manager was assigned port 80/443.
https://linkwarden.system.example.com/Connect
Initial deployment may take a few minutes. Connect to the Linkwarden service in a browser at the configured domain, https://linkwarden.system.example.com/. A login screen will be presented, but there is not a default login, new user accounts must be created.
Linkwarden has no users by default. Create a new Linkwarden user by selecting Sign Up on the login page. Enter a Display Name, Username, and Password on the account creation page and Sign Up.

Login to the newly created account, the Linkwarden dashboard will be presented. All users have the same permissions on the Linkwarden application, be aware if creating multiple users.

Settings
Review a few settings to configure Linkwarden for the given use case. Access the Settings page from the avatar in the upper right. Make sure to Save Changes manually, they will not save automatically. A couple notable settings are detailed below.
Preference
From the Preference settings page, review the Archive Settings. Consider defining archive formats for a Preservation rules by tag tag to limit which saved links get archived.

RSS Subscriptions
Linkwarden supports RSS feeds as defined from the RSS Subscriptions page. Select New RSS Subscription and enter the feed details. Feeds can be automatically sorted into collections.
| Feed | Link |
|---|---|
| NASA - ISS | https://www.nasa.gov/missions/station/feed/ |
| NASA - JPL | https://www.nasa.gov/centers-and-facilities/jpl/feed/ |
| NASA - News Release | https://www.nasa.gov/news-release/feed/ |
| NASA - Technology | https://www.nasa.gov/technology/feed/ |
| PBS - USA News | https://www.pbs.org/newshour/feeds/rss/headlines |
References
iXsystems. “TrueNAS Documentation.” 2025. ↩︎
iXsystems. “TrueNAS Linkwarden Documentation.” 2025. ↩︎
Linkwarden. “Linkwarden Documentation.” 2025. ↩︎
Linkwarden. “Linkwarden GitHub.” 2025. ↩︎
iXsystems. “TrueNAS Nginx Proxy Manager Documentation.” 2025. ↩︎
Nginx Proxy Manager. Nginx Proxy Manager Documentation. 2024. ↩︎
Nginx Proxy Manager. “Nginx Proxy Manager GitHub.” 2024. ↩︎