Self-hosted Standard Notes LXC Container

Self hosted Standard Notes LXC Container

In this tutorial I will explain how you can install a Self-hosted Standard Notes LXC Container This is the standard Notes API server and not the web app. Alternatively I can recommend Joplin.

To do this, first create a Debian 11 LXC container. I recommend 4 cores, 2GB Ram and 4GB Rom.

Alternatively you can also install int on Ubuntu.

1. Install updates and dependencies

The following commands are used to install the required dependencies.

apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common -y
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
apt update

2. Install Docker

Docker will now be installed.

apt install docker-ce docker-compose -y

3. Install Self-hosted Standard Notes LXC Container

Create a folder in which you want to save your work files. We will refer to this folder as the working directory.

mkdir standardnotes
cd standardnotes

Create an .env file in your working directory. Then copy the sample values into your file:

touch .env
curl https://raw.githubusercontent.com/standardnotes/server/main/.env.sample > .env

Make sure that the keys in the .env file are replaced.

You can create a secure password with the following command.

openssl rand -hex 32

And with nano .env you can edit the .env file and replace the keys.

Copy the LocalStack bootstrap script and place it in your working directory. Make sure that the file has execution permissions:

curl https://raw.githubusercontent.com/standardnotes/server/main/docker/localstack_bootstrap.sh > localstack_bootstrap.sh
chmod +x localstack_bootstrap.sh

Copy the docker-compose.yml file to a file called docker-compose.yml in your working folder:

curl https://raw.githubusercontent.com/standardnotes/server/main/docker-compose.example.yml > docker-compose.yml

4. Set DB password

Now change the password of the DB. To do this, create a secure password again.

openssl rand -hex 12

The password DB_PASSWORD in the .env file must be replaced.

MYSQL_ROOT_PASSWORD and MYSQL_PASSWORD in docker-compose.yml must be the same as in the .env file.

nano .env
nano docker-compose.yml

5. Start Standard Notes Server

You can now start the server with the following command.

docker compose pull && docker compose up -d
Self hosted Standard Notes LXC Container docker setup
Self-hosted Standard Notes LXC Container

When the server has finally been started, you can log in to the server via the app.

To do this, enter the internal IP address of the server or, if necessary, you can also use the server behind a reverse proxy with a subdomain.

6. Disable Registration (optionally)

If you do not want other people to register on your standard Notes server, add the following line to the .env file.

AUTH_SERVER_DISABLE_USER_REGISTRATION=true


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *