Linkwarden
Appearance
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.