How to Install Standard Notes on nixOS Latest?

Standard Notes is an encryption-focused note-taking app that lets you sync your notes across your devices while keeping them private and secure. The app is available in two flavors - the cloud-based version and the self-hosted version. In this tutorial, we will learn how to install the self-hosted version of Standard Notes on nixOS Latest.

Prerequisites

Before we start, make sure you have the following:

  • A nixOS Latest instance
  • A user account with sudo privileges

Step 1: Install and Configure Nix

The first step is to make sure that you have Nix installed and configured on your nixOS instance. To install Nix, run the following command:

sudo nix-env -iA nixpkgs.nixUnstable

To configure Nix, we need to create a NixOS configuration file. To do so, run the following command:

sudo nano /etc/nixos/configuration.nix

In the configuration file, add the following line:

nix.package = pkgs.nixUnstable;

Save the file and exit. Then, rebuild your system configuration using the following command:

sudo nixos-rebuild switch

Step 2: Install Standard Notes

Now that we have Nix installed and configured, we can proceed with installing Standard Notes. To do so, run the following command:

sudo nix-env -iA nixpkgs.standardnotes

Step 3: Configure Standard Notes

To configure Standard Notes, we need to create a configuration file. Run the following command to create a new file:

sudo nano /etc/standardnotes/standardnotes.config.json

In the configuration file, add the following lines:

{
  "port": 3000,
  "database": "/var/lib/standardnotes/db.sqlite3",
  "uploadsDir": "/var/lib/standardnotes/uploads",
  "jwtSigningSecret": "your-secret-key"
}

Make sure to replace your-secret-key with a secure string of your choice. Save the file and exit.

Step 4: Start the Server

To start the Standard Notes server, run the following command:

sudo systemctl start standardnotes

To check the status of the server, run the following command:

sudo systemctl status standardnotes

Step 5: Set up Reverse Proxy

To access Standard Notes from a web browser, we need to set up a reverse proxy. For this tutorial, we will use Nginx. First, install Nginx using the following command:

sudo nix-env -iA nixpkgs.nginx

Next, create a configuration file for the proxy:

sudo nano /etc/nginx/conf.d/standardnotes.conf

In the file, add the following lines:

server {
  listen 80;
  server_name myserver.com;
  location / {
    proxy_pass http://localhost:3000;
  }
}

Ensure you replace myserver.com with your server's hostname. Save the file and exit.

Step 6: Restart Nginx

To apply the changes, restart Nginx using the following command:

sudo systemctl restart nginx

Step 7: Access Standard Notes

With the reverse proxy set up, you can now access Standard Notes from a web browser. Open your browser and navigate to http://myserver.com. You will be prompted to create a new account or log in to an existing one.

Conclusion

In this tutorial, we learned how to install Standard Notes on nixOS Latest and set it up to work with Nginx as a reverse proxy. With this, you can now use Standard Notes as a self-hosted note-taking app while keeping your notes private and secure.