Jump to content

Linkwarden

From Official NixOS Wiki

Linkwarden is a self-hosted, open-source collaborative bookmark manager to collect, read, annotate, and fully preserve what matters, all in one place.

Configuration

There's services.linkwarden nixos module to setup a linkwarden instance.

Basic (secrets exposed)

❄︎ module.nix
{ ... }:
{
  services.linkwarden = {
    enable = true;
    host = "127.0.0.1";
    port = 8080;
    storageLocation = "/var/lib/linkwarden";

    # both are required
    environment = {
      NEXTAUTH_SECRET = "linkwarden nextauth secret";
      POSTGRES_PASSWORD = "linkwarden postgres password";
    };
  };
}
Note: NEXTAUTH_SECRET and POSTGRES_PASSWORD are required.
🛡︎︎
Security information:

This example exposes NEXTAUTH_SECRET and POSTGRES_PASSWORD publicly. Use services.linkwarden.secretFiles instead of services.linkwarden.environment to hide your secrets. See Linkwarden#Basic (secrets hidden) for an example.

Basic (secrets hidden)

❄︎ module.nix
{ ... }:
{
  services.linkwarden = {
    enable = true;
    host = "127.0.0.1";
    port = 8080;
    storageLocation = "/var/lib/linkwarden";

    # both are required
    secretFiles = {
      NEXTAUTH_SECRET = "/path/to/linkwarden/nextauth/secret";
      POSTGRES_PASSWORD = "/path/to/linkwarden/postgres/secret";
    };
  };
}

With Meilisearch

Linkwarden also provides meilisearch support:

❄︎ module.nix
{ ... }:
{
  services = {
    linkwarden = {
      enable = true;
      host = "127.0.0.1";
      port = 8080;
      storageLocation = "/var/lib/linkwarden";

      # both are required
      secretFiles = {
        NEXTAUTH_SECRET = "/path/to/linkwarden/nextauth/secret";
        POSTGRES_PASSWORD = "/path/to/linkwarden/postgres/secret";
      };

      environment = {
        MEILI_HOST = "http://127.0.0.1:3000";
      };
    };
    
    meilisearch = {
      enable = true;
      listenAddress = "127.0.0.1";
      listenPort = 3000;
    };
  };
};
🛡︎︎
Security information:

There's also services.meilisearch.masterKeyFile to protect access to the meilisearch instance behind a key. You'll need to set the key in MEILI_MASTER_KEY for linkwarden then.

See also